IDC中心的ARP攻擊與防御解決方案
1 引言
ARP攻擊在各大數(shù)據(jù)中心(IDC中心)泛濫,使得國(guó)內(nèi)眾多機(jī)房或網(wǎng)絡(luò)運(yùn)營(yíng)商深惡痛絕。由于其攻擊的特性,它可以導(dǎo)致被攻擊網(wǎng)站或服務(wù)器的無(wú)法訪問,或者使訪問者訪問其他錯(cuò)誤網(wǎng)址或接收到錯(cuò)誤信息,直接危害著企業(yè)的利益。因此,ARP欺騙攻擊嚴(yán)重影響了IDC中心的正常運(yùn)行和信息安全,如何進(jìn)行防范及清楚ARP病毒已成為網(wǎng)絡(luò)管理者迫切需要解決的問題。
2 ARP工作原理
ARP(Address Resolution Protocol)是地址解析協(xié)議,提供了從IP地址到物理地址的映射。即通過已知的網(wǎng)絡(luò)層(IP層,也就是相當(dāng)于OSI的第三層)地址獲得數(shù)據(jù)鏈路層(MAC層,也就是相當(dāng)于OSI的第二層)的MAC地址。
ARP工作原理:主機(jī)A向主機(jī)B發(fā)送報(bào)文,會(huì)首先查詢本地的ARP緩存表,通過B的IP地址找到對(duì)應(yīng)的MAC地址后,就會(huì)進(jìn)行數(shù)據(jù)傳輸。如果未找到,則A會(huì)廣播一個(gè) ARP請(qǐng)求報(bào)文(此報(bào)文中包含主機(jī)A的IP地址到物理地址的映射及主機(jī)B的IP地址),請(qǐng)求主機(jī)B回答其物理地址。網(wǎng)上所有主機(jī)包括B都收到該ARP請(qǐng)求,但只有主機(jī)B識(shí)別自己的IP地址,于是向A主機(jī)發(fā)回一個(gè)ARP響應(yīng)報(bào)文。其中就包含有B的MAC地址,A接收到B的應(yīng)答后,就會(huì)更新本地的ARP緩存。接著使用這個(gè)MAC地址發(fā)送數(shù)據(jù)。因此,本地高速緩存的這個(gè)ARP表是本地網(wǎng)絡(luò)流通的基礎(chǔ),而且這個(gè)緩存是動(dòng)態(tài)的。
3 IDC中常見ARP欺騙攻擊方式
ARP攻擊就是通過偽造IP地址和MAC地址實(shí)現(xiàn)ARP欺騙,能夠在網(wǎng)絡(luò)中產(chǎn)生大量的ARP通信量使網(wǎng)絡(luò)阻塞,攻擊者只要持續(xù)不斷的發(fā)出偽造的ARP響應(yīng)包就能更改目標(biāo)主機(jī)ARP緩存中的IP地址到MAC地址映射。如果IDC的托管主機(jī)受到 ARP 病毒感染或是被黑客控制了,就可能出現(xiàn)了 ARP 欺騙攻擊 。通常,被感染或被控制的主機(jī)會(huì)向本網(wǎng)段廣播偽造的 ARP 信息,這會(huì)導(dǎo)致同網(wǎng)段的其它托管主機(jī)或是網(wǎng)關(guān)的 ARP 表出現(xiàn)混亂,會(huì)造成這些主機(jī)無(wú)法進(jìn)行正常通信,更有甚者則會(huì)導(dǎo)致這些主機(jī)上的通信被監(jiān)聽或竊取事件的發(fā)生等等問題。
3.1 欺騙攻擊
這是比較常見的攻擊,通過發(fā)送偽造的ARP包來(lái)欺騙路由和目標(biāo)主機(jī),讓目標(biāo)主機(jī)認(rèn)為這是一個(gè)合法的主機(jī)。便完成了欺騙.這種欺騙多發(fā)生在同一網(wǎng)段內(nèi),因?yàn)槁酚刹粫?huì)把本網(wǎng)段的包向外轉(zhuǎn)發(fā),當(dāng)然實(shí)現(xiàn)不同網(wǎng)段的攻擊也有方法,便要通過ICMP協(xié)議來(lái)告訴路由器重新選擇路由。
(1)相同網(wǎng)段ARP欺騙
此種欺騙攻擊通常會(huì)偽造一個(gè)ARP_REPLY的響應(yīng)包發(fā)送給欲欺騙主機(jī),人為指定該數(shù)據(jù)包中的源IP,目標(biāo)IP,源MAC地址,目標(biāo)MAC地址。通過此虛假的ARP響應(yīng)包修改欲欺騙主機(jī)的ARP緩存,達(dá)到欺騙目的。以圖1為例說(shuō)明相同網(wǎng)段間ARP欺騙過程。
主機(jī)C欲非法入侵主機(jī)B,下面是具體的步驟:
①主機(jī)C首先研究與主機(jī)B正常通信的主機(jī)A,發(fā)現(xiàn)主機(jī)A漏洞。
②根據(jù)主機(jī)A的漏洞,使其暫時(shí)停止工作。
③主機(jī)C將自己IP地址改為192.168.0.1。
④主機(jī)C向主機(jī)B發(fā)送一個(gè)ARP響應(yīng)包,其中源IP地址為192.168.0.1,源MAC地址為CC:CC:CC:CC:CC:CC,要求主機(jī)B更新ARP緩存中IP地址到MAC地址的映射表.
⑤主機(jī)B更新了自己的ARP緩存。
⑥主機(jī)C成功入侵主機(jī)B。
以上為一個(gè)在同網(wǎng)段內(nèi)的ARP欺騙過程。
(2)不同網(wǎng)段ARP欺騙
如主機(jī)A與主機(jī)C在不同網(wǎng)段,上面的方法則不起作用。以圖2為例說(shuō)明不同網(wǎng)段間ARP欺騙過程。
在現(xiàn)在的情況下,位于192.168.1網(wǎng)段的主機(jī)C如何冒充主機(jī)B欺騙主機(jī)A呢?顯然用上面的辦法的話,即使欺騙成功,那么由主機(jī)C和主機(jī)A之間也無(wú)法建立telnet會(huì)話,因?yàn)槁酚善鞑粫?huì)把主機(jī)A發(fā)給主機(jī)B的包向外轉(zhuǎn)發(fā),路由器會(huì)發(fā)現(xiàn)地址在192.168.0.這個(gè)網(wǎng)段之內(nèi)。
現(xiàn)在就涉及到另外一種欺騙方式——ICMP重定向。把ARP欺騙和ICMP重定向結(jié)合在一起就可以基本實(shí)現(xiàn)跨網(wǎng)段欺騙的目的。
ICMP重定向報(bào)文是ICMP控制報(bào)文中的一種。在特定的情況下,當(dāng)路由器檢測(cè)到一臺(tái)機(jī)器使用非優(yōu)化路由的時(shí)候,它會(huì)向該主機(jī)發(fā)送一個(gè)ICMP重定向報(bào)文,請(qǐng)求主機(jī)改變路由。路由器也會(huì)把初始數(shù)據(jù)報(bào)向它的目的地轉(zhuǎn)發(fā)。我們可以利用ICMP重定向報(bào)文達(dá)到欺騙的目的。下面是結(jié)合ARP欺騙和ICMP重定向進(jìn)行攻擊的步驟:
①主機(jī)C需將自己發(fā)出的非法IP包的存活時(shí)間改成最大。
②尋找主機(jī)B的漏洞使其暫時(shí)停止工作。
③當(dāng)主機(jī)A找不到原來(lái)的192.0.0.2后,將更新自己的ARP對(duì)應(yīng)表。此時(shí),主機(jī)C發(fā)送一個(gè)原IP地址為192.0.0.2,MAC地址為CC:CC:CC:CC:CC:CC的ARP響應(yīng)包。
④現(xiàn)在每臺(tái)主機(jī)都知道了,一個(gè)新的MAC地址對(duì)應(yīng)192.0.0.2,一個(gè)ARP欺騙完成了,但是,每臺(tái)主機(jī)都只會(huì)在局域網(wǎng)中找這個(gè)地址而根本就不會(huì)把發(fā)送給192.0.0.2的IP包丟給路由。于是還需要構(gòu)造一個(gè)ICMP的重定向廣播。
⑤定制一個(gè)ICMP重定向包告訴網(wǎng)絡(luò)中的主機(jī), 到192.0.0.2的路由最短路徑不是局域網(wǎng),而是路由,請(qǐng)主機(jī)重定向你們的路由路徑,把所有到192.0.0.2的IP包丟給路由。
⑥主機(jī)A接受這個(gè)合理的ICMP重定向,于是修改自己的路由路徑,把對(duì)192.0.0.3的通訊都丟給路由器。
⑦主機(jī)C成功入侵主機(jī)A。
其實(shí)上面的想法只是一種理想話的情況,主機(jī)許可接收的ICMP重定向包其實(shí)有很多的限制條件,這些條件使ICMP重定向變的非常困難。
(3)ARP欺騙新表現(xiàn)形式
此種欺騙攻擊方式同上一樣,向全網(wǎng)發(fā)送偽造的ARP數(shù)據(jù)包,區(qū)別在于它對(duì)HTTP報(bào)文的修改。
用戶在瀏覽某些網(wǎng)頁(yè)時(shí),網(wǎng)頁(yè)中可能會(huì)包含一些惡意的代碼,這就是俗稱的“網(wǎng)頁(yè)木馬”,此種行為被稱為“掛馬”。主要有以下三種方法插入惡意代碼:
①局域網(wǎng)被ARP欺騙。當(dāng)網(wǎng)內(nèi)的一臺(tái)主機(jī)欲訪問網(wǎng)外的WEB服務(wù)器時(shí),該主機(jī)會(huì)將請(qǐng)求發(fā)給負(fù)責(zé)本網(wǎng)的網(wǎng)關(guān),由網(wǎng)關(guān)到服務(wù)器獲得請(qǐng)求頁(yè)面再發(fā)給該主機(jī)。此時(shí)攻擊主機(jī)偽裝成網(wǎng)關(guān)將插入惡意代碼的網(wǎng)頁(yè)發(fā)給請(qǐng)求主機(jī),對(duì)于該局域網(wǎng)內(nèi)的其他主機(jī)均可采取此種攻擊方法。
②服務(wù)器被ARP欺騙。服務(wù)器所處局域網(wǎng)內(nèi),有主機(jī)被感染病毒,服務(wù)器發(fā)給用戶的網(wǎng)頁(yè)在傳輸過程中被插入惡意代碼。
③服務(wù)器被攻擊。服務(wù)器被入侵或感染病毒,硬盤上網(wǎng)頁(yè)文件被修改插入惡意代碼。
3.2 MAC Flooding
MAC Flooding 可以稱之為 MAC 洪泛現(xiàn)象,這是一個(gè)比較危險(xiǎn)的攻擊,可以溢出交換機(jī)的ARP表,使整個(gè)網(wǎng)絡(luò)不能正常通信。其中 Flooding 是一種快速散布網(wǎng)絡(luò)連接設(shè)備 (如交換機(jī))更新信息到整個(gè)大型網(wǎng)絡(luò)打每一個(gè)節(jié)點(diǎn)的一種方法。交換機(jī)中也存放著一個(gè) ARP 緩存表。同主機(jī)中的 ARP 緩存表相同,它也起到記錄網(wǎng)絡(luò)設(shè)備 MAC 地址與 IP 地址的 對(duì)應(yīng)關(guān)系的功能。但是交換機(jī)中的 ARP 緩存表的大小是固定的,這就導(dǎo)致了 ARP 欺騙的另 一種隱患:由于交換機(jī)可以主動(dòng)學(xué)習(xí)客戶端的 MAC 地址,并建立和維護(hù)這個(gè) ARP 緩存表, 當(dāng)某人利用欺騙攻擊連續(xù)大量的制造欺騙 MAC 地址,ARP 緩存表就會(huì)被迅速填滿,同時(shí)更新信息以洪泛方式發(fā)送到所有的接口,也會(huì)發(fā)給所有的接口和鄰近的交換機(jī),會(huì)導(dǎo)致其他交換機(jī)的 ARP 表 溢出,造成交換機(jī)負(fù)載過大,網(wǎng)絡(luò)緩慢和丟包甚至癱瘓。所以說(shuō) MAC Flooding 是一種比較 危險(xiǎn)的攻擊,嚴(yán)重會(huì)使整個(gè)網(wǎng)絡(luò)不能正常通信。
3.3基于ARP的DOS攻擊
DoS 攻擊的目的就是讓被攻擊主機(jī)拒絕 用戶的服務(wù)訪問,破環(huán)系統(tǒng)的正常運(yùn)行。最終使用戶的部分 Internet 連接和網(wǎng)絡(luò)系統(tǒng)失效。 它的基本原理是:攻擊者利用 ARP 欺騙 工具,不斷向被攻擊主機(jī)發(fā)送大量的連接請(qǐng)求,由于遭到 ARP 欺騙的主機(jī)不能夠根據(jù) ARP 緩存表找到對(duì)方主機(jī),加之主機(jī)的處理能力有限,使得它不能為正常用戶提供服務(wù),便出現(xiàn) 拒絕服務(wù)。在這個(gè)過程中,攻擊者可以使用 ARP 欺騙方式來(lái)隱藏自己,這樣在被攻擊主機(jī) 的日志上就不會(huì)出現(xiàn)攻擊者真實(shí)的 IP 地址。被攻擊主機(jī)不能根據(jù)日志上提供的 IP 地址找到正真的攻擊者。
4 防范措施
針對(duì)IDC機(jī)房內(nèi)經(jīng)常發(fā)生的ARP病毒攻擊,在此介紹防范ARP攻擊的幾種方法。
4.1 常用解決方法
(1)捆綁MAC和IP地址
杜絕IP 地址盜用現(xiàn)象。如果是通過代理服務(wù)器上網(wǎng):到代理服務(wù)器端讓網(wǎng)絡(luò)管理員把上網(wǎng)的靜態(tài)IP 地址與所記錄計(jì)算機(jī)的網(wǎng)卡地址進(jìn)行捆綁。如:ARP-s 192.16.10.400-EO-4C-6C-08-75.這樣,就將上網(wǎng)的靜態(tài)IP 地址192.16.10.4 與網(wǎng)卡地址為00-EO-4C-6C-08-75 的計(jì)算機(jī)綁定在一起了,即使別人盜用您的IP 地址,也無(wú)法通過代理服務(wù)器上網(wǎng)。如果是通過交換機(jī)連接,可以將計(jì)算機(jī)的IP地址、網(wǎng)卡的MAC 地址以及交換機(jī)端口綁定。
(2)修改MAC地址,欺騙ARP欺騙技術(shù)
就是假冒MAC 地址,所以最穩(wěn)妥的一個(gè)辦法就是修改機(jī)器的MAC 地址,只要把MAC 地址改為別的,就可以欺騙過ARP 欺騙,從而達(dá)到突破封鎖的目的。
(3)交換機(jī)端口設(shè)置
①端口保護(hù)(類似于端口隔離):ARP 欺騙技術(shù)需要交換機(jī)的兩個(gè)端口直接通訊,端口設(shè)為保護(hù)端口即可簡(jiǎn)單方便地隔離用戶之間信息互通,不必占用VLAN 資源。同一個(gè)交換機(jī)的兩個(gè)端口之間不能進(jìn)行直接通訊,需要通過轉(zhuǎn)發(fā)才能相互通訊。
②數(shù)據(jù)過濾:如果需要對(duì)報(bào)文做更進(jìn)一步的控制用戶可以采用ACL(訪問控制列表)。ACL 利用IP 地址、TCP/UDP端口等對(duì)進(jìn)出交換機(jī)的報(bào)文進(jìn)行過濾,根據(jù)預(yù)設(shè)條件,對(duì)報(bào)文做出允許轉(zhuǎn)發(fā)或阻塞的決定。華為和Cisco 的交換機(jī)均支持IP ACL 和MAC ACL,每種ACL 分別支持標(biāo)準(zhǔn)格式和擴(kuò)展格式。標(biāo)準(zhǔn)格式的ACL 根據(jù)源地址和上層協(xié)議類型進(jìn)行過濾,擴(kuò)展格式的ACL 根據(jù)源地址、目的地址以及上層協(xié)議類型進(jìn)行過濾,異詞檢查偽裝MAC 地址的幀。
(4)禁止網(wǎng)絡(luò)接口做ARP解析
在相對(duì)系統(tǒng)中禁止某個(gè)網(wǎng)絡(luò)接口做ARP解析(對(duì)抗ARP欺騙攻擊),可以做靜態(tài)ARP 協(xié)議設(shè)置(因?yàn)閷?duì)方不會(huì)響應(yīng)ARP 請(qǐng)求報(bào)文)如ARP——s XXX.XXX.XX.X 08-00-20-a8-2e-ac在很多操作系統(tǒng)中如:Unix , NT 等,都可以結(jié)合“禁止相應(yīng)網(wǎng)絡(luò)接口做ARP 解析”和“使用靜態(tài)ARP 表”的設(shè)置來(lái)對(duì)抗ARP 欺騙攻擊。
(5)定期檢查ARP緩存
管理員定期用響應(yīng)的IP 包中獲得一個(gè)rarp 請(qǐng)求,然后檢查ARP 響應(yīng)的真實(shí)性。定期輪詢, 檢查主機(jī)上的ARP 緩存。
4.2 推薦使用方法
根據(jù)ARP欺騙攻擊的常見方式及IDC機(jī)房自身特點(diǎn),在IDC機(jī)房推薦采取網(wǎng)關(guān)及其網(wǎng)內(nèi)主機(jī)的IP—MAC的靜態(tài)雙向綁定辦法,這是一個(gè)較全面并相對(duì)持久的解決方式。
此種雙向靜態(tài)綁定的作法,是分別對(duì)網(wǎng)關(guān)的ARP緩存中的IP地址—MAC地址及其網(wǎng)內(nèi)各主機(jī)的IP地址—MAC地址進(jìn)行靜態(tài)綁定,并把正確的IP地址及MAC地址記下來(lái)。
具體方法為,建立/etc/ethers文件,其中包含正確的IP/MAC對(duì)應(yīng)關(guān)系,格式如下:
192.168.2.32 08:00:4E:B0:24:47,然后再在/etc/rc.d/rc.local最后添加:arp -f生效即可。
通過雙向靜態(tài)綁定可再也不受其它人的信息干擾,之后完全按照綁定的地址進(jìn)行信息的傳輸,可排除其他錯(cuò)誤指令的干擾,能有效地完成工作。在這種情況下,可大大降低用戶服務(wù)器或主機(jī)在受到攻擊時(shí)無(wú)法訪問而掉線的情況發(fā)生。此種解決方案雖然對(duì)IDC中心會(huì)帶來(lái)一定的工作量,但其效果要明顯好于其他方法,有效抵制ARP欺騙攻擊。
5 結(jié)束語(yǔ)
ARP 攻擊問題一直是困擾著IDC中心的一個(gè)難題. 但其并不是無(wú)法解決的,通過建立完善的預(yù)防機(jī)制,能夠最大程度上抵制ARP 欺騙攻擊。隨著網(wǎng)絡(luò)產(chǎn)品及技術(shù)的不斷更新,IDC中心網(wǎng)絡(luò)建設(shè)的不斷完善,我們已經(jīng)可以更好的解決ARP欺騙攻擊問題,確保IDC中心安全可靠運(yùn)行。
參考文獻(xiàn)
[1] 樊景博,劉愛軍.ARP病毒的原理及防御辦法[J].商洛學(xué)院學(xué)報(bào),2007(2).
[2] 曹洪武.ARP欺騙入侵的檢測(cè)與防范策略[J].塔里木大學(xué)學(xué)報(bào)2007(2).
[3] 孟曉明.給予ARP的網(wǎng)絡(luò)欺騙的檢測(cè)與防范[J].信息技術(shù),2005(5):41-44.
[4] 王堅(jiān),梁海軍.ARP欺騙原理及其防范策略探討[J].計(jì)算機(jī)與現(xiàn)代化,2008(2):90-101.
[5] 葉城緒.校園網(wǎng)中基于ARP的欺騙及其預(yù)防[J].青海大學(xué)學(xué)報(bào)(自然科學(xué)報(bào)),2007(3):59-61.