ARP防火牆

ARP防火牆

網絡防火牆
ARP防火牆通過在系統内核層攔截虛假ARP數據包以及主動通告網關本機正确的MAC地址,可以保障數據流向正确,不經過第三者,從而保證通訊數據安全、保證網絡暢通、保證通訊數據不受第三者控制,從而完美的解決上述所有問題。[1]ARP防火牆采用内核層攔截技術和主動防禦技術,幾大功能模塊(攔截ARP攻擊/攔截IP沖突/DoS攻擊抑制/安全模式/ARP數據分析/監測ARP緩存/主動防禦/追蹤攻擊源/查殺ARP病毒/系統時間保護/IE首頁保護/ARP緩存保護/自身進程保護/智能防禦)互相配合,可徹底解決ARP相關問題,扼殺DoS攻擊源。
    中文名:ARP防火牆 外文名: 别名: 類型:網絡防火牆 目的:通訊數據安全、保證網絡暢通 特點:保障數據流向正确

工作原理

ARP是Address Resolution Protocol(地址轉換協議)的簡稱,是TCP/IP協議中最底層的協議之一。它的作用是完成IP地址到MAC(物理地址)的轉換。在局域網中兩台計算機之間的通訊,或者局域網中的計算機将IP數據包轉發給網關的時候,網卡都需要知道目标計算機的物理地址,以填充物理幀中的目的地址。

假設同一以太網中的計算機A(192.168.0.1)需要向計算機B(192.168.0.2)發送數據報,而此時A尚不知道B的物理地址。為了獲得B的物理地址,A在局域網上發送ARP廣播,查詢192.168.0.2這個物理地址,同時在ARP包中填入自己的物理地址Ma,相當于發出這樣的詢問“誰拿了192.168.0.2這個地址?請回Ma這個物理地址。”計算機B在收到了這個查詢以後,以Ma為目的地址發回一個ARP包,裡面包含了自己的物理地址。這樣通訊的雙方都了解了對方的物理地址,通訊過程正式建立。

通常ARP協議都在支持廣播的網絡上使用,比方以太網,這種數據包不能跨物理網段使用,即不能跨越一個路由器(除路由器本身還用作ARP代理以外)。

在實際的ARP協議軟件的實現中還有一些應該注意的事項:每台計算機上都有一個ARP緩沖,它保存了一定數量的從IP地址到MAC地址的映射,同時當一個ARP廣播到來時,雖然這個ARP廣播可能與它無關,但ARP協議軟件也會把其中的物理地址與IP地址的映射記錄下來,這樣做的好處是能夠減少ARP報在局域網上發送的次數。同時,ARP緩沖中IP地址與物理地址之間的映射并不是一但生成就永久有效,每一個ARP映射表項都有自己的時延,如果過了一定的時間還沒有新的ARP到來,那麼這個ARP映射就從緩沖中被删除了。那麼下一次計算機向這個IP地址發送數據包的時候必須來一次新的查詢。

本地網絡IP查找的原理。事實上Windows本身就用ARP來确定自己的IP地址是否與網絡上的另一台計算機發生了沖突。當一個ARP包到來時,Windows如果檢查到其中的IP地址與本機上的相同,而物理地址不同,這時Windows就會向用戶報告這個IP地址已經被别人占用。非常有意思的是,Windows對待IP地址是以先來後到的順序分配,如果已經有人先占了,那麼本機的網絡接口就會被禁用。

這也是非常惱人的“特色”因為一旦開機後有了第一次沖突,以後的任何網絡操作就都無效了。Windows XP有了一定的進步,它在發現沖突以後并不禁用接口,而是允許用戶進行修複。其實用sniffer可以看到所謂的“修複”也不過是發了幾個ARP包出去,把IP“搶”回來。

在以前的文章中我描述了一個用ICMP回送請求(類似PING)進行IP查找的程序。這個程序用并發的幾十個線程同時PING網絡上的多台計算機,如果回送請求被正确的應答了,那麼可以認為這個IP地址已經被占用,如果沒有,我們就宣稱它是空閑的。然而它有優點也有缺點,其優點是能夠PING很遠的計算機,即使不在同一個物理網段上,缺點是當目标計算機上安裝了防火牆并禁止了ICMP包,或者采用了防ICMP flood攻擊的規則以後都有可能讓ICMP回送請求得不到應答。

ARP的優點與缺點正好與ICMP相反。它無法跨物理網段進行IP查找,但是由于沒有防火牆禁止ARP包的通過(想想看,如果禁止了ARP包,也就等于不讓人家知道你的物理地址,那麼實際上也就是将自己的計算機同網絡斷開了),所以ARP包的IP查找結果一定是非常精準的。

在實現了一個原始的ARP IP查找版本以後,我發現其結果并不準确,有些已經沒有人使用的IP地址被錯誤的報成有人占用了,難道我的判斷是錯誤的?當然不,這種錯誤的原因是在Windows的ARP緩沖中。實際上,在發送一個ARP報文的時候,Windows會首先檢查本機的ARP緩沖,如果發現了已經有對應的ARP表項,而且還沒有過期的話,Windows并不會發送這個報文,而是直接返回給調用者這個ARP表項的内容。

這樣一來,假設有計算機中途掉網,而它的ARP表項還沒有過期,那麼這個程序仍然能夠得到它的IP到MAC的映射,自然也就會錯誤的宣稱這個IP地址還在使用中了。在運行這個程序前,我使用arp –d(事實上,在看了本文以後,你就可以實現一個這樣的arp程序了)這個命令來删除緩沖中所有的ARP表項,然後得到的結果就非常準确了。

IP Helper API 提供了管理ARP緩沖的過程,所以我修改了這個程序,把arp –d的功能集成到了自己的程序中來。如果看看《使用TCP/IP協議實際網際互連(第二卷)》你就會明白ARP協議軟件中的諸多問題。

IP Helper API GetIpNetTable函數能夠提取出本機上的所有ARP表項。使用它的方法與上一篇文章中使用的函數相當的類似,你也必須兩次使用它,第一次獲得緩沖的大小,而第二次獲得實際的ARP表。這個映射表是以數組的方式指出的。其結構如下:

