?? 在局域網中,Sniffer是一個很大的威脅。惡意用戶可以籍此看到一些機密文件和及一些個人的隱私。Sniffer對安全有如此的威脅,但它可以方便的在因特網上下免費下栽并安裝在PC上。但是,目前為止,還沒有很好的方法來檢測誰的PC安裝了Sniffer軟件。這篇文檔將討論利用ARP包來檢測那些在公司和學校局域網內Sniffing的惡意用戶。
?? 網卡混雜模式:為Sniffer竊取信息開后門
?? 局域網通常是以太網組成的。在以太網上用的是IPV4協(xié)議,數據是明文傳輸的,除非用了加密軟件。當用戶發(fā)信息到網絡上時,他只希望網絡另一端的用戶能接收到。不幸的是,以太網的機制給未被授權的用戶提供了竊聽信息的機會。
?? 我們知道,在以太網中,信息會發(fā)送到網絡中所有的節(jié)點,有些節(jié)點會接收這些信息,同時有些節(jié)點會簡單的丟棄這些信息。接收或丟棄信息由網卡來控制。網卡不會接收所有發(fā)到局域網的數據包,即使它連在以太網上;相反它會過濾掉一些特定的數據包。在這篇文檔里,我們將稱這種過濾為網卡的硬件過濾。Sniffer會被網卡設置成特定的模式,這樣網卡就可以接收所有到達的數據包了,而不管它是不是這些包指定的目的地址。這種網卡的模式稱為混雜模式。
?? Sniffer接收所有的數據包,而不是發(fā)送一些非法包。所以它不會干擾網絡的正常運行,因此很難檢測到這種惡意行為。雖然如此,網卡的混雜模式顯然是不同于正常模式的。一個本來應該被過濾的包在這種模式下會被允許到達系統(tǒng)內核。是不是做出響應取決于系統(tǒng)內核。
?? 尋找Sniffer竊取者的致命弱點
?? 我們把檢測混雜模式的方法用一個現實世界的例子來模擬。假設會議室里正在開會。一個竊聽者用他的一只耳朵靠著會議室的墻壁。當他正在竊聽的時候,他會屏住呼吸,靜靜的聽著會議室的所有對話。但是如果有人在會議里喊他的名字,"MR. **?"竊聽者有時候會應聲"YES!"這種類比看起來有些荒謬,但確實是應用在檢測網絡的SNIFFING上了。因為SINFFER接收所有的數據包,包括那些本來不是發(fā)給它的,所以它可能會對那些本來應該被網卡過濾的包錯誤地做出響應。所以,我們對混雜模式的檢測建立在以下的基礎上:向網絡上所有的節(jié)點發(fā)送ARP請求包,檢查是不是有ARP響應包。
?? 為了解釋這個原理,首先,我們從網卡的混雜模式和普通模式的區(qū)別開始。所有以太網卡都有6字節(jié)的硬件地址。廠商分配這些地址,而且每個地址都是唯一的。從理論上說,不存在兩塊硬件地址一樣的網卡。以太網上信息的交流是建立在硬件地址的基礎上的。但是網卡為了接收不同類型的數據包,可以建立不同的過濾機制?,F對網卡的各種過濾機制說明如下:
?? 單播(UNICAST)
?? 接收所有目標地址和網卡的硬件地址一樣的包。
?? 廣播(Broadcast)
?? 接收所有的廣播包。廣播包的目的地址是FFFFFFFFFFFF。這種模式是為了能收到那些希望能到達網絡所有節(jié)點的包。
?? 組播(Multicast)
?? 接收所有預先注冊好的特定組的包。只有那些預先注冊的組才會被網卡接收。
?? 所有的組播(All Multicast)
?? 接收所有的組播。這種模式和上層的協(xié)議有關聯(lián),這種模式會接收所有組播位設為1的包。
?? 混雜(Promiscuous)
?? 接收所有的數據包而不管它的目的地址是什么。
?? 上圖示意了在正常模式和混雜模式下硬件過濾的操作方式。通常情況下,網卡的硬件過濾會設置成單播,廣播和組播1模式。網卡只接收目的地址和它的硬件地址一樣,廣播地址(FF:FF:FF:FF:FF:FF)和組播地址1(01:00:5E:00:00:01)。
?? ARP檢測包找出混雜模式節(jié)點
?? 正如前面所陳述的,網卡設置成普通模式和混雜模式對包的過濾是不同的。當網卡被設成混雜模式后,本來被過濾的包會允許到達系統(tǒng)內核。利用這種機制,我們建立一種新的機制來檢測混雜模式節(jié)點:如果構造一個目的地址不是廣播地址的ARP包,把它發(fā)送到網絡的每個節(jié)點,如果發(fā)現有些節(jié)點有響應,那么這些節(jié)點工作在混雜模式。
?? 我們簡單地看一下正常的ARP請求和響應的操作方式。首先,為解析192.168.1.10產生一個ARP請求包。它的目的地址為廣播地址,使網絡上所有的節(jié)點能夠收到。理論上,只有IP地址符合的節(jié)點才會響應。
?? 但是,如果把ARP包的目的地址設成非廣播地址呢?比如,如果把目標地址設成00-00-00-00-00-01?當網卡處于正常模式,這個包將被認為"TO OTHERHOST"包,因此將被網卡的硬件過濾拒絕。但是,如果網卡處于混雜模式,那么網卡不會執(zhí)行過濾操作。所以包將被允許到達系統(tǒng)內核。系統(tǒng)內核會認為ARP請求包到達了,因為它包含了與PC相同的IP地址,這樣,它應該會對請求包作出響應。但讓人奇怪的是,內核事實上沒有對包做出響應(如下圖)。這令人意外的結果說明系統(tǒng)內核存在著其它的過濾機制,因為事實上包被系統(tǒng)內核過濾了。我們把這種過濾稱之為軟件過濾。
?? 進一步說,對混雜模式的檢測可以從對比硬件過濾和軟件過濾的區(qū)別來達到。硬件過濾通常會屏蔽一些非法的包。如果一個包能夠通過硬件過濾,它通常也能通過軟件過濾。我們設想構建被硬件過濾拒絕而同時能夠通過軟件過濾的包。通過發(fā)送這樣的包,正常模式的網卡不會作出響應,而混雜模式的網卡會作出響應。
?? 軟件過濾破獲Sniffer竊取者
?? 軟件過濾建立在操作系統(tǒng)內核的基礎上,所以要了解軟件過濾必須明白操作系統(tǒng)內核是如何工作的。LINUX開放源代碼,因此可以獲取它的軟件過濾機制。但是微軟的WINDOWS源代碼是非公開的,其軟件過濾機制只能從實驗上去猜測推理。
?? 1)LINUX
?? 在LINUX的以太網模塊,根據地址的不同包可以分為以下幾類:
?? BROADCAST PACKETS:
?? FF:FF:FF:FF:FF:FF
?? MULTICAST PACKETS:
?? 除了廣播包外,組標識位置1的包。
?? TO_US PACKETS:
?? 所有目的地址和網卡硬件地址一樣的包。
#p#副標題#e#
?? OTHERHOST PACKETS:
?? 所有目的地址和網卡硬件地址不一樣的包。
?? 在這里,我們假設組標識位置1的包就是MULTICAST PACKETS。以太網MULTICAST PACKET對應IP網絡的地址是01-00-5E-**-**-**,所以MULTICAST PACKETS應該不能只用組標識位來區(qū)別。但,實際上這個假設是正確的,因為01-00-5E-**-**-**是IP網絡基礎上的,而網卡的硬件地址可以用在其它的上層協(xié)議。
?? 其次,我們看一下LINUX的ARP模塊。ARP模塊會拒絕所有的OTHERHOST PACKETS。同時,它會對BROADCAST,MULTICAST,和TO_US PACKETS作出響應。下表示意了硬件過濾和軟件過濾的響應。我們給出了六種不同類型地址的包發(fā)到網卡后,硬件過濾和軟件過濾是如何操作的
TO_US PACKETS:
?? 當網卡處正常模式,所有TO_US PACKETS能通過硬件過濾,也能通過軟件過濾,所以ARP模塊將對這種包做出響應而不管網卡是否處于混雜模式。
?? OTHERHOST PACKETS:
?? 當網卡處于正常模式,將拒絕OTHERHOST PACKETS。即使當網卡處于混雜模式,軟件過濾也將拒絕這種類型的包。所以對ARP REQUESTS將不會做出響應。
?? BROADCAST PACKET:
?? 在正常模式,BROADCAST PACKETS將通過硬件過濾和軟件過濾。所以無論網卡處于什么模式都會有響應包。
?? MULTICAST PACKETS:
?? 在正常模式,未在預先注冊過的組列表中的地址的包將被拒絕。但是,如果網卡處在混雜模式,這種類型的包將會通過硬件過濾,而且,因為軟件過濾也不會拒絕這種類型的包,所以將會產生一個響應。在這種情況下,網卡處于不同的模式會有不同的結果產生。
?? GROUP BIT PACKETS:
?? 不是BROADCAST或MULTICAST包,但其組標識位置1。在正常模式下,會拒絕這種包,而在混雜模式下,這種包將會通過。而且因為這種包會被軟件過濾認為是組播包,所以這種包能通過軟件過濾。組標識位置1的包能夠用來檢測混雜模式。
?? 2)WINDOWS
?? WINDOWS非源代碼開放的操作系統(tǒng),我們不能通過查看它的源碼來分析它的軟件過濾。相反,我們只能通過實驗的方式來測試它的軟件過濾。以下7種地址會被WINDOWS利用:
?? FF-FF-FF-FF-FF-FF BROADCAST ADDRESS:
?? 所有接點將會收到這種類型的包,并作出響應。正常的ARP請求包用的就是這種地址。
?? FF-FF-FF-FF-FF-FE FAKE BROADCAST ADDRESS:
?? 這是最后一位置0假冒的廣播地址。用來檢測軟件過濾是否會檢查所有的地址位,進而是否會對這種包作出響應。
?? FF-FF-00-00-00-00 FAKE BROADCAST 16 BITS:
?? 這是只有前16位置1的假冒的廣播地址。它可能會被認為是廣播地址,而且在過濾機制只檢查前16位的情況下會得到響應。
?? FF-00-00-00-00-00 FAKE BROADCAST 16 BITS:
?? 這是只有前8位置1的假冒的廣播地址。它可能會被認為是廣播地址,而且在過濾機制只檢查前8位的情況下會得到響應。
?? 01-00-00-00-00-00GROUP BIT ADDRESS:
?? 組標識位置1的地址,用來檢查是否會被認為是組播地址。
?
關鍵詞標簽:Sniffer,ARP
相關閱讀
熱門文章 火絨安全軟件開啟懸浮窗的方法-怎么限制和設置軟件網速 火絨安全軟件怎么攔截廣告-火絨設置廣告攔截的方法 網絡安全管理軟件-PCHunter使用教程 騰訊QQ密碼防盜十大建議
人氣排行 火絨安全軟件開啟懸浮窗的方法-怎么限制和設置軟件網速 火絨安全軟件怎么攔截廣告-火絨設置廣告攔截的方法 網絡安全管理軟件-PCHunter使用教程 xp系統(tǒng)關閉445端口方法_ 教你如何關閉xp系統(tǒng)445端口 什么是IPS(入侵防御系統(tǒng)) 企業(yè)網絡安全事件應急響應方案 ARP協(xié)議的反向和代理 Windows Server 2008利用組策略的安全設置