ARP地址欺騙類病毒(以下簡稱ARP病毒)是一類特殊的病毒,該病毒一般屬于木馬(Trojan)病毒,不具備主動傳播的特性,不會自我復制。但是由于其發(fā)作的時候會向全網發(fā)送偽造的ARP數據包,干擾全網的運行,因此它的危害比一些蠕蟲還要嚴重得多。
二、ARP病毒發(fā)作時的現象
網絡掉線,但網絡連接正常,內網的部分PC機不能上網,或者所有電腦不能上網,無法打開網頁或打開網頁慢,局域網時斷時續(xù)并且網速較慢等。
三、ARP病毒原理
3.1 網絡模型簡介
眾所周知,按照OSI (Open Systems Interconnection Reference Model 開放系統互聯參考模型) 的觀點,可將網絡系統劃分為7層結構,每一個層次上運行著不同的協議和服務,并且上下層之間互相配合,完成網絡數據交換的功能,如圖1:
圖1 OSI網絡體系模型
然而,OSI的模型僅僅是一個參考模型,并不是實際網絡中應用的模型。實際上應用最廣泛的商用網絡模型即TCP/IP體系模型,將網絡劃分為四層,每一個層次上也運行著不同的協議和服務,如圖2。
圖2 TCP/IP四層體系模型及其配套協議
上圖中,藍色字體表示該層的名稱,綠色字表示運行在該層上的協議。由圖2可見,我們即將要討論的ARP協議,就是工作在網際層上的協議。
3.2 ARP協議簡介
我們大家都知道,在局域網中,一臺主機要和另一臺主機進行通信,必須要知道目標主機 的IP地址,但是最終負責在局域網中傳送數據的網卡等物理設備是不識別IP地址的,只能識別其硬件地址即MAC地址。MAC地址是48位的,通常表示為 12個16進制數,每2個16進制數之間用“-”或者冒號隔開,如:00-0B-2F-13-1A-11就是一個MAC地址。每一塊網卡都有其全球唯一的 MAC地址,網卡之間發(fā)送數據,只能根據對方網卡的MAC地址進行發(fā)送,這時就需要一個將高層數據包中的IP地址轉換成低層MAC地址的協議,而這個重要 的任務將由ARP協議完成。
ARP全稱為Address Resolution Protocol,地址解析協議。所謂“地址解析”就是主機在發(fā)送數據包前將目標主機IP地址轉換成目標主機MAC地址的過程。ARP協議的基本功能就是 通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。 這時就涉及到一個問題,一個局域網中的電腦少則幾臺,多則上百臺,這么多的電腦之間,如何能準確的記住對方電腦網卡的MAC地址,以便數據的發(fā)送呢?這就 涉及到了另外一個概念,ARP緩存表。在局域網的任何一臺主機中,都有一個ARP緩存表,該表中保存這網絡中各個電腦的IP地址和MAC地址的對照關系。 當這臺主機向同局域網中另外的主機發(fā)送數據的時候,會根據ARP緩存表里的對應關系進行發(fā)送。
下面,我們用一個模擬的局域網環(huán)境,來說明ARP欺騙的過程。
3.3 ARP欺騙過程
假設一個只有三臺電腦組成的局域網,該局域網由交換機(Switch)連接。其中一 個電腦名叫A,代表攻擊方;一臺電腦叫S,代表源主機,即發(fā)送數據的電腦;令一臺電腦名叫D,代表目的主機,即接收數據的電腦。這三臺電腦的IP地址分別 為192.168.0.2,192.168.0.3,192.168.0.4。MAC地址分別為MAC_A,MAC_S,MAC_D。其網絡拓撲環(huán)境如圖 3。
圖3 網絡拓撲
現在,S電腦要給D電腦發(fā)送數據了,在S電腦內部,上層的TCP和UDP的數據包已經傳送到 了最底層的網絡接口層,數據包即將要發(fā)送出去,但這時還不知道目的主機D電腦的MAC地址MAC_D。這時候,S電腦要先查詢自身的ARP緩存表,查看里 面是否有192.168.0.4這臺電腦的MAC地址,如果有,那很好辦,就將 封裝在數據包的外面。直接發(fā)送出去即可。如果沒有,這時S電腦要向全網絡發(fā)送一個ARP廣播包,大聲詢問:“我的IP是192.168.0.3,硬件地址 是MAC_S,我想知道IP地址為192.168.0.4的主機的硬件地址是多少?” 這時,全網絡的電腦都收到該ARP廣播包了,包括A電腦和D電腦。A電腦一看其要查詢的IP地址不是自己的,就將該數據包丟棄不予理會。而D電腦一看IP 地址是自己的,則回答S電腦:“我的IP地址是192.168.0.4,我的硬件地址是MAC_D”需要注意的是,這條信息是單獨回答的,即D電腦單獨向 S電腦發(fā)送的,并非剛才的廣播。現在S電腦已經知道目的電腦D的MAC地址了,它可以將要發(fā)送的數據包上貼上目的地址MAC_D,發(fā)送出去了。同時它還會 動態(tài)更新自身的ARP緩存表,將192.168.0.4-MAC_D這一條記錄添加進去,這樣,等S電腦下次再給D電腦發(fā)送數據的時候,就不用大聲詢問發(fā) 送ARP廣播包了。這就是正常情況下的數據包發(fā)送過程。
這樣的機制看上去很完美,似乎整個局域網也天下太平,相安無事。但是,上述數據發(fā) 送機制有一個致命的缺陷,即它是建立在對局域網中電腦全部信任的基礎上的,也就是說它的假設前提是:無論局域網中那臺電腦,其發(fā)送的ARP數據包都是正確 的。那么這樣就很危險了!因為局域網中并非所有的電腦都安分守己,往往有非法者的存在。比如在上述數據發(fā)送中,當S電腦向全網詢問“我想知道IP地址為 192.168.0.4的主機的硬件地址是多少?”后,D電腦也回應了自己的正確MAC地址。但是當此時,一向沉默寡言的A電腦也回話了:“我的IP地址 是192.168.0.4,我的硬件地址是MAC_A” ,注意,此時它竟然冒充自己是D電腦的IP地址,而MAC地址竟然寫成自己的!由于A電腦不停地發(fā)送這樣的應答數據包,本來S電腦的ARP緩存表中已經保 存了正確的記錄:192.168.0.4-MAC_D,但是由于A電腦的不停應答,這時S電腦并不知道A電腦發(fā)送的數據包是偽造的,導致S電腦又重新動態(tài) 更新自身的ARP緩存表,這回記錄成:192.168.0.4-MAC_A,很顯然,這是一個錯誤的記錄(這步也叫ARP緩存表中毒),這樣就導致以后凡 是S電腦要發(fā)送給D電腦,也就是IP地址為192.168.0.4這臺主機的數據,都將會發(fā)送給MAC地址為MAC_A的主機,這樣,在光天化日之下,A 電腦竟然劫持了由S電腦發(fā)送給D電腦的數據!這就是ARP欺騙的過程。
如果A這臺電腦再做的“過分”一些,它不冒充D電腦,而是冒充網關,那后果會怎么 樣呢?我們大家都知道,如果一個局域網中的電腦要連接外網,也就是登陸互聯網的時候,都要經過局域網中的網關轉發(fā)一下,所有收發(fā)的數據都要先經過網關,再 由網關發(fā)向互聯網。在局域網中,網關的IP地址一般為192.168.0.1。如果A這臺電腦向全網不停的發(fā)送ARP欺騙廣播,大聲說:“我的IP地址是 192.168.0.1,我的硬件地址是MAC_A”這時局域網中的其它電腦并沒有察覺到什么,因為局域網通信的前提條件是信任任何電腦發(fā)送的ARP廣播 包。這樣局域網中的其它電腦都會更新自身的ARP緩存表,記錄下192.168.0.1-MAC_A這樣的記錄,這樣,當它們發(fā)送給網關,也就是IP地址 為192.168.0.1這臺電腦的數據,結果都會發(fā)送到MAC_A這臺電腦中!這樣,A電腦就將會監(jiān)聽整個局域網發(fā)送給互聯網的數據包!
實際上,這種病毒早就出現過,這就是ARP地址欺騙類病毒。一些傳奇木馬 (Trojan/PSW.LMir)具有這樣的特性,該木馬一般通過傳奇外掛、網頁木馬等方式使局域網中的某臺電腦中毒,這樣中毒電腦便可嗅探到整個局域 網發(fā)送的所有數據包,該木馬破解了《傳奇》游戲的數據包加密算法,通過截獲局域網中的數據包,分析數據包中的用戶隱私信息,盜取用戶的游戲帳號和密碼。在 解析這些封包之后,再將它們發(fā)送到真正的網關。這樣的病毒有一個令網吧游戲玩家聞之色變的名字:“傳奇網吧殺手” !
四、ARP病毒新的表現形式
由于現在的網絡游戲數據包在發(fā)送過程中,均已采用了強悍的加密算法,因此這類ARP 病毒在解密數據包的時候遇到了很大的難度。現在又新出現了一種ARP病毒,與以前的一樣的是,該類ARP病毒也是向全網發(fā)送偽造的ARP欺騙廣播,自身偽 裝成網關。但區(qū)別是,它著重的不是對網絡游戲數據包的解密,而是對于HTTP請求訪問的修改。
HTTP是應用層的協議,主要是用于WEB網頁訪問。還是以上面的局域網環(huán)境舉 例,如果局域網中一臺電腦S要請求某個網站頁面,如想請求www.sina.com.cn這個網頁,這臺電腦會先向網關發(fā)送HTTP請求,說:“我想登陸 www.sina.com.cn網頁,請你將這個網頁下載下來,并發(fā)送給我。”這樣,網關就會將www.sina.com.cn頁面下載下來,并發(fā)送給S 電腦。這時,如果A這臺電腦通過向全網發(fā)送偽造的ARP欺騙廣播,自身偽裝成網關,成為一臺ARP中毒電腦的話,這樣當S電腦請求WEB網頁時,A電腦先 是“好心好意”地將這個頁面下載下來,然后發(fā)送給S電腦,但是它在返回給S電腦時,會向其中插入惡意網址連接!該惡意網址連接會利用MS06-014和 MS07-017等多種系統漏洞,向S電腦種植木馬病毒!同樣,如果D電腦也是請求WEB頁面訪問,A電腦同樣也會給D電腦返回帶毒的網頁,這樣,如果一 個局域網中存在這樣的ARP病毒電腦的話,頃刻間,整個網段的電腦將會全部中毒!淪為黑客手中的僵尸電腦!
案例:
某企業(yè)用戶反映,其內部局域網用戶無論訪問那個網站,KV殺毒軟件均報病毒:Exploit.ANIfile.o 。
在經過對該局域網分析之后,發(fā)現該局域網中有ARP病毒電腦導致其它電腦訪問網頁 時,返回的網頁帶毒,并且該帶毒網頁通過MS06-014和MS07-017漏洞給電腦植入一個木馬下載器,而該木馬下載器又會下載10多個惡性網游木 馬,可以盜取包括魔獸世界,傳奇世界,征途,夢幻西游,邊鋒游戲在內的多款網絡游戲的帳號和密碼,對網絡游戲玩家的游戲裝備造成了極大的損失。被ARP病 毒電腦篡改的網頁如圖4。
圖4 被ARP病毒插入的惡意網址連接
從圖4中可以看出,局域網中存在這樣的ARP病毒電腦之后,其它客戶機無論訪問什么網頁,當返回該網頁時,都會被插入一條惡意網址連接,如果用戶沒有打過相應的系統補丁,就會感染木馬病毒。
五、ARP病毒電腦的定位方法
下面,又有了一個新的課題擺在我們面前:如何能夠快速檢測定位出局域網中的ARP病毒電腦?
面對著局域網中成百臺電腦,一個一個地檢測顯然不是好辦法。其實我們只要利用ARP 病毒的基本原理:發(fā)送偽造的ARP欺騙廣播,中毒電腦自身偽裝成網關的特性,就可以快速鎖定中毒電腦。可以設想用程序來實現以下功能:在網絡正常的時候, 牢牢記住正確網關的IP地址和MAC地址,并且實時監(jiān)控著來自全網的ARP數據包,當發(fā)現有某個ARP數據包廣播,其IP地址是正確網關的IP地址,但是 其MAC地址竟然是其它電腦的MAC地址的時候,這時,無疑是發(fā)生了ARP欺騙。對此可疑MAC地址報警,在根據網絡正常時候的IP-MAC地址對照表查 詢該電腦,定位出其IP地址,這樣就定位出中毒電腦了。下面詳細說一下幾種不同的檢測ARP中毒電腦的方法。
5.1 命令行法
這種方法比較簡便,不利用第三方工具,利用系統自帶的ARP命令即可完成。上文已經 說過,當局域網中發(fā)生ARP欺騙的時候,ARP病毒電腦會向全網不停地發(fā)送ARP欺騙廣播,這時局域網中的其它電腦就會動態(tài)更新自身的ARP緩存表,將網 關的MAC地址記錄成ARP病毒電腦的MAC地址,這時候我們只要在其它受影響的電腦中查詢一下當前網關的MAC地址,就知道中毒電腦的MAC地址了,查 詢命令為 ARP -a,需要在cmd命令提示行下輸入。輸入后的返回信息如下:
Internet Address Physical Address Type
192.168.0.1 00-50-56-e6-49-56 dynamic
這時,由于這個電腦的ARP表是錯誤的記錄,因此,該MAC地址不是真正網關的MAC地址, 而是中毒電腦的MAC地址!這時,再根據網絡正常時,全網的IP—MAC地址對照表,查找中毒電腦的IP地址就可以了。由此可見,在網絡正常的時候,保存 一個全網電腦的IP—MAC地址對照表是多么的重要。可以使用nbtscan 工具掃描全網段的IP地址和MAC地址,保存下來,以備后用。
5.2 工具軟件法
現在網上有很多ARP病毒定位工具,其中做得較好的是Anti ARP Sniffer(現在已更名為ARP防火墻),下面我就演示一下使用Anti ARP Sniffer這個工具軟件來定位ARP中毒電腦。
首先打開Anti ARP Sniffer 軟件,輸入網關的IP地址之后,再點擊紅色框內的“枚舉MAC”按鈕,即可獲得正確網關的MAC地址,如圖5。
圖5 輸入網關IP地址后,枚舉MAC
接著點擊“自動保護”按鈕,即可保護當前網卡與網關的正常通信。如圖6。
圖6 點擊自動保護按鈕
當局域網中存在ARP欺騙時,該數據包會被Anti ARP Sniffer記錄,該軟件會以氣泡的形式報警。如圖7。
圖7 Anti ARP Sniffer 的攔截記錄
這時,我們再根據欺騙機的MAC地址,對比查找全網的IP-MAC地址對照表,即可快速定位出中毒電腦。
5.3 Sniffer 抓包嗅探法
當局域網中有ARP病毒欺騙時,往往伴隨著大量的ARP欺騙廣播數據包,這時,流量檢測機制應該能夠很好的檢測出網絡的異常舉動,此時Ethereal 這樣的抓包工具就能派上用場。如圖8。
圖8 用Ethereal抓包工具定位出ARP中毒電腦
從圖8中的紅色框內的信息可以看出,192.168.0.109 這臺電腦正向全網發(fā)送大量的ARP廣播包,一般的講,局域網中有電腦發(fā)送ARP廣播包的情況是存在的,但是如果不停的大量發(fā)送,就很可疑了。而這臺192.168.0.109 電腦正是一個ARP中毒電腦。
以上三種方法有時需要結合使用,互相印證,這樣可以快速準確的將ARP中毒電腦定位出來。
七、ARP病毒的網絡免疫措施
由于ARP病毒的種種網絡特性,可以采用一些技術手段進行網絡中ARP病毒欺騙數據包免疫。即便網絡中有ARP中毒電腦,在發(fā)送欺騙的ARP數據包,其它電腦也不會修改自身的ARP緩存表,數據包始終發(fā)送給正確的網關,用的比較多的辦法是“雙向綁定法” 。
雙向綁定法,顧名思義,就是要在兩端綁定IP-MAC地址,其中一端是在路由器中, 把所有PC的IP-MAC輸入到一個靜態(tài)表中,這叫路由器IP-MAC綁定。令一端是局域網中的每個客戶機,在客戶端設置網關的靜態(tài)ARP信息,這叫PC 機IP-MAC綁定。客戶機中的設置方法如下:
新建記事本,輸入如下命令:
arp -d
arp -s 192.168.0.1 00-e0-4c-8c-9a-47
其中,“arp –d” 命令是清空當前的ARP緩存表,而“arp -s 192.168.0.1 00-e0-4c-8c-9a-47 ”命令則是將正確網關的IP地址和MAC地址綁定起來,將這個批處理文件放到系統的啟動目錄中,可以實現每次開機自運行,這一步叫做“固化arp表” 。
“雙向綁定法”一般在網吧里面應用的居多。
除此之外,很多交換機和路由器廠商也推出了各自的防御ARP病毒的軟硬產品,如:華 為的H3C AR 18-6X 系列全千兆以太網路由器就可以實現局域網中的ARP病毒免疫,該路由器提供MAC和IP地址綁定功能,可以根據用戶的配置,在特定的IP地址和MAC地址 之間形成關聯關系。對于聲稱從這個IP地址發(fā)送的報文,如果其MAC地址不是指定關系對中的地址,路由器將予以丟棄,是避免IP地址假冒攻擊的一種方式。
八、ARP病毒KV解決方案
針對ARP病毒日益猖獗的情況,江民科技推出了整體解決方案:
1.KV殺毒軟件每周7天不間斷升級病毒庫,單機版網絡版同步升級,實時攔截來自網絡上的各種ARP病毒。
2.針對局域網用戶,建議統一部署KV網絡版殺毒軟件,KV網絡版具有全網統一升級病毒庫,統一全網殺毒的強大功能,可以徹底查殺來自局域網中的ARP病毒。
3.“KV未知病毒掃描”功能可以識別出絕大多數ARP病毒,KV未知病毒掃描程序采用獨特的行為判定技術,可以徹底檢測出本機中已知和未知的ARP病毒,協助網絡管理員快速清除ARP病毒。
4.特針對企業(yè)用戶,提供“ARP病毒應急響應服務” ,江民科技網絡安全工程師可以上門處理企業(yè)用戶內網中的ARP病毒,確保快速恢復企業(yè)網絡的數據通訊安全。
5.KV新版防火墻特增加了ARP病毒防御功能,可以攔截來自局域網中的ARP欺騙數據包,保護本機聯網安全。設置界面如圖11。
圖11 KV新版防火墻增加了ARP攻擊防護功能
KV新版防火墻增加了ARP攻擊防護功能,該功能使用方法也很簡單,安裝完KV防火墻之后, 點擊“設置”按鈕,然后勾選“啟用攻擊防護功能” ,再點擊“自動檢測本機網絡設置” ,程序就會自動獲得本機和網關的IP地址和MAC地址,然后點擊確定即可。KV防火墻就會實時檢測來自網絡中的ARP數據包,發(fā)現有異常的數據包欺騙,就 會予以攔截,保障本機網絡通信安全。
九、關于ARP病毒的網絡安全建議
1.在網絡正常時候保存好全網的IP—MAC地址對照表,這樣在查找ARP中毒電腦時很方便。
2.都全網的電腦都打上MS06-014和MS07-017這兩個補丁,包括所有的客戶端和服務器,以免感染網頁木馬。
3.部署網絡流量檢測設備,時刻監(jiān)視全網的ARP廣播包,查看其MAC地址是否正確。
4.做好IP—MAC地址的綁定工作,對于從這個IP地址發(fā)送的報文,如果其MAC地址不是指定關系對中的地址,予以丟棄。
5.部署網絡版的殺毒軟件,定期升級病毒庫,定期全網殺毒。