一種新思路的ARP欺騙攻擊的防范
一、ARP欺騙攻擊
ARP(Address Resolution Protocol,地址解析協(xié)議)是局域網(wǎng)中用來進(jìn)行地址解析的協(xié)議,它將IP地址映射到MAC地址。
圖1所示為ARP地址解析的過程。當(dāng)PC1要給PC2發(fā)送報(bào)文時(shí),它先檢查本地的ARP緩存,如果沒有查找到PC2的MAC地址,則向網(wǎng)絡(luò)中發(fā)送一個(gè)廣播的ARP(ARP Request)請(qǐng)求報(bào)文,表示要請(qǐng)求解析PC2(172.16.1.2)的MAC地址,并且此報(bào)文的目的MAC地址為廣播地址FFFF。
FFFF.FFFF.由于ARP請(qǐng)求報(bào)文是廣播報(bào)文,網(wǎng)絡(luò)中所有的設(shè)備都會(huì)接收到,但只有IP地址與ARP請(qǐng)求報(bào)文中被請(qǐng)求解析的IP地址相同的設(shè)備才會(huì)回復(fù)。圖中由于PC2的IP地址就是PC1要請(qǐng)求的對(duì)象,PC2將回復(fù)一個(gè)單播的ARP應(yīng)答(ARP Reply)報(bào)文,表示自己(172.16.1.2)的MAC地址是0002.0002.0002,報(bào)文的目的MAC地址為PC1的MAC地址(0001.0001.0001),也就是說,只有PC1會(huì)收到此應(yīng)答。當(dāng)PC1收到ARP應(yīng)答報(bào)文后,它便獲知了PC2的MAC地址,并將此條目加入到ARP緩存表中,用于后續(xù)的數(shù)據(jù)發(fā)送。
由于ARP當(dāng)初被開發(fā)時(shí),沒有考慮到安全的因素,不存在任何的驗(yàn)證機(jī)制,所以就導(dǎo)致了ARP報(bào)文很容易偽造,也就是被欺騙。另一方面,發(fā)送ARP請(qǐng)求的設(shè)備并不能判斷收到的ARP應(yīng)答是否合法,是否為正確的源所發(fā)送的,只要它接收到ARP應(yīng)答報(bào)文,它就將結(jié)果放入ARP表中,而不管是否之前已經(jīng)存在此條目,或者與之前存在的條目不一樣,這就給攻擊者可趁之機(jī)。利用以上這些缺陷,攻擊者就可以通過發(fā)送偽造(欺騙)的ARP應(yīng)答報(bào)文(應(yīng)答報(bào)文中的IP與MAC的綁定關(guān)系是錯(cuò)誤的、偽造的)來更新其他設(shè)備的ARP緩存,導(dǎo)致其他設(shè)備之間不能正常進(jìn)行通信。
圖2所示就是一個(gè)典型的ARP攻擊。用戶PC的IP地址為172.16.1.2,網(wǎng)管出口的路由器地址為172.16.1.1,所有PC要發(fā)往外部網(wǎng)絡(luò)的數(shù)據(jù)都要通過網(wǎng)關(guān)。我們來看一下攻擊者(Attacker,172.16.1.3)是如何發(fā)起ARP欺騙攻擊。在PC要向外部網(wǎng)絡(luò)發(fā)送數(shù)據(jù)是,首先它要使用ARP請(qǐng)求報(bào)文去請(qǐng)求網(wǎng)關(guān)的MAC地址,由于請(qǐng)求是廣播的,攻擊者也可以收到此請(qǐng)求報(bào)文。之后攻擊者將向PC發(fā)送偽造的ARP應(yīng)答報(bào)文,而且攻擊者可以通過特定的工具以特定的速率連續(xù)發(fā)送偽造的ARP應(yīng)答報(bào)文。當(dāng)PC收到偽造的應(yīng)答報(bào)文后,它會(huì)毫不猶豫地將偽造報(bào)文的錯(cuò)誤綁定信息加入到本地的ARP緩存中,不管之前是否已經(jīng)獲得了正確的綁定信息。攻擊者在它發(fā)送的應(yīng)答報(bào)文中“聲稱”自己就是網(wǎng)關(guān),即172.16.1.1的MAC地址是0003.0003.0003(攻擊者的MAC地址)。這樣后續(xù)PC發(fā)往網(wǎng)關(guān)的數(shù)據(jù)都會(huì)發(fā)給攻擊者而不是網(wǎng)關(guān),達(dá)到了欺騙的目的,從而造成PC不能正常訪問外部網(wǎng)絡(luò)資源。
二、ARP欺騙攻擊工具
1.WinPcap.exe與WinArpAttacker組合,WinPcap是Win32平臺(tái)下用于抓包和分析的系統(tǒng),主要用于為Win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的數(shù)據(jù)包,包括一個(gè)內(nèi)核級(jí)別的packetfilter、一個(gè)底層的DLL(packet.dll)和一個(gè)高級(jí)的獨(dú)立于系統(tǒng)的DLL(Wpcap.dll)。而WinArpAttacker是以款A(yù)RP綜合攻擊攻擊,能夠在局域網(wǎng)內(nèi)進(jìn)行主機(jī)掃描、ARP攻擊、ARP攻擊檢查、ARP表防護(hù)和ARP代理。
2.WinPcap.exe與NetFuke組合,NetFuke軟件具有ARP欺騙、ICMP欺騙和網(wǎng)絡(luò)監(jiān)視等功能。
3.WinPcap.exe與“網(wǎng)絡(luò)執(zhí)法官”組合,“網(wǎng)絡(luò)執(zhí)法官”是一款局域網(wǎng)管理輔助軟件,采用網(wǎng)絡(luò)底層協(xié)議,能穿透各客戶端防火墻對(duì)網(wǎng)絡(luò)中的每一臺(tái)主機(jī)(本文中主機(jī)指各種計(jì)算機(jī)、交換機(jī)等配有IP的網(wǎng)絡(luò)設(shè)備)進(jìn)行監(jiān)控。
三、ARP攻擊的局限性
ARP攻擊只能在局域網(wǎng)內(nèi)進(jìn)行,無法對(duì)外網(wǎng)(互聯(lián)網(wǎng)、非本區(qū)域內(nèi)局域網(wǎng))進(jìn)行攻擊。
四、ARP攻擊防范措施
1.防范措施一,安裝360ARP防火墻、瑞星防火墻、AntiARP防火墻或其他具有防范ARP攻擊的防火墻。
2.防范措施二,在SOHO、寬帶、網(wǎng)吧專用路由器上設(shè)置IP與MAC地址綁定,防止ARP攻擊。
(1)進(jìn)入路由器WEB頁面,通過“ARP映射表”可以批量導(dǎo)入計(jì)算機(jī)IP地址與MAC地址對(duì)應(yīng)信息,進(jìn)行綁定操作。
(2)通過“靜態(tài)ARP綁定設(shè)置”,可以啟用和編輯“ARP綁定”。
3.防范措施三,網(wǎng)管員可以通過二層或三層交換機(jī)設(shè)置,將IP和MAC地址進(jìn)行綁定,可以防止用戶進(jìn)行惡意的ARP欺騙,下面以銳捷二層交換機(jī)RG-S2328G為例介紹。
「配置命令」
4.防范措施四,網(wǎng)管員可以通過措施三防止ARP欺騙,但需要在每個(gè)接入端口上配置地址綁定,工作量過大,因此可以考慮采用交換機(jī)DAI功能解決ARP欺騙攻擊的問題。DAI(動(dòng)態(tài)ARP檢測(cè)),交換機(jī)的DAI功能可以檢查端口收到的ARP報(bào)文的合法性,并可以丟棄非法的ARP報(bào)文,防止ARP欺騙攻擊。交換機(jī)DAI技術(shù),是以DHCP Snooping的綁定表為基礎(chǔ),對(duì)于沒有使用DHCP的服務(wù)器個(gè)別機(jī)器,采用靜態(tài)添加ARP實(shí)現(xiàn)。下面以銳捷三層交換機(jī)RG-S3760-24和二層交換機(jī)RG-S2328G為例介紹(兩臺(tái)交換機(jī)均支持DHCP與DAI),圖3所示。
「配置步驟」
(1)配置DHCP服務(wù)器將一臺(tái)PC配置為DHCP服務(wù)器,可以使用Windows server配置DHCP服務(wù)器,或第三方DHCP服務(wù)器軟件。DHCP服務(wù)器中的地址池為172.16.1.0/24.
(2)交換機(jī)RG-S2328G基本配置及DHCP監(jiān)聽配置(接入層)。
評(píng)論