倍可親

回復: 3
列印 上一主題 下一主題

連載好文:專家解讀ARP病毒

[複製鏈接]

1萬

主題

1萬

帖子

1萬

積分

八級貝殼核心

倍可親終生會員(廿一級)

Rank: 5Rank: 5

積分
18033
跳轉到指定樓層
樓主
kent 發表於 2007-6-26 08:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一、ARP病毒
  ARP地址欺騙類病毒(以下簡稱ARP病毒)是一類特殊的病毒,該病毒一般屬於木馬(Trojan)病毒,不具備主動傳播的特性,不會自我複製。但是由於其發作的時候會向全網發送偽造的ARP數據包,干擾全網的運行,因此它的危害比一些蠕蟲還要嚴重得多。
  二、ARP病毒發作時的現象
  網路掉線,但網路連接正常,內網的部分PC機不能上網,或者所有電腦不能上網,無法打開網頁或打開網頁慢,區域網時斷時續並且網速較慢等。
  三、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地址,網卡之間發送數據,只能根據對方網卡的MAC地址進行發送,這時就需要一個將高層數據包中的IP地址轉換成低層MAC地址的協議,而這個重要的任務將由ARP協議完成。

  ARP全稱為Address Resolution Protocol,地址解析協議。所謂「地址解析」就是主機在發送數據包前將目標主機IP地址轉換成目標主機MAC地址的過程。ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。 這時就涉及到一個問題,一個區域網中的電腦少則幾台,多則上百台,這麼多的電腦之間,如何能準確的記住對方電腦網卡的MAC地址,以便數據的發送呢?這就涉及到了另外一個概念,ARP緩存表。在區域網的任何一台主機中,都有一個ARP緩存表,該表中保存這網路中各個電腦的IP地址和MAC地址的對照關係。當這台主機向同區域網中另外的主機發送數據的時候,會根據ARP緩存表裡的對應關係進行發送。
  下面,我們用一個模擬的區域網環境,來說明ARP欺騙的過程。
  3.3 ARP欺騙過程
  假設一個只有三台電腦組成的區域網,該區域網由交換機(Switch)連接。其中一個電腦名叫A,代表攻擊方;一台電腦叫S,代表源主機,即發送數據的電腦;令一台電腦名叫D,代表目的主機,即接收數據的電腦。這三台電腦的IP地址分別為192.168.0.2,192.168.0.3,192.168.0.4。MAC地址分別為MAC_A,MAC_S,MAC_D。其網路拓撲環境如圖3。

