rootkit
一種惡意病毒軟體
Rootkit是一種特殊的惡意軟體,它的功能是在安裝目標上隱藏自身及指定的文件、進程和網路鏈接等信息,比較多見到的是Rootkit一般都和木馬、後門等其他惡意程序結合使用。
在懸念迭起的中外諜戰片里,對戰雙方中的一派勢力通常會派遣特工人員潛伏到對手陣營中。這名卧底人員良好的偽裝使得對手對此長時間毫無察覺;為了能夠長期潛伏他不貿然採取高風險行為以免過早暴露自己;他贏得敵人的信任並因此身居要職,這使得他能夠源源不斷地獲取重要情報並利用其獨特渠道傳送回去。
從某種意義上說這位不速之客就是Rootkit——持久並毫無察覺地駐留在目標計算機中,對系統進行操縱、並通過隱秘渠道收集數據的程序。Rootkit的三要素就是:隱藏、操縱、收集數據。
“Rootkit”中root術語來自於unix領域。由於unix主機系統管理員賬號為root賬號,該賬號擁有最小的安全限制,完全控制主機並擁有了管理員許可權被稱為“root”了這台電腦。然而能夠“root”一台主機並不意味著能持續地控制它,因為管理員完全可能發現了主機遭受入侵併採取清理措施。因此Rootkit的初始含義就在於“能維持root許可權的一套工具”。
Rootkit是什麼
簡單地說,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已被大多數的防毒軟體歸類為具危害性的惡意軟體。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檢查程序是Rootkit Revealer.
在發現系統中存在Rootkit之後,能夠採取的補救措施也較為有限。由於Rootkit可以將自身隱藏起來,所以您可能無法知道它們已經在系統中存在了多長的時間。而且您也不知道Rootkit已經對哪些信息造成了損害。對於找出的 Rootkit,最好的應對方法便是擦除並重新安裝系統。雖然這種手段很嚴厲,但是這是得到證明的唯一可以徹底刪除 Rootkit的方法。
防止Rootkit進入您的系統是能夠使用的最佳辦法。為了實現這個目的,可以使用與防範所有攻擊計算機的惡意軟體一樣的深入防衛策略。深度防衛的要素包括:病毒掃描程序、定期更新軟體、在主機和網路上安裝防火牆,以及強密碼策略等。