摘要: 目前網(wǎng)絡(luò)中存在大量基于ARP協(xié)議的病毒或攻擊。它們的主要危害表現(xiàn)為通過(guò)地址偽裝欺騙局域網(wǎng)內(nèi)的其他主機(jī),監(jiān)聽(tīng)數(shù)據(jù)傳輸、截獲數(shù)據(jù)報(bào)文、盜取帳號(hào)信息,甚至對(duì)來(lái)訪數(shù)據(jù)包進(jìn)行欺騙和偽造,對(duì)網(wǎng)絡(luò)安全造成極大的威脅。本文通過(guò)ARP工作機(jī)制及ARP病毒常用欺騙攻擊方法的分析,來(lái)探討對(duì)此類病毒的防范及解決方案。
關(guān)鍵詞: ARP MITM 地址映射 攻擊探測(cè)
ARP即Address Resolution Protocol,是將網(wǎng)絡(luò)IP地址轉(zhuǎn)換為以太網(wǎng)MAC地址的協(xié)議。ARP工作時(shí),源主機(jī)送出一個(gè)含有目標(biāo)IP地址的以太網(wǎng)廣播數(shù)據(jù)包。目的地主機(jī)以一個(gè)含有自身IP和MAC地址的數(shù)據(jù)包作為應(yīng)答。發(fā)送者將這個(gè)地址對(duì)存儲(chǔ)在緩存里的ARP轉(zhuǎn)換表中,以減少不必要的ARP通信。如果有一個(gè)不被信任的節(jié)點(diǎn)對(duì)本地網(wǎng)絡(luò)具有寫(xiě)訪問(wèn)權(quán)限,就會(huì)存在某種風(fēng)險(xiǎn)。該節(jié)點(diǎn)的主機(jī)可以發(fā)布虛假的ARP報(bào)文,并將所有通信都轉(zhuǎn)向它自己,然后它就可以扮演某些機(jī)器,或者對(duì)數(shù)據(jù)流進(jìn)行簡(jiǎn)單的修改,ARP欺騙故而產(chǎn)生。
TCP/IP協(xié)議的網(wǎng)絡(luò)中,路由表決定一個(gè)IP包的傳輸路徑,但當(dāng)IP包到達(dá)該網(wǎng)絡(luò)后,響應(yīng)這個(gè)IP包的主機(jī)卻是由該IP包中所包含的硬件MAC地址來(lái)識(shí)別。只有與該IP包中的硬件MAC地址相同的機(jī)器才會(huì)應(yīng)答這個(gè)IP包。在網(wǎng)絡(luò)中的每一臺(tái)主機(jī)都會(huì)發(fā)送IP包,因此在每臺(tái)主機(jī)的內(nèi)存中都有一個(gè)IP—MAC 的轉(zhuǎn)換表,稱為ARP映射表。ARP協(xié)議正式通過(guò)這個(gè)表來(lái)完成將IP地址到硬件MAC的轉(zhuǎn)換解析。此表通常是一個(gè)動(dòng)態(tài)的轉(zhuǎn)換表(可手工添加靜態(tài)條目),也就是說(shuō),該對(duì)應(yīng)表會(huì)被主機(jī)在一定的時(shí)間間隔后刷新。這個(gè)時(shí)間間隔就是ARP高速緩存的超時(shí)時(shí)間。主機(jī)在發(fā)送一個(gè)IP包之前,先到該轉(zhuǎn)換表中尋找和IP包對(duì)應(yīng)的硬件MAC地址,如果沒(méi)有找到,該主機(jī)就發(fā)送一個(gè)ARP廣播包,于
是,主機(jī)刷新自己的ARP緩存。然后發(fā)出該IP包。
一、ARP欺騙攻擊的方式
從機(jī)制上講,ARP欺騙攻擊的實(shí)質(zhì)屬于一種中間人欺騙攻擊(Man-in-the-Middle Attack,簡(jiǎn)稱“MITM攻擊”)。MITM攻擊模式是通過(guò)各種技術(shù)手段將受入侵者控制的一臺(tái)計(jì)算機(jī)虛擬放置在網(wǎng)絡(luò)連接中的兩臺(tái)通信計(jì)算機(jī)之間,這臺(tái)計(jì)算機(jī)就稱為“中間人”。然后入侵者把這臺(tái)計(jì)算機(jī)模擬一臺(tái)或兩臺(tái)原始計(jì)算機(jī),使“中間人”能夠與原始計(jì)算機(jī)建立活動(dòng)連接并允許其讀取或篡改傳遞的信息,然而兩個(gè)原始計(jì)算機(jī)用戶卻認(rèn)為他們是在互相通信,因而這種攻擊方式并不很容易被發(fā)現(xiàn)。

