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