古詩詞大全網 - 個性簽名 - rootkit是病毒嗎?

rootkit是病毒嗎?

Rootkit是網絡安全中經常遇到的問題。NSA安全和入侵檢測術語表。rootkit的定義如下:壹種黑客安全工具,可以捕獲進出計算機的文字和消息流量。壹組工具,允許黑客。提供進入系統的後門,收集網絡上其他系統的信息,掩蓋系統受損的事實,等等。Rootkit是特洛伊木馬軟件的經典例子。Rootkit可用於多種操作系統。

很多人都有壹個誤區,認為rootkit是用來作為獲取系統root權限的工具。實際上,rootkit是攻擊者用來隱藏蹤跡和保留root訪問權限的工具。通常,攻擊者通過遠程攻擊獲得root權限,或者先通過密碼猜測或強制密碼破解獲得系統訪問權限。進入系統後,如果他還沒有獲得root權限,可以通過壹些安全漏洞獲得系統的root權限。然後,攻擊者會在被入侵的主機中安裝rootkit,然後他會經常檢查是否有其他用戶通過rootkit的後門登錄系統。如果只有他自己,攻擊者就會開始清理日誌中的相關信息。攻擊者通過rootkit的嗅探器獲取其他系統的用戶和密碼後,會利用這些信息入侵其他系統。

什麽是rootkit?

Rootkit出現於上世紀90年代初,rootkit壹詞最早出現在1994年2月的壹份安全咨詢報告中。本次安全咨詢為CERT-CC的CA-1994-01,題目為《正在進行的網絡監控攻擊》,最新修訂時間為1997年9月19。rootkit技術自出現以來發展非常迅速,應用越來越廣泛,檢測難度也越來越大。

Rootkit介紹,rootkit是壹種奇怪的程序,具有隱身功能:無論是靜態(以文件形式存在)還是活動(以進程形式存在)都不會被檢測到。換句話說,這個程序可能壹直存在於我們的電腦中,但我們完全不知道這個功能正是很多人夢寐以求的——無論是電腦黑客還是電腦取證人員。黑客可以在入侵後放壹個Rootkit,暗中窺探敏感信息,或者伺機而動等待時機;取證人員還可以使用Rootkit實時監控嫌疑人的違法行為,不僅可以收集證據,還有助於及時采取行動。!

壹.背景知識

我們通常所說的智能機,從超級計算機到個人PC再到智能手機,通常由硬件和軟件兩部分組成。此外,設備的智能化是通過軟件實現的。在所有的軟件中,有壹個是必不可少的,那就是操作系統。操作系統可以簡單理解為壹組高度可重用的核心程序。它壹方面管理底層的硬件設備,另壹方面為上層的其他程序提供良好的運行環境。誠然,人各有命,都是軟件,但操作系統享有至高無上的特權:它不僅管理硬件,其他所有軟件都要服從它。

因為應用程序和硬件之間有壹個操作系統,所以應用程序不能直接訪問硬件,而是通過調用操作系統提供的接口來使用硬件。換句話說,硬件對應用程序是不可見的。當然,沒有什麽是絕對的,應用繞過操作系統直接訪問硬件也不是不可能,但會付出很高的代價。想象壹下,壹個軟件開發人員正在開發壹個功能豐富的軟件,功能本身就足夠讓他頭疼了。現在他還要操心某個賽道某個集群上的某個數據,某個品牌顯示屏上某個人物顏色的二進制代碼等繁瑣的事情,更別說財力物力,單說開發周期就讓人無法忍受。所以現在的應用都是用操作系統提供的簡單明了的服務來訪問系統,因為畢竟沒有人願意去索取。

二、內核的主要功能

從上面我們了解到,內核在系統中處於核心中樞的位置。下面具體介紹壹下內核中與Rootkit密切相關的幾個主要函數,更重要的是這些函數對Rootkit的意義:

流程管理。進程可以簡單理解為正在運行的程序,需要占用內存、CPU時間等系統資源。現在大多數操作系統都支持多用戶多任務,也就是說系統要並行運行多個程序。因此,內核不僅要有專門的代碼為進程或線程分配CPU時間,還要開辟壹塊內存區域來存儲記錄這些進程細節的數據結構。內核如何知道系統中有多少個進程以及每個進程的狀態?通過這些數據結構,換句話說,它們是內核感知進程存在的基礎。因此,只要修改這些數據結構,就可以隱藏該過程。

文件訪問。文件系統是操作系統提供的最重要的功能之壹。內核中的驅動程序將柱面、扇區等設備原有結構抽象成更加易用的文件系統,並提供壹致的接口供上層程序調用。換句話說,這部分代碼完全控制了對硬盤的訪問。通過修改內核中的這部分代碼,攻擊者可以隱藏文件和目錄。

安全控制。對於大多數操作系統來說,由於系統中同時存在多個進程,為了避免進程之間的沖突,內核必須對每個進程實施有效的隔離措施。例如,在MS-Windows系統中,每個進程都被強制指定特定的權限和單獨的內存範圍。所以對於攻擊者來說,只要對內核中負責安全事務的代碼稍加修改,整個安全機制就會崩潰。