圖3 網路拓撲
  現在,S電腦要給D電腦發送數據了,在S電腦內部,上層的TCP和UDP的數據包已經傳送到了最底層的網路介面層,數據包即將要發送出去,但這時還不知道目的主機D電腦的MAC地址MAC_D。這時候,S電腦要先查詢自身的ARP緩存表,查看裡面是否有192.168.0.4這台電腦的MAC地址,如果有,那很好辦,就將 封裝在數據包的外面。直接發送出去即可。如果沒有,這時S電腦要向全網路發送一個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電腦發送的,並非剛才的廣播。現在S電腦已經知道目的電腦D的MAC地址了,它可以將要發送的數據包上貼上目的地址MAC_D,發送出去了。同時它還會動態更新自身的ARP緩存表,將192.168.0.4-MAC_D這一條記錄添加進去,這樣,等S電腦下次再給D電腦發送數據的時候,就不用大聲詢問發送ARP廣播包了。這就是正常情況下的數據包發送過程。
  這樣的機制看上去很完美,似乎整個區域網也天下太平,相安無事。但是,上述數據發送機制有一個致命的缺陷,即它是建立在對區域網中電腦全部信任的基礎上的,也就是說它的假設前提是:無論區域網中那台電腦,其發送的ARP數據包都是正確的。那麼這樣就很危險了!因為區域網中並非所有的電腦都安分守己,往往有非法者的存在。比如在上述數據發送中,當S電腦向全網詢問「我想知道IP地址為192.168.0.4的主機的硬體地址是多少?」后,D電腦也回應了自己的正確MAC地址。但是當此時,一向沉默寡言的A電腦也回話了:「我的IP地址是192.168.0.4,我的硬體地址是MAC_A」 ,注意,此時它竟然冒充自己是D電腦的IP地址,而MAC地址竟然寫成自己的!由於A電腦不停地發送這樣的應答數據包,本來S電腦的ARP緩存表中已經保存了正確的記錄:192.168.0.4-MAC_D,但是由於A電腦的不停應答,這時S電腦並不知道A電腦發送的數據包是偽造的,導致S電腦又重新動態更新自身的ARP緩存表,這回記錄成:192.168.0.4-MAC_A,很顯然,這是一個錯誤的記錄(這步也叫ARP緩存表中毒),這樣就導致以後凡是S電腦要發送給D電腦,也就是IP地址為192.168.0.4這台主機的數據,都將會發送給MAC地址為MAC_A的主機,這樣,在光天化日之下,A電腦竟然劫持了由S電腦發送給D電腦的數據!這就是ARP欺騙的過程。
  如果A這台電腦再做的「過分」一些,它不冒充D電腦,而是冒充網關,那後果會怎麼樣呢?我們大家都知道,如果一個區域網中的電腦要連接外網,也就是登陸網際網路的時候,都要經過區域網中的網關轉發一下,所有收發的數據都要先經過網關,再由網關發向網際網路。在區域網中,網關的IP地址一般為192.168.0.1。如果A這台電腦向全網不停的發送ARP欺騙廣播,大聲說:「我的IP地址是192.168.0.1,我的硬體地址是MAC_A」這時區域網中的其它電腦並沒有察覺到什麼,因為區域網通信的前提條件是信任任何電腦發送的ARP廣播包。這樣區域網中的其它電腦都會更新自身的ARP緩存表,記錄下192.168.0.1-MAC_A這樣的記錄,這樣,當它們發送給網關,也就是IP地址為192.168.0.1這台電腦的數據,結果都會發送到MAC_A這台電腦中!這樣,A電腦就將會監聽整個區域網發送給網際網路的數據包!
  實際上,這種病毒早就出現過,這就是ARP地址欺騙類病毒。一些傳奇木馬(Trojan/PSW.LMir)具有這樣的特性,該木馬一般通過傳奇外掛、網頁木馬等方式使區域網中的某台電腦中毒,這樣中毒電腦便可嗅探到整個區域網發送的所有數據包,該木馬破解了《傳奇》遊戲的數據包加密演演算法,通過截獲區域網中的數據包,分析數據包中的用戶隱私信息,盜取用戶的遊戲帳號和密碼。在解析這些封包之後,再將它們發送到真正的網關。這樣的病毒有一個令網吧遊戲玩家聞之色變的名字:「傳奇網吧殺手」 !

1萬

主題

1萬

帖子

1萬

積分

八級貝殼核心

倍可親終生會員(廿一級)

Rank: 5Rank: 5

