《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 跨網段ARP欺騙的原理及防治策略的研究
跨網段ARP欺騙的原理及防治策略的研究
來源:微型機與應用2010年第21期
單家凌
(廣東白云學院 計算機系,廣東 廣州 510450)
摘要: ARP協議主要實現了網絡層地址到數據鏈路層地址的動態映射,由于ARP協議具有無序性、無確認性、動態性、無安全機制等特性,ARP欺騙攻擊成了局域網中一種常見的攻擊現象。在深入研究ICMP重新定向原理的基礎上,通過一個實例解釋了跨網段ARP欺騙原理和具體實現過程,并給出了具體的檢測與防范方法。
Abstract:
Key words :

摘  要: ARP協議主要實現了網絡層地址到數據鏈路層地址的動態映射,由于ARP協議具有無序性、無確認性、動態性、無安全機制等特性,ARP欺騙攻擊成了局域網中一種常見的攻擊現象。在深入研究ICMP重新定向原理的基礎上,通過一個實例解釋了跨網段ARP欺騙原理和具體實現過程,并給出了具體的檢測與防范方法。
關鍵詞: ARP;重新定向;ICMP;跨網段

    網絡安全是當今網絡技術的一個重要研究課題,有很強的現實應用背景。在網絡安全防范中,地址解析協議ARP(Address Resolution Protocol)是一個相當重要的內容,也是網絡攻擊者最偏向于利用的網絡底層協議。ARP協議的設計是建立在局域網內計算機互信的基礎上的,這種設計的初衷使得今天局域網內出現了大量的與ARP相關的木馬和病毒,嚴重影響了局域網內通信的安全和通信效率,給用戶利益帶來了巨大的風險。研究ARP攻擊的原理與欺騙的防御方法,有助于加強局域網的安全建設,提高局域網內各主機的通信安全和網絡的性能。本文針對跨網段的ARP攻擊進行了研究。
1 ARP協議
1.1 ARP的作用

    ARP[1]工作在數據鏈路層,在本層與硬件接口聯系,同時對上層(網絡層)提供服務。在以太網中,由于以太網設備并不識別32 bit的IP地址,所以數據包的傳送不是通過IP地址完成的,而是通過48 bit MAC地址(網卡的物理地址)來完成的,一臺主機要和另一臺主機進行直接通信,必須要知道目標主機的MAC地址。而ARP協議用于將網絡中的IP地址解析為MAC地址,以保證通信的順利進行。ARP工作時,首先請求主機發送出一個含有所希望到達的IP地址的以太網廣播數據包,然后目標IP的所有者會以一個含有IP和MAC地址對的數據包應答請求主機。這樣請求主機就能獲得要到達的IP地址對應的MAC地址,同時請求主機將這個地址對放入自己的ARP表緩存起來,以節約不必要的ARP通信。主機每隔一段時間(或者當收到ARP應答)都會用新的地址映射記錄對ARP緩存進行更新,以保證自己擁有最新的地址解析緩存。ARP的報文格式如表1所示[2]。

1.2 ARP協議的安全問題
    ARP協議是建立在信任局域網內所有結點的基礎上的,它高效,但卻不安全。ARP高速緩存根據所接收到的ARP協議包隨時進行動態更新,它是無狀態的協議,不會檢查自己是否發過請求包,只要收到目標MAC是自己的ARP響應數據包或ARP廣播包(包括ARP請求數據包和ARP響應數據包),都會接受并緩存。ARP協議沒有認證機制,只要接收到的協議包是有效的,主機就無條件地根據協議包的內容刷新本機ARP緩存,并不檢查該協議包的合法性。因此攻擊者可以隨時發送虛假ARP包更新被攻擊主機上的ARP緩存,進行地址欺騙或拒絕服務攻擊。
2 跨網段的ARP需重新定向的原因
    如果是同一網段,ARP欺騙攻擊就可以直接通過洪水攻擊或偽造IP-MAC地址映射表來實現。但是如果偽造包是經過路由分段將無法獲得成功,因為即使使用洪水攻擊或者偽造包使得目標主機無法提供服務,失去連接,局域網中的主機也只是在局域網中找目標主機而根本不會與攻擊主機通信,因為主機路由表到目標主機的路由是直接交付而不是經過網關交付,這時需要再偽造一個網際控制報文協議ICMP(Internet Control Message Protocol)重定向報文廣播包,通知目標主機所在的局域網中的所有主機:到達目標主機的最短路徑不是直接交付,而是路由,需要重定向。這樣所有主機在接收重定向報文后更新自己的路由表,攻擊主機就可以偽裝成目標主機進行通信。
3 ARP與ICMP跨網段重定向
3.1 ICMP重定向報文格式

    ICMP是為了更有效地轉發IP數據報和提高交付成功的機會。它在主機和路由器之間報告差錯情況和提供異常情況的報告,目的是為了當網絡出現問題的時候返回控制信息。ICMP重定向報文是ICMP差錯報告中的一種請求改變路由的報文。表2為ICMP重定向報文格式[3]。

    重定向報文的類型為5,代碼有效值為0~3。其中0代表網絡重定向,1代表主機重定向,2代表服務類型和網絡重定向,3代表服務類型和主機重定向。原則上,重定向報文是由路由器產生而供主機使用的。路由器默認發送的重定向報文也只是1或者3,只是對主機的重定向,而不是對網絡的重定向。而主機本身不是路由器,所以這種ICMP重定向會導致網絡流量的增大。
3.2 ICMP重定向報文程序
    ICMP重新定向所使用的報文程序如下:
    //ICMP header
    typedef struct _tagX_icmphdr{
    unsigned char i_type; //類型
    unsigned char i_code; //代碼
    unsigned short i_cksum; //檢驗和
    unsigned short i_id; //標識符
    unsigned short i_seq; //序列號
    unsigned long i_timestamp;
    //當前時間itmestump=(unsigned long):GetTickCount();
    XIcmpHeader;
    case ICMP-REDIRECT:
  if (code>3)
   goto badcode;
  if(icmplen< ICMP-ADVLENMIN||icmplen<ICMP-ADVLEN (icp))
 ||icp->icmp-ip·ip-hl<(sizeof(struct ip)>>2))
{
icmpstat.icps-badlen++;
  break;
 }
icmpgw·sin-addr=ip->ip-src;
icmpdst·sin-addr=icp->icmp-gwaddr,
icmpsrc·sin-addr=icp->icmp-ip·ip-dst;
rtredirect ((struct sockaddr*) &icmpsrc,
(struct sockaddr*) &icmpdst,
(struct sockaddr*) 0, RTF-GATEWAY|
RTF-HOST,(struct sockaddr*)&icmpgw,
(struct rtentry**) 0);
ptctlinput (PRC-REDIRECT-HOST,(struct sockaddr*) &icmpsrc);
 Break;
3.3 ICMP重定向的工作原理
    在Internet網的主機發送數據報時,先查找自己的路由表,判斷發送接口。出于效率的考慮,主機并不和連接在網絡上的路由器定期交換路由信息,一般在主機中設置一個默認路由器的IP地址,數據報先傳送給這個默認路由器,此默認路由器通過與其他路由器交換路由信息得知到達每一個網絡的最佳路由,當默認路由器發現主機發往某個目的地址的數據報的最佳路由不是本默認路由器而是另一個路由器時,就用改變路由報文把這種情況告訴主機,主機即更改路由表增加一個新路由項目。
    下面用如圖1所示的實例來說明ICMP重新定向的過程。主機PC要ping路由器RB的f1地址:192.168.2.1/24,主機將判斷出目標屬于不同的網段,因此它要將ICMP請求包發往自己的默認網關192.168.0.253/24(路由器RA的f0接口)。但是,這之前主機PC首先必須發送ARP請求,請求路由器RA的f0(192.168.1.253/24)的MAC地址。當路由器RA收到此ARP請求包后,首先用ARP應答包回答主機PC的ARP請求(通知主機PC:路由器RA自己的f0接口的MAC地址為AA-AA-AA-AA)。然后,路由器RA將此ICMP請求轉發到路由器RB的f0接口:192.168.0.254/24(要求路由器RA正確配置了到網絡192.168.2.0/24的路由)。此外,路由器RA還要發送一個ICMP重定向消息給主機PC,通知主機PC對于主機PC請求的地址的網關是:192.168.0.254。路由器RB此時會發送一個ARP請求消息請求主機PC的MAC地址,而主機PC會發送ARP應答消息給路由器RB。最后,路由器RB通過獲得的主機PC的MAC地址信息,將ICMP應答消息發送給主機PC。

3.4 跨網段的ARP欺騙攻擊的實現過程
    跨網段的ARP欺騙比同一網段的ARP欺騙要復雜得多,它需要把ARP欺騙與ICMP重定向攻擊結合在一起。假設A和B在同一網段,C在另一網段,如表3所示。

    首先攻擊方C修改IP包的生存時間,將其延長,以便做充足的廣播。然后和上面提到的一樣,尋找主機B的漏洞,攻擊此漏洞,使主機B暫時無法工作。此后,攻擊方C發送IP地址為B的IP地址192.168.0.2,MAC地址為C的MAC地址CC-CC-CC-CC的ARP應答給A。A接收到應答后,更新其ARP緩存。這樣,在主機A上,B的IP地址就對應C的MAC地址。但是,A在發數據包給B時,仍然會在局域網內尋找192.168.0.2的MAC地址,不會把包發給路由器,這時就需要進行ICMP重定向,告訴主機A到192.168.0.2的最短路徑不是局域網,而是路由,請主機重定向路由路徑,把所有到192.168.0.2的包發給路由器。主機A在接收到這個合理的ICMP重定向后,修改自己的路由路徑,把對192.168.0.2的數據包都發給路由器。這樣攻擊方C就能得到來自內部網段的數據包。
4 ARP病毒的檢測和防范策略
4.1 ARP的檢測方法[4]

    (1)主動定位方式。因為所有的ARP病毒攻擊源都會有其特征——網卡會處于混雜模式,可以通過ARPKiller工具掃描網內有哪臺機器的網卡是處于混雜模式的,從而判斷這臺機器有可能就是攻擊機。定位好機器后,再做病毒信息收集,提交給相關單位做分析處理。
    (2)在任意客戶機上進入命令提示符(或MS-DOS方式),用arp-a命令查看。如果看到有兩個機器的MAC地址相同,那么就可以判斷網絡內有ARP欺騙攻擊。
    (3)運行tracert–d網址。如果第一個跳顯示的不是網關而是其他的IP地址,則第一跳中顯示的IP即為中了ARP病毒計算機的IP地址。
4.2 ARP欺騙的安全防范策略[5]
    (1)編寫一個批處理文件arp.bat,實現開機運行,將交換機網關的MAC地址和網關的IP地址綁定,內容如下:
    @echo off
    arp-d
    arp-s IP MAC
    其中IP和MAC為網關IP地址和MAC地址。
    (2)網管交換機端綁定。在核心交換機上綁定用戶主機的IP地址和網卡的MAC地址,同時在邊緣交換機上將用戶計算機網卡的MAC地址和交換機端口綁定的雙重安全綁定方式。
以思科2950交換機為例,輸入命令:
  Switch#config terminal #進入配置模式
  Switch(config)# Interface f 0/1
  #進入具體端口配置模式
  Switch(config-if)switchport
  port-security mac-address  MAC(主機的MAC地址)
    (3)算法的實現[6]。根據ARP欺騙過程,防止ARP欺騙可以基于這樣的思想:如果ARP響應報文是在發出ARP請求之后收到的,則接收該響應,并更新ARP緩存。如果接收到ARP響應報文不是在發送ARP請求之后,則拒絕該響應。該算法的具體實現過程中,設置一個數組ReqAddBuf[i],保存陸續發出的n個ARP請求包的目的IP地址,均賦初值0。設置兩個參數:ReqEntryIP和ResEntryIP,分別保存當前發出的ARP請求報文的目的IP地址和接收到的ARP響應報文的源IP地址。設置兩個邏輯變量Sendin-gReqPack和ReceivingResPack。首先,察看是否在發送ARP請求報文,如果正在發送,就將該IP加入到數組ReqAddBuf[i]中。C語言描述如下:
