摘 要:通過ARP協(xié)議欺騙攻擊,可以造成網(wǎng)絡(luò)中斷或者信息泄露。文章分析了ARP協(xié)議的工作原理,描述了ARP攻擊的方式,闡述了基于ARP欺騙攻擊的防范措施,以保證網(wǎng)絡(luò)安全。
關(guān)鍵詞:ARP欺騙;網(wǎng)絡(luò)攻擊;局域網(wǎng)
引言
由于計(jì)算機(jī)網(wǎng)絡(luò)具有開放性,并且聯(lián)結(jié)形式多樣,因此,無論是在局域網(wǎng)還是在廣域網(wǎng)中,都存在著自然和人為等諸多因素的威脅,加之網(wǎng)絡(luò)自身的脆弱性,致使網(wǎng)絡(luò)易受黑客、病毒、惡意軟件和其他不軌行為的攻擊。其中欺騙類攻擊是網(wǎng)絡(luò)中常見的一種攻擊方式,ARP欺騙攻擊就是一種典型的欺騙類攻擊。因此,了解ARP攻擊的基本原理,采取有針對(duì)性的必要措施,防患于未然,才能確保網(wǎng)絡(luò)信息的保密性、完整性和可用性。
1 ARP協(xié)議工作原理
ARP (Address Resolution Protocol,地址解析協(xié)議)用來動(dòng)態(tài)地將第三層網(wǎng)絡(luò)地址轉(zhuǎn)換成數(shù)據(jù)鏈路層的物理地址,也就是通過已知目標(biāo)設(shè)備的IP地址,找到目標(biāo)設(shè)備的MAC地址,以保證通信的進(jìn)行。
在基于以太網(wǎng)交換技術(shù)的局域網(wǎng)中,當(dāng)數(shù)據(jù)準(zhǔn)備發(fā)送時(shí),由數(shù)據(jù)鏈路層將上層數(shù)據(jù)封裝在以太網(wǎng)數(shù)據(jù)幀中,然后在以太網(wǎng)中傳輸。然而在封裝過程中,數(shù)據(jù)鏈路層并不知道以太網(wǎng)數(shù)據(jù)幀頭中目的主機(jī)的MAC地址,唯一的信息是IP數(shù)據(jù)報(bào)頭中的目的主機(jī)IP地址。為了找到與目的主機(jī)IP地址相對(duì)應(yīng)的MAC地址,根據(jù)ARP協(xié)議,源主機(jī)會(huì)發(fā)送一個(gè)稱為ARP Request的以太網(wǎng)數(shù)據(jù)幀給以太網(wǎng)上的每一個(gè)主機(jī),這個(gè)過程稱為ARP廣播。ARP請(qǐng)求數(shù)據(jù)幀中包含目的主機(jī)的IP地址,它向以太網(wǎng)上的每一個(gè)主機(jī)詢問“如果你是這個(gè)IP地址的擁有者,請(qǐng)回答你的MAC地址”。只有擁有此IP地址的主機(jī)收到這份廣播報(bào)文后,才會(huì)向源主機(jī)回送一個(gè)包含其MAC地址的ARP應(yīng)答。并且,為了盡量減少?gòu)V播ARP請(qǐng)求的次數(shù),每個(gè)主機(jī)都有一個(gè)ARP緩存(ARP Cache),這個(gè)緩存存放了最近的IP地址與MAC地址之間的映射記錄。ARP緩存表采用老化機(jī)制,主機(jī)每隔一定時(shí)間或者當(dāng)收到ARP應(yīng)答,都會(huì)用新的地址映射來更新ARP緩存,刪除在一段時(shí)間內(nèi)沒有使用過的IP地址與MAC地址的映射關(guān)系。因?yàn)锳RP是一個(gè)無狀態(tài)的協(xié)議,所以對(duì)于大多數(shù)操作系統(tǒng),如果收到一個(gè)ARP應(yīng)答,不管是否在此之前發(fā)過ARP請(qǐng)求,都會(huì)更新自己的ARP緩存,這就為系統(tǒng)安全留下了隱患。
2 ARP欺騙攻擊的實(shí)現(xiàn)過程
ARP欺騙攻擊的核心就是向目標(biāo)主機(jī)發(fā)送偽造的ARP應(yīng)答,并使目標(biāo)主機(jī)接收應(yīng)答中偽造的IP與MAC的映射關(guān)系,并以此更新目標(biāo)主機(jī)的ARP緩存。假設(shè)網(wǎng)絡(luò)中,A的IP地址為192. 168. 0. 1, MAC地址為aa-aa-aa-aa-aa-aa,B的IP地址為192. 168. 0. 2, MAC地址為bb-bb-bb-bb-bb-bb; C的IP地址為192. 168. 0.3, MAC地址為cc-cc-cc-cc-cc-cc。
A向B發(fā)送一個(gè)自己偽造的ARP應(yīng)答,而這個(gè)應(yīng)答中的數(shù)據(jù)發(fā)送方IP地址是C的IP地址192.168. 0. 3, MAC地址是偽造的一個(gè)其它地址dd-dd-dd-dd-dd-dd。當(dāng)B接收到A偽造的ARP應(yīng)答,B并不知道MAC地址被偽造了,B就會(huì)更新它自己本地的ARP緩存。現(xiàn)在和IP地址192. 168. 0. 3對(duì)應(yīng)的MAC地址在B的ARP緩存表上被改變成了一個(gè)不存在的MAC地址。從B開始Ping 192. 168. 0. 3,網(wǎng)卡遞交的MAC地址是dd-dd-dd-dd-dd-dd,結(jié)果當(dāng)然不能Ping通C。如果A向B發(fā)送的偽造ARP應(yīng)答中的MAC地址是aa-aa-aa-aa-aa-aa,那么B發(fā)往C的數(shù)據(jù)就會(huì)錯(cuò)誤地發(fā)送到A。此時(shí),A就可以竊取C的數(shù)據(jù)。這樣就可以實(shí)現(xiàn)在一臺(tái)普通計(jì)算機(jī)上通過發(fā)送ARP數(shù)據(jù)包的方法來控制網(wǎng)絡(luò)中任何一臺(tái)計(jì)算機(jī)的上網(wǎng)與否,甚至還可以直接對(duì)網(wǎng)關(guān)進(jìn)行攻擊,使網(wǎng)絡(luò)上的計(jì)算機(jī)發(fā)來的數(shù)據(jù)無法發(fā)送到正常網(wǎng)關(guān),而攻擊者可以偽裝成網(wǎng)關(guān),從而截取網(wǎng)絡(luò)中其他計(jì)算機(jī)發(fā)送的數(shù)據(jù)。
3 ARP攻擊的防范措施
3.1 設(shè)置靜態(tài)ARP緩存表
ARP協(xié)議攻擊最根本的原理就是改變IP地址與MAC地址的正確對(duì)應(yīng)關(guān)系。所以,可以采取靜態(tài)ARP表來防范,就是在目標(biāo)主機(jī)的ARP緩存中設(shè)置靜態(tài)地址映射記錄。這樣,當(dāng)主機(jī)A向主機(jī)B發(fā)送數(shù)據(jù)前就不需要通過向所在的局域網(wǎng)廣播ARP請(qǐng)求來獲得B的MAC地址,它會(huì)直接查詢ARP靜態(tài)記錄表來獲得B的MAC地址。攻擊者也就沒有機(jī)會(huì)向A發(fā)送ARP應(yīng)答。但是,攻擊者在未接收到ARP請(qǐng)求的情況下仍憑空偽造ARP應(yīng)答發(fā)送給A, A將拒絕用偽造的數(shù)據(jù)更新ARP緩存中的靜態(tài)記錄。這種方法的缺點(diǎn)很明顯,就是在經(jīng)常更換IP地址的局域網(wǎng)環(huán)境里,由于每個(gè)主機(jī)都采用ARP靜態(tài)記錄,手工維護(hù)十分繁瑣,通常只針對(duì)網(wǎng)關(guān)建立靜態(tài)映射。
3.2 交換機(jī)上綁定端口和MAC地址
設(shè)置交換機(jī)的每個(gè)端口與MAC地址相對(duì)應(yīng)。如果來自該端口的MAC地址發(fā)生變動(dòng),就自動(dòng)封鎖該端口,使主機(jī)無法連接到局域網(wǎng)。這樣,攻擊者就無法發(fā)送偽造的ARP數(shù)據(jù)幀,從而阻止了ARP欺騙的發(fā)生。
3.3 禁用網(wǎng)絡(luò)接口ARP解析
在操作系統(tǒng)中可以做靜態(tài)ARP協(xié)議設(shè)置(因?yàn)閷?duì)方不會(huì)響應(yīng)ARP請(qǐng)求報(bào)文),并禁止網(wǎng)絡(luò)接口做ARP解析以對(duì)抗ARP欺騙攻擊。例如在Linux下使用ifconfig eth0 -ARP可以使網(wǎng)卡驅(qū)動(dòng)程序停止使用ARP,然后建立靜態(tài)ARP映射“ARP -sIPMAC”,即可有效防范ARP攻擊。
3.4 利用防火墻和防病毒軟件加強(qiáng)監(jiān)控
可以借助防火墻和防病毒軟件,監(jiān)控進(jìn)出主機(jī)的網(wǎng)絡(luò)數(shù)據(jù)。在局域網(wǎng)內(nèi)的每臺(tái)機(jī)器都安裝防火墻軟件和防病毒軟件,每個(gè)網(wǎng)段也應(yīng)安裝防火墻軟件。通過對(duì)防火墻和防病毒軟件的正確配置,可以有效的抵御ARP攻擊,以及防范基于ARP的病毒和木馬程序的侵入。
4 結(jié)束語(yǔ)
本文通過分析ARP協(xié)議的工作原理,探討了基于ARP協(xié)議欺騙攻擊的實(shí)現(xiàn)過程,提出了多種可行的安全防御策略,對(duì)于防范ARP欺騙攻擊,一般需要多種措施配合使用,可以從制度和技術(shù)兩方面采取多種有效措施防治,以減少網(wǎng)絡(luò)受到的危害,提高工作效率,降低經(jīng)濟(jì)損失。如果要從根本上解決這一問題,最好的方法是重新設(shè)計(jì)一種安全的地址解析協(xié)議,IPV6中已經(jīng)考慮到了這個(gè)問題,采用了更安全的方式以防范來自底層的攻擊。
參考文獻(xiàn)
[1] 門飛,朱磊明.ARP協(xié)議攻擊原理及其防范[[J].信息網(wǎng)絡(luò)安全,2003,10: 26-27.
[2] 李海鷹,程灝,呂志強(qiáng).針對(duì)ARP攻擊的網(wǎng)絡(luò)防御式設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程, 2005,31(5) :170-171.
[3] 徐濤.基于Ethernet的ARP欺騙原理及防御[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2007,7:22-24.
[4] 王堅(jiān),梁海軍.ARP欺騙原理及其防范策略的探討[J].計(jì)算機(jī)與現(xiàn)代化,2008,2:99-101.