ARP緩存感染攻擊解析(3)
嘿ARP,你知道哪個騙你的設(shè)備不在你的字典中嗎?
網(wǎng)絡(luò)的設(shè)計者可能出于高效的考慮將ARP的對話過程設(shè)計得如此簡單。不幸的是,這種簡單也帶來了巨大的安全隱患。知道為什么在我對ARP的簡短描述中沒有提到任何形式的認(rèn)證方法嗎?答案是,ARP根本就沒有。
ARP認(rèn)為通信雙方都是安全可信的,實(shí)際上就是好騙的。當(dāng)一個網(wǎng)絡(luò)中的設(shè)備發(fā)出去一個廣播ARP請求時,它只是簡單的相信當(dāng)收到一個ARP響應(yīng)時,這個響應(yīng)真的是來自正確的設(shè)備 (因?yàn)榘凑諈f(xié)議只有IP地址對應(yīng)的設(shè)備才會發(fā)出相應(yīng)報文,譯者注)。ARP沒有提供任何方法去認(rèn)證響應(yīng)的設(shè)備就真是如它報文里所說的那臺。實(shí)際上,許多操作系統(tǒng)實(shí)現(xiàn)ARP時都是盡管沒有發(fā)出任何ARP請求但仍然接受來自其他設(shè)備的ARP響應(yīng)。
好了,想象自己是一個惡意的黑客。你剛剛才知道ARP協(xié)議沒有任何認(rèn)證ARP響應(yīng)的方法。你已經(jīng)知道了很多設(shè)備在沒有發(fā)出任何請求的情況下仍然接受響應(yīng)。嗯,我為什么不能制造一個完美有效但是惡意的,包含任何我自己選擇的IP地址和MAC地址的ARP響應(yīng)報文?由于受害者的計算機(jī)會盲目地接受這個ARP響應(yīng)并添加到它的ARP映射表中,因此讓受害者那極易受騙的計算機(jī)將任何我選的IP地址關(guān)聯(lián)到任何MAC地址。更進(jìn)一步,我能廣播我做的假冒ARP響應(yīng)到受害者的整個網(wǎng)絡(luò)中,欺騙網(wǎng)絡(luò)中所有的計算機(jī)。哇哈哈哈哈!
回到現(xiàn)實(shí)中來?,F(xiàn)在你可能知道了為什么這種常用技術(shù)叫做ARP緩存中毒 (或者叫ARP中毒):攻擊者欺騙你的局域網(wǎng)中的設(shè)備,誤導(dǎo)或者 “毒害” 它所知道其他設(shè)備的位置。這種恐怖而又簡單的攻擊使攻擊者給網(wǎng)絡(luò)帶來了巨大的危害,后面將會描述到。
你的所有ARP報文都是我們的!
這種使攻擊者能關(guān)聯(lián)任何IP地址和MAC地址的能力讓其可以進(jìn)行很多種攻擊,包括拒絕服務(wù)攻擊(DoS, Denial of Service),中間人攻擊(Man in the Middle)和MAC洪泛(MAC Flooding)。
拒絕服務(wù)
一個黑客可以只做簡單的操作就將一個重要的IP地址和一個錯誤的MAC地址綁定。例如,黑客可以發(fā)送一個ARP響應(yīng)報文 (到你的計算機(jī)) 將你所在網(wǎng)絡(luò)的路由器 (即我們常說的網(wǎng)管,譯者注) IP地址和一個根本不存在的MAC地址綁定起來。你的計算機(jī)一位它知道默認(rèn)網(wǎng)關(guān)在哪,但是事實(shí)上它的所有數(shù)據(jù)包,其目的地址都不在這個網(wǎng)絡(luò)的網(wǎng)段上 (因?yàn)槟莻€不存在的MAC不在此局域網(wǎng)的網(wǎng)段上,譯者注) ,它們最后消逝在了無盡的比特流中 (即因數(shù)據(jù)包的生命周期到了而信號消失,譯者注)。僅僅這一下,黑客就能阻止你連上因特網(wǎng)。