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