天天看點

什麼是ARP?如何防範ARP欺騙技術?

< type="text/javascript"> < type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 什麼是ARP?如何防範ARP欺騙技術?

  首先說一下什麼是ARP。如果你在UNIX Shell下輸入 arp -a (9x下也是),你的輸出看起來應該是這樣的:

  Interface: xxx.xxx.xxx.xxx

  Internet Address Physical Address Type

xxx.xxx.xxx.xxx 00-00-93-64-48-d2 dynamic

  xxx.xxx.xxx.xxx 00-00-b4-52-43-10 dynamic

  ...... ......... ....

    這裡第一列顯示的是ip位址,第二列顯示的是和ip位址對應的網絡接口卡的硬體位址(MAC),第三列是該ip和mac的對應關系類型。

    可見,arp是一種将ip轉化成以ip對應的網卡的實體位址的一種協定,或者說ARP協定是一種将ip位址轉化成MAC位址的一種協定。它靠維持在記憶體中儲存的一張表來使ip得以在網絡上被目标機器應答。

    為什麼要将ip轉化成mac呢?簡單的說,這是因為在tcp網絡環境下,一個ip包走到哪裡,要怎麼走是靠路由表定義。但是,當ip包到達該網絡後,哪台 機器響應這個ip包卻是靠該ip包中所包含的mac位址來識别。也就是說,隻有機器的mac位址和該ip包中的mac位址相同的機器才會應答這個ip包。 因為在網絡中,每一台主機都會有發送ip包的時候。是以,在每台主機的記憶體中,都有一個 arp--> mac 的轉換表。通常是動态的轉換表(注意在路由中,該arp表可以被設定成靜态)。也就是說,該對應表會被主機在需要的時候重新整理。這是由于以太網在子網層上的 傳輸是靠48位的mac位址而決定的。

    通常主機在發送一個ip包之前,它要到該轉換表中尋找和ip包對應的mac位址。如果沒有找到,該主機就發送一個ARP廣播包,看起來象這樣子:

  "我是主機xxx.xxx.xxx.xxx , mac是xxxxxxxxxxx ,ip為xxx.xxx.xxx.xx1的主機請告之你的mac來"

  ip為xxx.xxx.xxx.xx1的主機響應這個廣播,應答ARP廣播為:

  "我是xxx.xxx.xxx.xx1,我的mac為xxxxxxxxxx2"

    于是,主機重新整理自己的ARP緩存,然後發出該ip包。

    了解這些常識後,現在就可以談在網絡中如何實作ARP欺騙了,可以看看這樣一個例子:

    一個入侵者想非法進入某台主機,他知道這台主機的防火牆隻對192.0.0.3(假設)這個ip開放23口(telnet),而他必須要使用telnet來進入這台主機,是以他要這麼做:

    1、他先研究192.0.0.3這台主機,發現這台95的機器使用一個oob就可以讓他死掉。

    2、于是,他送一個洪水包給192.0.0.3的139口,于是,該機器應包而死。

    3、這時,主機發到192.0.0.3的ip包将無法被機器應答,系統開始更新自己的arp對應表。将192.0.0.3的項目搽去。

    4、這段時間裡,入侵者把自己的ip改成192.0.0.3

    5、他發一個ping(icmp 0)給主機,要求主機更新主機的arp轉換表。

    6、主機找到該ip,然後在arp表中加入新的ip-->mac對應關系。

    7、防火牆失效了,入侵的ip變成合法的mac位址,可以telnet了。 

