在網(wǎng)絡(luò)攻擊環(huán)境下,這卻是可能發(fā)生的。當(dāng)一個(gè)攻擊者利用一個(gè)系統(tǒng)漏洞非法入侵進(jìn)入到你的系統(tǒng)。當(dāng)你使用ps命令列出系統(tǒng)中的所有的進(jìn)程時(shí),卻看不到什么異常的證據(jù)。你查看你的password文件,一切也是那么的正常。到底發(fā)生了什么事情呢?當(dāng)系統(tǒng)進(jìn)入到你的系統(tǒng)以后,第一步要做的事情就是取代系統(tǒng)上某些特定的文件:如netstat命令等。當(dāng)你使用netstat -a命令時(shí),就不會(huì)顯示系統(tǒng)攻擊者存在的信息。當(dāng)然攻擊者將替代所有的可能泄露其存在的文件。一般來(lái)說(shuō)包括:
|
由于這些文件已經(jīng)被取代。所以簡(jiǎn)單的利用ls命令查看這些文件是看不出什么破綻的。有若干種方法你可以驗(yàn)證系統(tǒng)文件的完整性。如果你安裝的是Red Hat, Caldera, TurboLinux或任何使用RPM的系統(tǒng)。你可以利用RPM來(lái)驗(yàn)證系統(tǒng)文件的完整性:
首先你應(yīng)該查明你的那些你需要查看的文件來(lái)自哪個(gè)軟件包,使用rpm命令你可以查明某個(gè)文件屬于某個(gè)包:
|
然后,可以掃描整個(gè)rpm包來(lái)查看那些發(fā)生了改變。對(duì)沒(méi)有發(fā)生改變的包使用該命令將沒(méi)有任何輸出信息,如下所示:
|
將netstat的5.2版本的二進(jìn)制可執(zhí)行文件替換為6.0的版本以后再使用該命令的結(jié)果為:
|
這說(shuō)明/bin/netstat/文件已經(jīng)被修改。若我使用rpm -qf測(cè)試ps和top命令可以得到其屬于包procps,然后在驗(yàn)證包procps的完整性。下面是一個(gè)被黑的站點(diǎn)的結(jié)果:
|
攻擊者入侵到系統(tǒng)中,并且用自己的ps及top命令替代了我們系統(tǒng)中的命令。從而使管理員看不到其運(yùn)行的進(jìn)程,也許是一個(gè)sniffer來(lái)監(jiān)聽(tīng)所有的用戶所有進(jìn)出網(wǎng)絡(luò)的數(shù)據(jù)并找尋到密碼信息。
下面是一個(gè)小的script來(lái)掃描你系統(tǒng)的所有的rpm庫(kù),并檢查所有的包是否被篡改。但是應(yīng)該注意的是并不是所有該scripts報(bào)告的問(wèn)題都是說(shuō)明該系統(tǒng)文件被攻擊者破壞。例如你的apssword文件一般肯定和你安裝系統(tǒng)時(shí)是不同的:
|
當(dāng)你運(yùn)行該scripts時(shí),輸出被定向到文件/tmp/rpmverify.out你可以使用less命令查看該文件。但是由于文本文件如:/etc/passwd, /etc/inetd.conf等很可能顯示為被修改過(guò)。但是你如何知道這些是管理員自己修改的還是入侵者修改的呢方法是在你確保你的系統(tǒng)是干凈的,沒(méi)有被攻擊者入侵時(shí),你為這些系統(tǒng)文件創(chuàng)建指紋信息。在你懷疑你的系統(tǒng)被入侵時(shí)使用這些這些指紋信息來(lái)判定系統(tǒng)是否被入侵。創(chuàng)建文件的指紋信息是通過(guò)命令md5sum 來(lái)實(shí)現(xiàn)的:
|
這些數(shù)據(jù)是我的系統(tǒng)上的文件的指紋信息。不同的系統(tǒng)上的文件的 指紋信息可能是不同的,你應(yīng)該是使用md5sum來(lái)計(jì)算自己系統(tǒng)文件的指紋信息。下面是一些你應(yīng)該創(chuàng)建指紋信息的文件;
|
通過(guò)指紋信息你可以決定是否有系統(tǒng)文件被修改。


