內容摘要:目前,局域網(LAN:Local Area Network)經常感染ARP病毒,并且ARP病毒攻擊已成為了導致局域網大面積掉線甚至癱瘓的罪魁禍首。本文筆者結合自己三年多來從事局域網維護與管理的實踐工作經驗,從排除故障、優(yōu)化網絡管理性能的角度出發(fā),對ARP病毒的基本知識、工作原理以及如何防范ARP病毒等幾個方面做一些探討和分析,希望能夠對從事局域網維護和管理工作的技術人員有所幫助。
論文關鍵詞:ARP病毒,地址欺騙,攻擊原理,對策,局域網,主機
1、ARP病毒簡介。ARP地址欺騙類病毒(以下簡稱ARP病毒)是一類特殊的地址欺騙病毒。
2、ARP病毒特點。該病毒一般屬于木馬病毒,不具備主動傳播的特性,不會自我復制。但是,如果局域網內某臺計算機(以下簡稱主機)感染、運行ARP病毒時,這臺主機將偽造其他主機的MAC地址,并向整個局域網發(fā)送偽造的ARP數(shù)據包,從而欺騙局域網內所有的主機和路由器,讓局域網內原來直接通過路由器上網的主機都轉由通過病毒主機上網,這樣就占用大量網絡帶寬,干擾了局域網的正常運行,并可最終導致局域網中的主機大面積掉線甚至整個局域網癱瘓。
其實,導致ARP病毒的發(fā)生,在理論上是由于以太網數(shù)據包頭的源地址、目標地址和ARP數(shù)據包的協(xié)議地址不匹配;或者ARP數(shù)據包的發(fā)送和目標地址不在同一個局域網的網卡MAC數(shù)據庫內;或者與同一個局域網的MAC數(shù)據庫MAC/IP不匹配。
3、ARP病毒分類。根據欺騙對象的不同,ARP病毒可以分為以下三種:
A、欺騙局域網中某一受害主機。
B、欺騙局域網的路由器、網關。
C、雙向欺騙,即A、B兩種欺騙方法的組合方式。
根據發(fā)起個體的不同,ARP病毒可以分為以下兩種:
A、人為攻擊。人為攻擊的目的主要是:造成網絡異常、竊取數(shù)據、非法控制等。
B、ARP病毒。在這里,ARP病毒不是特指某一種病毒,而是指所有包含有ARP欺騙功能的病毒的總稱。
4、ARP病毒危害。ARP病毒的危害有以下幾個方面:
A、網絡異常。具體表現(xiàn)為:網絡連接正常,但是局域網內主機上網經常掉線;局域網內部網絡的部分主機不能上網;局域網時斷時續(xù)并且網速較慢;局域網內所有主機不能上網,打開網頁慢甚至無法打開網頁;IP地址沖突等。
B、數(shù)據竊取。具體表現(xiàn)為:個人隱私泄漏(如MSN聊天記錄、郵件等)、賬號被盜用(如QQ賬號、銀行賬號等)。
C、數(shù)據篡改。具體表現(xiàn)為:訪問網頁被添加惡意內容,俗稱“掛馬”。
D、非法控制。具體表現(xiàn)為:網絡速度、網絡訪問行為(例如某些網頁打不開、某些網絡應用程序用不了)受第三者非法控制。
二、ARP病毒攻擊原理
為了講清楚ARP病毒攻擊原理,我們必須先了解一下MAC地址與ARP協(xié)議。
1、MAC地址簡介。在局域網中,一臺主機要和另一臺主機進行通信,就必須要知道目的主機的IP地址。但是,在局域網中負責主機之間傳輸數(shù)據的網卡等物理設備不識別IP地址,而只能識別其硬件地址即MAC地址。
MAC地址是由48位二進制數(shù)(12位16進制數(shù)),每2個16進制數(shù)之間用“-”或者冒號隔開后所組成的一串數(shù)字,用來識別局域網中主機的一種標識(如:00-0B-2F-13-1A-11)。
局域網中每臺主機網卡的物理地址通常是由網卡生產廠家燒入網卡的EPROM(一種閃存芯片,通?梢酝ㄟ^程序擦寫),它存儲的就是傳輸數(shù)據時用來標識發(fā)送數(shù)據端主機(亦稱源端)和接收數(shù)據端主機的地址(亦稱目的端或宿端)。每塊網卡都有其全球唯一的MAC地址,在網卡之間發(fā)送數(shù)據,只能根據對方網卡的MAC地址進行發(fā)送,這就需要一個將高層數(shù)據包中的IP地址轉換成低層MAC地址的協(xié)議,這個工作任務將由ARP協(xié)議完成。
2、ARP協(xié)議簡介。ARP(Address Resolution Protocol,地址解析協(xié)議)協(xié)議是指將局域網中主機的IP地址轉換為第二層物理地址(即MAC地址)的一種協(xié)議。
在局域網中,網絡中實際傳輸?shù)氖菐,幀里面有目的主機的MAC地址。在以太網中,一個主機要和另一個主機進行直接通信,就必須要知道目標主機的MAC地址。ARP協(xié)議就是解決如何實現(xiàn)主機的MAC地址與IP地址之間的轉換,保證通信順利進行問題的。在以太網中,每臺安裝有TCP/IP協(xié)議的主機里都有一個ARP緩存表,表中的IP地址與MAC地址是一一對應的。因此,該協(xié)議對局域網正常運行、安全都具有非常重要的意義。
3、ARP病毒攻擊原理。假設一個只有三臺主機組成的局域網,該局域網由交換機(Switch)連接。其中一臺主機名叫A(Attack,即發(fā)送攻擊數(shù)據的主機),代表攻擊方;一臺主機名叫S(Send, 即發(fā)送數(shù)據的主機),代表源主機;另一臺主機名叫D(Destination, 即接收數(shù)據的主機),代表目的主機;這三臺電腦的IP地址分別為192.168.0.2、192.168.0.3、192.168.0.4;MAC地址分別為 MAC_A、MAC_S、MAC_D。
A、網絡正常情況下的數(shù)據包發(fā)送過程,F(xiàn)在,主機S要發(fā)送數(shù)據給主機D,在主機S內部,上層的TCP(Transmission Control Protocol,傳輸控制協(xié)議)和UDP(User Datagram Protocol, 用戶數(shù)據報協(xié)議)的數(shù)據包已經傳送到最底層的網絡接口層,數(shù)據包即將發(fā)送出去。但是,此時主機S還不知道目的主機D的MAC地址MAC_D,就要先查詢自己的ARP緩存表,查看里面是否有192.168.0.4這臺主機的MAC地址。如果有,就將MAC_D封裝在數(shù)據包中直接發(fā)送即可;如果沒有,主機S就要向該局域網中所有主機發(fā)送一個ARP廣播包(如:主機S的IP是192.168.0.3,硬件地址是MAC_S,想知道IP地址為192.168.0.4的主機的硬件地址是多少),該局域網中所有主機(包括主機A和主機D)就都收到該ARP廣播包。主機A收到該ARP廣播包后,查詢IP地址不是自己,就將該數(shù)據包丟棄不予理會。而主機D收到該ARP廣播包后,查詢IP地址就是自己,主機D就單獨向主機S發(fā)送含有回復信息的數(shù)據包(如:主機D的IP地址是192.168.0.4,硬件地址是MAC_D),這樣主機S就知道目的主機D的MAC地址,并將目的地址MAC_D封裝到要發(fā)送的數(shù)據包中發(fā)送出去;同時主機S還會動態(tài)更新自己的ARP緩存表,將192.168.0.4-MAC_D這一條記錄添加進去,以后主機S再給主機D發(fā)送數(shù)據時,就不用再向該局域網中的所有主機發(fā)送ARP廣播包。
B、局域網感染ARP病毒情況下的數(shù)據包發(fā)送過程(即ARP病毒攻擊的詳細原理)。在上述網絡正常情況下的數(shù)據包發(fā)送機制看上去很完美,似乎整個局域網也“天下太平”,并“相安無事”。但是,上述數(shù)據發(fā)送機制有一個致命的缺陷,即該機制是建立在對局域網中所有主機全部信任的基礎之上的,并且局域網中任意一臺主機發(fā)送的ARP數(shù)據包都是正確的。在實際的網絡數(shù)據傳輸過程中,并不是所有主機都“安分守己”,而是經常存在“非法”主機。
如在上述數(shù)據包的發(fā)送過程中,當主機S向該局域網所有主機發(fā)送一個ARP廣播包(如:主機S的IP是192.168.0.3,硬件地址是MAC_S,想知道IP地址為192.168.0.4的主機的硬件地址是多少)后,主機D向主機S發(fā)送含有回復信息的數(shù)據包(如:主機D的IP地址是192.168.0.4,硬件地址是MAC_D)。同時,主機A也向主機S發(fā)送含有回復信息的數(shù)據包(如:主機A的IP地址是192.168.0.4,硬件地址是MAC_A),即此時主機A“冒充”自己的IP地址是主機D的IP地址,但是MAC地址寫成自己的,并且主機A不停地發(fā)送同樣的應答數(shù)據包,原本主機S的ARP緩存表中已經保存了一條正確的記錄:192.168.0.4-MAC_D。但是,由于主機A不停地向主機S發(fā)送含有回復信息的數(shù)據包,這時主機S并不知道主機A發(fā)送的數(shù)據包是偽造的,導致主機S又重新動態(tài)更新自己的ARP緩存表,將ARP緩存表的記錄修改為:192.168.0.4-MAC_A。其實,這是一條錯誤記錄(該過程也叫ARP緩存表中毒),這樣就導致以后凡是主機S要發(fā)送數(shù)據給主機D(IP地址為192.168.0.4的主機),都將會發(fā)送給MAC地址為MAC_A的主機A。因此,主機A“劫持”了由主機S發(fā)送給主機D的數(shù)據。
同樣,如果主機A再“過分”一些,它不“冒充”主機D,而是“冒充”該局域網的網關,將會發(fā)生更加嚴重的后果。如果局域網中一臺主機要連接Internet互聯(lián)網,那么所有收發(fā)的數(shù)據都要先經過網關,而后由局域網中的網關進行數(shù)據的轉發(fā),由網關發(fā)向互聯(lián)網(假設該局域網網關的IP地址為192.168.0.1)。如果主機A向局域網不停地發(fā)送ARP欺騙廣播數(shù)據包(如:主機A的IP地址是192.168.0.1,硬件地址是MAC_A)。這時,局域網中的其它主機并沒有“察覺”到這個ARP欺騙廣播數(shù)據包。因此,局域網中的其它主機都會動態(tài)更新自己的ARP緩存表,并且都在自己的ARP緩存表中添加一條記錄為:192.168.0.1-MAC_A。這樣,當局域網中的其它主機都要將數(shù)據包發(fā)送給網關(即向IP地址為192.168.0.1的主機發(fā)送數(shù)據)時,最后都會將數(shù)據包發(fā)送給MAC_A這臺主機。因此,主機A就將會監(jiān)聽整個局域網發(fā)送給互聯(lián)網的數(shù)據包,將會使整個局域網產生大量的ARP數(shù)據包造成網絡阻塞。
三、ARP病毒防范對策
ARP病毒防范工作是我們對局域網進行維護和管理工作中一項不可忽視的重要工作。如何防范ARP病毒,需要在實踐中不斷研究、探索和總結。筆者認為可以采用以下一些對策來加以防范。
1、在局域網主機上安裝防火墻和殺毒軟件,加固網絡防線。因為,網絡入侵者必須首先穿越局域網中防火墻的安全防線,才能接觸局域網內部的主機。因此,利用防火墻的網絡安全保護作用并選擇、安裝功能齊全和技術先進的防火墻(如:瑞星、諾頓、AntiARP、360安全衛(wèi)士ARP防火墻等)是一種最基本也是最有效的防范病毒感染和入侵的方式。同時,局域網管理人員應該在局域網內部的主機上安裝好正版殺毒軟件,并進行定期地升級、更新與殺毒工作,以增強防御計算機病毒的能力。同時,利用一些防火墻軟件(如:AntiARP、360安全衛(wèi)士ARP防火墻等),也可以有效解決ARP攻擊問題,而且可以通過歷史記錄查看攻擊源的IP和MAC地址。
2、采用靜態(tài)分配IP地址方式,并捆綁局域網中所有主機的MA地址C和IP地址,杜絕IP 地址盜用現(xiàn)象。如果單位局域網的網絡規(guī)模較小,建議采用靜態(tài)分配IP地址方式來分配IP地址。采用該對策,可以有效免疫ARP病毒侵擾,并且可以達到規(guī)范網絡管理的目的。同時,局域網管理人員可以在局域網的中心路由器或代理服務器上將所有上網主機的靜態(tài)IP 地址與主機網卡的MAC 地址進行捆綁設置。如: ARP -s 192.16.0.4 00-EO-4C-6C-08-75。這樣,可以有效地防止其他主機盜用IP 地址。如果是通過交換機連接,可以將主機IP地址、主機網卡的MAC 地址以及交換機端口綁定。
3、修改MAC地址,采用反欺騙技術防范。局域網管理人員修改局域網中主機的MAC地址,就可以欺騙ARP 欺騙(即反欺騙),從而達到有效防范局域網中感染并運行ARP病毒的目的。
4、采用ARP服務器,防止ARP病毒攻擊。局域網管理人員可以采用ARP 服務器,通過該服務器查找自己的ARP 轉換表來響應其他主機的ARP 廣播數(shù)據包,從而達到這臺ARP 服務器不被攻擊和有效防范局域網中感染并運行ARP病毒的目的。
5、對局域網中的交換機(Switch)端口進行設置,防止ARP病毒攻擊。
A、端口保護(亦即端口隔離):ARP 欺騙技術需要交換機(Switch)的兩個端口直接通信。因此,從事局域網維護和管理的技術人員可以將交換機(Switch)端口設為保護端口,即可用來隔離局域網中主機之間互通信息。同一臺交換機(Switch)的兩個端口之間不能進行直接通訊,需要通過轉發(fā)環(huán)節(jié)才能相互通信。
B、數(shù)據過濾:如果需要對報文做更進一步的控制用戶可以采用ACL (Access Control Label,訪問控制列表)。ACL 利用IP 地址、TCP/UDP 端口等對進出交換機(Switch)的報文進行過濾,根據預設條件,對報文做出允許轉發(fā)或阻塞的決定。在現(xiàn)有交換機產品中,華為和Cisco(思科)公司的交換機均支持IP ACL 和MAC ACL,每種ACL 分別支持標準格式和擴展格式。標準格式ACL 根據源地址和上層協(xié)議類型進行過濾,擴展格式ACL 根據源地址、目的地址以及上層協(xié)議類型進行過濾,異詞檢查偽裝MAC 地址的幀。
6、使用硬件屏蔽局域網中的主機,確保合法路由。局域網管理人員在局域網中設置好所有主機的網絡路由,確保IP 地址能到達合法的路徑(靜態(tài)配置路由ARP 條目)。注意:使用交換集線器和網橋無法阻止ARP 欺騙。
7、定期檢查ARP緩存,防止ARP病毒攻擊。局域網管理的人員應該定期用響應的IP 包中獲得一個RARP(Reverse Address Resolution Protocol,反向地址解析協(xié)議)請求, 檢測ARP 響應的真實性;或者采用網絡管理軟件進行定期輪詢, 檢測局域網中主機上的ARP 緩存表;或者使用防火墻連續(xù)監(jiān)控網絡。注意:在有使用SNMP(Simple Network Management Protocol,簡單網絡管理協(xié)議)的情況下,ARP 欺騙有可能導致陷阱包丟失。
8、運行相關命令和軟件,查找并切斷局域網中所感染ARP病毒的主機。首先,在局域網的主機上運行ping命令(ping 局域網網關的IP地址),再運行ARP -a 命令,檢測所得到的局域網網關所對應的MAC地址是否與實際情況相符,如不符,再去查找與該MAC地址對應的主機。其次,可以使用常用的抓包工具(如:Sniffer軟件),分析所得到的ARP數(shù)據報,再利用殺毒軟件或手工方式對ARP病毒進行處理。最后,可以使用常用的MAC地址掃描工具(如:Nbtscan)來掃描局域網中所有網段的IP地址和MAC地址對應表,從而對感染ARP病毒的主機所對應MAC地址和IP地址進行分析和判斷。
或者利用網絡流量檢測軟件或設備,監(jiān)視局域網的ARP廣播包,查看其MAC地址是否正確。利用上述方法查找到局域網中所感染ARP病毒的主機后,立即斷開該主機的網絡連接,并進行殺毒和程序修復等技術處理。
9、加強教育與培訓,提高網絡安全意識。局域網管理人員結合當前計算機、網絡、病毒等發(fā)展趨勢,定期地進行計算機、網絡安全知識的教育和培訓,切實提高網絡安全意識。如:不要輕易下載、使用盜版、存在安全隱患的程序和軟件;不要隨便打開來歷不明的電子郵件,尤其是電子郵件的附件;不要隨便共享文件和文件夾,以免自己的計算機受到病毒的侵入。
結束語:
因為ARP病毒欺騙利用的是ARP協(xié)議本身的缺陷,而且到目前為止,還沒有某一個方法徹底解決和完全控制ARP病毒欺騙攻擊。而且,防范ARP病毒欺騙漏洞的各類攻擊也是一個系統(tǒng)性工程,因此,比較有效的方法,應該是針對不同的網絡環(huán)境,制定不同的解決方案來有效地阻斷ARP病毒欺騙攻擊。
參考文獻:
1、Peter Szor(美)、段海新 楊波 王德強譯:《計算機病毒防范藝術》 機械工業(yè)出版社 2007 年1月
2、孟曉明:《基于ARP的網絡欺騙的檢測與防范》2005年
3、張海燕:《ARP漏洞及其防范技術》網絡安全 2005年
4、楊尚森:《網絡管理與維護技術》 電子工業(yè)出版社 2004年5月