對于RootKit后門來說,大體上分為內核級別和文件級別兩類。對于前者來說,其危害性尤為嚴重,因為其滲透進入了系統(tǒng)內核,卻沒有對系統(tǒng)文件進行任何修改,所以普通的安全工具是無法察覺到其存在的。當RootKit后門潛伏到系統(tǒng)內核后,黑客就可以輕松的獲得系統(tǒng)底層的控制權,甚至可以對系統(tǒng)內核進行修改,非法攔截外層程序向內核提交的各種命令和數據。這樣黑客就可以通過重定向的方式,劫持用戶所要運行的程序或者數據,讓黑客預設的不法程序獲得運行權,來擾亂系統(tǒng)的正常運作。
對于內核級別的RootKit后門,其防御難度是比較大的,這就要求管理員提前最好各種應對措施。例如使用權限最小化原則管理系統(tǒng),盡可能防止黑客獲取Root權限,避免其在系統(tǒng)內核中安置RootKit后門。
對于文件型RootKit來說,其特點是采用“李代桃僵”的方式,通過非法替換系統(tǒng)重要文件來隱藏自己。當黑客通過各種系統(tǒng)漏洞侵入系統(tǒng)后,會對正常的系統(tǒng)文件(例如各種命令程序:login、ls、netstat等)進行非法替換操作,使RootKit后門程序得以冒稱正常的系統(tǒng)文件。
最常見的手法是對“/bin/log”文件進行非法替換,該程序主要作用是對用戶提交的登錄賬戶和密碼進行驗證,因為不管是本地還是遠程登錄,都會使用到該程序,黑客將“/bin/log”文件替換為包含特殊密碼信息的RootKit后門,而其管理登錄的正常功能沒有變化。這樣黑客就可以Root賬戶身份登錄系統(tǒng),即使管理員有所察覺,為Root賬戶更改了復雜的密碼,對黑客的登錄其實沒有任何影響。
當然,黑客不滿足于替換某個系統(tǒng)文件,因為這樣的做的話很容易露出馬腳,所以黑客慣用的招數是對所有影響到其不法行為的系統(tǒng)文件都進行替換。例如為了防止管理員運行“ifconfig”、“find”、“netstat”等命令發(fā)現其活動蹤跡,就會使用精心設計的RootKit程序對這些文件全部進行替換,這樣管理員僅僅依靠這些“叛變”后的系統(tǒng)命令,自然是無法察覺到黑客活動的。
對于文件型RootKit木馬來說,最直接有效防御方法是使用Tripwire、Aide等工具,定期對系統(tǒng)文件進行完整性檢測,如果發(fā)現相關的系統(tǒng)出現異常變動,就說明RootKit很有可能嵌入了系統(tǒng)。
使用CHKrootkit這款工具,可以快速檢測Linux中是否存在RootKit后門,執(zhí)行“yum -y install gcc”、“yum -y install gcc-c++”、“yum -y install make”、“tar zxvf chkrootkit.tar.gz”,“cd chkrootkit-*”、“make sense”,“cd ..”、“cp -r chkrootkit-* /usr/local/chkrootkit”等命令,來安裝CHKrootkit以及所需的組件。執(zhí)行“/usr/local/chkrootkit”命令,就可以對系統(tǒng)進行檢測,如果在對應系統(tǒng)文件或者命令后面顯示“INFECTED”字樣,就說明其已經被RootKit后門所控制。
當然,要想充分發(fā)揮該工具的功能,需要深入其各項運行參數。例如“執(zhí)行/usr/local/chkrootkit -q”命令,實現安靜檢測模式,只顯示存在問題的項目。如果后跟“-l”參數,可以顯示測試的內容;如果后跟“-d”參數,則進入debug模式,會顯示檢測過程中使用到的相關命令;如果后跟“-x”參數,則進入高級檢測模式,顯示所有的檢測數據;如果后跟“-r dir”參數,可以將指定的目錄作為根目錄;如果后跟“-p dir”參數,可以指定檢測時鎖使用到的系統(tǒng)命令所在的目錄;如果后跟“-n”參數,可以跳過NFS連接的目錄。注意,在使用CHKrootkit時,會 使 用 到一些相關的系統(tǒng)命令(例如awk、cut、find等),如果這些系統(tǒng)命令被RootKit耨們控制,自然會影響到檢測精度。
因此,最可靠的方法是在系統(tǒng)處于干凈狀態(tài)時(例如剛安裝完系統(tǒng)),將這些系統(tǒng)命令文件備份出來,便于在檢測時使用。例如執(zhí)行“cp ` which --skipalias awk cut echo find egrep id head ls netstat ps string sed uname` /var/cmdbeifen/”命令,將相關的命令備份到指定的目錄中,并忽略這些命令的別名而只顯示命令正常執(zhí)行的結果。為了便于保存,執(zhí)行“tar zcvf /usr/cmdbeifen.tar.gz /var/cmdbeifen/”之類的命令,將備份的所有文件打包壓縮。在執(zhí)行執(zhí)行檢測時,可以執(zhí)行“/usr/local/chkrootkit -p /var/cmdbeifen/”之類的命令,使用這些純凈的系統(tǒng)命令,來執(zhí)行檢測操作,從而有效的保證檢測的精度。
同CHKrootkit相 比,RKHunter是一款功能強大的RootKit后門檢測工具,其可以通過執(zhí)行預設的腳本,來檢測系統(tǒng)中是否存在RootKit后門。
該工具可以利用MD5算法進行檢測校驗,檢測文件內容是否存在可疑變動,可以對系統(tǒng)文件和命令進行掃描,發(fā)現其是否被RootKit非法利用。RKHunter可以檢測木馬的特征信息,對常用文件的屬性信息進行分析,發(fā)現可能存在的問題,還可以檢測隱藏的文件,可疑的系統(tǒng)核心模塊,對開啟的網絡端口進行監(jiān)控。
執(zhí) 行“tar -zxvf rhkunter-x.x.x.tar.gz”,“cd rhkunter-x.x.x.tar.gz”,
“./installer.sh --layout default --instal”等 命令,來安裝該工具,其中的“x.x.x”表示具體的版本號。以Root身份在命令行下執(zhí)行 運 行“/usr/local/bin/rkhunter -c”命令,對系統(tǒng)進行全面檢測,其過程依次包括對系統(tǒng)二進制命令進行檢測,確定是否被RootKit所控制。之后對常見的RootKit后門程序進行掃描。
接下來執(zhí)行一些特殊的檢測,包括重要的目錄,指定的系統(tǒng)內核模塊,惡意程序等對象進行掃描。之后對網絡端口、連接信息、啟動文件、系統(tǒng)配置信息、登錄參數、文件系統(tǒng)等目標進行深入檢測,來發(fā)現潛在的其中的RootKit程序。當檢測完成后,會顯示詳細的報告信息,管理員借此可以全面了解系統(tǒng)的安全狀況。
為便于區(qū)別不同的檢測信息,該工具使用綠色表示安全的項目,紅色顯示存在危險的項目。當然,要想充分發(fā)揮該工具的功能,需要合理使用其各項運行參數。例如可以對“/etc/crontab”文件進行編輯,在其中添加“0 7 * * * /usr/local/bin/rkhunter -check--cronjob”行,讓該工具在每天的上午7點定時運行。執(zhí)行“/usr/local/bin/rkhunter -summary”命令,顯示詳細的統(tǒng)計信息。執(zhí)行“/usr/local/bin/rkhunter--check -sk”命令,可以讓檢測過程連貫進行。