積分
18033
沙發
 樓主| kent 發表於 2007-6-26 08:13 | 只看該作者
 四、ARP病毒新的表現形式
  由於現在的網路遊戲數據包在發送過程中,均已採用了強悍的加密演演算法,因此這類ARP病毒在解密數據包的時候遇到了很大的難度。現在又新出現了一種ARP病毒,與以前的一樣的是,該類ARP病毒也是向全網發送偽造的ARP欺騙廣播,自身偽裝成網關。但區別是,它著重的不是對網路遊戲數據包的解密,而是對於HTTP請求訪問的修改。
  HTTP是應用層的協議,主要是用於WEB網頁訪問。還是以上面的區域網環境舉例,如果區域網中一台電腦S要請求某個網站頁面,如想請求www.sina.com.cn這個網頁,這台電腦會先向網關發送HTTP請求,說:「我想登陸www.sina.com.cn網頁,請你將這個網頁下載下來,併發送給我。」這樣,網關就會將www.sina.com.cn頁面下載下來,併發送給S電腦。這時,如果A這台電腦通過向全網發送偽造的ARP欺騙廣播,自身偽裝成網關,成為一台ARP中毒電腦的話,這樣當S電腦請求WEB網頁時,A電腦先是「好心好意」地將這個頁面下載下來,然後發送給S電腦,但是它在返回給S電腦時,會向其中插入惡意網址連接!該惡意網址連接會利用MS06-014和MS07-017等多種系統漏洞,向S電腦種植木馬病毒!同樣,如果D電腦也是請求WEB頁面訪問,A電腦同樣也會給D電腦返回帶毒的網頁,這樣,如果一個區域網中存在這樣的ARP病毒電腦的話,頃刻間,整個網段的電腦將會全部中毒!淪為黑客手中的殭屍電腦!
  案例:某企業用戶反映,其內部區域網用戶無論訪問那個網站,KV殺毒軟體均報病毒:Exploit.ANIfile.o 。
  在經過對該區域網分析之後,發現該區域網中有ARP病毒電腦導致其它電腦訪問網頁時,返回的網頁帶毒,並且該帶毒網頁通過MS06-014和MS07-017漏洞給電腦植入一個木馬下載器,而該木馬下載器又會下載10多個惡性網游木馬,可以盜取包括魔獸世界,傳奇世界,征途,夢幻西遊,邊鋒遊戲在內的多款網路遊戲的帳號和密碼,對網路遊戲玩家的遊戲裝備造成了極大的損失。被ARP病毒電腦篡改的網頁如圖4。

圖4 被ARP病毒插入的惡意網址連接
  從圖4中可以看出,區域網中存在這樣的ARP病毒電腦之後,其它客戶機無論訪問什麼網頁,當返回該網頁時,都會被插入一條惡意網址連接,如果用戶沒有打過相應的系統補丁,就會感染木馬病毒。
回復 支持 反對

使用道具 舉報

1萬

主題

1萬

帖子

1萬

積分

八級貝殼核心

倍可親終生會員(廿一級)

Rank: 5Rank: 5

積分
18033
3
 樓主| kent 發表於 2007-6-26 08:14 | 只看該作者
 五、ARP病毒電腦的定位方法
  下面,又有了一個新的課題擺在我們面前:如何能夠快速檢測定位出區域網中的ARP病毒電腦?
  面對著區域網中成百台電腦,一個一個地檢測顯然不是好辦法。其實我們只要利用ARP病毒的基本原理:發送偽造的ARP欺騙廣播,中毒電腦自身偽裝成網關的特性,就可以快速鎖定中毒電腦。可以設想用程序來實現以下功能:在網路正常的時候,牢牢記住正確網關的IP地址和MAC地址,並且實時監控著來自全網的ARP數據包,當發現有某個ARP數據包廣播,其IP地址是正確網關的IP地址,但是其MAC地址竟然是其它電腦的MAC地址的時候,這時,無疑是發生了ARP欺騙。對此可疑MAC地址報警,在根據網路正常時候的IP-MAC地址對照表查詢該電腦,定位出其IP地址,這樣就定位出中毒電腦了。下面詳細說一下幾種不同的檢測ARP中毒電腦的方法。
  5.1 命令行法
  這種方法比較簡便,不利用第三方工具,利用系統自帶的ARP命令即可完成。上文已經說過,當區域網中發生ARP欺騙的時候,ARP病毒電腦會向全網不停地發送ARP欺騙廣播,這時區域網中的其它電腦就會動態更新自身的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 這台電腦正向全網發送大量的ARP廣播包,一般的講,區域網中有電腦發送ARP廣播包的情況是存在的,但是如果不停的大量發送,就很可疑了。而這台192.168.0.109 電腦正是一個ARP中毒電腦。
  以上三種方法有時需要結合使用,互相印證,這樣可以快速準確的將ARP中毒電腦定位出來。
回復 支持 反對

