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