嗅探器檢測工具和對策

本篇文章將討論通過進入混雜模式下對網絡數據包進行監聽的工具軟件及采取何種對策以降低其破壞性。為了保證網絡的安全性和防止不必要的恐慌,係統管理人員應該非常熟悉這些探測工具的能力和其局限性,並在遇到此類問題時應能采取正確的措施。

本機監控

不同操作係統的計算機采用的檢測工具也不盡相同。大多數UNIX係列操作係統都使用"ifconfig"。利用"ifconfig"管理人員可以知道網卡是否工作在混雜模式下。但是因為安裝未被授權的sniffer時,特洛伊木馬程序也有可能被同時安裝,因而"ifconfig"的輸出結果就可能完全不可信。係統管理人員還可以選擇其它的主要工具來檢測sniffers(嗅探器)是否存在,例如"ls","df","du","ps","find"和"netstat"等等,但是以上問題仍有可能發生。許多流行的特洛伊木馬程序在係統的"/dev/"目錄下都有自己的ASCII文件,該文件中包含該木馬程序的配置信息。在安全係統中,"/dev/"目錄下應該沒有ASCII文件,因而係統管理人員應該定時檢測"/dev/"目錄。如果"/dev/"目錄下存在ASCII文件,則表明係統中已經被攻擊者安裝了sniffer(嗅探器)。特洛伊木馬的ASCII配置文件一般包括sniffers(嗅探器)和與其輸出文件相關的進程信息和相應的文件信息,這些信息一般都對係統管理人員隱藏。

大多數版本的UNIX都可以使用lsof(該命令顯示打開的文件)來檢測sniffer(嗅探器)的存在。lsof的最初的設計目地並非為了防止sniffer(嗅探器)入侵,但因為在sniffer(嗅探器)入侵的係統中,sniffer(嗅探器)會打開其輸出文件,並不斷傳送信息給該文件,這樣該文件的內容就會越來越大,因而lsof就有了用武之地。如果利用lsof發現有文件的內容不斷的增大,我們就有理由懷疑係統被人裝了sniffer(嗅探器)。因為大多數sniffers(嗅探器)都會把截獲的"TCP/IP"數據寫入自己的輸出文件中,因而係統管理人員可以把lsof的結果輸出到"grep"來減少係統被破壞的可能性。

對於BSD的UNIX,可以使用cpm來檢測sniffer(嗅探器)的存在。cpm(該命令檢測混雜模式的存在)是由CERT/CC開發的工具軟件。在1994年,好多網站報告合法用戶名、用戶密碼和關鍵數據被惡意偷竊,cpm就在那時應運而生。更多的相關內容請參閱如下站點http://www.cert.org/advisories/CA-1994-01.html。cpm使用socket(2)和ioctl(2)來判斷是否有網卡處在混雜模式,並向係統彙報檢測結果。cpm隻列出處在混雜模式的網卡。

對於使用SunOS5.5和5.6的用戶,可以使用ifstatus檢測sniffer(嗅探器)的存在。用戶可以從ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/ifstatus/站點下載該工具。該工具軟件向係統彙報哪些網卡處在debug模式或者混雜模式。

對於NT係統,並沒有太知名的sniffer(嗅探器)檢測工具供使用。就作者所知,NT平台上並沒有切實可行的工具去測試網卡的混雜模式。出現這種情況的原因在於作為Microsoft係統平台一部分的工具也可能已經被安裝了特洛伊木馬程序。使用"alpha"機器的NT用戶可以考慮使用"rootkit"(www.rootkit.com)。Microsoft平台遠程可以利用的管理員級安全漏洞很少,這可能是Microsoft平台下sniffer(嗅探器)工具和檢測工具相對較少的一個原因。

監控本地局域網的數據幀

監控DNS流量。係統管理人員可以運行自己的sniffer(嗅探器),例如tcpdump,Windump和snoop等等,監控網絡中指定主機的DNS流量。因為係統管理人員通常指定某些特定的服務器進行監控,以便了解網絡的性能,因而sniffer一般都自動的進行IP級的DNS查詢。舉例說明,一個網站的郵件服務器名為mail.foo.com,則其DNS就可能為ns.foo.com。這樣惡意攻擊者就可以利用sniffer進行DNS查詢,並從中獲取網絡有用信息,進而破壞係統。

考慮使用Antisniff。係統管理人員可以從www.l0pht.com/antisniff下載該工具軟件,該軟件是唯一的網絡級商業化sniffer測試工具。按照L0pht的軟件介紹,Antisniff發送特定的數據幀到網絡中,以便發現混雜模式下係統的回應。Antisniff可用於三種不同類型的測試:操作係統詳細測試、DNS測試和係統可能潛伏問題測試。