使用道具 舉報

1萬

主題

1萬

帖子

1萬

積分

八級貝殼核心

倍可親終生會員(廿一級)

Rank: 5Rank: 5

積分
18033
4
 樓主| kent 發表於 2007-6-26 08:15 | 只看該作者
七、ARP病毒的網路免疫措施
  由於ARP病毒的種種網路特性,可以採用一些技術手段進行網路中ARP病毒欺騙數據包免疫。即便網路中有ARP中毒電腦,在發送欺騙的ARP數據包,其它電腦也不會修改自身的ARP緩存表,數據包始終發送給正確的網關,用的比較多的辦法是「雙向綁定法」 。
  雙向綁定法,顧名思義,就是要在兩端綁定IP-MAC地址,其中一端是在路由器中,把所有PC的IP-MAC輸入到一個靜態表中,這叫路由器IP-MAC綁定。令一端是區域網中的每個客戶機,在客戶端設置網關的靜態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地址發送的報文,如果其MAC地址不是指定關係對中的地址,路由器將予以丟棄,是避免IP地址假冒攻擊的一種方式。
  八、ARP病毒KV解決方案
  針對ARP病毒日益猖獗的情況,江民科技推出了整體解決方案:
  1.KV殺毒軟體每周7天不間斷升級病毒庫,單機版網路版同步升級,實時攔截來自網路上的各種ARP病毒。
  2.針對區域網用戶,建議統一部署KV網路版殺毒軟體,KV網路版具有全網統一升級病毒庫,統一全網殺毒的強大功能,可以徹底查殺來自區域網中的ARP病毒。
  3.「KV未知病毒掃描」功能可以識別出絕大多數ARP病毒,KV未知病毒掃描程序採用獨特的行為判定技術,可以徹底檢測出本機中已知和未知的ARP病毒,協助網路管理員快速清除ARP病毒。
  4.特針對企業用戶,提供「ARP病毒應急響應服務」 ,江民科技網路安全工程師可以上門處理企業用戶內網中的ARP病毒,確保快速恢復企業網路的數據通訊安全。
  5.KV新版防火牆特增加了ARP病毒防禦功能,可以攔截來自區域網中的ARP欺騙數據包,保護本機聯網安全。設置界面如圖11。

圖11 KV新版防火牆增加了ARP攻擊防護功能
  KV新版防火牆增加了ARP攻擊防護功能,該功能使用方法也很簡單,安裝完KV防火牆之後,點擊「設置」按鈕,然後勾選「啟用攻擊防護功能」 ,再點擊「自動檢測本機網路設置」 ,程序就會自動獲得本機和網關的IP地址和MAC地址,然後點擊確定即可。KV防火牆就會實時檢測來自網路中的ARP數據包,發現有異常的數據包欺騙,就會予以攔截,保障本機網路通信安全。
  九、關於ARP病毒的網路安全建議
  1.在網路正常時候保存好全網的IP—MAC地址對照表,這樣在查找ARP中毒電腦時很方便。
  2.都全網的電腦都打上MS06-014和MS07-017這兩個補丁,包括所有的客戶端和伺服器,以免感染網頁木馬。
  3.部署網路流量檢測設備,時刻監視全網的ARP廣播包,查看其MAC地址是否正確。
  4.做好IP—MAC地址的綁定工作,對於從這個IP地址發送的報文,如果其MAC地址不是指定關係對中的地址,予以丟棄。
  5.部署網路版的殺毒軟體,定期升級病毒庫,定期全網殺毒。
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 註冊

本版積分規則

關於本站 | 隱私權政策 | 免責條款 | 版權聲明 | 聯絡我們

Copyright © 2001-2013 海外華人中文門戶:倍可親 (http://big5.backchina.com) All Rights Reserved.

程序系統基於 Discuz! X3.1 商業版 優化 Discuz! © 2001-2013 Comsenz Inc.

本站時間採用京港台時間 GMT+8, 2025-10-24 21:20

快速回復 返回頂部 返回列表