明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ARP協(xié)議的缺陷及ARP欺騙的防范_ARP原理

[摘要]一、ARP協(xié)議工作原理在TCP/IP協(xié)議中, 每一個網(wǎng)絡結點是用IP地址標識的, IP地址是一個邏輯地址。 而在以太網(wǎng)中數(shù)據(jù)包是靠48位MAC地址(物理地址)尋址的。 因此, 必須建立IP地址與...

一、ARP協(xié)議工作原理

在TCP/IP協(xié)議中, 每一個網(wǎng)絡結點是用IP地址標識的, IP地址是一個邏輯地址。 而在以太網(wǎng)中數(shù)據(jù)包是靠48位MAC地址(物理地址)尋址的。 因此, 必須建立IP地址與MAC地址之間的對應(映射)關系, ARP協(xié)議就是為完成這個工作而設計的。

TCP/IP協(xié)議棧維護著一個ARP cache表, 在構造網(wǎng)絡數(shù)據(jù)包時, 首先從ARP表中找目標IP對應的MAC地址, 如果找不到, 就發(fā)一個ARP request廣播包, 請求具有該IP地址的主機報告它的MAC地址, 當收到目標IP所有者的ARP reply后, 更新ARP cache.ARP cache有老化機制。

二、ARP協(xié)議的缺陷

ARP協(xié)議是建立在信任局域網(wǎng)內(nèi)所有結點的基礎上的, 它很高效, 但卻不安全。 它是無狀態(tài)的協(xié)議, 不會檢查自己是否發(fā)過請求包, 也不管(其實也不知道)是否是合法的應答, 只要收到目標MAC是自己的ARP reply包或arp廣播包(包括ARP request和ARP reply), 都會接受并緩存。 這就為ARP欺騙提供了可能, 惡意節(jié)點可以發(fā)布虛假的ARP報文從而影響網(wǎng)內(nèi)結點的通信, 甚至可以做“中間人”。

三、常見ARP欺騙形式

1、假冒ARP reply包(單播)

XXX, I have IP YYY and my MAC is ZZZ!

2、假冒ARP reply包(廣播)

Hello everyone! I have IP YYY and my MAC is ZZZ!

向所有人散布虛假的IP/MAC

3、假冒ARP request(廣播)

I  have IP XXX and my MAC is YYY.

Who has IP ZZZ? tell me please!

表面為找IP ZZZ的MAC, 實際是廣播虛假的IP、MAC映射(XXX, YYY)

4、假冒ARP request(單播)

已知IP ZZZ的MAC

Hello IP ZZZ! I have IP  XXX and my MAC is YYY.

5、假冒中間人

欺騙主機(MAC為MMM)上啟用包轉發(fā)

向主機AAA發(fā)假冒ARP Reply:

AAA, I have IP BBB and my MAC is MMM,

向主機BBB發(fā)假冒ARP Reply:

BBB, I have IP AAA and my MAC is MMM

由于ARP Cache的老化機制, 有時還需要做周期性連續(xù)欺騙。

四、ARP欺騙的防范

1、運營商可采用Super VLAN或PVLAN技術

所謂Super VLAN也叫VLAN聚合, 這種技術在同一個子網(wǎng)中化出多個Sub VLAN, 而將整個IP子網(wǎng)指定為一個VLAN聚合(Super VLAN), 所有的Sub VLAN都使用Super VLAN的默認網(wǎng)關IP地址, 不同的Sub VLAN仍保留各自獨立的廣播域。 子網(wǎng)中的所有主機只能與自己的默認網(wǎng)關通信。 如果將交換機或IP DSLAM設備的每個端口化為一個Sub VLAN, 則實現(xiàn)了所有端口的隔離, 也就避免了ARP欺騙。

PVLAN即私有VLAN(Private VLAN) , PVLAN采用兩層VLAN隔離技術, 只有上層VLAN全局可見, 下層VLAN相互隔離。 如果將交換機或IP DSLAM設備的每個端口化為一個(下層)VLAN, 則實現(xiàn)了所有端口的隔離。

PVLAN和SuperVLAN技術都可以實現(xiàn)端口隔離, 但實現(xiàn)方式、出發(fā)點不同。 PVLAN是為了節(jié)省VLAN, 而SuperVlan的初衷是節(jié)省IP地址。

2、單位局域網(wǎng)可采用IP與MAC綁定

在PC上IP+MAC綁, 網(wǎng)絡設備上IP+MAC+端口綁。 但不幸的是Win 98/me、未打arp補丁的win 2000/xp sp1(現(xiàn)在大多都已經(jīng)打過了)等系統(tǒng) 使用arp -s所設置的靜態(tài)ARP項還是會被ARP欺騙所改變。

如果網(wǎng)絡設備上只做IP+MAC綁定, 其實也是不安全的, 假如同一二層下的某臺機器發(fā)偽造的arp reply(源ip和源mac都填欲攻擊的那臺機子的)給網(wǎng)關, 還是會造成網(wǎng)關把流量送到欺騙者所連的那個(物理)端口從而造成網(wǎng)絡不通。

對于采用了大量傻瓜交換機的局域網(wǎng), 用戶自己可以采取支持arp過濾的防火墻等方法。 推薦Look ‘n’Stop防火墻, 支持arp協(xié)議規(guī)則自定義。

最后就是使用ARPGuard啦(才拉到正題上), 但它只是保護主機和網(wǎng)關間的通訊。

五、ARPGuard的原理

ARPGuard可以保護主機和網(wǎng)關的通訊不受ARP欺騙的影響。

1、第一次運行(或檢測到網(wǎng)關IP改變)時獲取網(wǎng)關對應的MAC地址, 將網(wǎng)卡信息、網(wǎng)關IP、網(wǎng)關MAC等信息保存到配置文件中, 其他時候直接使用配置文件。

2、移去原默認路由(當前網(wǎng)卡的)

3、產(chǎn)生一個隨機IP, 將它添加成默認網(wǎng)關。

4、默認網(wǎng)關IP 和網(wǎng)關的MAC綁定(使用DeleteIpNetEntry和CreateIpNetEntry修改ARP Cache表項)

5、周期性檢測ARP Cache中原默認網(wǎng)關(不是隨機IP那個) 網(wǎng)關的MAC在ARP Cache的值是否被改寫, 若被改寫就報警。

6、針對有些攻擊程序只給網(wǎng)關設備(如路由器或三層交換機)發(fā)欺騙包的情況。 由于此時本機ARP Cache中網(wǎng)關MAC并未被改變, 因此只有主動防護, 即默認每秒發(fā)10個ARP reply包來維持網(wǎng)關設備的ARP Cache(可選)

7、程序結束時恢復默認網(wǎng)關和路由。

值得說明的是程序中限定了發(fā)包間隔不低于100ms, 主要是怕過量的包對網(wǎng)絡設備造成負擔。 如果你遭受的攻擊太猛烈, 你也可以去掉這個限制, 設定一個更小的數(shù)值, 保證你的通訊正常。


上面是電腦上網(wǎng)安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。