資訊化辦公的時代,如果網路突然斷網您會不會顯得無奈呢?ARP病毒的盛行,已經使得我們必須面對這種突如其來的威脅。那麼ARP病毒到底是如何攻擊又如何防治呢?
什麼是ARP?
所謂ARP即位址解析通訊協定(Address Resolution Protocol),是在僅知道主機的IP地址時確定其物理地址的一種協議。因IPv4和乙太網路的廣泛應用,其主要用作將IP地址翻譯為乙太網路的MAC地址,但其也能在ATM和FDDIIP網路中使用。從IP地址到物理地址的映射有兩種方式:表格方式和非表格方式。ARP具體說來就是將網路層(IP層,也就是相當於OSI的第三層)位址解析為資料連線層(MAC層,也就是相當於OSI的第二層)的MAC地址。
例如:
電腦A的IP為192.168.1.1,MAC地址為00-11-22-33-44-01;
電腦B的IP為192.168.1.2,MAC地址為00-11-22-33-44-02;
ARP工作原理:
在TCP/IP協議中,A給B發送IP包,在包頭中需要填寫B的IP為目標地址,但這個IP包在乙太網路上傳輸的時候,還需要進行一次以太包的封裝,在這個以太包中,目標地址就是B的MAC地址. 電腦A是如何得知B的MAC地址的呢?解決問題的關鍵就在於ARP協議。
在A不知道B的MAC地址的情況下,A就廣播一個ARP請求包,請求包中填有B的IP(192.168.1.2),乙太網路中的所有電腦都會接收這個請求,而正常的情況下只有B會給出ARP應答包,包中就填充上了B的MAC地址,並回複給A。
A得到ARP應答後,將B的MAC地址放入本機緩衝,便於下次使用。本機MAC緩衝是有生存期的,生存期結束後,將再次重複定址過程。
ARP協議並不只在發送了ARP請求才接收ARP應答。當電腦接收到ARP應答資料包的時候,就會對本地的ARP緩衝進行更新,將應答中的IP和MAC地址儲存在ARP緩衝中。因此,當區域網路中的某台機器B向A發送一個自己偽造的ARP應答,而如果這個應答是B冒充C偽造來的,即IP地址為C的IP,而MAC地址是偽造的,則當A接收到B偽造的ARP應答後,就會更新本地的ARP緩衝,這樣在A看來C的IP地址沒有變,而它的MAC地址已經不是原來那個了。由於區域網路的網路流通不是根據IP地址進行,而是按照MAC地址進行傳輸。所以,那個偽造出來的MAC地址在A上被改變成一個不存在的MAC地址,這樣就會造成網路不通,導致A不能Ping通C!這就是一個簡單的ARP欺騙。
類似網路執法官等網路管理軟體,其控制目標機器上網限制亦是採用了ARP原理,向其發送一個假的網關IP地址對應的MAC,使其找不到網關真正的MAC地址,這樣即可禁止其上網。
ARP的防範:
ARP欺騙可以導致目標電腦與網關通訊失敗,更可怕的是會導致通訊重新導向,所有的資料都會通過攻擊者的機器,因此存在極大的安全隱患。 基與PC到PC的IP-MAC雙向繫結可以解決ARP欺騙,但是對於不支援IP-MAC雙向繫結的裝置,就需要用可以綁定連接埠-MAC的交換來預防ARP欺騙。另外,Windows 2KSP4 XPSP1 的Arp-S綁定是無效的,需要升級到 2KSP5 或 XPSP2。ARP防火牆等工具就是運用IP-MAC綁定技術,對資料包進行截取分析,保證網路通訊正常。
然而病毒的變種是日新月異的,ARP也是如此,類似ARP欺騙的解決思路主要如下:
不要把網路安全信任關係建立在IP基礎上或MAC基礎上。
設定靜態MAC-->IP對應表,不要讓主機重新整理你設定好的轉換表。
除非必要,否則停止ARP使用,把ARP做為永久條目儲存在對應表中。
使用ARP伺服器。確保這台ARP伺服器不被黑。
使用"proxy"代理IP傳輸。
使用硬體屏蔽主機。
定期用響應的IP包中獲得一個rarp請求,檢查ARP響應的真實性。
定期輪詢,檢查主機上的ARP緩衝。
使用防火牆連續監控網路。