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