祝文卓++丁永珍
摘 要: ARP協(xié)議負(fù)責(zé)實(shí)現(xiàn)IP地址到網(wǎng)絡(luò)接口硬件地址的映射,是計(jì)算機(jī)網(wǎng)絡(luò)運(yùn)行的基礎(chǔ)協(xié)議之一。它最早運(yùn)行在可信局域網(wǎng)之上,而今局域網(wǎng)已經(jīng)不再是可信網(wǎng)絡(luò),因而ARP運(yùn)行中出現(xiàn)一些不安全因素。目前在網(wǎng)絡(luò)上出現(xiàn)了很多利用ARP協(xié)議進(jìn)行黑客攻擊的行為,給網(wǎng)絡(luò)安全造成很大的影響。本文將對(duì)這一問(wèn)題給出全面深刻的剖析及有效的解決方案。
關(guān)鍵詞: 互聯(lián)網(wǎng) ARP欺騙 ARP防范
隨著信息技術(shù)的發(fā)展,人們工作和生活已經(jīng)離不開(kāi)互聯(lián)網(wǎng)。但人們使用互聯(lián)網(wǎng)的同時(shí),或多或少遭遇到計(jì)算機(jī)病毒的毒害或黑客的攻擊,甚至許多人在經(jīng)濟(jì)上還有一定的損失,在這紛繁的網(wǎng)絡(luò)世界里,人們有時(shí)會(huì)談網(wǎng)色變。那么我們?cè)谌粘9ぷ骱蜕钪惺遣皇菬o(wú)法防范互聯(lián)網(wǎng)安全問(wèn)題呢?不是,其實(shí)互聯(lián)網(wǎng)安全還是可以防范的。下面就談互聯(lián)網(wǎng)欺騙與防范的一種方法—ARP欺騙與防范。ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。所謂“地址解析”就是主機(jī)在發(fā)送數(shù)據(jù)包前將目標(biāo)主機(jī)IP地址轉(zhuǎn)換成目標(biāo)主機(jī)MAC地址的過(guò)程。在局域網(wǎng)中一臺(tái)主機(jī)要和另一臺(tái)主機(jī)進(jìn)行通信,必須知道目標(biāo)主機(jī)的IP地址,但是最終負(fù)責(zé)在局域網(wǎng)中傳送數(shù)據(jù)的網(wǎng)卡等物理設(shè)備是不識(shí)別IP地址的,只能識(shí)別其硬件地址即MAC地址。MAC地址是48位的,通常表示為12個(gè)16進(jìn)制數(shù),每?jī)蓚€(gè)16進(jìn)制數(shù)之間用“-”或者冒號(hào)隔開(kāi),如00-0D-7E-2F-E8-EA就是一個(gè)MAC地址。每一塊網(wǎng)卡都有其全球唯一的MAC地址,網(wǎng)卡之間發(fā)送數(shù)據(jù),只能根據(jù)對(duì)方網(wǎng)卡的MAC地址發(fā)送,這時(shí)就需要一個(gè)將高層數(shù)據(jù)包中的IP地址轉(zhuǎn)換成低層MAC地址的協(xié)議,而這個(gè)重要的任務(wù)將由ARP協(xié)議完成。
一、ARP工作原理與欺騙原理
(一)ARP工作原理。
首先,每臺(tái)主機(jī)都會(huì)在自己的ARP緩沖區(qū)(ARP Cache)中建立一個(gè)ARP列表,以表示IP地址和MAC地址的對(duì)應(yīng)關(guān)系。當(dāng)源主機(jī)要將一個(gè)數(shù)據(jù)包發(fā)送到目的主機(jī)時(shí)會(huì)首先檢查自己ARP列表中是否存在該IP地址對(duì)應(yīng)的MAC地址,如果有就直接將數(shù)據(jù)包發(fā)送到這個(gè)MAC地址;如果沒(méi)有,就向本地網(wǎng)段發(fā)起一個(gè)ARP請(qǐng)求的廣播包,查詢此目的主機(jī)對(duì)應(yīng)的MAC地址。此ARP請(qǐng)求數(shù)據(jù)包里包括源主機(jī)的IP地址、硬件地址及目的主機(jī)的IP地址。網(wǎng)絡(luò)中所有主機(jī)收到這個(gè)ARP請(qǐng)求后,會(huì)檢查數(shù)據(jù)包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此數(shù)據(jù)包;如果相同,該主機(jī)首先將發(fā)送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經(jīng)存在該IP的信息,則將其覆蓋,然后給源主機(jī)發(fā)送一個(gè)ARP響應(yīng)數(shù)據(jù)包,告訴對(duì)方自己是它需要查找的MAC地址;源主機(jī)收到這個(gè)ARP響應(yīng)數(shù)據(jù)包后,將得到的目的主機(jī)的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開(kāi)始數(shù)據(jù)傳輸。如果源主機(jī)一直沒(méi)有收到ARP相應(yīng)的數(shù)據(jù)包,表示ARP查詢失敗。
(二)ARP欺騙原理。
1.ARP欺騙原理的分類
從影響網(wǎng)絡(luò)連接通暢的方式看,ARP欺騙分為兩種:一種是對(duì)路由器ARP表的欺騙;另一種是對(duì)內(nèi)網(wǎng)PC的網(wǎng)關(guān)欺騙。第一種ARP欺騙的原理是截獲網(wǎng)關(guān)數(shù)據(jù)。它通知路由器一系列錯(cuò)誤的內(nèi)網(wǎng)MAC地址,并按照一定的頻率不斷進(jìn)行,使真實(shí)的地址信息無(wú)法通過(guò)更新保存在路由器中,結(jié)果路由器的所有數(shù)據(jù)只能發(fā)送給錯(cuò)誤的MAC地址,造成正常PC無(wú)法收到信息。第二種ARP欺騙的原理是偽造網(wǎng)關(guān)。它的原理是建立假網(wǎng)關(guān),讓被它欺騙的PC向假網(wǎng)關(guān)發(fā)數(shù)據(jù),而不是通過(guò)正常的路由器途徑上網(wǎng)。在PC看來(lái),就是上不了網(wǎng)了(網(wǎng)絡(luò)掉線了)。
2.ARP欺騙新的表現(xiàn)形式
現(xiàn)在又新出現(xiàn)了一種ARP病毒,與以前一樣的是,該類ARP病毒也是向全網(wǎng)發(fā)送偽造的ARP欺騙廣播,自身偽裝成網(wǎng)關(guān)。但區(qū)別是它著重的不是對(duì)網(wǎng)絡(luò)游戲數(shù)據(jù)包的解密,而是對(duì)HTTP請(qǐng)求訪問(wèn)的修改。還是以上面的局域網(wǎng)環(huán)境舉例,如果局域網(wǎng)中一臺(tái)電腦B要請(qǐng)求某個(gè)網(wǎng)站頁(yè)面,這臺(tái)電腦會(huì)先向網(wǎng)關(guān)發(fā)送HTTP請(qǐng)求,說(shuō):“我想登錄這個(gè)網(wǎng)頁(yè),請(qǐng)你將這個(gè)網(wǎng)頁(yè)下載下來(lái),并發(fā)送給我?!边@樣,網(wǎng)關(guān)就會(huì)將這個(gè)頁(yè)面下載下來(lái),并發(fā)送給B電腦。這時(shí),如果A這臺(tái)電腦通過(guò)向全網(wǎng)發(fā)送偽造的ARP欺騙廣播,自身偽裝成網(wǎng)關(guān)成為一臺(tái)ARP中毒電腦的話,這樣當(dāng)B電腦請(qǐng)求WEB網(wǎng)頁(yè)時(shí),A電腦先是“好心好意”地將這個(gè)頁(yè)面下載下來(lái),然后發(fā)送給B電腦,但是它在返回給B電腦時(shí),會(huì)向其中插入惡意網(wǎng)址連接,該惡意網(wǎng)址連接會(huì)利用MS06-014和MS07-017等多種系統(tǒng)漏洞,向B電腦種植木馬病毒。同樣,如果C電腦也是請(qǐng)求WEB頁(yè)面訪問(wèn)。A電腦同樣會(huì)給C電腦返回帶毒的網(wǎng)頁(yè),這樣,如果一個(gè)局域網(wǎng)中存在這樣的ARP病毒電腦的話,頃刻間,整個(gè)網(wǎng)段的電腦將全部中毒。
二、ARP攻擊類型分析
由于ARP協(xié)議設(shè)計(jì)之初,并沒(méi)有考慮到網(wǎng)絡(luò)中主機(jī)的不安全性,因此,在ARP協(xié)議中存在著一些不安全因素,主要體現(xiàn)在以下四個(gè)方面:無(wú)連接性、無(wú)認(rèn)證性、無(wú)狀態(tài)性和廣播性。任何主機(jī)都能夠發(fā)送ARP數(shù)據(jù)包,而且只要接收的數(shù)據(jù)包是有效的,主機(jī)會(huì)將接收到的數(shù)據(jù)添加到ARP緩存表中,不會(huì)對(duì)其進(jìn)行合法性檢測(cè),同時(shí),ARP緩存表是時(shí)刻變化的,而對(duì)MAC地址的尋找,大多數(shù)是通過(guò)廣播形式獲得的。
正是由于ARP協(xié)議沒(méi)有對(duì)用戶身份和ARP報(bào)文的合法性進(jìn)行檢測(cè),一旦收到ARP請(qǐng)求就會(huì)更新ARP緩存表,這樣網(wǎng)絡(luò)中任何一臺(tái)主機(jī)都能發(fā)起ARP攻擊,都能隨意偽造ARP數(shù)據(jù)包。網(wǎng)絡(luò)攻擊者正是利用ARP協(xié)議中的這些漏洞,對(duì)用戶發(fā)動(dòng)ARP攻擊,ARP攻擊的方式和類型有很多種,而且層出不窮,目前來(lái)說(shuō)主要有以下幾種:
(一)IP地址沖突攻擊。
因?yàn)镮P地址對(duì)主機(jī)來(lái)說(shuō)相當(dāng)于唯一的身份證號(hào)碼,每臺(tái)主機(jī)的IP地址都不能相同,如果有IP地址相同的兩臺(tái)主機(jī),就會(huì)導(dǎo)致IP地址沖突。一臺(tái)主機(jī)檢測(cè)自身IP地址是否與網(wǎng)絡(luò)中其他主機(jī)IP地址沖突的方法是向網(wǎng)絡(luò)中發(fā)送廣播,將目標(biāo)主機(jī)的IP地址設(shè)為自身的IP地址,如果收到應(yīng)答則證明網(wǎng)絡(luò)中存在與自身IP地址相同的主機(jī),這時(shí)本機(jī)上會(huì)彈出IP地址沖突的警告。很多ARP攻擊者利用這一原理,將ARP數(shù)據(jù)包中的源主機(jī)IP地址和目標(biāo)主機(jī)IP地址均設(shè)置為被攻擊者的IP地址,將目標(biāo)主機(jī)的MAC地址設(shè)置為被攻擊者的MAC地址,被攻擊者收到這個(gè)數(shù)據(jù)包之后,就會(huì)以為IP地址存在沖突,從而釋放自身的IP地址,導(dǎo)致無(wú)法正常通信
(二)ARP泛洪攻擊。
在網(wǎng)絡(luò)中的每一個(gè)網(wǎng)絡(luò)設(shè)備中都存在著一張ARP表,ARP表的大小是固定的,攻擊者不斷發(fā)送偽造的ARP廣播數(shù)據(jù)包,讓交換機(jī)不停地處理廣播數(shù)據(jù)包,耗盡帶寬。另外,大量虛假的MAC地址填充整個(gè)ARP表,從而讓網(wǎng)絡(luò)設(shè)備無(wú)法根據(jù)ARP表進(jìn)行正常的通信。
(三)ARP欺騙。
ARP協(xié)議并不只有在發(fā)送ARP請(qǐng)求之后才接收ARP應(yīng)答,當(dāng)主機(jī)接收到一個(gè)ARP應(yīng)答數(shù)據(jù)包之后,它就會(huì)更新自己的ARP緩存表。如果攻擊者偽造一個(gè)ARP應(yīng)答,主機(jī)會(huì)將這個(gè)偽造的IP地址和MAC地址的映射存入ARP緩存表中,從而可能讓網(wǎng)絡(luò)出現(xiàn)問(wèn)題。ARP欺騙分為兩種:一種是攻擊者將自己偽裝成主機(jī),給網(wǎng)關(guān)發(fā)送一系列錯(cuò)誤的AAC地址,并且按照一定的頻率不斷進(jìn)行,讓真實(shí)的地址信息無(wú)法通過(guò)更新保存在路由器中,結(jié)果路由器的所有數(shù)據(jù)只能發(fā)送到錯(cuò)誤的MAC地址,從而導(dǎo)致主機(jī)無(wú)法正常收到信息。第二種是偽造網(wǎng)關(guān),即建立假網(wǎng)關(guān),讓被它欺騙的主機(jī)向假網(wǎng)關(guān)發(fā)送數(shù)據(jù),從而截獲這些信息。
三、ARP攻擊防御策略
由于ARP攻擊是利用ARP協(xié)議本身的漏洞開(kāi)展的,要從根本上解決這個(gè)問(wèn)題需要修改ARP協(xié)議的認(rèn)證體系,但是修改協(xié)議從現(xiàn)階段來(lái)說(shuō)是不太可能實(shí)現(xiàn)的,在目前情況下,我們可以采取以下幾種措施防御ARP攻擊。
(一)利用交換機(jī)對(duì)VLAN進(jìn)行合理地分段,同時(shí)將VLAN和交換機(jī)綁定。
這種方式首先是將VLAN進(jìn)行細(xì)分,從而有效減少?gòu)V播域的范圍,ARP的影響只會(huì)在很小范圍以內(nèi),不會(huì)產(chǎn)生很大很惡劣的影響;然后將與交換機(jī)連接的主機(jī)的IP地址與MAC地址的映射及其對(duì)應(yīng)端口保存在交換機(jī)中,當(dāng)交換機(jī)的某個(gè)端口收到ARP數(shù)據(jù)包的時(shí)候,就將包中的源地址與交換機(jī)中保存的源地址進(jìn)行比較,一旦發(fā)現(xiàn)兩者不符合,則會(huì)禁止該端口發(fā)來(lái)的所有數(shù)據(jù)包。
(二)將IP地址和MAC地址進(jìn)行綁定。
很多ARP攻擊者就是利用ARP緩存表會(huì)進(jìn)行動(dòng)態(tài)更新的特點(diǎn)發(fā)動(dòng)攻擊的,因此只要將ARP緩存表中的IP地址與MAC地址的映射綁定后且不允許刷新,就能有效防止ARP攻擊。不過(guò)這種方法也有明顯不足,第一是重啟之后必須重新綁定IP地址和MAC地址,十分麻煩;第二,這種綁定方法不靈活,一旦主機(jī)有變更,就需要重新對(duì)IP地址和MAC地址進(jìn)行綁定,對(duì)于那種主機(jī)數(shù)量很多的局域網(wǎng)來(lái)說(shuō),這種方式是不可取的。
(三)利用Sniffer等監(jiān)聽(tīng)軟件對(duì)局域網(wǎng)中的ARP數(shù)據(jù)包進(jìn)行監(jiān)聽(tīng)。
因?yàn)檎5闹鳈C(jī)在一定時(shí)間內(nèi)發(fā)送和接收的數(shù)據(jù)包是一定的,只有那些ARP攻擊者會(huì)在短時(shí)間內(nèi)發(fā)送大量的數(shù)據(jù)包,因此,通過(guò)監(jiān)聽(tīng)軟件我們可以發(fā)現(xiàn)哪些主機(jī)在短時(shí)間內(nèi)發(fā)送了大量數(shù)據(jù)包,從而對(duì)這些主機(jī)進(jìn)行排查。
(四)在網(wǎng)關(guān)和主機(jī)上安裝ARP防火墻。
AHF防火墻通過(guò)在系統(tǒng)內(nèi)核層攔截虛假的ARP數(shù)據(jù)包及主動(dòng)通告網(wǎng)關(guān)本機(jī)正確的MAC地址,可以保障數(shù)據(jù)流向正確,不經(jīng)過(guò)第三者。從而保證通訊數(shù)據(jù)安全和網(wǎng)絡(luò)暢通,保證數(shù)據(jù)不受第三者控制。ARR防火墻包括攔截ARP攻擊、攔截IP地址沖突、DOS攻擊抑制和ARP數(shù)據(jù)分析的功能。
(五)增強(qiáng)人員的網(wǎng)絡(luò)安全意識(shí)。
所有連接局域網(wǎng)的計(jì)算機(jī)都要安裝殺毒軟件,定期進(jìn)行升級(jí)更新并對(duì)計(jì)算機(jī)進(jìn)行病毒掃描,及時(shí)安全系統(tǒng)補(bǔ)丁程序,使用U盤和移動(dòng)硬盤前要先對(duì)其進(jìn)行安全掃描,不安裝或運(yùn)行陌生、可疑的文件和程序。
參考文獻(xiàn):
[1]閻宏生.計(jì)算機(jī)網(wǎng)絡(luò)安全與防護(hù)[M].北京:軍事科學(xué)出版社,2002.7.
[2]劉啟業(yè),趙利軍.網(wǎng)絡(luò)安全[M].北京:軍事誼文出版社,2010.9.
[3]史子新.校園網(wǎng)ARP攻擊的分析與綜合防御[J].成都:四川大學(xué)學(xué)報(bào),2013.10.