仇虹 施俊宇 涂秋月
摘要:地址解析協(xié)議(ARP)攻擊是局域網(wǎng)內(nèi)較常見的網(wǎng)絡攻擊事件,ARP攻擊可能導致網(wǎng)絡故障或信息泄露,一旦網(wǎng)絡中出現(xiàn)了ARP攻擊事件,網(wǎng)絡運維人員需花費大量的時間和精力處理。針對常見的ARP攻擊事件,對ARP工作原理進行了介紹,使用eNSP模擬了局域網(wǎng)環(huán)境,用Scapy構建ARP報文并實現(xiàn)了ARP欺騙攻擊和泛洪攻擊,結合網(wǎng)絡運維經(jīng)驗梳理了常用ARP攻擊的防范手段。
關鍵詞:地址解析協(xié)議;Scapy;欺騙攻擊;泛洪攻擊
中圖分類號:TP393文獻標志碼:A文章編號:1008-1739(2021)01-56-4
0引言
互聯(lián)網(wǎng)使用了TCP/IP協(xié)議,在設計之初主要考慮的是互通性和開放性,未重視安全性,使得TCP/IP協(xié)議族中部分協(xié)議有漏洞。ARP是TCP/IP中網(wǎng)絡層的重要協(xié)議,是連接硬件和網(wǎng)絡的橋梁[1]。ARP建立在局域網(wǎng)主機相互信任的基礎上,設計初衷是方便進行數(shù)據(jù)的傳輸、提高效率,并沒有安全驗證手段,為病毒或黑客實施ARP攻擊提供了可乘之機。ARP攻擊是局域網(wǎng)中最常見的攻擊方式之一,ARP欺騙攻擊和泛洪攻擊是常見的攻擊方式,對網(wǎng)絡安全構成嚴重威脅。
1 ARP工作原理
在網(wǎng)絡的數(shù)據(jù)鏈路層只能看見MAC幀,鏈路層以上的數(shù)據(jù)都被封裝在MAC幀中,MAC幀包含源MAC地址和目的MAC地址,在實際局域網(wǎng)絡中傳送數(shù)據(jù)時,根據(jù)MAC地址尋找目的主機。已知一臺主機的IP地址,要發(fā)送數(shù)據(jù)時需要找到對方的MAC地址,這時就需要用到ARP。
ARP負責將網(wǎng)絡層中的IP地址解析為鏈路層的MAC地址。ARP報文封裝在MAC幀中,ARP報文格式如圖1所示,總長度為28 Byte[2]。
每臺主機都有一個ARP高速緩存,保存著本局域網(wǎng)內(nèi)已知主機和路由器的IP地址和MAC地址映射表,這些映射關系可更新且有生存周期。當一臺主機發(fā)送數(shù)據(jù)時,若目標主機的MAC地址在ARP緩存表中不存在,會將包含目標IP地址信息的ARP請求廣播給網(wǎng)絡中的所有主機,接收返回消息以確定目標IP地址的物理地址。收到返回消息后將該IP地址和MAC地址存入本機ARP緩存中并保留一定時間,以便下次請求時直接查詢ARP緩存。
但ARP建立在網(wǎng)絡中主機完全信任的基礎上,有嚴重的安全缺陷。ARP地址轉(zhuǎn)換表依賴于計算機中高速緩沖存儲器動態(tài)更新,高速緩沖存儲器更新受到更新周期限制,只保存最近使用地址的映射關系。局域網(wǎng)上的主機可以自主發(fā)送ARP應答消息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存。攻擊者若發(fā)送偽造的ARP Request報文或ARP Reply報文,便可能會造成網(wǎng)絡通道阻塞、網(wǎng)絡設備的承載過重以及網(wǎng)絡的通信質(zhì)量不佳等情況[3]。
2構建局域網(wǎng)環(huán)境
在實際環(huán)境中實施ARP攻擊的可能是非法接入的主機、中木馬病毒的合法主機或遠程入侵的黑客等。使用eNSP軟件模擬局域網(wǎng)環(huán)境,如圖2所示,物理機通過Cloud1對局域網(wǎng)實施ARP攻擊,在拓撲圖中標為PCA。PC1,PC2,PC3,PCA處于同一局域網(wǎng),通過路由器R2連接外網(wǎng),PC4是外網(wǎng)的主機,各主機IP及MAC地址如表1所示。
3 ARP攻擊的實現(xiàn)
3.1掃描局域網(wǎng)內(nèi)在線的主機
攻擊者在攻擊前一般需要探測網(wǎng)絡環(huán)境,發(fā)現(xiàn)所有在線的主機。首先攻擊主機向整個網(wǎng)絡發(fā)送ARP數(shù)據(jù)包,收到 ARP廣播的主機自動回復ARP Reply數(shù)據(jù)包,攻擊主機根據(jù)收到的ARP回復包可判斷出局域網(wǎng)內(nèi)存活主機的情況。
使用Python調(diào)用Scapy可方便構造ARP數(shù)據(jù)包,2層地址設為廣播地址,3層地址設為網(wǎng)絡地址,即整個局域網(wǎng)段,變量為設置的ARP數(shù)據(jù)包[4]:
使用srp()函數(shù)發(fā)送ARP數(shù)據(jù)包,收到ARP回復包存入
變量。, unreplay=srp( , iface=wifi, timeout=5)。掃描結果如圖3所示。掃描結果中的192.168.24.254是網(wǎng)關地址,其余4個均是主機的地址,掃描結果與表1內(nèi)容一致。
3.2偽造ARP request報文欺騙主機
PC1要訪問PC3,會先廣播一個ARP請求報文,PC3收到后會返回一個ARP回復報文。若PCA發(fā)送的ARP Request報文以PC1的IP為源IP地址、PC3的IP為目標IP地址,PC3收到后就會更新其ARP緩存表,將PC1的IP和PCA的MAC地址寫入緩存表,使得PC3發(fā)給PC1的數(shù)據(jù)都會發(fā)給PCA,從而達到欺騙的目的。
實施攻擊前查看PC3的ARP緩存表,如圖4所示,此時PC1與PC3是能正常通信的。
此時PC3的ARP緩存表已發(fā)生了變化,192.168.24.3(PC1)對應的MAC地址變成PCA的MAC地址。PC3發(fā)往PC1的數(shù)據(jù)實際上都發(fā)給了PCA,PC3與PC1已不能正常通信。
使用Wireshark抓包,如圖6所示,發(fā)現(xiàn)PC3發(fā)往PC1的ICMP數(shù)據(jù)的目的MAC地址為PCA的地址,PC3發(fā)給PC1的數(shù)據(jù)實際上全發(fā)給了PCA,使得PC3無法和PC1正常通信。
PC4為外網(wǎng)計算機,IP地址為192.168.10.2,正常情況下PC1可以訪問PC4,此時ARP緩存表里的網(wǎng)關MAC地址是正常的,如圖7所示。
發(fā)送下面的ARP Request包,PC1的ARP緩存表中網(wǎng)關的MAC地址被改成了PCA的MAC地址,如圖8所示。被攻擊后,PC1不能訪問外網(wǎng),PC1發(fā)往網(wǎng)關的數(shù)據(jù)包實際上發(fā)給了PCA。
Ether (dst=54:89:98:F5:18:FF,src=00:50:56:c0:00:01)/ARP(psrc=192.168.24.254,pdst=192.168.24.3,op=1)。
3.3偽造ARP Reply報文欺騙網(wǎng)關
PCA通過發(fā)送偽造的ARP Reply報文可更改網(wǎng)關的ARP緩存表,從而達到欺騙網(wǎng)關的目的。構建ARP數(shù)據(jù)包:=Ether(dst=54:89:98:03:27:7B,src=00:50:56:c0:00:01)/ARP (psrc=192. 168.24.3,pdst=192.168.24.254, op=2)。
psrc設為PC1的IP, pdst為網(wǎng)關IP, dst為網(wǎng)關MAC地址,src為PCA的MAC地址,op設為2表示ARP回復報文。發(fā)送該數(shù)據(jù)包,R2的G0/0/0口(即網(wǎng)關)收到ARP Reply報文后會更改其ARP緩存表,如圖9所示。
網(wǎng)關被欺騙后,使用Wireshark軟件抓包分析可知,PC1發(fā)送出去的數(shù)據(jù)包是正常的,但外網(wǎng)經(jīng)網(wǎng)關發(fā)給PC1的數(shù)據(jù)的MAC地址被改為了PCA的MAC地址,也就是說PC1請求的數(shù)據(jù)均被發(fā)給了PCA,如圖10和圖11所示。
3.4 ARP泛洪攻擊
通過向網(wǎng)關發(fā)送大量ARP報文,會導致主機和網(wǎng)關的ARP緩存中正常表項被覆蓋或緩存表被寫滿,導致用戶無法上網(wǎng)、網(wǎng)關也無法正常響應。持續(xù)發(fā)送大量虛假的ARP Request報文,會覆蓋用戶主機正常的ARP表項,在主機查看ARP緩存表如圖12所示。
持續(xù)發(fā)送ARP Reply報文,會覆蓋住R2的ARP緩存表,如圖13所示。導致網(wǎng)關ARP表項被占滿,合法用戶的ARP表項無法正常學習,導致合法用戶無法正常訪問外網(wǎng)。
在ARP攻擊前,R2的CPU使用率為6%,在ARP攻擊期間,CPU使用率急劇上升,LSW1的CPU使用率變?yōu)?3%,R2的CPU使用率變?yōu)?6%,顯然ARP泛洪攻擊給網(wǎng)絡設備造成了沉重負擔,如圖14和圖15所示。
4 ARP攻擊的防范措施
4.1設置靜態(tài)ARP地址綁定
在每個用戶主機上采用IP地址和物理地址靜態(tài)綁定的方法,可固定IP地址和MAC地址的對應關系。在PC1上運行命令“ARPs 192.168.24.3 54-89-98-F5-18-FF”[5],IP地址和MAC地址的對應關系會固定寫入ARP緩存中,系統(tǒng)不會自動清空。使用Scapy再發(fā)送偽造的ARP包時,PC1中靜態(tài)ARP緩存表不會被覆蓋或改寫,可有效保護主機抵御ARP欺騙攻擊。
4.2交換機上設置端口綁定
在交換機中的配置命令:[Huawei]user-bind static ip-address 192.168.24.3 mac-address 5489-98f5-18FF interface G0/0/1,允許PC1通過交換機的G0/0/1口發(fā)出數(shù)據(jù),若PCA的地址和端口在交換機中沒有綁定,PCA發(fā)出的數(shù)據(jù)會被交換機丟棄,使得PCA發(fā)出的偽造的ARP數(shù)據(jù)不能影響局域網(wǎng)。在交換機上設定地址、端口綁定,可防止非法用戶接入網(wǎng),因其IP與MAC地址與綁定不符而被丟棄,即使冒用了合法用戶的IP和MAC地址,發(fā)到交換機的數(shù)據(jù)也會因接口不匹配不被轉(zhuǎn)發(fā)。交換機上設定地址、端口綁定,在安全性要求較高的部門有廣泛的應用。但該方法的缺點也十分明顯,會使網(wǎng)絡靈活性較差,新增主機及主機更換位置、更改IP地址都需要重新配置交換機,會給網(wǎng)絡維護人員帶來較重的負擔。
4.3使用ARP防護工具
使用ARP防火墻也可以保護主機免受ARP攻擊。當主機中出現(xiàn)ARP病毒或遭受ARP攻擊時會提示用戶,并能顯示攻擊者的MAC地址。使用ARP防火墻,可有效阻止ARP攻擊,對外來ARP攻擊提供有效保護的同時,還能阻止局域網(wǎng)內(nèi)的ARP攻擊對外造成威脅[6]。
5結束語
由于IPv4網(wǎng)絡中ARP協(xié)議存在漏洞,使得ARP攻擊成為常見的網(wǎng)絡安全事件,ARP欺騙攻擊和泛洪攻擊都是局域網(wǎng)內(nèi)常見的攻擊方式,ARP欺騙攻擊可造成用戶數(shù)據(jù)的泄露,ARP泛洪攻擊容易引起網(wǎng)絡故障。作為網(wǎng)絡運維人員需熟練掌握ARP工作機制、對常見的ARP攻擊方式要有深刻的認識,在出現(xiàn)ARP攻擊事件時能夠快速找到攻擊源并阻斷攻擊,盡量降低ARP攻擊對網(wǎng)絡的影響。網(wǎng)絡維護人員還需通過合理的防范措施,預防ARP攻擊事件的發(fā)生。
參考文獻
[1]邊浩江.ARP欺騙的偵測及防御方法的研究與實現(xiàn)[D].昆明:昆明理工大學,2015.
[2]謝希仁.計算機網(wǎng)絡:第6版[M].北京:電子工業(yè)出版社, 2013.
[3]郭會茹,楊斌,牛立全.ARP攻擊原理分析及其安全防范措施[J].網(wǎng)絡安全技術與應用,2015(6):5-6.
[4]李兆斌,茅方毅,王瑤君,等.Scapy在網(wǎng)絡設備安全性測試中的應用[J].北京電子科技學院學報,2016,24(4):73-77.
[5]黃學毛.論局域網(wǎng)中ARP攻擊及防范措施[J].電腦知識與技術,2016(2),31-32.
[6]崔婷.局域網(wǎng)中ARP的攻擊及防范措施[J].網(wǎng)絡安全技術與應用,2019(5):26-27.