1.信息篡改。當(dāng)A和B通信時(shí),由主機(jī)C來(lái)為其“轉(zhuǎn)發(fā)”,如圖,而A、B之間并沒(méi)有實(shí)際上的直接通信,它們間的信息傳遞用C作為中介來(lái)完成,但A、B卻仍然認(rèn)為它們之間是在直接通信。這樣攻擊主機(jī)在中間成為了一個(gè)轉(zhuǎn)發(fā)器,C可以不僅竊聽(tīng)A、B的通信,還可以對(duì)信息進(jìn)行篡改再傳給對(duì)方,C便可以將惡意信息傳遞給A、B以達(dá)到自己的目的。
2.信息竊取。當(dāng)A和B通信時(shí),C不主動(dòng)去為其“轉(zhuǎn)發(fā)”,只是把他們傳輸?shù)臄?shù)據(jù)備份,以獲取用戶網(wǎng)絡(luò)的活動(dòng),包括賬戶、密碼等敏感信息,這種攻擊屬于被動(dòng)攻擊,很難被發(fā)現(xiàn)。
實(shí)施中間人攻擊時(shí),攻擊者常考慮的方式正是ARP欺騙或DNS欺騙等,將會(huì)話雙方的通訊流暗中改變,而這種改變對(duì)于會(huì)話雙方來(lái)說(shuō)是完全透明的。以常見(jiàn)的DNS欺騙為例,目標(biāo)將其DNS請(qǐng)求發(fā)送到攻擊者這里,然后攻擊者偽造DNS響應(yīng),將假冒的IP替換掉真實(shí)的IP,之后你就登陸了這個(gè)攻擊者指定的IP,而攻擊者早就在這個(gè)IP中安排好了一個(gè)偽造的網(wǎng)站如某銀行網(wǎng)站,從而騙取用戶輸入他們想得到的信息,如銀行賬號(hào)及密碼等,這可以看作網(wǎng)絡(luò)釣魚(yú)攻擊的一種方式。
二、ARP欺騙的種類
目前ARP欺騙主要有網(wǎng)關(guān)欺騙和ARP表的欺騙兩種。
1.網(wǎng)關(guān)欺騙的主要方法是偽造網(wǎng)關(guān)。通過(guò)建立虛假的網(wǎng)關(guān),讓被它欺騙的PC向假網(wǎng)關(guān)發(fā)數(shù)據(jù),而不是通過(guò)正常的路由器途徑上網(wǎng)。其表現(xiàn)就是網(wǎng)絡(luò)掉線,發(fā)送數(shù)據(jù)包的數(shù)量遠(yuǎn)遠(yuǎn)大于收到的數(shù)據(jù)包的數(shù)量,甚至無(wú)法收到數(shù)據(jù)包(俗稱“掉線”)。
2.ARP表欺騙主要方法是截獲網(wǎng)關(guān)數(shù)據(jù)。通過(guò)通知路由器或三層交換機(jī)一系列虛假的內(nèi)網(wǎng)MAC地址,并按照一定的頻率不斷進(jìn)行,使真實(shí)的地址信息無(wú)法通過(guò)更新保存在路由器中,結(jié)果路由器的所有數(shù)據(jù)只能發(fā)送給錯(cuò)誤的MAC地址,而真正的目標(biāo)PC無(wú)法收到信息。
如果攻擊的源主機(jī)和目標(biāo)主機(jī)屬于不同網(wǎng)段,只需要把ARP欺騙和ICMP重定向結(jié)合在一起就可以基本實(shí)現(xiàn)跨網(wǎng)段欺騙的目的。ICMP重定向報(bào)文是ICMP控制報(bào)文中的一種。在特定的情況下,當(dāng)路由器檢測(cè)到一臺(tái)機(jī)器使用非優(yōu)化路由時(shí),它會(huì)向該主機(jī)發(fā)送一個(gè)ICMP重定向報(bào)文,請(qǐng)求主機(jī)改變路由。路由器也會(huì)把初始數(shù)據(jù)報(bào)向它的目的地轉(zhuǎn)發(fā)。因此利用ICMP重定向報(bào)文也可以達(dá)到欺騙的目的。但因?yàn)門CP/IP協(xié)議現(xiàn)實(shí)中關(guān)于主機(jī)接收ICMP重定向報(bào)文主要有下面幾條限制:
(1)新路由必須是直達(dá)的。
(2)重定向包必須來(lái)自去往目標(biāo)的當(dāng)前路由。
(3)重定向包不能通知主機(jī)用自己做路由。
(4)被改變的路由必須是一條間接路由。
由于有這些限制,所以ICMP欺騙實(shí)際上很難實(shí)現(xiàn)。我們也可以采取相應(yīng)的防御辦法。
ARP欺騙對(duì)網(wǎng)絡(luò)安全的影響非常嚴(yán)重。一般情況下會(huì)造成大面積掉線的通信故障。伴隨著數(shù)據(jù)被監(jiān)聽(tīng),很多諸如用戶名、密碼之類的數(shù)據(jù)包被截獲,如果此類數(shù)據(jù)包本身沒(méi)有經(jīng)過(guò)加密,那么欺騙者可以輕易地破解出有價(jià)值的信息,從而給用戶帶來(lái)巨大的損失。
三、ARP的MITM攻擊的防范方法
從中間人欺騙攻擊的工作機(jī)制上研究其防范機(jī)制:由于MITM攻擊的主要目的在于隱蔽地竊取用戶有價(jià)值的信息,要防范MITM攻擊,我們可以將一些機(jī)密信息進(jìn)行加密后再傳輸,這樣即使被“中間人”截取也難以破解,如SSL加密通過(guò)共用密匙和私密密匙的設(shè)定可以有效地防范MITM攻擊。有一些認(rèn)證方式可以檢測(cè)到MITM攻擊。如設(shè)備或IP異常檢測(cè),如果用戶以前從未使用某個(gè)IP訪問(wèn)系統(tǒng),則系統(tǒng)會(huì)采取措施。另外還有設(shè)備或IP頻率檢測(cè):如果某個(gè)單一的IP同時(shí)訪問(wèn)大量的用戶帳號(hào),系統(tǒng)也會(huì)采取措施。
由此引申到對(duì)基于ARP的MITM攻擊的防范方法:
1.不要把網(wǎng)絡(luò)安全信任關(guān)系建立在IP地址的基礎(chǔ)上或硬件MAC地址基礎(chǔ)上,(RARP同樣存在欺騙的問(wèn)題)理想的關(guān)系應(yīng)該建立在IP+MAC的基礎(chǔ)上。在實(shí)際應(yīng)用中,通過(guò)在認(rèn)證服務(wù)器或相關(guān)的安全機(jī)制中實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)中所有終端或網(wǎng)關(guān)的IP地址與MAC地址的綁定,這樣可以實(shí)現(xiàn)主機(jī)的IP與網(wǎng)絡(luò)MAC地址進(jìn)行一一對(duì)應(yīng),進(jìn)而遏制一個(gè)物理主機(jī)偽裝成多臺(tái)主機(jī)進(jìn)行攻擊。如果對(duì)安全要求較高,還可將網(wǎng)絡(luò)用戶的用戶名與IP地址、MAC地址三者一起綁定。可以防止非法主機(jī)冒充合法用戶訪問(wèn)網(wǎng)絡(luò),從源頭上消除ARP攻擊源。
2.設(shè)置靜態(tài)的MAC→IP對(duì)應(yīng)表,不讓主機(jī)刷新設(shè)定好的轉(zhuǎn)換表。除非很有必要,否則停止使用動(dòng)態(tài)ARP解析表,將ARP做為永久條目保存在對(duì)應(yīng)表中。這樣可以防止黑客或病毒利用工具將自己主機(jī)的源IP地址和源MAC地址發(fā)給路由器或網(wǎng)關(guān),要求路由器或網(wǎng)關(guān)更新自己的ARP轉(zhuǎn)換表,進(jìn)而將錯(cuò)誤的、偽造的地址信息寫(xiě)入ARP解析表。故可以阻斷ARP欺騙攻擊。
3.在大型以太網(wǎng)絡(luò)中,應(yīng)根據(jù)實(shí)際情況,盡可能細(xì)地劃分VLAN和網(wǎng)段。很多電信運(yùn)營(yíng)商的做法就是將每一個(gè)網(wǎng)絡(luò)用戶劃分為一個(gè)VLAN,這樣也可防止一個(gè)用戶因中了ARP病毒而導(dǎo)致多個(gè)用戶無(wú)法正常上網(wǎng)的問(wèn)題。
4.修改系統(tǒng)設(shè)置,讓系統(tǒng)拒絕接收ICMP重定向報(bào)文,這樣可防止利用ARP和ICMP重定向進(jìn)行的跨網(wǎng)段欺騙攻擊。
5.可以在網(wǎng)絡(luò)的通信中通過(guò)對(duì)數(shù)據(jù)包,尤其是包含用戶名、密碼等敏感信息的數(shù)據(jù)包進(jìn)行加密和封裝。
6.校園網(wǎng)之類的大型局域網(wǎng)絡(luò)中采用靜態(tài)ARP有困難,網(wǎng)絡(luò)管理部門可以通過(guò)SNMP協(xié)議隔一定周期掃描各路由器或網(wǎng)關(guān)存儲(chǔ)的ARP表,通過(guò)比對(duì)如果發(fā)現(xiàn)IP—MAC的對(duì)應(yīng)存在多對(duì)多的異常情況,便可以追溯檢測(cè)出ARP病毒的感染源或攻擊源,并通過(guò)關(guān)閉網(wǎng)絡(luò)端口、強(qiáng)制下線等措施可以有效控制ARP病毒的蔓延。
結(jié)論
本文在研究分析基于ARP的MITM攻擊的原理及機(jī)制基礎(chǔ)上,提出了對(duì)ARP攻擊的防范方法,并在實(shí)踐中取得了良好的效果。其中ARP攻擊自動(dòng)檢測(cè)的提出,在網(wǎng)絡(luò)安全領(lǐng)域具有很高的應(yīng)用價(jià)值和市場(chǎng)價(jià)值。
參考文獻(xiàn):
[1]Comer.D.E DougInternetWorking with TCP/IP Volume 1.
[2]Data. Structures. And. Algorithm. Analysis. In. C. 1992. [EB/OL].
[3][美]法羅贊恩,費(fèi)根.TCP/IP協(xié)議族.清華大學(xué)出版社.