內存管理。當前硬件平臺(如英特爾的奔騰系列處理器)的內存管理機制非常復雜,壹個內存地址可以轉換成多個物理地址。比如進程A根據地址0x0030030讀取內存,它得到的值是“飛機”;但是,進程B也讀取相同地址0x0030030的內存,但是它得到的值是“cannon”。如上所述,相同的地址指向兩個不同的物理內存位置,而每個位置存儲不同的數據,這並不奇怪——只是兩個進程將虛擬地址映射到物理地址的方式不同。如果利用好這壹點,可以讓Rootkit避開調試程序和取證軟件的追蹤。

上面介紹了內核的主要功能及其對Rootkit的意義。至此,我們就切入正題,即只要我們顛覆(也就是修改)了操作系統的核心服務,那麽整個系統,包括各種應用,都完全在我們的掌控之中。要顛覆內核,前提是把我們的代碼導入內核。

其中以SunOS和Linux操作系統的rootkit最多(大樹招風:P)。所有的rootkits基本上都是由幾個獨立的程序組成的。典型的rootkit包括:

1以太網嗅探程序用於獲取網絡上傳輸的用戶名、密碼等信息。

特洛伊木馬程序,如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等最常用的命令已經不可信了。許多rootkits都有壹個名為FIX的程序。在安裝rootkit之前,攻擊者可以使用該程序對系統的二進制代碼進行快照,然後安裝替換程序。FIX可以根據原程序偽造替換程序的三個時間戳(atime、ctime、mtime)、日期、權限、用戶、用戶組。如果攻擊者能夠準確使用這些優秀的應用,並且在安裝rootkit時謹慎行事,那麽系統管理員將很難發現他們。

LINUX ROOTKIT IV

如前所述,大多數rootkits都是針對Linux和SunOS的。下面介紹壹個非常典型的Linux rootkit的Rootkit——Linux Rootkit IV。Linux Rootkit IV是壹個開源的Rootkit,由Somer勛爵編寫,發布於6月1998 11。然而,它並不是第壹個Linux Rootkit。在它之前還有lrk、lnrk、lrk2、lrk3等Linux rootkits。這些rootkit包括常見的rootkit組件,如嗅探器、日誌編輯/刪除工具和後門程序。

經過這麽多年的發展,Linux Rootkit IV的功能已經越來越完善,功能也越來越多。不過它的代碼雖然龐大,但是安裝使用起來非常簡單,只要執行make install就可以成功安裝。如果妳想安裝壹個影子工具,只需執行make shadow install。註意:Linux Rootkit IV只能在Linux 2.x內核中使用。下面簡單介紹壹下Linux Rootkit IV包含的各種工具。詳細介紹請參考其發行包的自述文件。

隱藏入侵者行蹤的程序。

為了隱藏入侵者的行蹤,Linux Rootkit IV的作者煞費苦心地編寫了許多系統命令的替換程序,並用這些程序代替原來的系統命令來隱藏入侵者的行蹤。這些程序包括:

ls、find、du

這些程序將阻止入侵者文件的顯示,並計算入侵者文件占用的空間。在編譯之前,入侵者可以通過ROOTKIT_FILES_FILE設置自己文件的位置,默認為/dev/ptyr。註意,如果在編譯時使用SHOWFLAG選項,可以使用ls -/命令列出所有文件。這些程序還可以自動隱藏所有名為ptyr、hack.dir和W4r3z的文件。

ps、top、pidof

這些程序用於隱藏所有與入侵者相關的進程。

netstat

隱藏來自/進入指定IP地址或端口的網絡數據流量。

基拉耳

不會殺死入侵者隱藏的進程。

ifconfig

如果入侵者啟動嗅探器,這個程序會阻止PROMISC標記顯示,讓系統管理員很難發現網絡接口已經處於混雜模式。

crontab

隱藏關於攻擊者的crontab條目。

tcpd

防止記錄某些連接。

syslogd

過濾掉日誌中的壹些連接信息。

特洛伊計劃

為本地用戶提供後門,包括:

中性粒細胞趨化因子

增強本地普通用戶權限的程序。運行chfn,當它提示輸入新用戶名時,如果用戶輸入rookit的密碼,他的權限將提升為root。默認的rootkit密碼是satori。

chsh

這也是壹個增強本地用戶權威的程序。運行chsh,當它提示輸入新的shell時,如果用戶輸入rootkit密碼,他的權限將提升為root。

密碼

它的功能與上述兩個程序相同。當系統提示您輸入新密碼時,如果您輸入rookit密碼,權限可以更改為root。

登錄

允許任何帳戶使用rootkit密碼登錄。如果根帳戶登錄被拒絕,您可以嘗試rewt。當使用後門時,這個程序還可以禁止記錄命令的歷史。

特洛伊網絡監控計劃

這些程序為遠程用戶提供了後門,可以向遠程用戶提供inetd、rsh、ssh等服務,具體取決於版本。隨著版本的升級,Linux Rootkit IV的功能越來越強大,功能也越來越豐富。壹般包括以下網絡服務程序:

inetd

特洛伊inetd程序,為攻擊者提供遠程訪問服務。

rshd

為攻擊者提供遠程外殼服務。攻擊者可以使用rsh-l rootkit password host command命令啟動遠程根外殼。

sshd

為攻擊者提供ssh服務的後門程序。

工具程序

所有不屬於上述類型的程序都可以歸為這壹類,它們實現了遠程shell的日誌清理、消息嗅探、端口綁定等壹些功能,包括:

固定

文件屬性偽造程序

linsniffer

消息嗅探程序。

嗅嗅

壹個簡單的bash shell腳本,用於檢查系統中是否運行了嗅探器。

wted

Wtmp/utmp日誌編輯器。您可以使用此工具編輯所有wtmp或utmp文件。

z2

Utmp/wtmp/lastlog日誌清理工具。您可以刪除utmp/wtmp/lastlog文件中關於用戶名的所有條目。但是,如果您需要手動修改Linux系統的源代碼,請設置日誌文件的位置。

bindshell rootkit

將shell服務綁定在壹個端口上,默認端口是12497。為遠程攻擊者提供外殼服務。

如何找到rootkit

顯然,只有使您的網絡非常安全,以便攻擊者可以利用它,您才能保護您的網絡免受rootkit。不過這個保證恐怕沒有人能提供,但是在日常的網絡管理和維護中保持壹些良好的習慣,可以在壹定程度上減少rootkit帶來的損失,及時發現rootkit的存在。

首先,不要在網絡上使用明文傳輸密碼,或者使用壹次性密碼。這樣,即使妳的系統已經安裝了rootkit,攻擊者也無法通過網絡監控獲取更多的用戶名和密碼,從而避免了入侵的擴散。

使用諸如Tripwire和aide之類的檢測工具可以幫助您及時發現攻擊者的入侵,並且它們可以提供對系統完整性的良好檢查。這些工具不同於其他入侵檢測工具。他們不是通過所謂的攻擊簽名來檢測入侵行為,而是監控和檢查系統中的變化。Tripwire首先使用特定的特征碼功能為要監控的系統文件和目錄建立特征數據庫。所謂特征碼函數,就是以任意文件作為輸入,生成固定大小數據(特征碼)的函數。如果入侵者修改了文件,即使文件大小不變,也會破壞文件的特征碼。使用這個數據庫,Tripwire可以很容易地發現系統的變化。而且幾乎不可能偽造文件的特征碼,系統的任何改動都逃不過Tripwire的監控(當然前提是妳已經對妳的系統做了準確的配置:P,Tripwire和aide的使用請參考本站相關文章)。最後,您需要能夠將這個簽名數據庫放在壹個安全的地方。

Rootkit是壹種特殊類型的惡意軟件。Rootkit很特別,因為妳不知道他們在做什麽。Rootkit基本上檢測不到,幾乎不可能刪除它們。盡管檢測工具越來越多,惡意軟件開發人員仍在不斷尋找新的方法來掩蓋他們的蹤跡。

Rootkit的目的是隱藏自己和其他軟件不被發現。它可以通過阻止用戶識別和刪除攻擊者的軟件來實現這壹目標。Rootkit可以隱藏幾乎任何軟件,包括文件服務器、鍵盤記錄器、僵屍網絡和Remailer。許多Rootkit甚至可以隱藏大量文件,並允許攻擊者在您的計算機上保存許多文件,但您看不到它們。

Rootkit本身不會像病毒、蠕蟲壹樣影響電腦的運行。攻擊者可以識別目標系統上現有的漏洞。漏洞可能包括:開放的網絡端口、未打補丁的系統或管理員密碼脆弱的系統。獲得易受攻擊系統的訪問權限後,攻擊者可以手動安裝Rootkit。這種偷偷摸摸的攻擊通常不會觸發自動網絡安全控制功能,如入侵檢測系統。

很難找到Rootkit。有壹些軟件包可以檢測Rootkit。這些軟件包可以分為兩類:基於簽名的檢查器和基於行為的檢查器。基於簽名的檢查程序,如大多數病毒掃描程序,檢查二進制文件是否是已知的Rootkit。基於行為的檢查器試圖通過尋找壹些代表其主要行為的隱藏元素來找到Rootkit。壹個流行的基於行為的Rootkit檢查器是Rootkit Revealer。

在發現系統中存在Rootkit之後,可以采取的補救措施也是有限的。因為Rootkit可以隱藏自己,所以妳可能不知道它們在系統中存在了多久。而且妳也不知道Rootkit破壞了哪些信息。對付找到的Rootkit最好的辦法就是清除並重裝系統。雖然這種方法比較嚴厲,但卻是唯壹被證明可以徹底刪除Rootkit的方法。

防止Rootkit進入妳的系統是最好的使用方法。為了達到這個目的,我們可以使用與所有攻擊計算機的惡意軟件相同的深度防禦策略。深度防禦的要素包括病毒掃描程序、定期更新軟件、在主機和網絡上安裝防火墻以及強密碼策略。