位址解析協定 (Address Resolution Protocol, ARP)

ARP 是一種位址轉換協定,可以將 IP Address 轉換成 MAC address,此協定無法越過網路層,只適用於區域網路(LAN)內。

ARP 的運作主要是透過發送 ARP Request 封包,以 Broadcast 的方式來尋問區域內的目的設備,看誰擁有此 IP Address。
接著如果區域內的設備收到 ARP Request 後,會先判斷該封包所要尋問的 IP Address 是否為本身擁有,如果是,則回覆 ARP Reply 封包,以 Unicast 的方式回應自己的 MAC address 給來源主機。

ARP 會將所詢問到的資料暫時儲存於 ARP cache 或稱為 ARP table,ARP table 內的項目可分為兩種不同的型態:
dynamic type: 透過 ARP 尋問,而動態改變的項目。
static type: 透過人工方式加入的項目。



ARP 封包格式

ARP 封包格式
Hardware Type (16)
Protocol Type (16)
Hardware Address Length (8)
Protocol Address Length (8)
Operation (16)
Sender Hardware Address (octets 0-3)
Sender Hardware Address (octets 4-5)
Sender IP (octets 0-1)
Sender IP (octets 2-3)
Target Hardware Address (octets 0-1)
Target Hardware Address (octets 2-5)
Target IP (octets 0-3)



Spirent TestCenter 所產生的 ARP Request 封包:




ARP Spoofing

ARP Spoofing Attack 也稱為 ARP Poisoning 或 ARP Poison Routing,它的原理為不斷地發送偽造的 ARP request/reply 來擾亂正常的 ARP 運作,使 LAN 中的電腦內的 ARP Table 錯就,進而達到 Spoofing 的目的。

例如一個正常的 ARP Request 詢問 default gateway 的 MAC Address,則當攻擊者收到後,接偽造 ARP Reply,欺騙詢問者其 default gateway 的 MAC Address 是自己的 MAC Address,若傳送者將該 ARP Reply 的內容加到自己的 ARP Table,則後續要傳給 Default gateway 的封包都將傳送給攻擊者。

此時攻擊者可以任意的 阻斷(Interrupt)、監聽(Sniff)、竄改(Modify) 該詢問者的封包。

ARP Spoofing 所牽涉到的另一個問題,在主機沒有主動發送 ARP Request 的情況下,如果收到 ARP Reply,該主機是否會根據 ARP Reply 的封包內容來更新自己 ARP Table?

答案是會的,這個情況也使得 ARP Spoofing 更加容易發生,參考範例
而這種不請自來的 ARP Reply 有個專有名詞來稱呼: Gratuitous ARP。



Gratuitous ARP

Gratuitous ARP 為廣播封包,其 packet header 為:

其 Destination MAC 為 FF:FF:FF:FF:FF:FF,其餘欄位與一般 ARP Reply 封包相同。

封包內容為:

Opcode 被設定為 2,也就是 ARP Reply 封包。
Sender MAC 及 Sender IP 就是要請收到此封包的人用來更新 ARP Table 的欄位資訊。
Target MAC 被設定為 FF:FF:FF:FF:FF:FF,表示這是廣播封包,但這個欄位不重要,Gratuitous ARP 不在意這個欄位的內容。


難道Gratuitous ARP 的存在就只是為了 ARP Spoofing 嗎?

不是的,Gratuitous ARP 的正常使用場景有:
  1. 更新:在使用者手動更新 MAC Address 的情況下,可以用來主動通知其它網路設備更新其 IP Address 與對應的 MAC Address。
  2. 通知:在網路設備被新加到一個網路時,主動通知其它設備自己的存在。
  3. 備用:這個可能是 Gratuitous ARP 最重要的功能,由兩個網路設備共用一組 IP Address,但有各自的 MAC Address,如果主設備無法提供服務,則由備用設備發出通知,將該 IP Address 對應到自己的 MAC Address。
  4. 另一種備用的方式是,由兩個網路設備共用一組 IP Address 及 MAC Address,這兩個設備連接在同一臺 Switch 上,如果主設備無法提供服務,則由備用設備發出通知,Switch 收到訊息後,會更新其 MAC Address Table,把該 MAC Address 對應到備用設備所連接的 Port。




ARP Proxy

ARP Proxy 是代為處理 ARP 的服務,也就是由 ARP Proxy 來幫忙回答 ARP Request,可以將網路設備隱藏於 ARP Proxy 主機之後,進而受到 ARP Proxy 主機的保護,例如可以在 ARP Proxy 主機增加防火牆的功能來保護內部網路。





反向位址解析協定 (Reverse Address Resolution Protocol, RARP)

反向位址解析協定 (Reverse Address Resolution Protocol, RARP) 則是將 MAC Address 轉換為 IP Address。




Reference

TCP/IP網路通訊協定(第二版)

Proxy ARP

What is a Gratuitous ARP? How is it used in Network attacks?

Address Resolution Protocol (ARP)


文字內容 或 影像內容 部份參考、引用自網路,如有侵權,請告知,謝謝。
arrow
arrow
    全站熱搜

    silverwind1982 發表在 痞客邦 留言(0) 人氣()