虛擬機(jī)中的病毒是如何逃逸的?
時(shí)間:2024-01-01 11:48:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2024-01-01 11:48:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
虛擬機(jī)中的病毒是如何逃逸的?:先說(shuō)結(jié)論:能依靠漏洞來(lái)逃逸
看到有朋友說(shuō)容器逃逸的,嚴(yán)格來(lái)說(shuō),容器并不算是虛擬機(jī)的一種。
==================================
虛擬化方案有:
軟件虛擬化、
半虛擬化、
硬件虛擬化軟件虛擬化是指將虛擬機(jī)的指令流交給虛擬機(jī)核心層進(jìn)行分析,將非特權(quán)指令直接交給CPU運(yùn)行,特權(quán)指令交給虛擬機(jī)核心層執(zhí)行。
半虛擬化是改造GuestOS(虛擬機(jī)內(nèi)的系統(tǒng)),使讓GuestOS知道他在虛擬機(jī)環(huán)境中,使其只使用非特權(quán)指令(準(zhǔn)確說(shuō)是避免使用具有虛擬化缺陷的特權(quán)指令),需要用到特權(quán)操作時(shí)使用hypercall的方式請(qǐng)求虛擬機(jī)核心層代為完成。
硬件虛擬化是芯片級(jí)別的虛擬化支持,克服x86虛擬化缺陷問(wèn)題,無(wú)需改造GuestOS:將虛擬機(jī)運(yùn)行在Ring1模式下,所有指令交給硬件執(zhí)行。對(duì)于特權(quán)指令CPU不會(huì)直接執(zhí)行,將其捕獲交給虛擬機(jī)核心層進(jìn)行處理。
以上三種方案的典型代表:
軟件虛擬化:早期的vmware,qemu
半虛擬化:Xen
硬件虛擬化:vmware,kvm+qemu
逃逸方式1:局域網(wǎng)攻擊此種方式不多說(shuō),因?yàn)楸静粚儆谔右莘懂牐珜?shí)際上卻可以達(dá)到同等的目的。原理是利用局域網(wǎng)漏洞進(jìn)行感染提權(quán)。著名代表就是永恒之藍(lán)。
逃逸方式2:軟件漏洞逃逸Xen是重災(zāi)區(qū)域。半虛擬化系統(tǒng)無(wú)需硬件級(jí)別支持,效率極高的,但代價(jià)是改造GuestOS,虛擬機(jī)核心層需要大量代碼來(lái)幫助GuestOS進(jìn)行特權(quán)操作。是所有虛擬化方案中復(fù)雜度最高的一種。系統(tǒng)越復(fù)雜,安全性越低,所以Xen的半虛擬化經(jīng)常被作為攻擊的對(duì)象。曾聽(tīng)業(yè)內(nèi)朋友說(shuō)過(guò)思捷和威睿在競(jìng)標(biāo)虛擬化時(shí),威睿的團(tuán)隊(duì)的人經(jīng)常給客戶演示如何在Xen平臺(tái)下做逃逸,導(dǎo)致思捷經(jīng)常因?yàn)檫@個(gè)問(wèn)題競(jìng)標(biāo)失敗。
逃逸方式3:硬件漏洞逃逸上面說(shuō)了虛擬化的原理,再此做一次簡(jiǎn)單的總結(jié):
虛擬機(jī)運(yùn)行在低權(quán)限的CPU狀態(tài),非指令交給CPU執(zhí)行,特權(quán)指令交給虛擬機(jī)核心層執(zhí)行。若CPU有某種漏洞或后門(mén):能使軟件在低權(quán)限狀態(tài)通過(guò)運(yùn)行特定指令代碼序列進(jìn)入到高權(quán)限狀態(tài),那么虛擬機(jī)核心層則不再能對(duì)GuestOS運(yùn)行的特權(quán)代碼進(jìn)行捕獲處理。這時(shí)虛擬機(jī)內(nèi)部的系統(tǒng)直接擁有了CPU的最高權(quán)限,可以隨意踐踏宿主系統(tǒng)的一切資源。此種攻擊方式的代表:我不知道,但不代表沒(méi)有,也許國(guó)家級(jí)別的安全實(shí)驗(yàn)室擁有此種技術(shù)。
那么退一步,不取得最高權(quán)限,訪問(wèn)宿主機(jī)上的敏感數(shù)據(jù)是否可行?
這個(gè)是可行的,17年底,18年初時(shí),Intel/AMD公司的處理器紛紛爆出因指令預(yù)測(cè)機(jī)制未充分考慮旁路嗅探攻擊。導(dǎo)致軟件可以在Ring3的狀態(tài)下,通過(guò)一些巧妙的手段嗅探出受CPU保護(hù)的敏感數(shù)據(jù)。這個(gè)漏洞實(shí)際上對(duì)普通用戶的影響甚小,但影響最大的則是各大云平臺(tái),因?yàn)樵粕先我庖慌_(tái)虛擬機(jī)內(nèi),可以通過(guò)這個(gè)漏洞嗅探宿主機(jī)的數(shù)據(jù),甚至是運(yùn)行在同一個(gè)宿主機(jī)上其他虛擬機(jī)的數(shù)據(jù)。所以Intel/AMD出漏洞以后第一時(shí)間向各大云服務(wù)商披露硬件漏洞以及提供緩解方法。
利益相關(guān):杭州某小公司的桌面云系統(tǒng)實(shí)施和運(yùn)維