Rootkit的基礎(chǔ)知識和防御方法 |
發(fā)布時間: 2012/7/4 14:12:47 |
好多人有一個誤解,他們認(rèn)為rootkit是用作獲得系統(tǒng)root訪問權(quán)限的工具。實際上,rootkit是攻擊者用來隱藏自己的蹤跡和保留root訪問權(quán)限的工具。通常,攻擊者通過遠程攻擊獲得root訪問權(quán)限,或者首先密碼猜測或者密碼強制破譯的方式獲得系統(tǒng)的訪問權(quán)限。進入系統(tǒng)后,如果他還沒有獲得root權(quán)限,再通過某些安全漏洞獲得系統(tǒng)的root權(quán)限。接著,攻擊者會在侵入的主機中安裝rootkit,然后他將經(jīng)常通過rootkit的后門檢查系統(tǒng)是否有其他的用戶登錄,如果只有自己,攻擊者就開始著手清理日志中的有關(guān)信息。通過rootkit的嗅探器獲得其它系統(tǒng)的用戶和密碼之后,攻擊者就會利用這些信息侵入其它的系統(tǒng)。 一 全面認(rèn)識rootkit: Rootkit出現(xiàn)于二十世紀(jì)90年代初,在1994年2月的一篇安全咨詢報告中首先使用了rootkit這個名詞。這篇安全咨詢就是CERT-CC的CA-1994-01,題目是Ongoing Network Monitoring Attacks,最新的修訂時間是1997年9月19日。從出現(xiàn)至今,rootkit的技術(shù)發(fā)展非常迅速,應(yīng)用越來越廣泛,檢測難度也越來越大。 rootkit介紹Rootkit是一種奇特的程序,它具有隱身功能:無論靜止時(作為文件存在),還是活動時,(作為進程存在),都不會被察覺。換句話說,這種程序可能一直存在于我們的計算機中,但我們卻渾然不知,這一功能正是許多人夢寐以求的——不論是計算機黑客,還是計算機取證人員。黑客可以在入侵后置入Rootkit,秘密地窺探敏感信息,或等待時機,伺機而動;取證人員也可以利用Rootkit實時監(jiān)控嫌疑人員的不法行為,它不僅能搜集證據(jù),還有利于及時采取行動。 二 了解Rootkit的攻擊原理: 要了解Rootkit的攻擊原理,就必須從系統(tǒng)原理說起,我們知道,操作系統(tǒng)是由內(nèi)核(Kernel)和外殼(Shell)兩部分組成的,內(nèi)核負(fù)責(zé)一切實際的工作,包括CPU任務(wù)調(diào)度、內(nèi)存分配管理、設(shè)備管理、文件操作等,外殼是基于內(nèi)核提供的交互功能而存在的界面,它負(fù)責(zé)指令傳遞和解釋。由于內(nèi)核和外殼負(fù)責(zé)的任務(wù)不同,它們的處理環(huán)境也不同,因此處理器提供了多個不同的處理環(huán)境,把它們稱為運行級別(Ring),Ring讓程序指令能訪問的計算機資源依次逐級遞減,目的在于保護計算機遭受意外損害——內(nèi)核運行于Ring 0級別,擁有最完全最底層的管理功能,而到了外殼部分,它只能擁有Ring 3級別,這個級別能操作的功能極少,幾乎所有指令都需要傳遞給內(nèi)核來決定能否執(zhí)行,一旦發(fā)現(xiàn)有可能對系統(tǒng)造成破壞的指令傳遞(例如超越指定范圍的內(nèi)存讀寫),內(nèi)核便返回一個“非法越權(quán)”標(biāo)志,發(fā)送這個指令的程序就有可能被終止運行,這就是大部分常見的“非法操作”的由來,這樣做的目的是為了保護計算機免遭破壞,如果外殼和內(nèi)核的運行級別一樣,用戶一個不經(jīng)意的點擊都有可能破壞整個系統(tǒng)。 由于Ring的存在,除了由系統(tǒng)內(nèi)核加載的程序以外,由外殼調(diào)用執(zhí)行的一般程序都只能運行在Ring 3級別,也就是說,它們的操作指令全部依賴于內(nèi)核授權(quán)的功能,一般的進程查看工具和殺毒軟件也不例外,由于這層機制的存在,我們能看到的進程其實是內(nèi)核 “看到”并通過相關(guān)接口指令(還記得API嗎?)反饋到應(yīng)用程序的,這樣就不可避免的存在一條數(shù)據(jù)通道,雖然在一般情況下它是難以被篡改的,但是不能避免意外的發(fā)生,Rootkit正是“制造”這種意外的程序。簡單的說,Rootkit實質(zhì)是一種“越權(quán)執(zhí)行”的應(yīng)用程序,它設(shè)法讓自己達到和內(nèi)核一樣的運行級別,甚至進入內(nèi)核空間,這樣它就擁有了和內(nèi)核一樣的訪問權(quán)限,因而可以對內(nèi)核指令進行修改,最常見的是修改內(nèi)核枚舉進程的API,讓它們返回的數(shù)據(jù)始終 “遺漏”Rootkit自身進程的信息,一般的進程工具自然就“看”不到Rootkit了。更高級的Rootkit還篡改更多API,這樣,用戶就看不到進程(進程API被攔截),看不到文件(文件讀寫API被攔截),看不到被打開的端口(網(wǎng)絡(luò)組件Sock API被攔截),更攔截不到相關(guān)的網(wǎng)絡(luò)數(shù)據(jù)包(網(wǎng)絡(luò)組件NDIS API被攔截)了,幸好網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)指示不受內(nèi)核控制,否則恐怕Rootkit要讓它也不會亮了才好!我們使用的系統(tǒng)是在內(nèi)核功能支持下運作的,如果內(nèi)核變得不可信任了,依賴它運行的程序還能信任嗎? 三 rootkit的未來發(fā)展趨勢: 未來的rootkit的發(fā)展趨勢是與惡意軟件越多地結(jié)合,或者說將自己隱藏于惡意軟件之中。這種隱藏技術(shù)的最嚴(yán)重后果便是rootkit不但能夠輕易的將僵尸隱藏于系統(tǒng)的“視線”之外,還可以避開檢測rootkit的最后一道防線-網(wǎng)絡(luò)檢測。而多數(shù)公司需要開放著80號端口,因為其雇員需要使用互聯(lián)網(wǎng)。一些惡意用戶使用這個通道傳輸數(shù)據(jù)。作為網(wǎng)管員應(yīng)當(dāng)知道,這個端口主要用作進入的而不是發(fā)出的通信,因為網(wǎng)管員應(yīng)當(dāng)依靠網(wǎng)關(guān)設(shè)備上的過濾器來掃描發(fā)出的HTTP數(shù)據(jù)通信。當(dāng)然,這需要好好調(diào)教你的過濾器。惡意的通信還可以借助可接受的發(fā)出數(shù)據(jù)通信來傳輸。例如,它可依附于發(fā)出的DNS數(shù)據(jù)包上。因此,建議管理員密切監(jiān)視三種通信,一是突發(fā)的通信,二是大文件通信,三是其它的異常通信。這三者可能表明有人正在遠程執(zhí)行控制命令。 從傳統(tǒng)上講,檢測系統(tǒng)上的rootkit要比檢測隱藏于網(wǎng)絡(luò)通信中的rootkit困難得多,因為多數(shù)rootkit要比反病毒軟件有更高的特權(quán)。 不過,我們應(yīng)當(dāng)注意這樣一個有趣的事實:近來,Vmware公司用其新的VMsafe安全擴展增加了對反病毒的支持,這樣就可以在虛擬機監(jiān)視程序的保護下運行反病毒產(chǎn)品,其特權(quán)更高。 四 rootkit的檢查和防御: 檢查:特定rootkit的檢測工具,如RootkitRevealer可以找到內(nèi)核系統(tǒng)調(diào)用和直接磁盤檢查的差異,并可以據(jù)此檢測隱藏的文件、注冊表鍵值及其它屬性。例如,在Windows計算機上,可以查找任務(wù)管理器的進程列表與內(nèi)部系統(tǒng)任務(wù)列表的差異。 不過,要注意,這些工具的運行級別仍低于rootkit。運行于用戶系統(tǒng)上的檢測程序需要動態(tài)分析計算機,看看計算機是否撒謊。但最佳的方法是從一個完全干凈的系統(tǒng)檢測當(dāng)前系統(tǒng)。或者用另外一個原來完全相同的系統(tǒng)對當(dāng)前系統(tǒng)進行對比,找出其差異。 防御:rootkit要求深度防御,最新的內(nèi)核級rootkit,將多種類型的惡意代碼包裝在內(nèi),它可以跳轉(zhuǎn)到處理器,在BIOS檢測時,再跳轉(zhuǎn)到系統(tǒng)內(nèi)核,在計算機被清除和恢復(fù)后也難于徹底根除。這種永久性rootkit已經(jīng)成為最危險的rootkit,在兩星期以前的黑帽大會上有研究人員已經(jīng)清楚地演示了這一點。還有一種所謂的游戲僵尸,這種程序尤其喜歡多處理器,它可以運行多個線程,又能平衡負(fù)載。其中有些僵尸可通過自動的僵尸程序竊取虛擬幣或虛擬貨物,然后換賣真實的金錢。rootkit可以從多個方面來利用固件的漏洞,如可借助于啟動加載程序、設(shè)備驅(qū)動程序、閃速固件更新等。 很顯然,只有使你的網(wǎng)絡(luò)非常安全讓攻擊者無隙可乘,才能是自己的網(wǎng)絡(luò)免受rootkit的影響。不過,恐怕沒有人能夠提供這個保證,但是在日常的網(wǎng)絡(luò)管理維護中保持一些良好的習(xí)慣,能夠在一定程度上減小由rootkit造成的損失,并及時發(fā)現(xiàn)rootkit的存在。不要在網(wǎng)絡(luò)上使用明文傳輸密碼,或者使用一次性密碼。這樣,即使你的系統(tǒng)已經(jīng)被安裝了rootkit,攻擊者也無法通過網(wǎng)絡(luò)監(jiān)聽,獲得更多用戶名和密碼,從而避免入侵的蔓延。 防止rootkit 進入您的系統(tǒng)是能夠使用的最佳辦法。為了實現(xiàn)這個目的,可以使用與防范所有攻擊計算機的惡意軟件一樣的深入防衛(wèi)策略。深度防衛(wèi)的要素包括:病毒掃描程序、定期更新軟件、在主機和網(wǎng)絡(luò)上安裝防火墻,以及強密碼策略等。 本文出自:億恩科技【prubsntakaful.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |