首頁 > 新聞 > 專家觀點 >

李雪峰:云計算安全體系中的沙箱機制和技術剖析

2014-10-30 13:04:10   作者:   來源:CTI論壇   評論:0  點擊:


  CTI論壇(ctiforum)10月30日消息(記者 李文杰):10月25日,阿里云課堂第二期在上海開課,“云安全架構設計與實踐”主題分享在眾多朋友的期待下精彩上演,現(xiàn)場觀眾再次爆滿。本次活動中,李雪峰(花名:虛舟)和楊孟哲(花名:孟哲)兩位安全專家為大家獻上了精彩演講,并在OpenSpace環(huán)節(jié)與觀眾展開討論,積極互動。應廣大用戶要求,我們將云課堂講師現(xiàn)場分享內容全文整理出來,供大家參考。阿里云課堂會繼續(xù)在全國各地陸續(xù)開課,歡迎大家繼續(xù)支持!

  以下為講師李雪峰(虛舟)的分享內容:

  一、背景介紹

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

  主要的工作包括幾個方面,一個是訪問控制機制另一方面是安全沙箱。訪問控制機制包括從盤古文件的訪問、讀取和認證機構,還有ODPS、OTS、OSS等系統(tǒng)基于飛天做,飛天會幫它們做所有上層的安全措施基礎機制支撐工作。尤其是ODPS系統(tǒng),其所有的訪問控制機制和安全沙箱的系統(tǒng),都是由飛天安全提供機制來支持的。

  今天我們要講的議題,首先會從攻擊者的角度看一下云上的計算系統(tǒng)有哪些Attack Surfaces可以利用。然后看一下目前開源的產品,比較著名的產品從這個角度來看是如何解決安全問題的。以及l(fā)inux系統(tǒng)提供了那些安全機制可供安全沙箱使用。最后,我們具體了解一下飛天安全沙箱的方案。

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

分享到: 收藏

專題