解析ARP病毒攻擊技術與防御策略
【摘 要】ARP病毒位列十大病毒排行榜第四位,而且目前ARP地址欺騙技術已經被越來越多的病毒所采用,成為病毒發展的一個新趨勢。本文還較深入和直觀地介紹了ARP協議的基本原理、基本工作過程、ARP欺騙技術以及其對策,
本文引用地址:http://www.104case.com/article/202126.htm【關鍵詞】arp協議 arp欺騙
近年來,arp攻擊十分頻繁,ARP病毒位列十大病毒排行榜第四位,而且目前ARP地址欺騙技術已經被越來越多的病毒所采用,成為病毒發展的一個新趨勢。如何防范arp攻擊越來越受到了網管的重視。
一、ARP協議工作原理
在TCP/IP協議中,每一個網絡結點是用IP地址標識的,IP地址是一個邏輯地址。而在以太網中數據包是靠48位MAC地址(物理地址)尋址的。因此,必須建立IP地址與MAC地址之間的對應(映射)關系,ARP協議就是為完成這個工作而設計的。
TCP/IP協議棧維護著一個ARP cache表,在構造網絡數據包時,首先從ARP表中找目標IP對應的MAC地址,如果找不到,就發一個ARP request廣播包,請求具有該IP地址的主機報告它的MAC地址,當收到目標IP所有者的ARP reply后,更新ARP cache.ARP cache有老化機制。
ARP協議是建立在信任局域網內所有結點的基礎上的,它很高效,但卻不安全。它是無狀態的協議,不會檢查自己是否發過請求包,也不管(其實也不知道)是否是合法的應答,只要收到目標MAC是自己的ARP reply包或arp廣播包(包括ARP request和ARP reply),都會接受并緩存。這就為ARP欺騙提供了可能,惡意節點可以發布虛假的ARP報文從而影響網內結點的通信,甚至可以做“中間人”。
二、ARP病毒分析
當局域網內某臺主機運行ARP欺騙的木馬程序時,會欺騙局域網內所有主機和路由器,讓所有上網的流量必須經過病毒主機。其他用戶原來直接通過路由器上網現在轉由通過病毒主機上網,切換的時候用戶會斷一次線。切換到病毒主機上網后,如果用戶已經登陸了傳奇服務器,那么病毒主機就會經常偽造斷線的假像,那么用戶就得重新登錄傳奇服務器,這樣病毒主機就可以盜號了。
下面就BKDR_NPFECT.A病毒進行分析
1.病毒的組件
本文研究的病毒樣本有三個組件構成:
%windows%““SYSTEM32““LOADHW.EXE(108,386 bytes)……病毒組件釋放者”
%windows%““System32““drivers““npf.sys(119,808 bytes)……“發ARP欺騙包的驅動程序”
%windows%““System32““msitinit.dll (39,952 bytes)……“命令驅動程序發ARP欺騙包的控制者”
2.病毒運作基理
LOADHW.EXE執行時會釋放兩個組件npf.sys和msitinit.dll。
LOADHW.EXE釋放組件后即終止運行。
注意:病毒假冒成winPcap的驅動程序,并提供winPcap的功能。客戶若原先裝有winPcap,npf.sys將會被病毒文件覆蓋掉。隨后msitinit.dll將npf.sys注冊(并監視)為內核級驅動設備:“NetGroup Packet Filter Driver”msitinit.dll還負責發送指令來操作驅動程序npf.sys (如發送APR欺騙包,抓包,過濾包等)以下從病毒代碼中提取得服務相關值:BinaryPathName=system32““drivers““npf.sysStartType= SERVICE_AUTO_STARTServiceType=SERVICE_KERNEL_DRIVERDesiredAccess= SERVICE_ALL_ACCESSDisplayName = NetGroup Packet Filter DriverServiceName = Npf并將LOADHW.EXE注冊為自啟動程序:[HKEY_LOCAL_MACHINE““SOFTWARE““Microsoft“““CurrentVersion““RunOnce] dwMyTest =LOADHW.EXE注:由于該項位于RunOnce下,該注冊表啟動項在每次執行后,即會被系統自動刪除。
三、查找ARP攻擊源頭
定位ARP攻擊源頭
主動定位方式:因為所有的ARP攻擊源都會有其特征——網卡會處于混雜模式,可以通過ARPKiller這樣的工具掃描網內有哪臺機器的網卡是處于混雜模式的,從而判斷這臺機器有可能就是“元兇”。
被動定位方式:在局域網發生ARP攻擊時,查看交換機的動態ARP表中的內容,確定攻擊源的MAC地址;也可以在局域居于網中部署Sniffer工具,定位ARP攻擊源的MAC。
使用NBTSCAN可以取到PC的真實IP地址、機器名和MAC地址,如果有“ARP攻擊”在做怪,可以找到裝有ARP攻擊的PC的IP、機器名和MAC地址。
命令:“nbtscan -r 192.168.16.0/24”(搜索整個192.168.16.0/24網段,即192.168.16.1-192.168.16.254);或“nbtscan 192.168.16.25-137”搜索192.168.16.25-137網段,即192.168.16.25-192.168.16.137。輸出結果第一列是IP地址,最后一列是MAC地址。
四、arp防御對策
各種網絡安全的對策都是相對的,主要要看網管平時對網絡安全的重視性了。下面介始一些相應的對策:
1.在系統中建立靜態ARP表,建立后對本身自已系統影響不大的,對網絡影響較大,破壞了動態ARP解析過程。靜態ARP協議表不會過期的,我們用“arp–d”命令清除ARP表,即手動刪除。但是有的系統的靜態ARP表項可以被動態刷新,如Solaris系統,那樣的話依靠靜態ARP表項并不能對抗ARP欺騙攻擊,相反縱容了ARP欺騙攻擊,因為虛假的靜態ARP表項不會自動超時消失。
2.在相對系統中禁止某個網絡接口做ARP解析(對抗ARP欺騙攻擊),可以做靜態ARP協議設置(因為對方不會響應ARP請求報文)如:arp -s XXX.XXX.XX.X 08-00-20-a8-2e-ac。
在絕大多數操作系統如:Unix、BSD、NT等,都可以結合“禁止相應網絡接口做ARP解析”和“使用靜態ARP表”的設置來對抗ARP欺騙攻擊。而Linux系統,其靜態ARP表項不會被動態刷新,所以不需要“禁止相應網絡接口做ARP解析”即可對抗ARP欺騙攻擊。
參考文獻:
[1]徐冠軍.一個ARP欺騙問題的分析和解決辦法[J].江蘇通信技術,2005,
tcp/ip相關文章:tcp/ip是什么
評論