《雲安全原理與實踐》——3.2 主機虛擬化的主要安全威脅

weixin_33766168發表於2017-09-04

3.2 主機虛擬化的主要安全威脅

主機虛擬化提供給使用者使用的不是物理意義上的伺服器,而是虛擬服務層中的一個作業系統例項。通過主機虛擬化,管理員不僅可以在物理伺服器上部署多個虛擬伺服器,併為其安裝作業系統,還可以根據不同業務需求定製虛擬機器的記憶體、CPU、儲存容量等。這樣不但提高了伺服器的利用率,還降低了硬體成本,縮短了伺服器的配置時間,並能保持業務的連續性等。與物理伺服器一樣,虛擬伺服器上同樣存在安全風險。因此,在部署、使用、分配、管理虛擬伺服器時必須加強安全風險防範意識。
1.?虛擬機器之間的安全威脅
傳統網路是從客戶端發起訪問到伺服器的縱向流量結構,縱向流量必然要經過外接的硬體安全防護機制,如防火牆等。即使在虛擬化後,傳統的安全防護裝置也可以實現對縱向流量的安全防護和業務隔離。與傳統的安全防護不同,在虛擬化環境下可能存在多租戶服務模型。多個虛擬機器可在同一臺物理主機上互動資料從而產生橫向流量,這些資料不經過外接的硬體安全防護機制,管理員無法對這些橫向流量進行有效監控或者實施高階的安全策略,例如,入侵防禦規則或防火牆規則,如圖3-31所示。在伺服器的虛擬化過程中,一些虛擬化廠商通過在伺服器Hypervisor層整合虛擬交換機的特性。也可以實現一些基本的訪問允許或拒絕規則,但是很難整合更高階的安全檢測防護引擎來檢測虛擬機器之間的流量漏洞攻擊行為。當多個虛擬機器共享硬體資源,且虛擬機器橫向流量又不被外部感知的情況下,一臺虛擬機器受到攻擊後,宿主機乃至整個網路都會遭受嚴重威脅。
2.?虛擬機器與宿主機之間的安全威脅
宿主機是虛擬機器的物理基礎,虛擬機器存在於宿主機中,且與宿主機共享硬體。宿主機的執行是虛擬機器執行的前提與基礎,因此宿主機的安全至關重要。一旦宿主機被控制,利用宿主機的高特權極,攻擊者可以對同一宿主機上的虛擬機器進行攻擊(如圖3-32所示)。攻擊者甚至可以通過提升重要的訪問許可權,以使其可以訪問宿主機的本地網路和相鄰系統。
3.?虛擬機器控制中心的安全威脅
通過虛擬機器控制中心,管理員可以管理部署在不同位置上的虛擬機器,並應用自動化策略執行和快速部署等功能使日常工作變得簡單、快捷、高效,從而使資料中心的虛擬化環境更加易於管理,並能大大降低相關成本。因為虛擬機器控制中心對其管理的所有虛擬機器擁有高階別訪問控制許可權,所以確保虛擬機器控制中心的安全非常重要。否則,一旦虛擬機器控制中心被入侵,那麼所有虛擬機器乃至資料中心都會面臨極大威脅。
4.?虛擬機器蔓延(氾濫)及管理疏漏的隱患
導致虛擬機器蔓延(氾濫)的因素有很多,如殭屍虛擬機器。這些虛擬機器在完成工作後被丟棄,不會被關閉,也不會被刪除,但它們繼續消耗資源。由於長期處於無人看管狀態,虛擬機器一旦形成蔓延趨勢,就會造成巨大浪費。同時,口令的時限、漏洞的出現等問題都會成為虛擬機器管理的安全隱患。

image

