中間人攻擊
黑客利用ARP緩存中毒來(lái)截獲你的局域網(wǎng)中兩臺(tái)設(shè)備之間的網(wǎng)絡(luò)信息。例如,我們假象黑客想要竊聽你的計(jì)算機(jī),192.168.0.12,和你的網(wǎng)絡(luò)路由器 (即網(wǎng)關(guān),譯者注) ,192.168.0.1,之間的通信信息。黑客先發(fā)送一個(gè)惡意的ARP “響應(yīng)” ( 因?yàn)樵诖酥案緵](méi)有請(qǐng)求) 到你的路由器,將他的計(jì)算機(jī)的MAC地址和192.168.0.12綁定 (如圖3).

現(xiàn)在你的路由器以為這個(gè)黑客的計(jì)算機(jī)就是你的計(jì)算機(jī)了。
然后,黑客在發(fā)送一個(gè)惡意的ARP響應(yīng)到你的計(jì)算機(jī),將他的MAC地址和192.168.0.1綁定起來(lái)。(如圖4).

現(xiàn)在你的機(jī)器以為黑客的計(jì)算機(jī)是你的路由器了。
最后,黑客開啟一個(gè)叫IP轉(zhuǎn)發(fā)的系統(tǒng)功能。這個(gè)功能讓黑客能將所有來(lái)自你的計(jì)算機(jī)的網(wǎng)絡(luò)信息轉(zhuǎn)發(fā)到路由器 (如圖5).

現(xiàn)在,只要你嘗試上網(wǎng),你的計(jì)算機(jī)就會(huì)將網(wǎng)絡(luò)信息發(fā)送到黑客的機(jī)器上,然后黑客再將其轉(zhuǎn)發(fā)到路由器。由于黑客仍然將你的信息轉(zhuǎn)發(fā)到網(wǎng)絡(luò)路由器,所以你并不會(huì)察覺(jué)到他已經(jīng)截獲了所有你的網(wǎng)絡(luò)信息,或許還竊聽了你的明文密碼或者劫持了你曾經(jīng)安全的網(wǎng)絡(luò)會(huì)話。
MAC洪泛
MAC洪泛是一種旨在網(wǎng)絡(luò)交換機(jī)的ARP緩存中毒技術(shù)。當(dāng)這些交換機(jī)流量超載時(shí)它們常常進(jìn)入到 “集線器” 模式。在 “集線器” 模式中,交換機(jī)由于太過(guò)繁忙而不能執(zhí)行它的端口安全檢測(cè)功能,而是僅僅向網(wǎng)絡(luò)中的每一臺(tái)計(jì)算機(jī)廣播所有的網(wǎng)絡(luò)數(shù)據(jù)。利用大量的假冒ARP響應(yīng)數(shù)據(jù)包去洪泛一臺(tái)交換機(jī)的ARP映射表,黑客能使大多數(shù)制造商的交換機(jī)超載,然后當(dāng)交換機(jī)進(jìn)入 “集線器” 模式時(shí),就可以發(fā)送 (惡意的) 包去嗅探你的局域網(wǎng)。
害怕了?好,現(xiàn)在冷靜下來(lái)!
這是可怕的東西。ARP緩存中毒能夠利用一些微不足道的手段卻造成網(wǎng)絡(luò)的巨大危害。但是,當(dāng)你進(jìn)入到高度戒備狀態(tài)時(shí),注意到一個(gè)重要的緩解因素:只有也在局域網(wǎng)中的攻擊者才能利用ARP的缺陷 (因?yàn)锳RP協(xié)議只會(huì)在局域網(wǎng)(子網(wǎng))中進(jìn)行) 。黑客他要不是在你的網(wǎng)絡(luò)中找個(gè)接口插入而連接上你的局域網(wǎng),要不就是控制一個(gè)局域網(wǎng)內(nèi)的機(jī)器,這樣才能進(jìn)行ARP緩存中毒攻擊。ARP的缺陷不能在被遠(yuǎn)程利用。
那就是說(shuō),黑客會(huì)被知道他接入了這個(gè)網(wǎng)絡(luò)。優(yōu)秀的網(wǎng)絡(luò)管理員應(yīng)該能意識(shí)到ARP緩存中的技術(shù)。
由于ARP緩存中毒源于一個(gè)協(xié)議的缺陷,但是這個(gè)協(xié)議對(duì)于TCP/IP網(wǎng)絡(luò)的運(yùn)轉(zhuǎn)又是必須的,你不能去修改它。但是你可以運(yùn)用以下技術(shù)來(lái)防止ARP攻擊。
面向小型網(wǎng)絡(luò)
如果你管理著一個(gè)小型網(wǎng)絡(luò),你或許可以試試使用靜態(tài)IP地址和靜態(tài)ARP映射表。用命令行輸入,比如在Windows中是 “ipconfig/all” ,在NIX中是 “ifconfig” ,你就可以查看在你的網(wǎng)絡(luò)中的所有設(shè)備的IP地址和MAC地址了。然后使用 "arp-s" 命令,你可以為你所知道的設(shè)備添加靜態(tài)ARP映射。“靜態(tài)” 就是不會(huì)變化;這可以防止黑客的欺騙ARP進(jìn)入你的網(wǎng)絡(luò)設(shè)備中。你甚至可以創(chuàng)建一個(gè)登錄腳本當(dāng)它們啟動(dòng)時(shí)自動(dòng)添加這些靜態(tài)ARP到你的計(jì)算機(jī)中。
然而,靜態(tài)ARP很難被維護(hù);在大型網(wǎng)絡(luò)中更是不可能。那是因?yàn)槟忝考尤胍慌_(tái)設(shè)備到你的網(wǎng)絡(luò)中都需要你手動(dòng)地編寫ARP腳本或輸入每臺(tái)設(shè)備的ARP映射表。但是如果你是管理一個(gè)少于兩打的設(shè)備,這個(gè)技術(shù)或許適合于你。
面向大型網(wǎng)絡(luò)
如果你是管理著一個(gè)大型網(wǎng)絡(luò),好好去研究一下你的網(wǎng)絡(luò)交換機(jī)的 “端口安全” 功能。有一個(gè) “端口安全” 功能是允許你強(qiáng)制使你的交換機(jī)在每個(gè)端口只允許 (IP地址對(duì)應(yīng)的) 一個(gè)MAC地址通過(guò)。這個(gè)功能會(huì)阻止黑客改變他機(jī)器的MAC地址或試圖映射多個(gè)MAC地址到他的機(jī)器上。這種技術(shù)常常用于幫助防御基于ARP的中間人攻擊。
面向所有網(wǎng)絡(luò)
你最好的防御方法就是掌握ARP中毒的機(jī)制并監(jiān)視它。我強(qiáng)烈建議安裝一個(gè)ARP監(jiān)視工具,比如ARPwatch,當(dāng)有不正常的ARP通信時(shí)它會(huì)提醒你。這種警惕也是對(duì)付所有類型攻擊的最有力武器——就如Robert Louis Stevenson所寫的,“最殘酷的謊言常常是悄無(wú)聲息地說(shuō)出來(lái)的”。