Rootkit可以說是最新的安全威脅之一。任何聽說過它的人都知道它臭名昭著:無法刪除,在一臺計算機內部存在數年而不被發現,而且可通過操作系統發動攻擊。
Rootkits:隱藏的安全威脅
什么是Rootkit呢?根據www.whatis.com的觀點,一個Rootkit就是一個允許以管理員身份訪問計算機或計算機網絡的工具的集合(a Rootkit is “a collection oftools that enable administrator-level access to a computeror a computer network.”)。根據安全專家Greg HogLund的觀點,Rootkit是一個設計出來在一個系統中隱藏自身和/或其它過程數據/活動的工具。雖然名聲不好,Rootkit實際上卻可以擁有十分重要的應用,如管理許可證或隱藏一些管理員不想讓其他人看見的文件等。Rootkit的問題在于那些隱藏一些東西并為遠程用戶提供訪問服務的程序,它們可被濫用引起各種安全問題。如今Rootkit可被用來危及計算機的安全,因此計算機用戶必須清楚這些Rootkit。Rootkit基本上可作為間諜軟件、特洛伊木馬、釣魚軟件和其它有害程序的一個基礎平臺。關于Rootkit的好話我們就不多說了,先重點談談Rootkit被用來犯罪的工具問題。
計算機犯罪的理想工具
因為眾所周知的經濟方面上的原因,近年來Rootkit已經成為一個日益嚴重的問題。Rootkit的力量在于它允許遠程用戶控制受害人的系統。一旦它在你的系統上制造或發現一個后門,就可以收集各種各樣的個人信息,如信用卡號等。
Rootkit常被用來利用間諜軟件和鍵盤記錄程序進行犯罪活動。Rootkit還可以作為蠕蟲和病毒的快速啟動的跳板。實際上,一些蠕蟲就包含Rootkit,這些Rootkit安裝在被感染蠕蟲的計算機上,從而通過網絡進一步擴散。Rootkit的最大危險在于它們可以給遠程用戶一種能夠對系統實施“外殼訪問”(shell access)的權限,也就是說黑客可以完全地控制目標系統。如此一來,Rootkit就可以擁有一種幾乎無限的破壞潛力。
Rootkit陰險地潛入
Rootkit可存在于內核、庫、和應用程序的層次上。內核級的Rootkit特別危險,是人們注意的中心,因為它們十分地難于檢測。Rootkit的一個真正狡猾的特點就是:有一些類型的Rootkit可以將其自身與操作系統緊密地綁定,實際上,幾乎不可能檢測它們。其結果是,Rootkit可以以這種方式取代操作系統,如此一來,用戶就不能相信操作系統傳給用戶的信息。
傳統的反間諜軟件和反病毒程序在這種情況下是無能為力的,因為它們依靠操作系統自身來尋求狀態信息,而操作系統卻已被控制。雖然一些Rootkit實際上相當陰險,不過,事實上許多Rootkit可通過關機,然后從另一個干凈的磁盤重新啟動來檢測到。畢竟一個非活動的Rootkit是無法隱藏自己的。
感染了Rootkit怎么辦?
有一種觀點認為,在感染之前(或者沒有被安裝Rootkit)),只需備份系統,然后重新格式化磁盤再恢復系統是個好辦法。無可否認,這是針對此問題的一個極端的方法。現在有多種免費的或開源的Rootkit檢測工具來解決問題,不過這并非是真正的安全之道。用戶應謹慎地選擇這種軟件。特別是免費的Rootkit檢測工具并不能像商業軟件那樣及時更新,而此Rootkit的發展步伐又是如此之快,因此我們還要尋求其它的方法。
因為Rootkit經常被用作間諜軟件的平臺,配置最好的可以解決Rootkit問題的商業軟件或硬件廠商通常是那些有著豐富的間諜軟件檢測和清除經驗的公司。一個Rootkit的檢測和清除程序使用多維向量來確認問題。這種程序還應該有最新的被確認的Rootkit的列表,從而確保那些新出現的Rootkit不會成為漏網之魚。這也就是用戶及時更新其簽名文件的重要原因。
記住下面一點也是很重要的:并非所有的Rootkit都是惡意的。用戶并不想要一個Rootkit檢測程序只是檢測那些它所能夠發現的惡意的Rootkit。一個良好的Rootkit檢測程序還應該分辨善意和惡意的Rootkit,并能讓管理員禁用或啟用這些Rootkit程序。
檢測和清除Rootkit的策略
從一定意義上講,Rootkit是難于清除的,特別是對于那些處于操作系統級的Rootkit來說。不過,這又依賴于Rootkit的執行、實施方法。用戶可以在操作系統內核級上安裝工具軟件,也可以在用戶模式水平上放置一些工具??偟膩碚f,Rootkit的目的地是對用戶隱藏信息、過程和文件,因此無論是檢測還是清除都是相當困難的、復雜的。一般說來,刪除比檢測更難于實施,因為你要確保操作系統在清除Rootkit后還能正常工作。當今的大多數Rootkit都是可以從系統中安全地清除的,但今后一、兩年內,清除Rootkit可能會是一個相當重大的挑戰。
那么檢測和清除Rootkit的最困難的方面是什么呢?我們說過,Rootkit就是來隱藏信息的。這樣你就再也不能真正的相信操作系統本身。一旦你的機器感染了惡意的Rootkit,那么操作系統所告訴你的任何東西都不再是真正可信的信息。因此,從操作系統中清除一個Rootkit的首要一步就是引入能夠理解操作系統最低級信息的技術。例如,磁盤如何被格式化。因此對操作系統之下的技術所掌握的能力能夠使你確認任何可認為是Rootkit的蛛絲馬跡。換句話說,對一個操作系統的更高深的知識和能力是非常關鍵的。
科學的檢測技術應位于操作系統之下,我們可以將操作系統在機器上所看到的與檢測軟件在操作系統最低層上所看到的相比較。如果二者匹配,操作系統極有可能是干凈的、安全的,但如果二者有差異,那你就應該好好看一下了,因為這有可能是一個潛在的Rootkit感染的跡象。
用戶可以采取以下幾方面的步驟來減少總體的暴露程度和被Rootkit感染的風險:
1.通過盡快地確保計算機打上最新的補丁來保證系統的健康,特別是如果你采用微軟的操作系統的話。不過,這條忠告適用于任何其它的操作系統或應用程序。
2.建議用戶以非超級用戶的身份登錄。說來容易做來難。不過,事實是:如果你減少登錄用戶的權限,你就是在大大地減少被Rootkit感染的風險。
3.總是同時地、及時地更新你的反間諜軟件和反病毒軟件。
筆者還要建議此文的閱讀者:一定要小心所謂的免費下載!一些所謂的免費下載并不是真得免費。因為你是要付出代價的。很多所謂的“免費”下載可能會包含惡意軟件或Rootkit,用戶完全應該采取預防措施以防止這種事情的發生。盡量從可信任的站點下載,因為它們可為用戶提供一定的安全保障,但并非絕對。