要了解Rootkit木馬的原理,就必須從系統原理說起,我們知道,作業系統是由核心(kernel)和外殼(shell)兩部分組成的,核心負責一切實際的工作,包括cpu任務調度、記憶體分配管理、設備管理、檔案操作等,外殼是基於核心提供的互動功能而存在的界面,它負責指令傳遞和解釋。由於核心和外殼負責的任務不同,它們的處理環境也不同,因此處理器提供了多個不同的處理環境,把它們稱為運行級別(ring),ring讓程式指令能訪問的計算機資源依次逐級遞減,目的在於保護計算機遭受意外損害——核心運行於ring 0級別,擁有最完全最底層的管理功能,而到了外殼部分,它只能擁有ring3級別,這個級別能操作的功能極少,幾乎所有指令都需要傳遞給核心來決定能否執行,一旦發現有可能對系統造成破壞的指令傳遞(例如超越指定範圍的記憶體讀寫),核心便返回一個“非法越權”標誌,傳送這個指令的程式就有可能被終止運行,這就是大部分常見的“非法操作”的由來,這樣做的目的是為了保護計算機免遭破壞,如果外殼和核心的運行級別一樣,用戶一個不經意的點擊都有可能破壞整個系統。
由於ring的存在,除了由系統核心載入的程式以外,由外殼調用執行的一般程式都只能運行在ring3級別,也就是說,它們的操作指令全部依賴於核心授權的功能,一般的進程查看工具和防毒軟體也不例外,由於這層機制的存在,我們能看到的進程其實是核心“看到”並通過相關接口指令(還記得api嗎?)反饋到應用程式的,這樣就不可避免的存在一條數據通道,雖然在一般情況下它是難以被篡改的,但是不能避免意外的發生,Rootkit正是“製造”這種意外的程式。簡單的說,Rootkit實質是一種“越權執行”的應用程式,它設法讓自己達到和核心一樣的運行級別,甚至進入核心空間,這樣它就擁有了和核心一樣的訪問許可權,因而可以對核心指令進行修改,最常見的是修改核心枚舉進程的api,讓它們返回的數據始終“遺漏”Rootkit自身進程的信息,一般的進程工具自然就“看”不到Rootkit了。更高級的Rootkit還篡改更多api,這樣,用戶就看不到進程(進程api被攔截),看不到檔案(檔案讀寫api被攔截),看不到被打開的連線埠(網路組件sockapi被攔截),更攔截不到相關的網路數據包(網路組件ndisapi被攔截)了,我們使用的系統是在核心功能支持下運作的,如果核心變得不可信任了,依賴它運行的程式還能信任嗎?
但即使是Rootkit這一類恐怖的寄生蟲,它們也並非所向無敵的,要知道,既然Rootkit是利用核心和ring0配合的欺騙,那么我們同樣也能使用可以“越權”的檢查程式,繞過api提供的數據,直接從核心領域裡讀取進程列表,因為所有進程在這裡都不可能把自己隱藏,除非它已經不想運行了。也就是說,核心始終擁有最真實的進程列表和主宰權,只要能讀取這個原始的進程列表,再和進程api枚舉的進程列表對比,便能發現Rootkit進程,由於這類工具也“越權”了,因而對Rootkit進行查殺也就不再是難事,而Rootkit進程一旦被清除,它隱藏自身的措施也就不復存在,核心就能把它“供”出來了,用戶會突然發現那個一直“找不到”的Rootkit程式檔案已經老實的呆在檔案管理器的視圖里了。這類工具現在已經很多,例如Icesword、patchfinder、gdb等。
道高一尺,魔高一丈,因為目前的主流Rootkit檢測工具已經能檢測出許多Rootkit木馬的存在,因此一部分Rootkit作者轉而研究Rootkit檢測工具的運行檢測算法機制,從而製作出新一代更難被檢測到的木馬——futo Rootkit。
國產優秀檢測工具icesword在futo面前敗下陣來,因為futo編寫者研究的檢測工具原型就是一款與之類似的black &light,所以我們只能換用另一款Rootkit檢測工具darkspy,並開啟“強力模式”,方可正常查殺Rootkit。
但是由於檢測機制的變化,darkspy要檢測到futo的存在,就必須保證自己的驅動比futo提前載入運行,這就涉及到優先權的問題,也是讓業界感覺不太滿意的一種方式,因為這樣做的後果會導致系統運行效率下降,不到緊急關頭,都不要輕易採用這種方法,然而現在的瑞星卡卡助手所推廣的“破甲”技術,實現原理是與之類似的,它也會對系統造成一定影響,因而,這個介於安全和效率之間的選擇,唯有留給用戶自己思考了。
相關詞條
-
rootkit
Rootkit是一種特殊的惡意軟體,它的功能是在安裝目標上隱藏自身及指定的檔案、進程和網路連結等信息,比較多見到的是Rootkit一般都和木馬、後門等其...
rootkit是什麼 rootkit的歷史 典型特徵及危害 原理 -
Rootkit技術
隨著安全技術的發展和計算機用戶群的技術提高,一般的木馬...檔案體,甚至通訊的連線埠和流量也能被隱藏起來,在如此強大的 隱藏技術面前...,這種木馬,就是讓人問之色變的Rootkit。 要了解...
-
Rootkit木馬
Rootkit木馬自從“廣外幽靈”開創了DLL木馬時代的先河以來,現在採用執行緒注射的dll木馬和惡意程式已經隨處可見了,除了普遍被採用的另行編寫dll加...
-
Rootkit Revealer
Rootkit 是一種特殊類型的 malware(惡意軟體)。
-
撕扯Rootkit變種AE
撕扯Rootkit變種AE,是一個Rootkits程式,它會通過鉤掛系統API函式來對病毒進行保護。該Rootkits運行後會鉤掛系統API函式來隱藏病...
概述 預防 -
撕扯Rootkit
“撕扯Rootkit變種AE”是一種Rootkits程式,通過網路傳播,是依賴於WIN 9X/NT/2000/XP系統的病毒。
概述 預防 -
Rootkit For Windows
,前言二,簡介三,rootkit的一些以公開的隱藏技術四,一些隱藏技術的應對... :)*************************一.先說幾句與技術無關的話。 現在很多人對rootkit認識不夠,可以說...的rootkit的隱藏方法只是一部分。還有很多技術沒有提到,另外還有一些...
-
黑客大曝光:惡意軟體和Rootkit安全
1.5.2 1.6.2 2.1.3
圖書信息 內容簡介 媒體推薦 作者簡介 目錄 -
Rootkit清除工具
ti-Rootkit是一種高級的Rootkit檢測工具,能夠清除Win hooks),能夠很好地完成清除可疑Rootkit的工作。 Rootkit檢測與...