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