CTI論壇(ctiforum)10月30日消息(記者 李文杰):10月25日,阿里云課堂第二期在上海開(kāi)課,“云安全架構設計與實(shí)踐”主題分享在眾多朋友的期待下精彩上演,現場(chǎng)觀(guān)眾再次爆滿(mǎn)。本次活動(dòng)中,李雪峰(花名:虛舟)和楊孟哲(花名:孟哲)兩位安全專(zhuān)家為大家獻上了精彩演講,并在OpenSpace環(huán)節與觀(guān)眾展開(kāi)討論,積極互動(dòng)。應廣大用戶(hù)要求,我們將云課堂講師現場(chǎng)分享內容全文整理出來(lái),供大家參考。阿里云課堂會(huì )繼續在全國各地陸續開(kāi)課,歡迎大家繼續支持!
以下為講師李雪峰(虛舟)的分享內容:
一、背景介紹
這張圖是飛天的體系結構介紹。整個(gè)的飛天系統,最基礎的兩大系統,盤(pán)古和伏羲。如果大家之前了解過(guò)這方面的資料,應該對這張圖非常熟悉。飛天基礎系統上承載著(zhù)多個(gè)云產(chǎn)品,ECS/SLB、OSS、OTS、OSPS、包括ODPS的系統。安全機制在飛天及飛天承載的云產(chǎn)品中起著(zhù)至關(guān)重要的作用。
主要的工作包括幾個(gè)方面,一個(gè)是訪(fǎng)問(wèn)控制機制另一方面是安全沙箱。訪(fǎng)問(wèn)控制機制包括從盤(pán)古文件的訪(fǎng)問(wèn)、讀取和認證機構,還有ODPS、OTS、OSS等系統基于飛天做,飛天會(huì )幫它們做所有上層的安全措施基礎機制支撐工作。尤其是ODPS系統,其所有的訪(fǎng)問(wèn)控制機制和安全沙箱的系統,都是由飛天安全提供機制來(lái)支持的。
今天我們要講的議題,首先會(huì )從攻擊者的角度看一下云上的計算系統有哪些Attack Surfaces可以利用。然后看一下目前開(kāi)源的產(chǎn)品,比較著(zhù)名的產(chǎn)品從這個(gè)角度來(lái)看是如何解決安全問(wèn)題的。以及l(fā)inux系統提供了那些安全機制可供安全沙箱使用。最后,我們具體了解一下飛天安全沙箱的方案。
首先,我們看一下典型的云計算環(huán)境中,為支撐用戶(hù)代碼的運行,從上到下的結構。通常為了讓用戶(hù)代碼能夠執行高級語(yǔ)言,我們都會(huì )有一層高級語(yǔ)言的虛擬機,比如JVM,Cpython。我們以后有些系統會(huì )跑JS,這里對應的是V8。這些虛擬器通常是C語(yǔ)言來(lái)開(kāi)發(fā)的,相對來(lái)說(shuō)是一個(gè)獨立的系統,再下一層是Libc的庫,這個(gè)對應的是C語(yǔ)言的so。再往下一層是LinuxKernel。再往下其實(shí)還有,如果是說(shuō)這個(gè)系統用的是虛機,往下還會(huì )有物理機,本次分享不討論這個(gè)問(wèn)題。對于這樣的系統來(lái)說(shuō),如果User code的惡意代碼,為了拿到Linux Kernel的root權限需要一步步的滲透。入侵者如果想要到達最終目標,首先要突破高級語(yǔ)言虛擬機的安全防護,比如Java的SecurityManager機制。不過(guò)根據最近幾年的漏洞情況判斷, JVM安全沙箱對入侵來(lái)說(shuō)是并沒(méi)有太大的難度,可以假定一定會(huì )被突破。通過(guò)JVM提供的Navtive調用,它可以直接調用到Libc。Libc對入侵者來(lái)說(shuō),主要目的是要拿到當前進(jìn)程的權限。最后一層是Linux Kernel,我們在云計算平臺上來(lái)說(shuō),跑用戶(hù)代碼的進(jìn)程不會(huì )是root,大家想像一下也知道,root不會(huì )給最終用戶(hù)區跑這個(gè)代碼的。當入侵者真的通過(guò)前基層的安全防護機制,并成功攻破root權限,那么這臺機器已經(jīng)被他控制在手里了。我們可以想像一下,在云計算這樣一個(gè)集群里面,我們通常來(lái)說(shuō)會(huì )跑成千上萬(wàn)的實(shí)例,如果我們把這個(gè)實(shí)例數放到最大,這樣的代碼被執行完之后,是不是整個(gè)集群所有機器的權限都可以拿到了。這是非常可怕的事情。就算我們在某一方面可以控制用戶(hù)提交數量,云計算平臺上通常會(huì )使用相同一臺機器同時(shí)處理多個(gè)用戶(hù),如果有一臺機器被用戶(hù)集權到root,上面的所有數據和密鑰,對于入侵者來(lái)說(shuō)都是可見(jiàn)的了。