如何防御Sniffer攻擊
什么是Sniffer攻擊?
Sniffer是一種常用的收集有用數(shù)據(jù)方法,這些數(shù)據(jù)可以是用戶的帳號和密碼,可以是一些商用機(jī)密數(shù)據(jù)等等。隨著Internet及電子商務(wù)的日益普及,Internet的安全也越來越受到重視。在Internet安全隱患中扮演重要角色之一的Sniffer以受到越來越大的關(guān)注,所以今天我要向大家介紹一下介紹Sniffer以及如何阻止sniffer。
如何發(fā)現(xiàn)Sniffer?
Sniffer最大的危險(xiǎn)性就是它很難被發(fā)現(xiàn),在單機(jī)情況下發(fā)現(xiàn)一個Sniffer還是比較容易的,可以通過查看計(jì)算機(jī)上當(dāng)前正在運(yùn)行的所有程序來實(shí)現(xiàn),當(dāng)然這不一定可靠。
在UNIX系統(tǒng)下可以使用下面的命令:ps-aux。這個命令列出當(dāng)前的所有進(jìn)程、啟動這些進(jìn)程的用戶、它們占用CPU的時間以及占用多少內(nèi)存等等。
在Windoos系統(tǒng)下,可以按下Ctrl+Alt+Del鍵,查看任務(wù)列表。不過,編程技巧高的Sniffer即使正在運(yùn)行,也不會出現(xiàn)在這里。
另一個方法就是在系統(tǒng)中搜索,查找可懷疑的文件。但人侵者用的可能是他們自己寫的程序,所以這給發(fā)現(xiàn)Sniffer造成相當(dāng)大的困難。還有許多工具能用來查看你的系統(tǒng)會不會處于混雜模式,從而發(fā)現(xiàn)是否有一個Sniffer正在運(yùn)行。 但在網(wǎng)絡(luò)情況下要檢測出哪一臺主機(jī)正在運(yùn)行Sniffer是非常困難的,因?yàn)镾niffer是一種被動攻擊軟件,它并不對任何主機(jī)發(fā)出數(shù)據(jù)包,而只是靜靜地運(yùn)行著,等待著要捕獲的數(shù)據(jù)包經(jīng)過。
如何抵御Sniffer?
雖然發(fā)現(xiàn)一個Sniffer是非常困難的,但是我們?nèi)匀挥修k法抵御Sniffer的嗅探攻擊。既然Sniffer要捕獲我們的機(jī)密信息,那我們干脆就讓它捕獲,但事先要對這些信息進(jìn)行加密,黑客即使捕捉到了我們的機(jī)密信息,也無法解密,這樣,Sniffer就失去了作用。
黑客主要用Sniffer來捕獲Telnet、FTP、POP3等數(shù)據(jù)包,因?yàn)檫@些協(xié)議以明文在網(wǎng)上傳輸,我們可以使用一種叫做SSH的安全協(xié)議來替代Telnet等容易被Sniffer攻擊的協(xié)議。
SSH又叫Secure Shell,它是一個在應(yīng)用程序中提供安全通信的協(xié)議,建立在客戶/服務(wù)器模型上。SSH服務(wù)器分配的端口是22,連接是通過使用一種來自RSA的算法建立的。在授權(quán)完成后,接下來的通信數(shù)據(jù)用IDEA技術(shù)來加密。這種加密方法通常是比較強(qiáng)的,適合于任何非秘密和非經(jīng)典的通信。
SSH后來發(fā)展成為F-SSH,提供了高層次的、軍方級別的對通信過程的加密。它為通過TCP/IP的網(wǎng)絡(luò)通信提供了通用的最強(qiáng)的加密。如果某個站點(diǎn)使用F—SSH,用戶名和口令就不再重要了。目前,還沒有人突破過這種加密方法。即使是Sniffer,收集到的信息將不再有價值。有興趣的讀者可以參看與SSH相關(guān)的書籍。
另一種抵御Sniffer攻擊的方法是使用安全的拓?fù)浣Y(jié)構(gòu)。因?yàn)镾niffer只對以太網(wǎng)、令牌環(huán)網(wǎng)等網(wǎng)絡(luò)起作用,所以盡量使用交換設(shè)備的網(wǎng)絡(luò)可以從最大程度上防止被Sniffer竊聽到不屬于自己的數(shù)據(jù)包。還有一個原則用于防止Snther的被動攻擊 一個網(wǎng)絡(luò)段必須有足夠的理由才能信任另一網(wǎng)絡(luò)段。網(wǎng)絡(luò)段應(yīng)該從考慮具體的數(shù)據(jù)之間的信任關(guān)系上來設(shè)計(jì),而不是從硬件需要上設(shè)計(jì)。一個網(wǎng)絡(luò)段僅由能互相信任的計(jì)算機(jī)組成。通常它們在同一個房間里,或在同一個辦公室里,應(yīng)該固定在建筑的某一部分。注意每臺機(jī)器是通過硬連接線接到集線器(Hub)的,集線器再接到交換機(jī)上。由于網(wǎng)絡(luò)分段了,數(shù)據(jù)包只能在這個網(wǎng)段上被捕獲,其余的網(wǎng)段將不可能被監(jiān)聽。
所有的問題都?xì)w結(jié)到信任上面。計(jì)算機(jī)為了和其他計(jì)算機(jī)進(jìn)行通信,它就必須信任那臺計(jì)算機(jī)。系統(tǒng)管理員的工作就是決定一個方法,使得計(jì)算機(jī)之間的信任關(guān)系很小。這樣,就建立了一種框架,告訴你什么時候放置了一個Sniffer,它放在哪里,是誰放的等等。
如果局域網(wǎng)要和Internet相連,僅僅使用防火墻是不夠的。人侵者已經(jīng)能從一個防火墻后面掃描,并探測正在運(yùn)行的服務(wù)。應(yīng)該關(guān)心的是一旦人侵者進(jìn)人系統(tǒng),他能得到些什么。你必須考慮一條這樣的路徑,即信任關(guān)系有多長。舉個例子,假設(shè)你的Web服務(wù)器對計(jì)算機(jī)A是信任的,那么有多少計(jì)算機(jī)是A信任的呢?又有多少計(jì)算機(jī)是受這些計(jì)算機(jī)信任的呢?一句話,就是確定最小信任關(guān)系的那臺計(jì)算機(jī)。在信任關(guān)系中,這臺計(jì)算機(jī)之前的任何一臺計(jì)算機(jī)都可能對你的計(jì)算機(jī)進(jìn)行攻擊并成功。你的任務(wù)就是保證一旦出現(xiàn)Sniffer,它只對最小范圍有效。
Sniffr往往是在攻擊者侵人系統(tǒng)后使用的,用來收集有用的信息。因此,防止系統(tǒng)被突破很關(guān)鍵。系統(tǒng)安全管理員要定期的對所管理的網(wǎng)絡(luò)進(jìn)行安全測試,防止安全隱患。同時要控制擁有相當(dāng)權(quán)限的用戶的數(shù)量,因?yàn)樵S多攻擊往往來自網(wǎng)絡(luò)內(nèi)部。
防止Sniffer的工具有哪些?
Antisniff是由著名黑客組織(現(xiàn)在是安全公司了)L0pht開發(fā)的工具,用于檢測本地網(wǎng)絡(luò)是否有機(jī)器處于混雜模式(即監(jiān)聽模式)。
一臺處于混雜模式的機(jī)器意味著它很可能已被入侵并被安裝了Sniffer。對于網(wǎng)絡(luò)管理員來說,了解哪臺機(jī)器正處于混雜模式以作進(jìn)一步的調(diào)查研究是非常重要的。
Antisniff 1.X版運(yùn)行在以太網(wǎng)的WindOWS NT系統(tǒng)中,并提供了簡單易用的用戶圖形界面。該工具以多種方式測試遠(yuǎn)程系統(tǒng)是否正在捕捉和分析那些并不是發(fā)送給它的數(shù)據(jù)包。這些測試方法與其操作系統(tǒng)本身無關(guān)。
Antisniff運(yùn)行在本地以太網(wǎng)的一個網(wǎng)段上。如果在非交換式的C類網(wǎng)絡(luò)中運(yùn)行,Antisniff能監(jiān)聽整個網(wǎng)絡(luò);如果網(wǎng)絡(luò)交換機(jī)按照工作組來隔離,則每個工作組中都需要運(yùn)行一個Antisniff。原因是某些特殊的測試使用了無效的以太網(wǎng)地址,另外某些測試需要進(jìn)行混雜模式下的統(tǒng)計(jì)(如響應(yīng)時間、包丟失率等)。
Antisniff的用法非常簡便,在工具的圖形界面中選擇需要進(jìn)行檢查的機(jī)器,并且指定檢查頻率。對于除網(wǎng)絡(luò)響應(yīng)時間檢查外的測試,每一臺機(jī)器會返回一個確定的正值或負(fù)值。返回的正值表示該機(jī)器正處于混雜模式,這就有可能已經(jīng)被安裝了Sniffer。
對于網(wǎng)絡(luò)響應(yīng)時間測試的返回值,建議根據(jù)第一次返回的數(shù)值計(jì)算標(biāo)準(zhǔn)值,然后再對在flood和非flood兩次測試時返回的結(jié)果有較大變化的機(jī)器進(jìn)行檢查。一旦這些機(jī)器退出混雜模式返回到正常操作模式下,Antisniff的下一次測試將會記錄到混雜模式和非混雜模式的差值(正值)。
應(yīng)該周期性地運(yùn)行Antisniff,具體周期值根據(jù)不同的站點(diǎn)、不同的網(wǎng)絡(luò)負(fù)荷、測試的機(jī)器數(shù)量和網(wǎng)站策略等而有所不同。