奇虎鄭文彬:還原系統保護技術原理和攻防

 奇虎鄭文彬:還原系統保護技術原理和攻防

3月19日,由中國最大的互聯網綜合服務提供商騰訊發起和組織的互聯網安全峯會進入第二天。包括微軟、盛大、新浪等互聯網界各大巨頭的技術專家,學者和專業人士參與了此次的交流。此次峯會是今年以來首場由中國互聯網各頂尖企業共同參與的大型網絡安全專業盛會。

來自奇虎的反木馬專家鄭文彬,在現場發表演講。以下爲文字實錄:

鄭文彬:大家好!我今天給大家介紹這幾個方面:背景、還原系統技術原理概覽、流行還原系統穿透技術介紹、通用還原系統保護技術、演示&GuardField、還原系統保護之未來趨勢。最近一段時間,有機器狗這類病毒工具對還原系統攻擊,使用還原系統環境的用戶一般都不會安裝其他的防護軟件,一旦還原軟件被穿透的話,會帶來比較大的安全威脅。

還原系統技術原理:基本原理是磁盤設備過濾驅動。比較常用方法是自己會建一個磁盤卷設備,在harddiskX進行文件過濾。過濾驅動如何做到還原?首先還原系統會在磁盤上分配一塊預留的區域,應用程序以爲他已經寫到真實磁盤,實際上被分配到一塊內容區域裏,真實磁盤根本就沒有被寫入。

下面介紹一下還原軟件怎麼更新過濾。首先是一個普通的Windows程序,會調用 Win32API,從用戶模式到內存模式,這些函數調用Windows內核,把文件請求發到文件系統上,根據磁盤卷分區格式不同來創建。文件系統設備會將上層發來的文件讀寫請求轉化磁盤讀寫請求,在harddisk volume之前會有還原系統過濾驅動。再往下會根據硬盤接口不同而有不同。如果IDE結構硬盤,會發布到電源系統。api最終會調用函數讀寫端口。如果是USB設備,會發送到usb stor。

剛纔說了還原系統的一些基本原理,知道原理之後對如何穿透還原也就很簡單了。既然還原系統都在磁盤上過濾驅動,只要我們解除過濾驅動與真實磁盤之間的關係,繞過過濾關係的話,就等於直接穿透了還原。第一種方法:DR0設備過濾設備鏈摘鏈。這種方法其實就是摘除一個harddiskDR0上的過濾設備。指明設備上會有哪些過濾設備,第一代機器狗病毒將這個域給清零,導致還原系統設備被清除,所有請求就不通過還原系統直接到達過濾磁盤設備。對於沒有防備的還原系統就被成功攻破了。國內大部分還原系統都沒有辦法對抗這種技術。但是這種技術也是有一些缺陷的,只能摘除在DR0上的物理設備。文件請求先到達磁盤卷,磁盤捲上的過濾設備摘除的話對系統有影響。所以第一代機器狗病毒使用了自己解析文件系統方式進行感染,這是它的缺陷。

第二種方法:會自己創建虛擬磁盤設備,作爲磁盤卷掛載到文件系統上,對虛擬磁盤讀寫影射到真實磁盤,將請求下發到下層設備。相對第一代機器狗來說,這種方法不需要對磁盤系統摘除,可以通過文件對虛擬磁盤操作,操作結果是和對真實磁盤操作是一樣的,可以成功穿透還原。在這裏還用一種方式就是他沒有直接發送磁盤讀寫請求,發送SCSI-REQUEST-BLOCK下發到下層磁盤設備。

還有一種方法,這是方法不使用驅動程序,直接在用戶模式穿透還原系統。磁盤系統提供一套 passthrough指令,不向磁盤發送直接請求,就可以獲取磁盤信息甚至直接讀寫磁盤扇區。IDE/SCSI/ATA Pass Through指令穿透還原,RING3下使用Devicelocontrel函數發送請求。大多數還原系統對此過濾不嚴或根本未過濾,導致在RING3 下即可達成攻擊。

其他一些方法,比如說直接操作端口驅動,比如USB,更底層的磁盤操作:端口驅動、直接IO 等等,缺點是難度大,通用較麻煩。另外的方法是可以摘除其他一些過濾設備,Attach到還原系統上,先於磁盤系統獲得磁盤的請求,可以做一個繞過動作。可以在磁盤卷設備保存指針上所手腳。方法很多,不再一一解釋了。主要是兩類,第一類是新的磁盤技術或者磁盤卷繞過或者穿透的一些技巧。

通用還原系統的保護技術,GuardField。還原系統脆弱的原因是什麼呢?剛纔也說過了他是通過磁盤設備上的過濾驅動,也就是說他跟磁盤設備沒有緊密聯繫,只要被攻擊者使用、摘除或者繞過方法就可以把磁盤請求發送到真實磁盤上。穿透基本原理:必須使讀寫請求不經過還原系統物理驅動,而是到了下層的物理磁盤設備。這裏就有一個穿透思路,一個磁盤請求是從上層逐層發佈到下層,我們只要監控發送路徑,進行對比操作,就可以作爲一個還原穿透的角色。

