Posted on 2008-05-06 14:35
ZelluX 閱讀(1487)
評(píng)論(1) 編輯 收藏 所屬分類:
Laboratory 、
Security
3.3 Example malicious services
下面介紹這篇paper提到的4個(gè)惡意程序
最簡(jiǎn)單的,開(kāi)了個(gè)thttpd web服務(wù)器進(jìn)行網(wǎng)絡(luò)釣魚(yú),任何發(fā)送到8080端口的TCP請(qǐng)求都會(huì)被這個(gè)服務(wù)器截獲。
然后是一個(gè)按鍵記錄程序,號(hào)稱只用了60行代碼就搞定了這個(gè)模塊,然后寫(xiě)了一個(gè)254行的帶圖形界面的程序來(lái)分析日志并顯示。
一個(gè)掃描目標(biāo)機(jī)文件系統(tǒng)的程序,這是一個(gè)24小時(shí)運(yùn)行的perl腳本,會(huì)把諸如/etc/shadow, user_home/.ssh/id_dsa之類的機(jī)密信息保存下來(lái)。
最后是防止VMM被目標(biāo)機(jī)偵測(cè)到的一個(gè)服務(wù)。paper中提到了一種叫做redpill的虛擬機(jī)偵測(cè)手段,通過(guò)使用sidt指令。這個(gè)指令會(huì)讀出處理器的中斷列表(interrupt descritor table),在VMM上跑的系統(tǒng)和普通的操作系統(tǒng)讀出來(lái)的結(jié)果不一樣,當(dāng)這個(gè)指令在內(nèi)核態(tài)被執(zhí)行時(shí),VMM會(huì)模擬這個(gè)指令的執(zhí)行;但是用戶態(tài)卻不會(huì)被截獲(考慮到性能因素)。所以redpill通過(guò)用戶態(tài)執(zhí)行sidt來(lái)判斷當(dāng)前系統(tǒng)是否運(yùn)行在虛擬機(jī)上。這篇paper提到的針對(duì)redpill的解決方案是在每個(gè)可執(zhí)行文件的sidt指令前設(shè)置一個(gè)斷點(diǎn),截獲這個(gè)指令后就模擬這個(gè)指令,以此繞過(guò)redpill檢測(cè)。但是這種方法不適合于在程序運(yùn)行期動(dòng)態(tài)生成二進(jìn)制的sidt指令的程序(想到我的lab4了,呵呵)。道高一丈魔高一尺(原文是Continuing the arms race,軍備戰(zhàn)爭(zhēng)),通過(guò)二進(jìn)制轉(zhuǎn)換(binary translation),動(dòng)態(tài)生成的sidt同樣可以被截獲,但是這種方法的overhead會(huì)很大。
3.4 Maintaining Control
這塊主要講了對(duì)系統(tǒng)重啟、關(guān)閉的處理。
系統(tǒng)要求重啟時(shí),VMBR總是盡可能的通過(guò)重啟guest os來(lái)完成,這樣就能最大化的掌握控制權(quán)。
另外通過(guò)ACPI模擬系統(tǒng)關(guān)閉也可以欺騙使用者。這種模式下硬盤(pán)、風(fēng)扇停止,RAM仍然上電,下一次開(kāi)機(jī)后可以恢復(fù)到上一次關(guān)機(jī)的狀態(tài),于是VMBR繼續(xù)在第一時(shí)間掌握控制權(quán)。
4. Evaluation
測(cè)試下來(lái)開(kāi)機(jī)、重啟的速度都慢了不少。不過(guò)很正常,因?yàn)橛玫氖荲irtual PC和VMWare。
不過(guò)隨著虛擬技術(shù)的發(fā)展,對(duì)系統(tǒng)性能的影響肯定越來(lái)越小的(比如Xen),這篇paper關(guān)鍵在于占了個(gè)坑,至少現(xiàn)在看來(lái)實(shí)用性還很差。
5. Defending against virtual-machine based rootkits
5.1 Security software below the VMBR
比VMBR更低的層次就很容易檢測(cè)到VMBR了。比如硬件級(jí)別的安全支持(Intel LaGrande),或者CDROM啟動(dòng)(注意這里首先要冷重啟,否則說(shuō)不準(zhǔn)虛擬機(jī)給你模擬CDROM啟動(dòng)了),還可以先裝個(gè)安全的VMM,即使收到VMBR攻擊,VMBR也只能在安全的VMM和操作系統(tǒng)之間那層運(yùn)行。
5.2 Security software above the VMBR
在VMBR上層要檢測(cè)就有一定技術(shù)難度了。
一種基本的方法是利用CPU時(shí)間、內(nèi)存上限、硬盤(pán)上限、網(wǎng)絡(luò)帶快來(lái)測(cè)定。
VMBR的存在必定會(huì)影響到CPU的表觀性能,通過(guò)這種時(shí)間上的差異就能發(fā)現(xiàn)問(wèn)題。不過(guò)VMBR可以通過(guò)放慢系統(tǒng)時(shí)鐘返回的時(shí)間來(lái)欺騙目標(biāo)機(jī),對(duì)于這種欺騙,測(cè)試人員可以使用其他的不可控的計(jì)時(shí)工具(比如手表 -_-b)
另外硬盤(pán)、內(nèi)存上限都會(huì)因?yàn)閂MBR的存在而變小。后者很難偵查到,因?yàn)橛幸粚犹摂M內(nèi)存。而針對(duì)前者的檢測(cè),VMBR可以截獲對(duì)它占用的地址的訪問(wèn),然后返回一些隨機(jī)的信息,讓guest os以為那是壞扇區(qū)從而躲過(guò)檢查。所以這招不怎么好用。
另外由于性能考慮,并不是所有的硬件都是被迷你的,通常只有需要保護(hù)的設(shè)備(比如啟動(dòng)盤(pán))和需要攻擊的設(shè)備(比如網(wǎng)卡)被虛擬化,其他的硬件都是guest os直連的,這樣就只需要在這些未被虛擬化的硬件上做一個(gè)DMA,把物理內(nèi)存中的部分信息讀過(guò)來(lái)就能分析了(通過(guò)這個(gè)貌似可以對(duì)同一個(gè)物理機(jī)上的其他虛擬機(jī)進(jìn)行攻擊啊)
另外一種方法就是前面的提到的通過(guò)sidt指令了。
6. Trends toward virtualization
略
7. Related work
略