人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

阿里云飛天分布式系統(tǒng)使用沙箱機制的經(jīng)驗總結(jié)

發(fā)布日期:2021-12-18 21:42 | 文章來源:源碼之家

飛天項目的整體架構(gòu),最底層基礎(chǔ)架構(gòu)是由通用服務器組成的Linux集群,沒有使用高端的服務器和存儲。飛天提供功能的方式是通過服務的方式,下圖中所有藍色的框(指各類云計算服務)都是對外提供服務的窗口,但這里藍色的框并不代表所有阿里云提供的服務,還有許多其他的服務沒有包括。最上層,飛天項目是阿里云整個產(chǎn)品和服務的技術(shù)基礎(chǔ),上面是各種各樣的應用。
飛天平臺上強調(diào)的是做多租戶,因為眾所周知云計算帶來的好處就是彈性,另外一個就是需要幫助大家降低成本。

下面這張圖是飛天的體系結(jié)構(gòu)介紹。整個的飛天系統(tǒng),最基礎(chǔ)的兩大系統(tǒng),盤古和伏羲。如果大家之前了解過這方面的資料,應該對這張圖非常熟悉。飛天基礎(chǔ)系統(tǒng)上承載著多個云產(chǎn)品,ECS/SLB、OSS、OTS、OSPS、包括ODPS的系統(tǒng)。安全機制在飛天及飛天承載的云產(chǎn)品中起著至關(guān)重要的作用。

主要的工作包括幾個方面,一個是訪問控制機制另一方面是安全沙箱.訪問控制機制包括從盤古文件的訪問、讀取和認證機構(gòu),還有ODPS、OTS、OSS等系統(tǒng)基于飛天做,飛天會幫它們做所有上層的安全措施基礎(chǔ)機制支撐工作。尤其是ODPS系統(tǒng),其所有的訪問控制機制和安全沙箱的系統(tǒng),都是由飛天安全提供機制來支持的。
今天我們要講的議題,首先會從攻擊者的角度看一下云上的計算系統(tǒng)有哪些Attack Surfaces可以利用.然后看一下目前開源的產(chǎn)品,比較著名的產(chǎn)品從這個角度來看是如何解決安全問題的。以及l(fā)inux系統(tǒng)提供了那些安全機制可供安全沙箱使用。最后,我們具體了解一下飛天安全沙箱的方案。

首先,我們看一下典型的云計算環(huán)境中,為支撐用戶代碼的運行,從上到下的結(jié)構(gòu)。通常為了讓用戶代碼能夠執(zhí)行高級語言,我們都會有一層高級語言的虛擬機,比如JVM,Cpython。我們以后有些系統(tǒng)會跑JS,這里對應的是V8。這些虛擬器通常是C語言來開發(fā)的,相對來說是一個獨立的系統(tǒng),再下一層是Libc的庫,這個對應的是C語言的so。再往下一層是LinuxKernel。再往下其實還有,如果是說這個系統(tǒng)用的是虛機,往下還會有物理機,本次分享不討論這個問題。對于這樣的系統(tǒng)來說,如果User code的惡意代碼,為了拿到Linux Kernel的root權(quán)限需要一步步的滲透。入侵者如果想要到達最終目標,首先要突破高級語言虛擬機的安全防護,比如Java的SecurityManager機制。不過根據(jù)最近幾年的漏洞情況判斷, JVM安全沙箱對入侵來說是并沒有太大的難度,可以假定一定會被突破。通過JVM提供的Navtive調(diào)用,它可以直接調(diào)用到Libc。Libc對入侵者來說,主要目的是要拿到當前進程的權(quán)限。最后一層是Linux Kernel,我們在云計算平臺上來說,跑用戶代碼的進程不會是root,大家想像一下也知道,root不會給最終用戶區(qū)跑這個代碼的。當入侵者真的通過前基層的安全防護機制,并成功攻破root權(quán)限,那么這臺機器已經(jīng)被他控制在手里了。我們可以想像一下,在云計算這樣一個集群里面,我們通常來說會跑成千上萬的實例,如果我們把這個實例數(shù)放到最大,這樣的代碼被執(zhí)行完之后,是不是整個集群所有機器的權(quán)限都可以拿到了。這是非??膳碌氖虑椤>退阄覀冊谀骋环矫婵梢钥刂朴脩籼峤粩?shù)量,云計算平臺上通常會使用相同一臺機器同時處理多個用戶,如果有一臺機器被用戶集權(quán)到root,上面的所有數(shù)據(jù)和密鑰,對于入侵者來說都是可見的了。
接下來我們看一下,業(yè)內(nèi)有一些做得比較好的安全產(chǎn)品,在安全方面沙箱方面如何解決的用戶隔離問題。

