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