posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          日歷

          <2008年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          相冊(cè)

          搜索

          •  

          積分與排名

          • 積分 - 337506
          • 排名 - 167

          最新評(píng)論

          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


          評(píng)論

          # re: 閱讀筆記 - SubVirt: Implementing malware with virtual machines (2)  回復(fù)  更多評(píng)論   

          2008-05-08 21:45 by ZelluX
          利用DMA繞過(guò)權(quán)限控制訪問(wèn)其他guest os的內(nèi)存的確是可行的。
          硬件上的IOMMU組件可以解決這個(gè)問(wèn)題。
          51La
          主站蜘蛛池模板: 永济市| 临颍县| 阿克| 丹棱县| 金沙县| 江永县| 交城县| 平度市| 合江县| 宁夏| 鄂州市| 札达县| 弥勒县| 南投县| 焉耆| 米林县| 综艺| 祥云县| 宁河县| 台东县| 镇远县| 青田县| 晋州市| 仁化县| 厦门市| 西乌珠穆沁旗| 浮山县| 确山县| 济阳县| 临城县| 高密市| 普安县| 高碑店市| 确山县| 安康市| 苗栗县| 连城县| 安丘市| 项城市| 武陟县| 东阿县|