源代碼泄密會(huì)威脅虛擬機(jī)管理程序嗎?
譯文我與許多虛擬化安全人員有過(guò)交流,他們正在耐心地等泄露的VMware虛擬機(jī)管理程序代碼下一次公之于眾。但是許多人真正心存疑問(wèn)的是,這會(huì)不會(huì)因而改變威脅格局、導(dǎo)致風(fēng)險(xiǎn)加大到讓人無(wú)法接受的地步。我們不妨看一下當(dāng)前虛擬機(jī)環(huán)境里面的虛擬機(jī)管理程序威脅格局,確定情形是不是果真如此,這類(lèi)源代碼會(huì)在哪些方面帶來(lái)影響。在源代碼完全公之于眾之前,現(xiàn)在可不可以采取任何措施,更有效地保護(hù)自己的環(huán)境?不過(guò),我們首先應(yīng)該明白一點(diǎn):VMware的代碼已經(jīng)被許多人看到了,不僅僅是VMware內(nèi)部的人,還有其他機(jī)構(gòu)的人:具體來(lái)說(shuō)指發(fā)布通用標(biāo)準(zhǔn)評(píng)估保證等級(jí)(CC EAL)認(rèn)證的那些人,還有某些合作伙伴(以便集成工作可以繼續(xù)開(kāi)展下去)。除此之外,我們還要明白虛擬機(jī)環(huán)境當(dāng)前面臨的威脅,確定風(fēng)險(xiǎn)會(huì)不會(huì)加大。虛擬機(jī)環(huán)境主要面臨如下幾個(gè)方面的威脅,它們可能觸及虛擬機(jī)管理程序,也可能不觸及。
•管理層
管理層威脅最容易被人鉆空子,可能會(huì)引起最嚴(yán)重的危害,那是由于它們讓攻擊者能夠以管理員用戶(hù)、授權(quán)用戶(hù)或其他重要用戶(hù)的身份訪(fǎng)問(wèn)虛擬機(jī)管理程序管理層。倘若不法分子獲得了這種訪(fǎng)問(wèn)權(quán),就能影響虛擬機(jī)的可用性、完整性和機(jī)密性。這類(lèi)攻擊有可能讓不法分子完全訪(fǎng)問(wèn)所有虛擬機(jī)。VMware的虛擬機(jī)管理程序的管理堆棧里面仍有一個(gè)未知因素,那就是駐留在虛擬機(jī)管理程序本身內(nèi)部的管理組件里面所使用的API(應(yīng)用編程接口)。
•虛擬機(jī)逃離
虛擬機(jī)逃離攻擊(Escape the VM attack)似乎是所有虛擬機(jī)環(huán)境攻擊的禍根,因?yàn)楣粲锌赡軓囊粋€(gè)虛擬機(jī)跳轉(zhuǎn)到另一個(gè)虛擬機(jī)。在云環(huán)境中,這可能會(huì)帶來(lái)災(zāi)難性的后果,因?yàn)橐粋€(gè)租戶(hù)(即用戶(hù))會(huì)影響另一個(gè)租戶(hù)的虛擬機(jī)的機(jī)密性和完整性。盡管這種類(lèi)型的攻擊其可能性確實(shí)存在,還沒(méi)有發(fā)生過(guò)攻擊在虛擬機(jī)之間跳轉(zhuǎn)的一起事件。在1型虛擬機(jī)管理程序上,我們已經(jīng)看到了這一幕:來(lái)自最近鄰居的指令(首先攻擊亞馬遜Xen,后來(lái)迅速得到消除;機(jī)密性),導(dǎo)致虛擬機(jī)崩潰(通常與準(zhǔn)虛擬化的驅(qū)動(dòng)程序有關(guān);可用性),但是不法分子還無(wú)法在虛擬機(jī)之間跳轉(zhuǎn)??梢栽L(fǎng)問(wèn)與虛擬機(jī)管理程序里面的虛擬機(jī)管理層有關(guān)的代碼,也許會(huì)改變這種威脅格局,但是考慮到現(xiàn)在有那么多只眼睛盯著這種類(lèi)型的攻擊,風(fēng)險(xiǎn)也許不會(huì)大幅加大。
•驅(qū)動(dòng)程序攻擊
驅(qū)動(dòng)程序攻擊是旨在從下面發(fā)動(dòng)的攻擊,幾乎總是會(huì)影響虛擬機(jī)環(huán)境的可用性和完整性。盡管所有主要的廠(chǎng)商都針對(duì)VMware虛擬機(jī)管理程序開(kāi)發(fā)了驅(qū)動(dòng)程序,但是我們不知道每一種設(shè)備的內(nèi)部組件??紤]到驅(qū)動(dòng)程序幾乎都像Linux,我們?cè)谶^(guò)去能夠猜測(cè)到那些內(nèi)部組件。
•直接的虛擬機(jī)管理程序攻擊
目前沒(méi)有任何直接的虛擬機(jī)管理程序攻擊,所有攻擊目前都通過(guò)管理API、驅(qū)動(dòng)程序或者企圖從訪(fǎng)客操作系統(tǒng)里面進(jìn)入到虛擬機(jī)管理層來(lái)發(fā)動(dòng)。虛擬機(jī)管理程序與所有這些組件進(jìn)行聯(lián)系,以便根據(jù)需要來(lái)調(diào)度和分配資源。然而,配置不當(dāng)?shù)奶摂M工作負(fù)載會(huì)給其他工作負(fù)載帶來(lái)不利影響,導(dǎo)致拒絕服務(wù),最終影響虛擬機(jī)的可用性。畢竟,這是一種共享式資源環(huán)境。擁有虛擬機(jī)管理程序的代碼會(huì)加大這種風(fēng)險(xiǎn),但是攻擊仍需要通過(guò)其他層才能發(fā)動(dòng)。
•存儲(chǔ)攻擊
現(xiàn)在有越來(lái)越多的攻擊企圖直接繞過(guò)虛擬機(jī)管理程序,徑直針對(duì)存儲(chǔ)層。這些攻擊企圖給虛擬機(jī)管理程序分配存儲(chǔ)資源的機(jī)制帶來(lái)不利影響,或者竊取駐留在磁盤(pán)上的數(shù)據(jù)。一些攻擊采用了虛擬機(jī)管理程序管理層攻擊以訪(fǎng)問(wèn)存儲(chǔ)系統(tǒng),但我們將那些攻擊歸入到虛擬機(jī)管理程序管理層攻擊;而存儲(chǔ)攻擊只針對(duì)存儲(chǔ)網(wǎng)絡(luò)及相關(guān)組件。這種攻擊會(huì)影響虛擬機(jī)的可用性、完整性和機(jī)密性;擁有清楚定義了數(shù)據(jù)在存儲(chǔ)上位置的代碼將有助于這些攻擊。
這每一種攻擊都會(huì)帶來(lái)各自的風(fēng)險(xiǎn),可能會(huì)招致災(zāi)難。但是我們不妨關(guān)注一下現(xiàn)有的兩種開(kāi)源虛擬機(jī)管理程序:Xen和KVM。這些虛擬機(jī)管理程序廣受檢查,而且其代碼一開(kāi)始就公之于眾;但我們?nèi)詻](méi)遇到過(guò)虛擬機(jī)逃離攻擊、驅(qū)動(dòng)程序攻擊或針對(duì)特定虛擬機(jī)管理程序的驅(qū)動(dòng)程序攻擊得逞的情況,但是的確遇到過(guò)管理層攻擊和不是針對(duì)特定虛擬機(jī)管理程序的存儲(chǔ)攻擊。沒(méi)錯(cuò),這種代碼公布后,遇到更多管理層攻擊的可能性確實(shí)加大。但是我們還不知道代碼與潛在攻擊詭計(jì)有著怎樣的聯(lián)系。
那么,面對(duì)這種代碼的公布,我們?cè)撊绾畏阑加谖慈荒?那就是遵循最佳實(shí)踐。比如隔離你的管理網(wǎng)絡(luò),采用基于合理角色的訪(fǎng)問(wèn)控制措施,確保任何第三方的驅(qū)動(dòng)程序來(lái)源可靠,在你的虛擬機(jī)容器里面設(shè)定所有的隔離設(shè)置,靜態(tài)磁盤(pán)加密,合理運(yùn)用資源限額,以及限制準(zhǔn)虛擬化驅(qū)動(dòng)程序的使用。所有這些最佳實(shí)踐我們之前有過(guò)討論。
代碼公之于眾后,任何因這種代碼公布而起的攻擊很快就會(huì)出現(xiàn),但是這會(huì)導(dǎo)致風(fēng)險(xiǎn)比你今天面臨的風(fēng)險(xiǎn)更大嗎?不會(huì),如今我們?cè)诠芾斫M件方面的安全原本就很松懈,沒(méi)有遵循最佳實(shí)踐,也沒(méi)有注意機(jī)密性和完整性。如果這些方面我們都做到了,就會(huì)擁有安全的多租戶(hù)環(huán)境,而不是僅僅可信任的環(huán)境。
現(xiàn)在越來(lái)越多的企業(yè)在運(yùn)用最佳實(shí)踐來(lái)保護(hù)虛擬機(jī)環(huán)境,但是我們離實(shí)現(xiàn)目標(biāo)還有很長(zhǎng)一段路要走。單單進(jìn)行適當(dāng)?shù)墓芾砭W(wǎng)絡(luò)隔離就是項(xiàng)艱巨的任務(wù)。如果說(shuō)目前你的虛擬機(jī)環(huán)境面臨實(shí)際風(fēng)險(xiǎn),那就是沒(méi)有遵循現(xiàn)有的最佳實(shí)踐,而不是說(shuō)代碼即將泄密。