交叉虛擬機(jī)邊信道攻擊:云基礎(chǔ)架構(gòu)保衛(wèi)戰(zhàn)
最近,一群多個(gè)大學(xué)的研究員和RSA實(shí)驗(yàn)室一種隱匿的邊信道攻擊方法,即一臺(tái)虛擬機(jī)可以在一個(gè)云環(huán)境中用來對抗另外的一臺(tái)虛擬機(jī),目標(biāo)VM的加密密鑰最終被盜用。
這項(xiàng)研究會(huì)產(chǎn)生什么影響呢?任何已經(jīng)用目標(biāo)虛擬機(jī)(VM)密鑰加密的敏感數(shù)據(jù)將會(huì)被盜用,對于一個(gè)堅(jiān)定的攻擊者,這將使一座潛在的巨大寶藏。
盡管企業(yè)云計(jì)算用戶應(yīng)該擔(dān)憂這項(xiàng)研究,但是如果有一些合適的措施還是能夠減輕并對抗這樣的邊信道攻擊的。這也正是我們這條技巧文章所要探討的內(nèi)容。
交叉VM邊信道攻擊詳解
需要指出的是這項(xiàng)研究并不是成功的基于云的邊信道工具的第一份文檔案例。在2009年,加利福尼亞大學(xué)和MIT的研究員就已經(jīng)發(fā)布了《Hey, You, Get Off of My Cloud: Exploring Information Leakage in Third-Party Compute Clouds》,這篇論文揭露了基于云的VM的映射位置,通過稱之為云制圖的網(wǎng)絡(luò)掃描策略實(shí)現(xiàn)。他們故意放置了一個(gè)惡意VM在相同的物理hypervisor平臺(tái)上,隨后訪問共享硬件和緩存位置,執(zhí)行各種邊信道工具,包括拒絕服務(wù)(DoS)、硬件利用率檢測、通過定時(shí)推理進(jìn)行遠(yuǎn)程鍵入監(jiān)控。這篇論文具體參考了邊信道攻擊的使用,抽取密碼關(guān)鍵字,但是指出研究員使用的這種方法那會(huì)并不能足以訪問那個(gè)目標(biāo)密鑰。
快速回到現(xiàn)在,研究員有了新的努力,其文檔名為《In Cross-VM Side Channels and Their Use to Extract Private Keys》,已經(jīng)使用類似的邊信道攻擊成功命中密碼關(guān)鍵字。為了實(shí)現(xiàn)這個(gè)復(fù)雜的攻擊,研究員在VM和加載滿數(shù)據(jù)的緩存之間利用一個(gè)共享的硬件緩存攻擊機(jī)器。目標(biāo)VM重寫一些自己的數(shù)據(jù),包括密碼關(guān)鍵字的信息。數(shù)據(jù)重寫的方式允許研究員最終截獲4096位蓋默爾加密密鑰,這些密鑰使用GNU Privacy Guard應(yīng)用。
對于安全和運(yùn)營團(tuán)隊(duì)的好消息就是這種類型的攻擊盡管不切實(shí)際,除了最尖端的攻擊者。壞消息是這種類型的攻擊在正確的條件下可能發(fā)生。由于缺少技術(shù)細(xì)節(jié),很多從云提供商接收技術(shù)和架構(gòu)的企業(yè)都位于提供商環(huán)境中,真正的邊信道攻擊可能難以實(shí)現(xiàn)。
預(yù)防邊信道攻擊
IT安全和運(yùn)營專家在這一點(diǎn)上要問兩個(gè)問題:“這種類型的攻擊可能出現(xiàn)在我的環(huán)境中嗎?”和“我怎樣做來減輕這種威脅?”第一個(gè)問題的答案是“NO”。沒有關(guān)于這個(gè)環(huán)境非常詳細(xì)的細(xì)節(jié),部分細(xì)節(jié)和控制整個(gè)hypervisor基礎(chǔ)加固和這些平臺(tái)使用的VM,攻擊者很難發(fā)動(dòng)邊信道攻擊,尤其是更加復(fù)雜的種類,比如密碼關(guān)鍵字劫持。然而,有一些基本的步驟企業(yè)需要關(guān)心,從而幫助減少可能的邊信道攻擊風(fēng)險(xiǎn)。
首先,盡可能鎖定操作系統(tǒng)(OS)圖像和應(yīng)用實(shí)例。盡管這未必是預(yù)防邊信道攻擊的,但這些步驟可以協(xié)助企業(yè)對任何授權(quán)的廠商在其環(huán)境中妥協(xié)。第二,花時(shí)間協(xié)調(diào)和收集云系統(tǒng)本地流程監(jiān)控?cái)?shù)據(jù)和日志。特別的,密切關(guān)注任何對于本地內(nèi)存的重復(fù)訪問,以及系統(tǒng)對于任何hypervisor流程或者共享硬件緩存的訪問。除了這些步驟,唯一且完全能阻止這種邊信道攻擊的方法就是編碼你的應(yīng)用,甚至是OS組件(在可能的地方),以這樣的方式他們可以訪問共享資源,就像在一種一貫且可預(yù)測的方式中訪問內(nèi)存緩存。這樣就能預(yù)防攻擊者鉆空子,比如時(shí)間統(tǒng)計(jì)和其他行為屬性。
邊信道攻擊潛在風(fēng)險(xiǎn)探討
邊信道攻擊很可能在共享計(jì)算環(huán)境中繼續(xù)被發(fā)現(xiàn)。對于云用戶,這是一種在云端執(zhí)行敏感工作負(fù)載必須考慮的一種風(fēng)險(xiǎn)。我建議同你的云提供商探討這些風(fēng)險(xiǎn)和可能的對抗措施。盡管在今天這樣的環(huán)境中成功實(shí)現(xiàn)這種攻擊極為不可能,但是最好還是做好準(zhǔn)備。