if (SendingReqPack= =1)
{ for (i=1; i<=n ; i++)
 { if (ReqAddBuf[i] = = 0)
  {ReqAddBuf[i] = ReqEntryIp;
   break;}
   else if (i= =n)
      {n = n+1;
       i = n;
       ReqAddBuf[i] = ReqEntryIp; }
  }
 }
    當接收到一個ARP響應報文時,察看它的源IP地址是否記錄在案,如果有,則更新ARP高速緩存;如果沒有,丟棄該響應報文。C語言描述如下:
if (ReceivingResPack= =1)
{ for (i=1; i<=n ; i++)
 {if (ReqAddBuf[i]= = ResEntryIP)
  { ReqAddBuf[i]=0;
   UpdateArp( );
   break;}
   else if (i= =n) DelResPack();
  }
}
    該方案可以通過修改TCP/IP內核源代碼(主要是修改廣播ARP請求函數arprequest和處理接收到的ARP報文的函數in_arpinput)得以實現;也可以做一個軟件,在每次發送和接收ARP報文時進行相應處理。
    (4)使用ARP服務器。ARP服務器保存有局域網內各主機的IP地址和MAC地址的映射信息,并且禁用局域網內除服務器之外各主機的ARP應答,僅保留服務器對接收到的ARP請求進行應答。但是必須要保證ARP服務器的正常運行,不被黑客攻擊。
    (5)使用防火墻等安全產品?,F在大多網絡公司在防火墻等安全產品中加入了對ARP欺騙的防范,它們通常是從底層驅動對所有ARP欺騙數據包進行識別和屏蔽,使ARP欺騙攻擊無功而返。
    依據ICMP的重新定向,ARP欺騙攻擊可以跨網段進行,這樣就擴大了ARP進行攻擊的范圍,這對于ARP欺騙的防御又增添了難度。由于ARP本身的設計問題,使得要徹底避免ARP欺騙攻擊幾乎不可能。因此,除了做好防范以外,經常查看當前的網絡狀態,對網絡活動進行分析、監控,采取積極、主動的防御行動是保證網絡的安全和暢通的重要和有效的方法。
參考文獻
[1] 陳晨.ARP欺騙防御研究[D],保定:河北農業大學,2009.
[2] 姜曉峰.ARP協議簡析與ARP欺騙攻擊防范[J].電腦知識與技術,2008(1):1349-1350
[3] 佚名.ICMP重定向差錯. http: //www. 77169. com/classical/HTML/51616. html,2010-06-01.
[4] 范俊俊.基于交換機的ARP安全機制研究[J].計算機工程與設計,2008(8):4162-4164
[5] 金濤.公眾網絡環境中的ARP欺騙攻擊與防范方法[D].上海:上海交通大學,2007.
[6] 徐功文.ARP協議攻擊原理及其防范措施[J].網絡與信息安全,2005(1):4-6.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲欧美日韩中文v在线 | 日韩大片高清播放器好 | 欧美黄色一级在线 | 欧美久久天天综合香蕉伊 | 欧美激情视频网站 | 狠狠色狠狠色综合日日小蛇 | 最新啪啪 | 国产成人爱情动作片在线观看 | 182tv成人午夜在线观看 | 一级毛片特级毛片免费的 | 亚洲专区第一页 | 在线视免费频观看韩国aaa | 日韩视频在线观看一区二区 | 欧美另类日韩中文色综合 | 网址你懂的在线观看 | 国产精品欧美久久久久天天影视 | 黄色三级在线 | 在线视频 日韩 | 精品国产一区二区三区在线 | 在线免费黄 | 国产精品女丝袜白丝袜 | 中文字幕视频在线免费观看 | 色一情一乱一乱91av | 黄色网址在线免费观看 | 有没有在线看片www 又www又黄又爽啪啪网站 | 美女的激情影院 | 在线视频精品免费 | 亚洲精品亚洲人成在线播放 | 在线观看亚洲精品国产 | 91精品国产高清久久久久久91 | 成年网址网站在线观看 | 天天拍天天色 | 一级片黄色a | 玖玖精品在线 | 精品久久天干天天天按摩 | 亚洲理论a中文字幕在线 | 日本三级免费片 | 最近免费中文字幕完整5 | 最新国产成人综合在线观看 | 欧美日韩a | 亚洲欧洲精品成人久久曰 |