網(wǎng)絡(luò)arp攻擊原理
現(xiàn)在我們用的互聯(lián)網(wǎng)的時間越來越多,需要掌握的網(wǎng)絡(luò)技能也很多,那么你知道網(wǎng)絡(luò)arp攻擊原理嗎?下面是學(xué)習(xí)啦小編整理的一些關(guān)于網(wǎng)絡(luò)arp攻擊原理的相關(guān)資料,供你參考。
什么是arp?
地址解析協(xié)議,即arp(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的一個TCP/IP協(xié)議。主機(jī)發(fā)送信息時將包含目標(biāo)IP地址的arp請求廣播到網(wǎng)絡(luò)上的所有主機(jī),并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后將該IP地址和物理地址存入本機(jī)arp緩存中并保留一定時間,下次請求時直接查詢arp緩存以節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個主機(jī)互相信任的基礎(chǔ)上的,網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送arp應(yīng)答消息,其他主機(jī)收到應(yīng)答報文時不會檢測該報文的真實性就會將其記入本機(jī)arp緩存;由此攻擊者就可以向某一主機(jī)發(fā)送偽arp應(yīng)答報文,使其發(fā)送的信息無法到達(dá)預(yù)期的主機(jī)或到達(dá)錯誤的主機(jī),這就構(gòu)成了一個arp欺騙。arp命令可用于查詢本機(jī)arp緩存中IP地址和MAC地址的對應(yīng)關(guān)系、添加或刪除靜態(tài)對應(yīng)關(guān)系等。相關(guān)協(xié)議有Rarp、代理arp。NDP用于在IPv6中代替地址解析協(xié)議。
網(wǎng)絡(luò)arp攻擊原理:
針對arp表的攻擊,arp表是IP地址和MAC地址的映射關(guān)系表,任何實現(xiàn)了IP協(xié)議棧的設(shè)備,一般情況下都通過該表維護(hù)IP地址和MAC地址的對應(yīng)關(guān)系,這是為了避免arp解析而造成的廣播數(shù)據(jù)報文對網(wǎng)絡(luò)造成沖擊。arp表的建立一般情況下是通過二個途徑:
1、 主動解析,如果一臺計算機(jī)想與另外一臺不知道MAC地址的計算機(jī)通信,則該計算機(jī)主動發(fā)arp請求,通過arp協(xié)議建立(前提是這兩臺計算機(jī)位于同一個IP子網(wǎng)上);
2、 被動請求,如果一臺計算機(jī)接收到了一臺計算機(jī)的arp請求,則首先在本地建立請求計算機(jī)的IP地址和MAC地址的對應(yīng)表。
因此,如果一個攻擊者通過變換不同的IP地址和MAC地址,向同一臺設(shè)備,比如三層交換機(jī)發(fā)送大量的arp請求,則被攻擊設(shè)備可能會因為arp緩存溢出而崩潰。
針對arp表項,還有一個可能的攻擊就是誤導(dǎo)計算機(jī)建立正確的arp表。根據(jù)arp協(xié)議www.runet.cn,如果一臺計算機(jī)接收到了一個arp 請求報文,在滿足下列兩個條件的情況下,該計算機(jī)會用arp請求報文中的源IP地址和源MAC地址更新自己的arp緩存:
1、 如果發(fā)起該arp請求的IP地址在自己本地的arp緩存中;
2、 請求的目標(biāo)IP地址不是自己的。
可以舉一個例子說明這個過程,假設(shè)有三臺計算機(jī)A,B,C,其中B已經(jīng)正確建立了A和C計算機(jī)的arp表項。假設(shè)A是攻擊者,此時,A發(fā)出一個arp請求報文,該請求報文這樣構(gòu)造:
1、 源IP地址是C的IP地址,源MAC地址是A的MAC地址;
2、 請求的目標(biāo)IP地址是A的IP地址。
這樣計算機(jī)B在收到這個arp請求報文后(arp請求是廣播報文,網(wǎng)絡(luò)上所有設(shè)備都能收到),網(wǎng)站防御系統(tǒng)發(fā)現(xiàn)B的arp表項已經(jīng)在自己的緩存中,但MAC地址與收到的請求的源MAC地址不符,于是根據(jù)arp協(xié)議,使用arp請求的源MAC地址(即A的MAC地址)更新自己的arp表。
這樣B的arp混存中就存在這樣的錯誤arp表項:C的IP地址跟A的MAC地址對應(yīng)。這樣的結(jié)果是, B發(fā)給C的數(shù)據(jù)都被計算機(jī)A接收到。
針對流項目表的攻擊
有的網(wǎng)絡(luò)設(shè)備為了加快轉(zhuǎn)發(fā)效率,建立了所謂的流緩存。所謂流,可以理解為一臺計算機(jī)的一個進(jìn)程到另外一臺計算機(jī)的一個進(jìn)程之間的數(shù)據(jù)流。如果表現(xiàn)在TCP/IP協(xié)議上,則是由(源IP地址,目的IP地址,協(xié)議號,源端口號,目的端口號)五元組共同確定的所有數(shù)據(jù)報文。
一個流緩存表一般由該五元組為索引,每當(dāng)設(shè)備接收到一個IP報文后,會首先分析IP報頭,把對應(yīng)的五元組數(shù)據(jù)提取出來,進(jìn)行一個HASH運(yùn)算,然后根據(jù)運(yùn)算結(jié)果查詢流緩存,如果查找成功,則根據(jù)查找的結(jié)果進(jìn)行處理,如果查找失敗,則新建一個流緩存項,查路由表,根據(jù)路由表查詢結(jié)果填完整這個流緩存,然后對數(shù)據(jù)報文進(jìn)行轉(zhuǎn)發(fā)(具體轉(zhuǎn)發(fā)是在流項目創(chuàng)建前還是創(chuàng)建后并不重要)。
可以看出,如果一個攻擊者發(fā)出大量的源IP地址或者目的IP地址變化的數(shù)據(jù)報文,就可能導(dǎo)致設(shè)備創(chuàng)建大量的流項目,因為不同的源IP地址和不同的目標(biāo)IP地址對應(yīng)不同的流。這樣可能導(dǎo)致流緩存溢出。
看過文章“網(wǎng)絡(luò)arp攻擊原理”的人還看了:
6.關(guān)于計算機(jī)網(wǎng)絡(luò)安全學(xué)習(xí)心得有哪些
7.關(guān)于網(wǎng)絡(luò)安全的心得推薦