來自奇虎的反木馬專家鄭文彬,在現場發表演講。以下為文字實錄:
還原系統技術原理:基本原理是磁碟裝置過濾驅動。比較常用方法是自己會建乙個磁碟卷裝置,在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下攻擊的話,應該是沒有辦法的。
奇虎鄭文彬 還原系統保護技術原理和攻防
奇虎鄭文彬 還原系統保護技術原理和攻防 來自奇虎的反木馬專家鄭文彬,在現場發表演講。以下為文字實錄 還原系統技術原理 基本原理是磁碟裝置過濾驅動。比較常用方法是自己會建乙個磁碟卷裝置,在harddiskx進行檔案過濾。過濾驅動如何做到還原?首先還原系統會在磁碟上分配一塊預留的區域,應用程式以為他已經...
對還原系統技術的分析
系統的還原點如果還原的時候不起作用了,還是還原時出了別的問題?難道系統還原只是乙個擺設?它究竟要如何使用,才能達到我們所想要的一種結果?使用還原系統環境的使用者一般都不會安裝其他的防護軟體,一旦還原軟體被穿透的話,會帶來比較大的安全威脅。還原系統技術原理 還原系統基本原理是磁碟裝置過濾驅動。比較常用...
《黑客攻防技術 系統實戰》開篇講解
在得到這本書的時候簡直是如獲至寶 雖然是印刷版 捂臉 之所以倍感珍惜除了書中內容是我想學習的,另外乙個原因就是這本書已經絕版了,還一直擔心買不到,言歸正傳,本書主要分為四個部分 第一部分 破解入門 x86上的linux 第二部分 其他平台 windows,solaris,os x 和 cisco 第...