rootkit是什麼
在懸念叠起的中外諜戰片裡,對戰雙方中的一派勢力通常會派遣特工人員潛伏到對手陣營中。這名卧底人員良好的僞裝使得對手對此長時間毫無察覺;為了能夠長期潛伏他不貿然采取高風險行為以免過早暴露自己;他赢得敵人的信任并因此身居要職,這使得他能夠源源不斷地獲取重要情報并利用其獨特渠道傳送回去。
從某種意義上說這位不速之客就是Rootkit——持久并毫無察覺地駐留在目标計算機中,對系統進行操縱、并通過隐秘渠道收集數據的程序。Rootkit的三要素就是:隐藏、操縱、收集數據。
“Rootkit”中root術語來自于unix領域。由于unix主機系統管理員賬号為root賬号,該賬号擁有最小的安全限制,完全控制主機并擁有了管理員權限被稱為“root”了這台電腦。然而能夠“root”一台主機并不意味着能持續地控制它,因為管理員完全可能發現了主機遭受入侵并采取清理措施。因此Rootkit的初始含義就在于“能維持root權限的一套工具”。
簡單地說,Rootkit是一種特殊的惡意軟件,它的功能是在安裝目标上隐藏自身及指定的文件、進程和網絡鍊接等信息,比較多見到的是Rootkit一般都和木馬、後門等其他惡意程序結合使用。Rootkit通過加載特殊的驅動,修改系統内核,進而達到隐藏信息的目的。
NSA安全和入侵檢測術語字典(NSA Glossary of Terms Used in Security and Intrusion Detection)對rootkit的定義如下:A hacker security tool that captures passwords and message traffic to and from a computer. A collection of tools that allows a hacker to provide a backdoor into a system, collect information on other systems on the network,mask the fact that the system is compromised, and much more. Rootkit is a classic example of Trojan Horse software. Rootkit is available for a wide range of operating systems.
rootkit并不一定是用作獲得系統root訪問權限的工具。實際上,rootkit是攻擊者用來隐藏自己的蹤迹和保留root訪問權限的工具。通常,攻擊者通過遠程攻擊獲得root訪問權限,或者首先密碼猜測或者密碼強制破譯的方式獲得系統的訪問權限。進入系統後,如果他還沒有獲得root權限,再通過某些安全漏洞獲得系統的root權限。接着,攻擊者會在侵入的主機中安裝rootkit,然後他将經常通過rootkit的後門檢查系統是否有其他的用戶登錄,如果隻有自己,攻擊者就開始着手清理日志中的有關信息。通過rootkit的嗅探器獲得其它系統的用戶和密碼之後,攻擊者就會利用這些信息侵入其它的系統。
rootkit的曆史
最早Rootkit用于善意用途,但後來Rootkit也被駭客用在入侵和攻擊他人的電腦系統上,電腦病毒、間諜軟件等也常使用Rootkit來隐藏蹤迹,因此Rootkit已被大多數的防毒軟件歸類為具危害性的惡意軟件。Linux、Windows、Mac OS等操作系統都有機會成為Rootkit的受害目标。
Rootkit出現于二十世紀90年代初,在1994年2月的一篇安全咨詢報告中首先使用了rootkit這個名詞。這篇安全資訊就是CERT-CC的CA-1994-01,題目是Ongoing Network Monitoring Attacks,最新的修訂時間是1997年9月19日。從出現至今,rootkit的技術發展非常迅速,應用越來越廣泛,檢測難度也越來越大。
典型特征及危害
rootkit介紹Rootkit是一種奇特的程序,它具有隐身功能:無論靜止時(作為文件存在),還是活動時,(作為進程存在),都不會被察覺。換句話說,這種程序可能一直存在于我們的計算機中,但我們卻渾然不知,這一功能正是許多人夢寐以求的——不論是計算機黑客,還是計算機取證人員。黑客可以在入侵後置入Rootkit,秘密地窺探敏感信息,或等待時機,伺機而動;取證人員也可以利用Rootkit實時監控嫌疑人員的不法行為,它不僅能搜集證據,還有利于及時采取行動!
Rootkit的目的在于隐藏自己以及不被其他軟件發現。它可以通過阻止用戶識别和删除攻擊者的軟件來達到這個目的。Rootkit幾乎可以隐藏任何軟件,包括文件服務器、鍵盤記錄器、Botnet和Remailer。許多Rootkit甚至可以隐藏大型的文件集合并允許攻擊者在您的計算機上保存許多文件,而您無法看到這些文件。
Rootkit攻擊方式多針對類似敏感數據剽竊這樣的環節,那麼某企業或政府組織“中央服務器”一類設備自然是植入Rootkit的首選目标,可這樣的主機設備往往防護嚴密,不能輕易得手。我們知道數據并不是靜止的存放在服務器中,它往往在機構的網絡中流動。機構中級别較高的人員常會擁有對這些設備數據的讀寫權限,但他們所擁有的個人電腦的防護級别卻通常比中央服務器要低,這就會給剽竊數據的黑客以可趁之機——将Rootkit程序植入相關人員的個人電腦,并默默的安家,不時地傳回重要數據。
原理
針對SunOS和Linux兩種操作系統的rootkit最多。所有的rootkit基本上都是由幾個獨立的程序組成的,一個典型rootkit包括:
1、以太網嗅探器程序,用于獲得網絡上傳輸的用戶名和密碼等信息。
2、特洛伊木馬程序,例如:inetd或者login,為攻擊者提供後門。
3、隐藏攻擊者的目錄和進程的程序,例如:ps、netstat、rshd和ls等。
4、可能還包括一些日志清理工具,例如:zap、zap2或者z2,攻擊者使用這些清理工具删除wtmp、utmp和lastlog等日志文件中有關自己行蹤的條目。
一些複雜的rootkit還可以向攻擊者提供telnet、shell和finger等服務。
還包括一些用來清理/var/log和/var/adm目錄中其它文件的一些腳本。
攻擊者使用rootkit中的相關程序替代系統原來的ps、ls、netstat和df等程序,使系統管理員無法通過這些工具發現自己的蹤迹。接着使用日志清理工具清理系統日志,消除自己的蹤迹。然後,攻擊者會經常地通過安裝的後門進入系統查看嗅探器的日志,以發起其它的攻擊。如果攻擊者能夠正确地安裝rootkit并合理地清理了日志文件,系統管理員就會很難察覺系統已經被侵入,直到某一天其它系統的管理員和他聯系或者嗅探器的日志把磁盤全部填滿,他才會察覺已經大禍臨頭了。但是,大多數攻擊者在清理系統日志時不是非常小心或者幹脆把系統日志全部删除了事,警覺的系統管理員可以根據這些異常情況判斷出系統被侵入。不過,在系統恢複和清理過程中,大多數常用的命令例如ps、df和ls已經不可信了。許多rootkit中有一個叫做FIX的程序,在安裝rootkit之前,攻擊者可以首先使用這個程序做一個系統二進制代碼的快照,然後再安裝替代程序。FIX能夠根據原來的程序僞造替代程序的三個時間戳(atime、ctime、mtime)、date、permission、所屬用戶和所屬用戶組。如果攻擊者能夠準确地使用這些優秀的應用程序,并且在安裝rootkit時行為謹慎,就會讓系統管理員很難發現。
如何發現rootkit及其應對措施
很顯然,隻有使你的網絡非常安全讓攻擊者無隙可乘,才能使自己的網絡免受rootkit的影響。
Rootkit本身不會像病毒或蠕蟲那樣影響計算機的運行。攻擊者可以找出目标系統上的現有漏洞。漏洞可能包括:開放的網絡端口、未打補丁的系統或者具有脆弱的管理員密碼的系統。在獲得存在漏洞的系統的訪問權限之後,攻擊者便可手動安裝一個Rootkit。這種類型的偷偷摸摸的攻擊通常不會觸發自動執行的網絡安全控制功能,例如入侵檢測系統。
找出Rootkit十分困難。有一些軟件包可以檢測Rootkit。這些軟件包可劃分為以下兩類:基于簽名的檢查程序和基于行為的檢查程序。基于簽名(特征碼)的檢查程序,例如大多數病毒掃描程序,會檢查二進制文件是否為已知的Rootkit。基于行為的檢查程序試圖通過查找一些代表Rootkit主要行為的隐藏元素來找出Rootkit。一個流行的基于行為的Rootkit檢查程序是Rootkit Revealer.
在發現系統中存在Rootkit之後,能夠采取的補救措施也較為有限。由于Rootkit可以将自身隐藏起來,所以您可能無法知道它們已經在系統中存在了多長的時間。而且您也不知道Rootkit已經對哪些信息造成了損害。對于找出的Rootkit,最好的應對方法便是擦除并重新安裝系統。雖然這種手段很嚴厲,但是這是得到證明的唯一可以徹底删除Rootkit的方法。
防止Rootkit進入系統一個有效辦法是啟用安全引導,同時也應當安裝病毒掃描程序、定期更新軟件、在主機和網絡上安裝防火牆,以及強密碼策略等等。



















