摘要:
校園網(wǎng)中ARP病毒頻繁發(fā)作,給普通用戶上網(wǎng)造成諸多不便,也給網(wǎng)絡(luò)管理員帶來了許多麻煩。本文從ARP地址解析協(xié)議入手,深入分析了ARP欺騙攻擊原理及過程,并給普通用戶和網(wǎng)絡(luò)管理員提出了相對應(yīng)的安全防范方法。
關(guān)鍵詞:校園網(wǎng);ARP欺騙攻擊;安全防范
在校園網(wǎng)中的用戶如果時常上不了網(wǎng),但是網(wǎng)絡(luò)連接又顯示正常,那么這很可能就是ARP欺騙已經(jīng)發(fā)作的征兆。“ARP欺騙”病毒發(fā)作時其癥狀表現(xiàn)為計算機網(wǎng)絡(luò)連接正常,上網(wǎng)時斷時續(xù),網(wǎng)頁打開速度慢用戶難以接受,極大地影響了用戶的正常使用。
1 ARP協(xié)議的工作原理
ARP(Address Resolution Protocol)即地址解析協(xié)議,該協(xié)議將網(wǎng)絡(luò)層的IP地址轉(zhuǎn)換為數(shù)據(jù)鏈路層的MAC地址。TCP/IP協(xié)議中規(guī)定,IP地址由網(wǎng)絡(luò)號和主機號構(gòu)成,每一臺接入局域網(wǎng)或者Internet的主機都要配置一個IP地址。在以太網(wǎng)中,源主機和目的主機通信時,源主機不僅要知道目的主機的IP地址,還要知道目的主機的數(shù)據(jù)鏈路層地址,即網(wǎng)卡的MAC地址。ARP協(xié)議所做的工作就是查詢目的主機的IP地址所對應(yīng)的MAC地址,并實現(xiàn)雙方通信。在以太網(wǎng)中傳輸?shù)臄?shù)據(jù)包是以太包,而以太包的尋址是依據(jù)其首部的MAC地址。僅僅知道某主機的IP地址并不能讓內(nèi)核發(fā)送一幀數(shù)據(jù)給此主機,內(nèi)核必須知道目的主機的MAC地址才能發(fā)送數(shù)據(jù)。ARP協(xié)議的作用就是在于把IP地址變換成MAC地址。
在局域網(wǎng)內(nèi)數(shù)據(jù)包傳輸依靠的是MAC地址,IP地址與MAC地址對應(yīng)關(guān)系保存在ARP緩存表中,每臺主機(包括網(wǎng)關(guān))都有一個ARP緩存表。我們可以在命令行窗口中,輸入命令arp -a,進行查看,輸入命令arp -d進行刪除。
當(dāng)數(shù)據(jù)源主機需要將一個數(shù)據(jù)包要發(fā)送到目的主機時,首先檢查自己ARP列表中是否存在該IP地址對應(yīng)的MAC地址。如果存在,就直接將數(shù)據(jù)包發(fā)送到這個MAC地址對應(yīng)的主機;如果不存在,就向本地網(wǎng)段發(fā)起一個ARP請求的廣播包,詢問目的主機的IP地址所對應(yīng)的MAC地址。網(wǎng)絡(luò)中所有的主機收到這個ARP請求后,會檢查數(shù)據(jù)包中的目的IP地址是否和自己的IP地址一致。如果不一致就不作回應(yīng);如果一致,該主機首先將發(fā)送端的MAC地址和IP地址添加到自己的ARP列表中。然后再給數(shù)據(jù)源主機發(fā)送一個ARP響應(yīng)數(shù)據(jù)包,告訴對方自己是它需要查找的MAC地址;源主機收到這個ARP響應(yīng)數(shù)據(jù)包后,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息開始數(shù)據(jù)的傳輸。若數(shù)據(jù)源主機一直沒有收到ARP響應(yīng)數(shù)據(jù)包,表示ARP查詢失敗。
2 ARP病毒的欺騙原理和欺騙過程
ARP欺騙的目的就是為了實現(xiàn)交換環(huán)境下的數(shù)據(jù)監(jiān)聽,大部分的木馬或病毒使用ARP欺騙攻擊也是為了達(dá)到這個目的。
假設(shè)由三臺電腦組成一個局域網(wǎng),該局域網(wǎng)由交換機連接,其中一個電腦為PC-A,代表攻擊方;另一臺電腦為PC-S,代表源主機;第三臺電腦為PC-D,代表目的主機。這三臺主機的IP地址分別為:IP-A,IP-S和IP-D;MAC地址分別為:MAC-A,MAC-S和MAC-D。
現(xiàn)在,源主機PC-S要給目的主機PC-D發(fā)送數(shù)據(jù),則源主機PC-S首先要查詢自身的ARP緩存表里面是否有目的主機IP地址對應(yīng)的MAC地址(MAC-D)。如果有,就將MAC-D封裝在數(shù)據(jù)包的外面,直接發(fā)送出去即可。如果沒有,主機PC-S便向網(wǎng)絡(luò)發(fā)送一個ARP廣播包,廣播包中包含了主機PC-S的IP地址IP-S,硬件地址MAC-S;同時,要求返回IP地址為IP-D的主機的硬件地址。當(dāng)主機PC-D接收到該廣播,經(jīng)核實IP地址,則將自身的IP地址和物理地址MAC-D返回到主機PC-S。現(xiàn)在主機PC-S可以在要發(fā)送的數(shù)據(jù)包中封裝目的地址MAC-D并發(fā)送出去,同時它還會動態(tài)更新自身的ARP緩存表,將MAC-D這一條記錄添加進去。這樣,主機PC-S下次再給主機PC-D發(fā)送數(shù)據(jù)的時候,就不再需要發(fā)送ARP廣播包進行查詢了。這就是正常情況下的數(shù)據(jù)包發(fā)送過程。
但是,上述數(shù)據(jù)發(fā)送機制有一個致命的缺陷,即它是建立在對局域網(wǎng)內(nèi)的全部主機信任的基礎(chǔ)上的,也就是說它的假設(shè)前提是:無論局域網(wǎng)中哪臺主機,其發(fā)送的ARP數(shù)據(jù)包都是正確的。比如在上述數(shù)據(jù)發(fā)送中,當(dāng)主機PC-S發(fā)出廣播包后,主機PC-D也回應(yīng)了自己的正確MAC地址。但是如果此時主機PC-A卻返回了主機PC-D的IP地址和和自己的MAC地址,并且由于主機PC-A不停地發(fā)送這樣的應(yīng)答數(shù)據(jù)包,則最后導(dǎo)致主機PC-S又重新動態(tài)更新自身的ARP緩存表,這回記錄成:IP-D與MAC-A對應(yīng),我們將其稱為ARP緩存表中毒。這樣,就導(dǎo)致以后凡是主機PC-S要發(fā)送給主機PC-D的數(shù)據(jù),都將會發(fā)送給主機PC-A。也就是說,主機PC-A就劫持了由主機PC-S發(fā)送給主機PC-D的數(shù)據(jù)。這就是ARP欺騙的過程。
如果主機PC-A不冒充目的主機PC-D,而是冒充網(wǎng)關(guān),那后果會更加嚴(yán)重。一個局域網(wǎng)中的主機要連接外網(wǎng),都要經(jīng)過局域網(wǎng)中的網(wǎng)關(guān)進行轉(zhuǎn)發(fā)。在局域網(wǎng)中,網(wǎng)關(guān)的IP地址假如為192.168.0.254。如果主機PC-A向整個局域網(wǎng)不停地發(fā)送IP地址是192.168.0.254,硬件地址是MAC-A的ARP欺騙廣播,局域網(wǎng)中的其它電腦都會更新自身的ARP緩存表,將主機PC-A當(dāng)成網(wǎng)關(guān)。這樣,當(dāng)它們發(fā)送數(shù)據(jù)給網(wǎng)關(guān)時,最終卻都會發(fā)送到MAC-A這臺主機中。這樣,主機PC-A就將會監(jiān)聽整個局域網(wǎng)發(fā)送給互聯(lián)網(wǎng)的數(shù)據(jù)包。
3 ARP欺騙攻擊安全防范方法
3.1 用戶端綁定
在用戶端計算機上綁定交換機網(wǎng)關(guān)的IP地址和MAC地址,以防止網(wǎng)關(guān)地址被篡改。
(1)要求用戶獲得交換機網(wǎng)關(guān)的IP地址和MAC地址。
用戶在DOS提示符下執(zhí)行arp - a命令,具體如下:
C:\\Documents and Settings\\administrator>arp -a
Interface: 192.168.60.54 --- 0x2
Internet Address Physical Address Type
192.168.60.254 00-e0-fc-17-1f-ab dynamic
其中192.168.60.254和00-e0-fc-17-1f-ab分別為網(wǎng)關(guān)的IP 地址和MAC地址,因用戶所處區(qū)域和交換機不同,其對應(yīng)網(wǎng)關(guān)的IP地址和MAC地址也會不相同。
(2)編寫一個批處理文件,可以命名為arp.bat,用來實現(xiàn)將交換機網(wǎng)關(guān)的MAC地址和網(wǎng)關(guān)的IP地址的綁定,內(nèi)容如下:
@echo off
arp - d
arp - s 192.168.60.25400-e0-fc-17-1f-ab
arp - s后面是按照1)中所查找到的交換機網(wǎng)關(guān)的IP地址和MAC地址。同時需要將這個批處理文件添加到“開始—所有程序—啟動”中,以便用戶每次開機后計算機自動加載并執(zhí)行該批處理文件,對用戶起到一個很好的保護作用。
3.2 網(wǎng)管交換機端綁定
在核心交換機上綁定用戶主機的IP地址和網(wǎng)卡的MAC地址。同時,還可以在接入層交換機上將用戶計算機網(wǎng)卡的MAC地址和交換機端口進行綁定。
(1)在核心交換機上綁定用戶主機IP地址和MAC地址。在核心交換機上將局域網(wǎng)用戶的IP地址與其網(wǎng)卡MAC地址一一對應(yīng)進行全部綁定。這樣可以最大程度上避免非法用戶使用ARP欺騙或盜用合法用戶的IP地址。當(dāng)然,這會大大增加網(wǎng)絡(luò)管理員的工作量,并且要求局域網(wǎng)內(nèi)用戶主機的IP地址不能隨意改動。
(2)在接入層交換機上進行用戶主機MAC地址與交換機端口的綁定。將用戶計算機網(wǎng)卡的MAC地址和交換機端口綁定可以防止非法用戶隨意接入網(wǎng)絡(luò)端口進行上網(wǎng)。非法接入的用戶主機因為其網(wǎng)卡的MAC地址與所綁定的不同,因而該主機的網(wǎng)絡(luò)訪問將因其MAC地址被交換機認(rèn)定為非法而無法實現(xiàn)上網(wǎng),自然也就不會對局域網(wǎng)造成干擾了。具體操作如下(以CISCO2950交換機為例):
switch#config terminal
#進入配置模式
switch(config)# interface 端口號
#進入具體端口配置模式
switch(config-if)#switchport port-security
#進入端口安全配置模式
switch(config-if )#switchport port-security mac-address主機的MAC地址#配置該端口要綁定的主機的MAC地址
如果需要刪除MAC地址與端口的綁定,則使用下面的命令:
switch(config-if )#no switchport port-security mac-address 主機的MAC地址#刪除綁定主機的MAC地址
3.3 采用VLAN技術(shù)隔離端口
當(dāng)管理員發(fā)現(xiàn)有非法用戶在惡意利用ARP欺騙攻擊網(wǎng)絡(luò),或因合法用戶受病毒ARP病毒感染而影響網(wǎng)絡(luò)時,網(wǎng)絡(luò)管理員可先查找到該用戶所在的交換機端口,然后將該端口劃一個單獨的VLAN將該用戶與其它用戶進行物理隔離,以避免對其它用戶的影響。當(dāng)然也可以將該交換機端口禁用從而屏蔽該用戶對網(wǎng)絡(luò)造成影響,從而達(dá)到安全防范的目的。
3.4 利用ARP防護軟件
伴隨ARP欺騙的隱蔽性和廣泛性,目前出現(xiàn)了多種可以防止ARP欺騙的軟件,它們的工作原理一般有兩種:第一種是攔截ARP的攻擊或者是IP沖突,保障系統(tǒng)不受ARP攻擊的影響;第二種是防止惡意攻擊程序篡改本機的ARP緩存表。 第一種方法可以通過廣播指定IP地址正確的MAC地址,它能夠立即解決ARP攻擊引起的掛馬、掉線等問題,但同時也會給網(wǎng)絡(luò)帶來一定的負(fù)載。第二種方法較為簡單,不會對網(wǎng)絡(luò)有什么影響,但防護效果稍差。
目前比較流行的ARP防護類軟件有:AntiARP防火墻、瑞星個人防火墻、360ARP防火墻等,它們的工作原理無外乎上述兩種。用戶可以根據(jù)需要選擇適合自己網(wǎng)絡(luò)環(huán)境的ARP防火墻。
4 結(jié)束語
ARP欺騙是一種典型的欺騙攻擊類型,它利用了ARP協(xié)議存在的安全隱患,并使用一些專門的攻擊工具,使得這種攻擊變得普及并有較高的成功率。
本文中通過分析ARP協(xié)議的工作原理,探討了ARP協(xié)議從IP地址到MAC地址解析過程中的安全性,提出了幾種常規(guī)可行的解決方案。如在用戶計算機上綁定交換機網(wǎng)關(guān)的IP地址和MAC地址;在交換機上綁定用戶主機的IP地址和網(wǎng)卡的MAC地址、綁定用戶計算機網(wǎng)卡的MAC地址和交換機端口;VLAN隔離等技術(shù)。
總之,對于ARP欺騙的網(wǎng)絡(luò)攻擊,不僅需要用戶自身做好防范工作,而且還需要網(wǎng)絡(luò)管理員時刻保持高度警惕,并不斷跟蹤防范欺騙類攻擊的最新技術(shù),做到防范于未然。
參考文獻(xiàn)
[1] 秦豐林,郭汝廷.ARP欺騙的監(jiān)測與防范技術(shù)綜述[J].計算機應(yīng)用研究,2009,26(1).
[2] 張海燕.ARP漏洞及其防范技術(shù)[J].網(wǎng)絡(luò)安全,2005(4).