什么是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緩存。
使用防火墻連續監控網絡。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/