摘要:介紹ARP地址解析協議的含義和工作原理,分析ARP協議所存在的安全漏洞,給出了網段內和跨網段ARP欺騙的實現過程。結合網絡管理的實際工作,重點介紹了IP地址和MAC地址綁定、交換機端口和MAC地址綁定、VLAN隔離等幾種技術能夠有效防御ARP欺騙攻擊的安全防范策略,并通過實驗驗證了該安全策略的有效性。
關鍵詞:ARP協議;ARP欺騙;MAC地址;IP地址;網絡安全
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)33-9212-04
LAN ARP Spoofing Attack Strategy Analysis and Safety Precautions
XING Yong-hong
(Municipal CPC Party School in Zhanjiang,Zhanjiang 524032,China)
Abstract: This paper describes the meaning of ARP Address Resolution Protocol and working principle of ARP protocol analysis of security vulnerabilities that exist, gives the network segment and cross-segment ARP spoofing implementation process. With the practical work of network management, focusing on the IP address and MAC address binding, the switch port and MAC address binding, VLAN isolation of several technology can effectively prevent ARP spoofing attacks, the security policy, and through experimental verification of the security strategy's effectiveness.
Key words: ARP protocol; ARP deception; MAC address; IP address; network security
在局域網的日常管理中,常常會遇到網絡上的計算機經常掉線,過一段時間后又會恢復正常,嚴重影響局域網中計算機的正常使用。其實這都是ARP病毒在作怪。ARP欺騙木馬只需成功感染一臺電腦,就可能導致整個局域網都無法上網,嚴重的甚至可能帶來整個網絡的癱瘓。該木馬發作時除了會導致同一局域網內的其他用戶上網出現時斷時續的現象外,還會竊取用戶密碼。如盜取QQ密碼、盜取各種網絡游戲密碼和賬號去做金錢交易,盜竊網上銀行賬號來做非法交易活動等,給用戶造成了很大的不便和巨大的經濟損失。那么什么是ARP?它的攻擊方式有哪些?怎樣防御?本文將逐一進行探討。
1 ARP協議簡介
ARP(Address Resolution Protocol)即地址解析協議的縮寫,該協議將網絡層的IP地址轉換為數據鏈路層地址。TCP IP協議中規定,IP地址為32位,由網絡號和網絡內的主機號構成,每一臺接入局域網或者Internet的主機都要配置一個IP地址。在以太網中,源主機和目的主機通信時,源主機不僅要知道目的主機的IP地址,還要知道目的主機的數據鏈路層地址,即網卡的MAC地址,同時規定MAC地址為48 位。ARP協議所做的工作就是查詢目的主機的IP 地址所對應的MAC地址,并實現雙方通信。
2 ARP協議的工作原理
源主機在傳輸數據前,首先要對初始數據進行封裝,在該過程中會把目的主機的IP地址和MAC地址封裝進去。在通信的最初階段,我們能夠知道目的主機的IP地址,而MAC地址卻是未知的。這時如果目的主機和源主機在同一個網段內,源主機會以第二層廣播的方式發送ARP請求報文。ARP請求報文中含有源主機的IP地址和MAC地址,以及目的主機的IP地址。當該報文通過廣播方式到達目的主機時,目的主機會響應該請求,并返回ARP響應報文從而源主機可以獲取目的主機的地址同樣目的主機也能夠獲得源主機的MAC地址。如果目的主機和源主機地址不在同一個網段內,源主機發出的IP數據包會送到交換機的默認網關,而默認網關的MAC地址同樣可以通過ARP協議獲取。經過ARP協議解析IP地址之后,主機會在緩存中保存IP地址和MAC地址的映射條目,此后再進行數據交換時只要從緩存中讀取映射條目即可。ARP協議工作原理詳見圖1和圖2。
3 ARP病毒的癥狀
局域網內一旦有ARP的攻擊存在,會欺騙局域網內所有主機和網關,讓所有上網的流量必須經過ARP攻擊者控制的主機。其他用戶原來直接通過網關上網,現在卻轉由通過被控主機轉發上網。由于被控主機性能和程序性能的影響,這種轉發并不會非常流暢,因此就會導致用戶上網的速度變慢甚至頻繁斷線。另外ARP欺騙需要不停地發送ARP應答包,會造成網絡擁塞。
綜上所述在用戶方面表現為計算機有時候無法正常上網,有時候又好了,包括訪問網上鄰居也是如此,拷貝文件無法完成,出現錯誤;網管員會發現局域網內的ARP包爆增,使用Arp查詢的時候會發現不正常的Mac地址,或者是錯誤的Mac地址對應,還有就是一個Mac地址對應多個IP的情況也會有出現。
在網絡設備上來說由于ARP病毒機使用網關IP地址和自己的MAC地址向本網段主機廣播,所以必然會在三層交換機的日志上出現IP地址沖突的記錄。同時病毒機還會和所有主機沖突,造成網段內計算機出現依次瞬斷,時斷時續的現象出現,當然這也會在三層交換機的日志中留下相應的記錄。
4 ARP欺騙攻擊的實現過程
4.1 網段內的ARP欺騙攻擊
ARP欺騙攻擊的核心就是向目標主機發送偽造的ARP應答,并使目標主機接收應答中偽造的IP與 MAC間的映射對,并以此更新目標主機緩存。設在同一網段的三臺主機分別為A,B,C,詳見表1。
假設A與B是信任關系,A欲向B發送數據包。攻擊方C通過前期準備,可以發現B的漏洞,使B暫時無法工作,然后C發送包含自己MAC地址的ARP應答給A。由于大多數的操作系統在接收到ARP應 答后會及時更新ARP緩存,而不考慮是否發出過真 實的ARP請求,所以A接收到應答后,就更新它的ARP緩存,建立新的IP和MAC地址映射對,即B的 IP地址10. 10. 100. 2對應了C的MAC地址00-E0 4C-33-33-33。這樣,導致A將發往B的數據包發向 了C,但A和B卻對此全然不知,因此C就實現對A 和B的監聽。
4.2 跨網段的ARP欺騙攻擊
跨網段的ARP欺騙比同一網段的ARP欺騙要 復雜得多,它需要把ARP欺騙與ICMP重定向攻擊 結合在一起。假設A和B在同一網段, C在另一網段,詳見表2。
首先攻擊方C修改IP包的生存時間,將其延 長,以便做充足的廣播。然后和上面提到的一樣,尋 找主機B的漏洞,攻擊此漏洞,使主機B暫時無法工 作。此后,攻擊方C發送IP地址為B的IP地址10. 10.100.2,MAC地址為C的MAC地址00-E0-4C-33 33-33的ARP應答給A。A接收到應答后,更新其 ARP緩存。這樣,在主機A上B的IP地址就對應C 的MAC地址。但是,A在發數據包給B時,仍然會在局域網內尋找10. 10. 100. 2的MAC地址,不會把包發給路由器,這時就需要進行ICMP重定向,告訴主機A到10. 10. 100. 2的最短路徑不是局域網,而是路由,請主機重定向路由路徑,把所有到10. 10. 100.2的包發給路由器。主機A在接受到這個合理 的ICMP重定向后,修改自己的路由路徑,把對10. 10.100.2的數據包都發給路由器。這樣攻擊方C就 能得到來自內部網段的數據包。
5 ARP欺騙攻擊安全防范策略
5.1 用戶端綁定
在用戶端計算機上綁定交換機網關的IP和 MAC地址。
1)首先,要求用戶獲得交換機網關的IP地址和MAC地址,用戶在DOS提示符下執行arp -a命令, 具體如下:
C: \\Documents and Settings\\user>arp -a
Interface 10.10.100.1---0x2
InternetAddressPhysicalAddressType
10.10.100.25400-40-66-77-88-d7dynamic
其中10. 10. 100. 254和00-30-6d-bc-9c-d7分別為網關的IP地址和MAC地址,因用戶所在的區域、 樓體和交換機不同,其對應網關的IP地址和MAC地 址也不相同。
2)編寫一個批處理文件arp. bat,實現將交換機網關的MAC地址和網關的IP地址的綁定,內容如下:
@ echo off
Arp -d
Arp -s10.10.100.25400-40-66-77-88-d7
用戶應該按照第一步中查找到的交換機網關的 IP地址和MAC地址,填入arp -s后面即可,同時需要將這個批處理軟件拖到“windows—開始—程序—啟 動”中,以便用戶每次開機后計算機自動加載并執行該批處理文件,對用戶起到一個很好的保護作用。
5.2 網管交換機端綁定
在核心交換機上綁定用戶主機的IP地址和網卡的MAC地址,同時在邊緣交換機上將用戶計算機網卡的MAC地址和交換機端口綁定的雙重安全綁定方式。
1)IP和MAC地址的綁定。在核心交換機上將所有局域網絡用戶的IP地址與其網卡MAC地址一一對應進行全部綁定。這樣可以極大程度上避免非法用戶使用ARP欺騙或盜用合法用戶的IP地址進行流量的盜取。具體實現方法如下(以AVAYA三層交換機為例):
P580(Configure)#arp 10. 10. 100. 100:E0: 4C: 11: 11:11 P580(Configure)#arp 10. 10. 100. 200:E0: 4C: 22: 22:22 P580(Configure)#arp 10. 10. 200.3 00:E0:4C: 33: 33:33
2)MAC地址與交換機端口的綁定。根據局域網絡用戶所在的區域、樓體和用戶房間所對應的交換機端口號,將用戶計算機網卡的MAC地址和交換機端口綁定。此方案可以防止非法用戶隨意接入網 絡端口上網。網絡用戶如果擅自改動本機網卡的MAC地址,該機器的網絡訪問將因其MAC地址被交換機認定為非法而無法實現上網,自然也就不會對局域網造成干擾了。具體操作如下(以AVAYA二層邊緣交換機為例):
console> (enable) lock port1/1
console> (enable) addmac 00:E0:4C:11:11:11 1
Address 00:E0: 4C: 11: 11: 11 was added to the secure list!
console> (enable) lock port1/2
console> (enable) addmac 00:E0:4C:22:22:22 2
Address 00:E0: 4C: 22: 22: 22 was added to the secure list!
console> (enable) lock port1/3
console> (enable) addmac 00:E0:4C:33:33:33 3
Address 00:E0: 4C: 33: 33: 33 was added to the secure list!
console> (enable) show cam
VLANDesMt AC/RouteDesDestination Port
100:E0:4C:11:11:111/1
100:E0:4C:22:22:221/2
100:E0:4C:33:33:331/3
5.3 采用VLAN技術隔離端口
局域網的網絡管理員可根據本單位網絡的拓卜結構,具體規劃出若干個VLAN,當管理員發現有非法用戶在惡意利用ARP欺騙攻擊網絡,或因合法用戶受病毒ARP病毒感染而影響網絡時,網絡管理員可利用技術手段首先查找到該用戶所在的交換機端口,然后將該端口劃一個單獨的VLAN將該用戶與 其它用戶進行物理隔離,以避免對其它用戶的影響。當然也可以利用將交換機端口Disable掉來屏蔽該用戶對網絡造成影響,從而達到安全防范的目的。
6 局域網內ARP病毒捕殺實例
某學校的局域網總是不穩定,連連出現斷網的現象。網段10.218.102.129--10.218.102.254。根據局域網內計算機頻繁掉線的現象,分析認為分場內的某臺電腦可能中了“ARP”的病毒,于是便在局域網內展開了ARP病毒捕殺過程。
6.1 找出病毒的根源
首先登陸到核心三層交換機上,由于是星形網絡,所有網關地址都集中在三層交換機上,通過查看交換機日志就可以看見IP沖突記錄。ARP病毒一旦開始攻擊會導致局域網中多數計算機都不能上網,當然也不能登錄交換機(不在同一
VLAN),通過交換機日志遠程查找病毒源是最快捷有效的方法。
通過日志可以明顯看出有一個MAC地址是0050-BAA4-4B10的計算機和10.218.102網段內的計算機挨著沖突,此MAC地址應該就是病毒機的網卡地址。處理辦法如下:首先打開局域網一臺電腦,在客戶端使用arp命令綁定網關的真實MAC地址命令如下:
Arp -d(先清除錯誤的ARP表)
arp s 10.218.102.254 00-e0-03-03-03-03(靜態指定網關的MAC地址)
隨后下載了一款名為“Anti Arp Sniffer”的工具,這是一款ARP防火墻軟件,該軟件通過在系統內核層攔截虛假ARP數據包來獲取中毒電腦的IP地址和MAC地址。此外,該軟件能有效攔截ARP病毒的攻擊,保障該電腦數據流向正確。使用“Anti Arp Sniffer”查找感染毒電腦時,啟動該程序,隨后在右側的“網關地址”項中輸入該局域網內的網關IP,隨后單擊“枚取MAC”這是該出現會自動獲取到網關電腦網卡的MAC地址。MAC獲取后單擊“自動保護”按鈕,這樣“Anti Arp Sniffer”便開始監視通過該網關上網的所有電腦了。片刻功夫,看到系統的任務欄中的“Anti Arp Sniffer”圖標上彈出一個“ARP欺騙數據包”提示信息。這就說明該軟件已經偵測到ARP病毒。于是打開“Anti Arp Sniffer”程序的主窗口,在程序的“欺騙數據詳細記錄”列表中看到一條信息,這就是“Anti Arp Sniffer”程序捕獲的ARP病毒信息。其中“網關IP地址”和“網關MAC地址”兩項中是網關電腦的的真實地址,后面的欺騙機MAC地址就是中ARP病毒的MAC地址。ARP病毒將該局域網的網關指向了這個IP地址,導致其他電腦無法上網。
6.2 獲取欺騙機IP
知道MAC地址后,就可直接通過IP地址工具查看尋找IP及計算機名。
6.3 清除ARP病毒
順藤摸瓜,通過IP地址有找到了感染病毒的電腦,首先就是將這臺電腦斷網,隨后在該電腦上運行“ARP病毒專殺”包中的“TSC.EXE”程序,該程序運行后,自動掃描電腦中的ARP病毒,功夫不大就將該電腦上的ARP病毒清除了。
6.4 ARP病毒預防措施
對于計算機來說,預防措施是保證自己計算機正常運行的主要手段,在日常工作中我們要作到以下幾個方面才能更有效的遏制病毒的蔓延,保護我們工作的正常進行。
1)及時升級客戶端的操作系統和應用程式補丁;
2)安裝和更新殺毒軟件。
3)如果網絡規模較少,盡量使用手動指定IP設置,而不是使用DHCP來分配IP地址。
4)如果交換機支持,在交換機上綁定MAC地址與IP地址。(不過這個實在不是好主意)
5)網絡管理員定期對網絡設備進行巡檢,對與日志中的IP沖突記錄要多加注意。
6)在路由器上做IP地址與MAC地址的靜態綁定。
7)最主要是要提高用戶的安全意識,養成良好的安全習慣,包括:及時安裝系統補丁程序;為系統設置強壯的密碼;安裝防火墻;安裝有效的殺毒軟件并及時升級病毒庫;不主動進行網絡攻擊,不隨便運行不受信任的軟件。
7 結束語
網絡欺騙攻擊作為一種非常專業化的攻擊手段,給網絡安全管理者帶來了嚴峻的考驗。ARP欺騙是一種典型的欺騙攻擊類型,它利用了ARP協議存在的安全隱患,并使用一些專門的攻擊工具,使得這種攻擊變得普及并有較高的成功率。文中通過分析ARP協議的工作原理,探討了ARP協議從IP地址到MAC地址解析過程中的安全性,給出了網段內和跨網段ARP欺騙的實現過程,提出了幾種常規可行的解決方案,如在用戶計算機上綁定交換機網關 的IP地址和MAC地址、在交換機上綁定用戶主機的 IP地址和網卡的MAC地址或綁定用戶計算機網卡的MAC地址和交換機端口、VLAN隔離等技術。如果多種方案配合使用,就可以最大限度的杜絕ARP 欺騙攻擊的出現??傊?,對ARP欺騙的網絡攻擊,不僅需要用戶自身做好防范工作之外,更需要網絡管理員應該時刻保持高度警惕,并不斷跟蹤防范欺騙類攻擊的最新技術,做到防范于未然。
參考文獻:
[1] 鄧清華,陳松喬.ARP欺騙攻擊及其防范[J].微機發展,2004,14(8):126-128.
[2] 孟曉明.基于ARP的網絡欺騙的檢測與防范[J].信息技術,2005,(5):41-44.
[3] 徐功文,陳曙,時研會.ARP協議攻擊原理及其防范措施[J].網絡與信息安全,2005,(1): 4-6.
[4] 張海燕.ARP漏洞及其防范技術[J].網絡安全,2005,(4): 40~42.
[5] 王佳,李志蜀.基于ARP協議的攻擊原理分析[J].微電子學與計算機,2004,21(4):10-12.