這是我們上週發佈的360GuardField文件,給大家演示一下效果。這是一臺XP虛擬機,安裝了冰點的還原系統,這個還原系統正常會被第一代機器狗穿透。這是我們第一代機器(圖)。這個系統已經安裝了還原保護。可以看到還原攻擊已經被攔截了,這個時候看到攻擊者已經沒有了。然後使用微軟工具查看一下,可以看到攻擊者攻擊是失敗的。這是第二代機器狗樣本,它可以直接對文件操作,不需要感染。他可以在啓動目錄上拷貝一個文件,因爲他是穿透還原去拷貝文件,所以重啓後就無法被還原了。這裏會有第三種攻擊方法,passthrouh,它可以破壞磁盤數據。我們用Winhex看一下。攻擊演示就做到這裏。可以看到我們在對待第一、二、三代攻擊都成功做到保護。

現在說一下GuardField原理,首先在啓動時手機、掛鉤還原系統的磁盤過濾驅動,監視磁盤IRP發送。之後我們掛鉤底層磁盤設備,監視磁盤IRP達到,如果數據結構裏沒有磁盤IRP,我們就認爲磁盤IRP沒有經過還原系統到達下層。我們首先對系統做一個檢查、修復,檢查之前保存的磁盤過濾設備鏈有沒有被摘除,如果摘除了,我們恢復。然後會將這個信息發送到Ring3服務進程。我剛纔說的第一種攻擊手段,它以後讀寫都不會再成功了。後面請求的時候都會被還原系統攔截到。第二代虛擬磁盤方式,每次讀寫都穿透還原,所以每次穿透還原都會攔截掉。

我們掛鉤還原系統在磁盤捲上的過濾驅動,進行收集IRP操作,下面還原系統在磁盤上的過濾驅動,然後在磁盤設備下層也會掛鉤,GuardField分析IRP。

IRP監視回收,他不一定會發送到下層。可能在磁盤卷或者過濾設備上被取消或者直接完成掉,沒有往下傳送。數據始終保持在數據結構裏沒有被清除。Lofreelrp是用於IRP取消或者完成來釋放的。他jmp ds_Plofreelrp。每次當IRP回收的時候,我們從數據結構裏可以得到一個監視。

對抗passthrough,因爲我們掛鉤下層磁盤設備,TM都會使用passthrough這些指令,他是通過這些指令獲取磁盤信息。分析passthrough請求包意圖。攔截惡意攻擊者的passthrough指令。

同時還結合傳統反病毒技術,爲什麼還會使用傳統反病毒技術呢?主要原因是Ringo攻擊者同我們處在同一水平,除非阻止其進入RING0,不可能完全對其進行防禦。GuardField使用方法,通過Mmloadsystemlmage函數。如果是一個已知的驅動的話,我們會阻止,最大可能樂觀防止攻擊者攻擊。

還原系統未來趨勢。我們現在有GuardField的保護,惡意攻擊者肯定會開發出一些新的更新,對抗GuardField。他們可能會使用哪些手段,猜測主要有兩方面:第一,更底層或者更新的磁盤讀寫技術,繞過磁盤IRP分析,直接寫入磁盤。第二,針對GuardField本身的工具,對GuardField進行破壞、脫鉤。我們發佈之後,大概不到兩天時間就有新的驅動出來,對我們 GuardField脫鉤。

如何防禦:更底層的磁盤讀寫監視。他們開發起來難度比較大,短期內沒有辦法形成比較大的規模。GuardField這套系統如果有一定時間可以進行修改的話,還是可以用現有系統兼容,對磁盤底盤操作進行監視。我們知道atapi.sys IRP還是存在的,對這一層做hook。

針對第二種方法脫鉤,可以適量的自我保護、恢復。就我個人來看,針對性攻擊不足爲懼。如果攻擊者對防禦者產生一些針對性攻擊,等於攻擊者容易落入一個被動捱打的局面。如果已經到脫鉤了,說明攻擊者已經比較窮了。還原系統在軟件方面的對抗應該是沒有止境的。有什麼問題大家可以問。

以下是現場問答部分:

問:我給鄭文彬補充一些數據,根據權威部門統計,盜號70%是來自網吧。而網吧幾乎100%安裝了還原設備。剛纔鄭文彬也介紹了還原設備的攻防。其實還原系統是很重要的一塊。

問:我想請問一下您剛纔介紹的還原系統軟件原理、實現方法,能不能介紹還原卡硬件的原理?

鄭文彬:對於還原卡來說,一般有兩種。現在市面上的還原卡都不是真正的硬件上的還原卡,他們使用技術就是PCI設備,可以在OS啓動之前獲得控制權,在OS無整個過程中監控磁盤讀寫,但是實質上是通過磁盤驅動監視。應該國外有一些硬盤磁盤設備監控磁盤IO端口,在IDE接口上做一些保護。但是這種硬件還原產品至今我沒有看到。主要還是採用軟件方面保護。

問:你的意思是你看到還原卡本質還是軟件還原設備?

鄭文彬:用PCI就可以比磁盤的OS啓動的更早。

問:那就是說PCI還原卡是忽悠人的?

鄭文彬:它的好處就是可以更早的監視。像一些純軟件的還原卡,如果在DOS下攻擊的話,應該是沒有辦法的。

主持人:感謝文彬給我們帶來的精彩演講。下面還是茶歇時間。

原文地址:http://tech.qq.com/a/20080320/000261.htm
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章