typedef struct _MIB_IPNETTABLE {DWORD dwNumEntries; //數組的大小MIB_IPNETROW table[ANY_SIZE]; //數組本身} MIB_IPNETTABLE, *PMIB_IPNETTABLE;而MIB_IPNETROW 的定義:typedef struct _MIB_IPNETROW {DWORD dwIndex; // 網絡接口的索引号DWORD dwPhysAddrLen; // 物理地址長度BYTE bPhysAddr[MAXLEN_PHYSADDR]; // 物理地址DWORD dwAddr; // IP地址DWORD dwType; // ARP表項類型} MIB_IPNETROW, *PMIB_IPNETROW。

其中dwType即ARP表項類型是比較重要的東西,因為某些ARP表項一但設定就不再改變,比方本機地址的ARP表項和默認網關的地址表項等等,這些ARP表項并不會“過期”,除非網絡故障或者設置改變了以後,會重新生成一次ARP查詢。這種表項被稱為“靜态”的。此時dwType的值為4。在程序中,我們不必删除這類表項(雖然删了它們也不會造成什麼後果)。

然而在實際的程序中,我使用了FlushIPNetTable這個函數來删除特定網卡上的ARP緩沖。

然後是删除一個表項的DeleteIpNetEntry,修改表項的SetIpNetEntry 和添加表項的CreateIpNetEntry。還有兩個管理代理ARP表項的函數,關于代理ARP,可以看看《使用TCP/IP協議實現網際互連(第一卷)》關于ARP代理的部分,由于與我們的程序無關,就不做介紹了。

最後需要詳述的函數是SendARP。它的原型如下:

DWORD SendARP(IPAddr DestIP, // 目的IP 地址IPAddr SrcIP, // 源IP地址,可選參數,把它填成0不會有問題PULONG pMacAddr, // 返回的物理地址PULONG PhyAddrLen // 物理地址的長度。

主流品牌

瑞星

國内老牌的安全軟件廠商。

風雲

國内防火牆新興力量,風雲防火牆。風雲防火牆将秉持自己的簡約而不簡單的核心開發思想,認真綜合、考慮用戶的建議,開發、整合适于當前網絡時代防火牆趨勢與理念的功能,為用戶提供防護優秀、功能實用、操作簡單、占用資源低的風雲防火牆。

奇虎360

360ARP防火牆通過在系統内核層攔截ARP攻擊數據包,确保網關正确的MAC地址不被篡改,完美的解決局域網内ARP攻擊問題。

服務器安全狗

服務器安全狗是國内首款支持Windows全系列操作系統(Windows2003/Windows2008 32位 64位)的基于内核級的服務器安全防護軟件,軟件采用NDIS中間層驅動模式,從驅動層直接屏蔽攻擊,可以将針對服務器的攻擊帶來的損失降低到最小,最大程度地保護用戶服務器的安全。

彩影

ARP防火牆采用内核層攔截技術和主動防禦技術,幾大功能模塊(攔截ARP攻擊/攔截IP沖突/DoS攻擊抑制/安全模式/ARP數據分析/監測ARP緩存/主動防禦/追蹤攻擊源/查殺ARP病毒/系統時間保護/IE首頁保護/ARP緩存保護/自身進程保護/智能防禦)互相配合,可徹底解決ARP相關問題,扼殺DoS攻擊源。

超級巡警

專門查殺并可輔助查殺各種木馬、流氓軟件、利用rootkit技術的各種後門和其它惡意代碼(間諜軟件、蠕蟲病毒)等等。提供了多種專業工具,提供系統/IE修複、隐私保護和安全優化功能,提供了全面的系統監測功能,使你對系統的變化了如指掌,配合手動分析可近100%的查殺未知惡意代碼!

金山

金山ARP防火牆能夠雙向攔截ARP欺騙攻擊包,監測鎖定攻擊源,時刻保護局域網用戶PC的正常上網數據流向,是一款是适于個人用戶的反ARP欺騙保護工具!網關動态探測+識别——識破僞造的網關地址,動态獲取、并分析判斷後為受保護PC綁定正确的網關地址,從而時刻保障保護本機上網數據的正确流向。同時也支持用戶手動設置綁定網關地址。主動向真網關表明合法身份n雙向攔截ARP攻擊——外部攻擊、本機受感染攻擊均不影響使用。

攔截來自外部接受或是由本機發出的ARP攻擊數據包并提醒用戶,保障本機及其它PC的網絡通暢。保護本機不受IP沖突攻擊的影響,擊源追蹤鎖定,抓住罪魁禍首。

攔截到ARP攻擊包後立即追蹤攻擊源,找出安全威脅源頭。

軟件評測

在經過一段時間的測評之後,經驗是:如果操作系統是:windowsxp、windows2000、windows2003的話,最佳的選擇是風雲防火牆。作為國内新興的防火牆,風雲操作簡單易用,即便是新手使用也不會感到吃力。除了可以為PC提供不錯的ARP防護外,還可以提供TCP/IP終止、SSL終止、URL過濾、請求分析、會話跟蹤等全面防護。

如果操作系統是VISTA的話,最佳的選擇莫過于金山ARP防火牆了。金山ARP防火牆的安裝文件僅649K,資源占用區區752K,而ARP防護能力卻着實不弱,值得考慮。另外,彩影ARP防火牆個人版的ARP防護能力也不遜于金山ARP防火牆,隻是安裝文件比金山的要大,内存占用多一點。

相關詞條

相關搜索

其它詞條