在虛擬機器出現後,安全管理上會變得更為繁瑣。虛擬機器口令、宿主機口令、虛擬機器控制中心口令、虛擬機器漏洞、宿主機漏洞等每個細節都不容忽視。同樣,在部署虛擬機器時使用連續IP地址,主機、虛擬機器管理口令相同等這些看似方便的管理方式,會在未來帶來較大麻煩。總之,虛擬機器如管理不善,很可能會演變為整個資料中心的災難。
虛擬機器是主機虛擬化的基礎運算單元,一旦虛擬機器被劫持或攻陷,造成的損失是無法估量的。通常對虛擬機器攻擊方式是以下一種或多種方式的結合:
社會工程:攻擊者可通過各種社交渠道獲得有關目標的結構、使用情況、安全防範措施等有用資訊從而提高攻擊成功率。
口令破解:攻擊者可通過獲取口令檔案,然後運用口令破解工具獲得口令,也可通過猜測或竊聽等方式獲取口令。
地址欺騙:攻擊者可通過偽裝成被信任的IP地址等方式來騙取目標的信任。
連線盜用:在合法的通訊連線建立後,攻擊者可通過阻塞或摧毀通訊的一方來接管已經過認證建立起來的連線,從而假冒被接管方與對方通訊。
網路竊聽:網路的開放性使攻擊者可通過直接或間接竊聽獲取所需資訊。
資料篡改:攻擊者可通過截獲並修改資料或重放資料等方式破壞資料的完整性。
惡意掃描:攻擊者可編制或使用現有掃描工具發現目標的漏洞,進而發起攻擊。
破壞基礎設施:攻擊者可通過破壞DNS或路由資訊等基礎設施,使目標陷於孤立。
資料驅動攻擊:攻擊者可通過施放病毒、特洛伊木馬、資料炸彈等方式破壞或遙控目標。
服務拒絕:攻擊者可直接發動攻擊,也可通過控制其他主機發起攻擊,使目標癱瘓,如傳送大量的資料洪流阻塞目標。
本節將重點分析目前主流的主機虛擬化面臨的安全威脅,包括虛擬機器資訊竊取及篡改、虛擬機器逃逸、Rootkit攻擊、拒絕服務攻擊和側通道攻擊等。
3.2.1 虛擬機器資訊竊取和篡改
虛擬機器資訊主要通過映象檔案及快照來儲存的。虛擬機器映象無論在靜止還是執行狀態都有被竊取或篡改的脆弱漏洞,另外,包含重要敏感資訊的虛擬機器映象和快照以檔案形式存在,能夠輕易通過網路傳輸到其他位置。
建立客戶機映象檔案及快照不會影響客戶機的脆弱性。然而,對於映象和快照來說,最大的安全性問題就是它們像物理硬碟一樣包含敏感資料(例如,密碼、個人資料等)。因為映象檔案和快照與硬碟相比更易移動,所以更應重視在映象或快照是的資料的安全性。快照比映象具有更大風險,因為快照包含在快照生成時的RAM記憶體資料,甚至包含從沒存在硬碟上的敏感資訊。
我們可以將系統或應用程式部署到映象檔案中,然後通過這個映象檔案進行分發部署,這樣可以節省大量的時間。增加映象檔案保護能力,能夠提高業務系統的安全性、連續性和健壯性。由於映象檔案易於分發和儲存,需要防止其未經授權的訪問、修改和重置。
隨著在組織機構內的伺服器和桌面虛擬化工作的不斷推進,管理映象檔案成為一個巨大的挑戰。一個映象檔案越長時間沒執行,就會在它再一次載入時出現越多的脆弱點。因此,應檢查所有的映象以確保長時間未執行的映象檔案也定期更新。當使用者和管理者可以建立自己的映象檔案時,跟蹤這些映象檔案也是一個麻煩的問題。這些映象可能沒有做到適當的防護,尤其在沒有可參照的安全基線的時候(例如,提供一個不同的預安全地映象),這會增加被攻陷的風險。
伴隨著虛擬化工作推進,另一個潛在的問題是映象檔案的增殖,也叫無序蔓延。建立一個映象只需要幾分鐘,如果沒有任何安全性的考慮,就會建立很多沒必要的映象檔案。多餘的映象檔案會成為攻擊者另一個潛在的攻擊點。另外,每一個映象都需要獨立的安全性維護工作,加大了安全維護的工作量。因此,組織機構應該減少建造、儲存和使用不必要的映象,實施完善的映象管理流程,通過管理流程來管理映象尤其是伺服器映象的建立、安全性、分發、儲存、使用、退役和銷燬工作。
同樣,也需要考慮快照的管理。某些情況下,組織機構會規定不允許儲存快照,因為被惡意軟體感染的系統在後期恢復快照時有可能重新載入惡意軟體。
3.2.2 虛擬機器逃逸
利用虛擬機器,使用者能夠分享宿主機的資源並實現相互隔離。理想情況下,一個程式執行在虛擬機器裡,應該無法影響其他虛擬機器。但是,由於技術的限制和虛擬化軟體的一些bug,在某些情況下,虛擬機器裡執行的程式會繞過隔離限制,進而直接執行在宿主機上,這叫做虛擬機器逃逸。由於宿主機的特權地位,出現虛擬機器逃逸會使整個安全模型完全崩潰。當虛擬機器逃逸攻擊成功之後,對於Hypervisor和宿主機都具有極大的威脅。對於Hypervisor而言,攻擊者有可能獲得Hypervisor的所有許可權。此時,攻擊者可以截獲該宿主機上其他虛擬機器的I/O資料流,並加以分析獲得使用者的相關資料,之後進行更進一步的針對使用者個人敏感資訊的攻擊,更有甚者,倘若該宿主機上的某個虛擬機器作為基本執行,攻擊者便可以通過Hypervisor的特權,對該虛擬機器進行強制關機或刪除,造成基本服務的中斷;對於宿主機而言,攻擊者有可能獲得宿主機作業系統的全部許可權。此時,攻擊者可以對宿主機的共享資源進行修改或替換,使得該宿主機上的所有虛擬機器訪問到虛假或篡改後的資源,從而對其他虛擬機器進行攻擊。由於攻擊者獲得了最高許可權,則可以修改預設使用者的基本資訊,並降低虛擬機器監視器的穩健性,從而對整個虛擬化平臺造成不可恢復的災難,使得其上的所有虛擬機器都丟失重要資訊。
目前對於虛擬機器逃逸攻擊,尚沒有很好的安全對策,主要是針對雲端計算服務角色給出一些安全防範建議。例如,及時發現漏洞、開發漏洞補丁、使用強制訪問控制措施限制客戶虛擬機器的資源訪問許可權、及時度量Hypervisor完整性等。
但這些安全防範建議均不能真正解決虛擬機器逃逸攻擊帶來的危害。針對虛擬機器逃逸漏洞,還是應該採用縱深防禦的安全防護方法,從攻擊檢測、預防、避免攻擊蔓延和Hypervisor完整性防護等多個方面,並結合可信計算技術,建立一個多層次的安全防護框架。
3.2.3 Rootkit攻擊
“Rootkit”中Root一詞來自UNIX領域。由於UNIX主機系統管理員賬號為root,該賬號擁有最小的安全限制,完全控制主機並擁有了管理員許可權被稱為“root”了主機。然而,能夠“root”一臺主機並不意味著能持續地控制它,因為管理員完全可能發現主機遭受入侵併採取應對措施。因此Rootkit的初始含義就是“能維持root許可權的一套工具”。
簡單地說,Rootkit是一種特殊的惡意軟體,它的功能是在安裝目標上隱藏自身及指定的檔案、程式和網路連結等資訊,持久並毫無察覺地駐留在目標計算機中,對系統進行操縱,並通過隱祕渠道收集資料。Rootkit的三要素就是:隱藏、操縱、收集資料。Rootkit通常和木馬、後門等其他惡意程式結合使用。
Rootkit並不一定是用於獲得系統root訪問許可權。實際上,Rootkit是攻擊者用來隱藏自己的蹤跡和保留root訪問許可權的工具。通常,攻擊者通過遠端攻擊獲得root訪問許可權,或者首先通過密碼猜測或者密碼強制破譯的技術獲得系統的訪問許可權。進入系統後,如果還未獲得root許可權,再通過某些安全漏洞獲得系統的root許可權。接著,攻擊者會在侵入的主機中安裝Rootkit後門,然後將通過後門檢查系統中是否有其他使用者登入,如果只有自己,攻擊者便開始著手清理日誌中的有關資訊,隱藏入侵蹤跡。通過Rootkit的嗅探器獲得其他系統的使用者和密碼之後,攻擊者就會利用這些資訊侵入其他系統。
在發現系統中存在Rootkit之後,能夠採取的補救措施也較為有限。由於Rootkit可以將自身隱藏起來,因此可能無法知道它們已經在系統中存在了多長的時間,也不知道Rootkit已經對系統中的哪些資訊造成了損害。對於找出的Rootkit,最好的應對方法便是擦除並重新安裝系統。雖然這種手段很嚴厲,但是這是得到證明的唯一可以徹底刪除Rootkit的方法。
3.2.4 分散式拒絕服務攻擊
分散式拒絕服務攻擊(DDoS)是目前黑客經常採用而難以防範的攻擊手段。
DoS(Denial of Service,拒絕服務攻擊)有很多攻擊方式,最基本的DoS攻擊就是利用合理的服務請求來佔用過多的服務資源,從而使合法使用者無法得到服務的響應。
DDoS攻擊手段是在傳統的DoS攻擊基礎之上產生的一類攻擊方式。單一的DoS攻擊一般是採用一對一的方式,當攻擊目標的各項效能指標(CPU速度低、記憶體小或者網路頻寬小等)不高時,它的效果是明顯的。隨著計算機與網路技術的發展,計算機的處理能力迅速提高,記憶體大大增加,同時也出現了千兆級別的網路,這使得DoS攻擊的困難程度大大增加,分散式拒絕服務攻擊(DDoS)便應運而生。高速廣泛連線的網路在給大家帶來方便的同時,也為DDoS攻擊創造了極為有利的條件。在低速網路時代時,黑客佔領攻擊用的傀儡機時,總是會優先考慮離目標網路距離近的機器,因為經過路由器的跳數少、效果好;而現在電信骨幹節點之間的連線都是以G為級別,這使得攻擊可以從更遠的地方或者其他城市發起,攻擊者的傀儡機位置可以分佈在更大的範圍,選擇起來更加靈活。因此,現在的DDoS能夠利用更多的傀儡機,以比從前更大的規模來攻擊受害者主機。
DDos攻擊的後果有很多。例如,被攻擊主機上存在大量等待的TCP連線;網路中充斥著大量無用的資料包,且源IP地址為假;製造高流量無用資料,造成網路擁塞,使受害主機無法正常和外界通訊;利用受害主機提供的服務或傳輸協議上的缺陷,反覆高速地發出特定的服務請求,使受害主機無法及時處理所有的正常請求;嚴重時會造成系統當機等。
3.2.5 側通道攻擊
基於虛擬化環境提供的邏輯隔離,採用訪問控制、入侵檢測等方法可以增強雲端計算環境的安全性,但是底層硬體資源的共享卻容易面臨側通道攻擊的威脅。
側通道攻擊是一個經典的研究課題,由Kocher等人於1996年首先提出。側通道攻擊是針對密碼演算法實現的一種攻擊方式,當密碼演算法具體執行時,執行過程中可能洩露與內部運算緊密相關的多種物理狀態資訊,比如聲光資訊、功耗、電磁輻射以及執行時間等。這些通過非直接傳輸途徑洩露出來的物理狀態資訊被研究人員稱為側通道資訊(Side-Channel Information,SCI)。攻擊者通過測量採集密碼演算法執行期間產生的側通道資訊,再結合密碼演算法的具體實現,就可以進行金鑰的分析與破解。而這種利用側通道資訊進行密碼分析的攻擊方法則被稱為側通道攻擊。
針對側通道攻擊,安全晶片可以提供大量的解決方案。安全晶片可以採用混淆時序、能耗隨機等手段使黑客無從辨別,也就難以解密。

相關文章