現在,假如該主機不隻提供telnet,它還提供r指令(rsh,rcopy,rlogin等)那麼,所有的安全約定将無效,入侵者可以放心的使用這台主機的資源而不用擔心被記錄什麼。

    有人也許會說,這其實就是冒用ip嘛。是冒用了ip,但決不是ip欺騙,ip欺騙的原理比這要複雜的多,實作的機理也完全不一樣。

    上面就是一個ARP的欺騙過程,這是在同網段發生的情況。但是,提醒注意的是,利用交換集線器或網橋是無法阻止ARP欺騙的,隻有路由分段是有效的阻止手 段。(也就是ip包必須經過路由轉發。在有路由轉發的情況下,ARP欺騙如配合ICMP欺騙将對網絡造成極大的危害。從某種角度講,入侵者可以跨過路由監 聽網絡中任何兩點的通訊,如果設定防火牆,請注意防火牆有沒有提示過類似“某某IP是局域IP但從某某路由來”等這樣的資訊。

    在有路由轉發的情況下,發送到達路由的ip的主機其arp對應表中,ip的對應值是路由的mac。

  比如: 我ping www.xxxx.com後,那麼在我主機中,www. xxxx.com的IP對應項不是xxxx的mac,而是我路由的mac,其ip也是我路由的IP。(有些網絡軟體通過交換路由ARP可以得到遠端IP的MAC)。   有興趣做深入一步的朋友可以考慮這樣一種情況:

    假設這個入侵者突然想到:我要經過一個路由才可以走到那台有防火牆的主機!!!

    于是這個入侵者開始思考:

    1、我的機器可以進入那個網段,但是,不是用192.0.0.3的IP。

    2、如果我用那個IP,就算那台正版192.0.0.3的機器死了,那個網絡裡的機器也不會把ip包丢到路由傳給我。

    3、是以,我要騙主機把ip包丢到路由。

    通過多種欺騙手法可以達到這個目的。是以他開始這樣做:

   1、為了使自己發出的非法ip包能在網絡上活久一點,開始修改ttl為下面的過程中可能帶來的問題做準備。他把ttl改成255。 (ttl定義一個ip包如果在網絡上到不了主機後在網絡上能存活的時間,改長一點在本例中有利于做充足的廣播)

    2、他掏出一張軟碟,這張軟碟中有他以前用sniffer時儲存的各種ip包類型。

    3、他用一個合法的ip進入網絡,然後和上面一樣,發個洪水包讓正版的192.0.0.3死掉,然後他用192.0.0.3進入網絡。

    4、在該網絡的主機找不到原來的192.0.0.3的mac後,将更新自己的ARP對應表。于是他趕緊修改軟碟中的有關ARP廣播包的資料,然後對網絡廣播說"能響應ip為192.0.0.3的mac是我"。

    5、好了,現在每台主機都知道了,一個新的MAC位址對應ip 192.0.0.3,一個ARP欺騙完成了,但是,每台主機都隻會在區域網路中找這個位址而根本就不會把發送給192.0.0.3的ip包丢給路由。于是他還得構造一個ICMP的重定向廣播。

    6、他開始再修改軟碟中的有關ICMP廣播包的資料,然後發送這個包,告訴網絡中的主機:"到192.0.0.3的路由最短路徑不是區域網路,而是路由。請主機重定向你們的路由路徑,把所有到192.0.0.3的ip包丢給路由哦。"

    7、主機接受這個合理的ICMP重定向,于是修改自己的路由路徑,把對192.0.0.3 的ip通訊都丢給路由器。

    8、入侵者終于可以在路由外收到來自路由内的主機的ip包了,他可以開始telnet到主機的23口,用ip 192.0.0.3。

注意,這隻是一個典型的例子,在實際操作中要考慮的問題還不隻這些。

    現在想想,如果他要用的是sniffer會怎樣?

    可見,利用ARP欺騙,一個入侵者可以:

    1、利用基于ip的安全性不足,冒用一個合法ip來進入主機。

    2、逃過基于ip的許多程式的安全檢查,如NSF,R系列指令等。

    他甚至可以栽賬嫁禍給某人,讓他跳到黃河洗不清,永世不得超生!

    那麼,如何防止ARP欺騙呢?

    1、不要把你的網絡安全信任關系建立在ip基礎上或mac基礎上,(rarp同樣存在欺騙的問題),理想的關系應該建立在ip+mac基礎上。

    2、設定靜态的mac-->ip對應表,不要讓主機重新整理你設定好的轉換表。

    3、除非很有必要,否則停止使用ARP,将ARP做為永久條目儲存在對應表中。

    4、使用ARP伺服器。通過該伺服器查找自己的ARP轉換表來響應其他機器的ARP廣播。確定這台ARP伺服器不被黑。

    5、使用"proxy"代理ip的傳輸。

    6、使用硬體屏蔽主機。設定好你的路由,確定ip位址能到達合法的路徑。(靜态配置路由ARP條目),注意,使用交換集線器和網橋無法阻止ARP欺騙。

    7、管理者定期用響應的ip包中獲得一個rarp請求,然後檢查ARP響應的真實性。

    8、管理者定期輪詢,檢查主機上的ARP緩存。

    9、使用防火牆連續監控網絡。注意有使用SNMP的情況下,ARP的欺騙有可能導緻陷阱包丢失。    以下收集的資料,供做進一步了解ARP協定

    ARP的緩存記錄格式:

    每一行為:

  IF Index:Physical Address:IP Address:Type

    其中: IF Index 為:

    1 以太網

    2 實驗以太網

    3 X.25

    4 Proteon ProNET (Token Ring)

    5 混雜方式

    6 IEEE802.X

    7 ARC網 

ARP廣播申請和應答結構

    硬體類型:協定類型:協定位址長:硬體位址長:操作碼:發送機硬體位址:

    發送機IP位址:接受機硬體位址:接受機IP位址。

    其中:協定類型為: 512 XEROX PUP

  513 PUP 位址轉換

  1536 XEROX NS IDP

  2048 Internet 協定 (IP)

  2049 X.752050NBS

  2051 ECMA

  2053 X.25第3層

  2054 ARP

  2055 XNS

  4096 伯克利追蹤者

  21000 BBS Simnet

  24577 DEC MOP 轉儲/裝載

  24578 DEC MOP 遠端控制台

  24579 DEC 網 IV 段

  24580 DEC LAT

  24582 DEC

  32773 HP 探示器

  32821 RARP

< type="text/JavaScript"> alimama_pid="mm_10809884_1047205_2647463"; alimama_titlecolor="898989"; alimama_descolor ="275689"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E1E1E1"; alimama_linkcolor="C1C1C1"; alimama_bottomcolor="FFFFFF"; alimama_anglesize="10"; alimama_bgpic="0"; alimama_icon="0"; alimama_sizecode="16"; alimama_width=658; alimama_height=60; alimama_type=2; < src="http://a.alimama.cn/inf.js" type=text/javascript>

繼續閱讀