首先我們看一下Docker目前使用哪些機制,這張圖主要是使用了三個緯度,有兩個緯度產(chǎn)生了LXC,使用了Namespaces,Namespaces它可以在多個方面實現(xiàn)一定的隔離能力。這個能力需要在2.6.x以后才能部分開始使用。Cgroups機制保證操作系統(tǒng)資源的合理管理。另外,Docker啟用了AUSF的分層文件系統(tǒng)。傳統(tǒng)文件系統(tǒng),我們可以認為是縱向的文件系統(tǒng),你寫哪個文件,這個文件一直到硬件,而AUSF是可以進行疊加的。一層層的文件夾疊加,會映射成一個相同的文件夾。Docker里面,最下面的image用來做系統(tǒng)環(huán)境,中間會做APP,最上面是用戶運行期的東西,這些東西會被Docker封裝成一層層,實現(xiàn)了類似于集裝箱式的部署能力。

對于Docker來說,對一個攻擊者來說,眼中看到的Docker應用有哪些東西?從剛才的圖上也是類似的,整個系統(tǒng)有一個Docker container,右邊是DockerEngine。如果你在Docker上直接部署C進程,下面兩層就是C的程序。對于惡意用戶來說,如果想得到所在機器的root權(quán)限,要突破你在Iibc上做的措施,還需要突破kernel中seccomp-bpf,這是kernel提供的一個安全機制,允許你定義某一個進程所能進行的系統(tǒng)過濾。第

第三層攻破,seccomp-bpf可以進行額外的安全判斷。你如果把這個也突破了,其實這臺機器也直接root掉了。

接下來我們看google chrome的沙箱。Chrome使用過SUID/Namespaces sandbox,這也是對linx container機制的利用。使用過seccomp-legacy。在沒有seccomp-bpf之前google使用seccomp-legacy。seccomp-legacy使用限制非常大。也同樣使用過seccomp-bpf。
我們剛才看了兩個業(yè)內(nèi)的安全產(chǎn)品,可以簡單的總結(jié)一下,對于沙箱來說,我們有哪些安全機制可以使用?參考這張圖,首先對于JVM來說,我們可以用Java security Manager 以及 Classloader機制。如果是Linux Kernel,那么我們還可以直接利用Kernel Namespaces,Cgroup ,Chroot、umount。這些東西在LXC已經(jīng)封裝好了可以用,而且通常它們在一起使用才可以產(chǎn)生比較好的效果。然后是aufs,2.6才開始支持。Seccomp-bpf是3.5,如果版本不夠你就要使用其他方案來做內(nèi)核層的一些過濾了。
另外一個角度,對云計算上的安全沙箱來說有哪些層次可以做防御?JVM內(nèi)的防御是否有必要?Java的安全沙箱攻破的難度不是很大,它是不是不要了?剛才我們說了,安全沙箱沒有絕對安全的設計,如何在安全上做到盡可能可靠的防護?多層防御可以有效提高安全防護能力。
第二是進層隔離,用于提供安全機制。
第三層要在kernel space里面要有安全過慮。

前面做完了,基于現(xiàn)有的安全機制來說,至少可以認為在目前,可以直接使用的防護措施就這些了。
剛才我們看到了一些安全機制,接下來看看飛天安全在沙箱方面使用哪些機制?其實前面我們說的這些,該用的都用到了。

飛天安全沙箱,是這樣的一個系統(tǒng)。簡單來看,這張圖和我們之前的兩張圖有相似的地方。最終的方案,我們方案融合了前兩個的優(yōu)點。我們這一層的User code可以放到C語言下進行,Iibc可以有一些攔截。這個地方是基于IPC的,所以你在當前進程要做的破壞或者說做的事情,是無法影響到另一個進程的。最后是Linux container,我們有一層內(nèi)核過濾機制來保證。
我們今天的分享還是比較聚焦的,就是講沙箱和安全機制。我們看了一些業(yè)內(nèi)主要的安全產(chǎn)品實現(xiàn),以及它使用的安全機制。最后針對一個具體的案例-飛天安全沙箱,我們了解了該如何實現(xiàn)融合多種安全機制來實現(xiàn)與著名安全產(chǎn)品相同等級防護能力的安全沙箱。

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關(guān)注
微信

關(guān)注官方微信
頂部