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 進入您的系統是能夠使用的最佳辦法。為了實現這個目的,可以使用與防範所有攻擊計算機的
惡意軟體一樣的深入防衛策略。深度防衛的要素包括:病毒掃描程式、定期更新軟體、在
主機和網路上安裝
防火牆,以及
強密碼策略等。