毛潮鋼 中交一航局第二工程有限公司,山東 青島 266071
局域網(wǎng)ARP病毒攻擊與防范探析
毛潮鋼 中交一航局第二工程有限公司,山東 青島 266071
局域網(wǎng)中ARP病毒攻擊頻繁發(fā)作,給用戶造成諸多不便。本文從ARP協(xié)議及工作原理入手,深入分析了ARP安全漏洞及病毒攻擊原理,闡明了ARP病毒欺騙的過程,提出解決方法和防范措施。
局域網(wǎng);ARP攻擊;防范
計(jì)算機(jī)病毒伴隨著Internet的發(fā)展,傳播速度越來越快、破壞能力也越來越強(qiáng)。局域網(wǎng)ARP病毒攻擊事件時(shí)常出現(xiàn),造成網(wǎng)絡(luò)頻繁中斷,病毒發(fā)作時(shí)計(jì)算機(jī)網(wǎng)絡(luò)連接正常,能登陸成功,卻無法打開網(wǎng)頁,極大地影響了用戶的正常使用。調(diào)查發(fā)現(xiàn),主要是因?yàn)閭€(gè)別用戶計(jì)算機(jī)感染ARP病毒所導(dǎo)致。筆者結(jié)合自己的一些網(wǎng)絡(luò)管理經(jīng)驗(yàn),對ARP病毒攻擊進(jìn)行了分析和總結(jié),提出了一些相應(yīng)的解決方法和防范措施。
ARP協(xié)議:即地址解析協(xié)議,實(shí)現(xiàn)通過IP地址得知其物理地址。在TCP/IP網(wǎng)絡(luò)環(huán)境下,每個(gè)主機(jī)都分配了一個(gè)32位的IP地址,這種互聯(lián)網(wǎng)地址是在網(wǎng)際范圍標(biāo)識主機(jī)的一種邏輯地址。為了讓報(bào)文在物理網(wǎng)路上傳送,必須知道對方目的主機(jī)的物理地址,這樣就存在把IP地址變成物理地址的地址轉(zhuǎn)換問題。以以太網(wǎng)環(huán)境為例,為了正確地向目的主機(jī)傳送報(bào)文,必須把目的主機(jī)的32位IP地址轉(zhuǎn)換成為48位以太網(wǎng)地址,這就需要在互連層有一組服務(wù)協(xié)議將IP地址轉(zhuǎn)換為相應(yīng)的物理地址,這組協(xié)議就是ARP協(xié)議。
工作原理:在每臺安裝有TCP/IP協(xié)議的電腦里都有一個(gè)ARP緩存表,表里的IP地址與MAC地址是一一對應(yīng)的。 以主機(jī)A(192.168.1.5)向主機(jī)B(192.168. 1.1)發(fā)送數(shù)據(jù)為例:當(dāng)發(fā)送數(shù)據(jù)時(shí),主機(jī)A會在自己的ARP緩存表中尋找是否有目標(biāo)主機(jī)B的IP地址。如果找到了,也就知道了目標(biāo)主機(jī)B的MAC地址,直接把目標(biāo)主機(jī)B的MAC地址寫入幀里面發(fā)送就可以了;如果在ARP緩存表中沒有找到目標(biāo)主機(jī)B的IP地址,主機(jī)A就會在網(wǎng)絡(luò)上發(fā)送一個(gè)廣播,向在同一網(wǎng)段內(nèi)的所有主機(jī)發(fā)出這樣的詢問:“我是192.168.1.5,我的硬件地址是‘主機(jī)A的MAC地址’,請問IP地址為192.168.1.1的主機(jī)MAC地址是什么?”網(wǎng)絡(luò)上其他主機(jī)并不響應(yīng)主機(jī)A的ARP詢問,只有主機(jī)B接收到這個(gè)幀時(shí),才向主機(jī)A做出這樣的回應(yīng):“192. 168.1.1的MAC地址是00-aa-00-62-c6-09”。這樣,主機(jī)A就知道了主機(jī)B的MAC地址,就可以向主機(jī)B發(fā)送信息了,同時(shí)主機(jī)A和主機(jī)B都更新了自己的ARP緩存表(因?yàn)橹鳈C(jī)A在詢問的時(shí)候把自己的IP和 MAC地址一起都告訴了主機(jī)B),下次主機(jī)A再向主機(jī)B或者主機(jī)B向主機(jī)A發(fā)送信息時(shí),就可以直接從各自的ARP緩存表里查找到了。ARP緩存表采用老化機(jī)制(即設(shè)置了生存時(shí)間TTL),在一段時(shí)間內(nèi)(一般15~20分鐘)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。
ARP欺騙木馬的中毒現(xiàn)象表現(xiàn)為:使用局域網(wǎng)時(shí)會突然掉線,過一段時(shí)間后又會恢復(fù)正常。用戶頻繁斷網(wǎng),IE瀏覽器頻繁出錯(cuò),以及一些常用軟件出現(xiàn)故障等。如果局域網(wǎng)中計(jì)算機(jī)是通過身份認(rèn)證上網(wǎng)的,會突然出現(xiàn)可認(rèn)證,但不能上網(wǎng)的現(xiàn)象(無法ping通網(wǎng)關(guān)),重啟機(jī)器或在MS-DOS窗口下運(yùn)行命令arp -d后又可恢復(fù)上網(wǎng)等現(xiàn)象。
ARP欺騙木馬只需在局域網(wǎng)內(nèi)成功感染一臺電腦,就可能導(dǎo)致整個(gè)局域網(wǎng)許多用戶都無法上網(wǎng),嚴(yán)重的甚至可能帶來整個(gè)網(wǎng)絡(luò)的癱瘓。該木馬發(fā)作時(shí),除了導(dǎo)致用戶上網(wǎng)出現(xiàn)時(shí)斷時(shí)續(xù)的現(xiàn)象外,還會竊取用戶密碼,如盜取QQ密碼、盜取各種網(wǎng)絡(luò)游戲密碼和賬號、盜竊網(wǎng)上銀行賬號進(jìn)行非法交易活動(dòng)等。
3.1 ARP緩存表查看方法
ARP緩存表是可以查看的,也可以添加和修改。在MS-DOS命令窗口下運(yùn)行“arp -a”命令,就可以查看ARP緩存表中的內(nèi)容。
用“arp -d”命令可以刪除ARP表中所有的內(nèi)容;
用“arp -d +空格+ <指定IP地址>”可以刪除指定IP所在行的內(nèi)容;
用“arp -s”可以手動(dòng)在ARP表中指定IP地址與MAC地址的對應(yīng)關(guān)系。
3.2 ARP病毒攻擊查找過程
①執(zhí)行arp –a,列出了:
10.216.96.18 00-0F-EA-11-00-5E
10.216.96.3 00-0F-EA-11-00-5E(改變后的網(wǎng)關(guān)MAC地址)
由于之前我們已經(jīng)知道網(wǎng)關(guān)的正確物理地址是00-00-0c-07-0a-01,此時(shí)卻變成了00-0F-EA-11-00-5E,說明10.216. 96.18正在利用arp進(jìn)行欺騙,冒充網(wǎng)關(guān)。
②執(zhí)行arp -d,清除ARP緩存列表信息。重新運(yùn)行arp –a,看可疑IP地址是否存在,不存在說明此IP地址正常,存在則說明該機(jī)器有ARP病毒。
③使用tracert命令,在任意一臺受影響的主機(jī)上,在MS-DOS命令窗口下運(yùn)行如下命令:tracert 61.135.179.148(外網(wǎng)IP地址)。假定設(shè)置的缺省網(wǎng)關(guān)為10.216. 96.3,在跟蹤一個(gè)外網(wǎng)地址時(shí),第一跳卻是10.216.96.18,那么10.216.96.18就是病毒源。
通過以上查找分析,局域網(wǎng)內(nèi)有計(jì)算機(jī)感染ARP 病毒,中毒機(jī)器的網(wǎng)卡會不斷發(fā)送虛假的ARP數(shù)據(jù)包,告訴網(wǎng)內(nèi)其它計(jì)算機(jī)網(wǎng)關(guān)的MAC地址是中毒機(jī)器的MAC地址,使其它計(jì)算機(jī)將本來發(fā)送網(wǎng)關(guān)的數(shù)據(jù)從而發(fā)送到中毒機(jī)器上,導(dǎo)致整個(gè)局域網(wǎng)都無法上網(wǎng),乃至整個(gè)網(wǎng)絡(luò)的癱瘓。我們知道局域網(wǎng)中的數(shù)據(jù)流向是網(wǎng)關(guān)→本機(jī),如果網(wǎng)絡(luò)有ARP 欺騙之后,數(shù)據(jù)的流向是網(wǎng)關(guān)→攻擊者→本機(jī),因此攻擊者能隨意竊聽網(wǎng)絡(luò)數(shù)據(jù)信息。
①合理劃分VLAN,徹底阻止盜用IP、MAC地址,杜絕ARP的攻擊。
②使用可防御ARP攻擊的三層交換機(jī),綁定端口MAC-IP。限制ARP流量,及時(shí)發(fā)現(xiàn)并自動(dòng)阻斷ARP攻擊端口。
③安裝ARP防火墻或者開啟局域網(wǎng)ARP防護(hù),比如360安全衛(wèi)士等,并且實(shí)時(shí)下載安裝系統(tǒng)漏洞補(bǔ)丁,關(guān)閉不必要的服務(wù)等,減少病毒的攻擊。
④經(jīng)常更新殺毒軟件病毒庫,允許的情況下可設(shè)置為每天定時(shí)自動(dòng)更新。
⑤如果沒有安裝防范軟件,則可以通過編寫簡單的批處理程序來綁定網(wǎng)關(guān),從而防止ARP欺騙。步驟如下:
首先,獲得網(wǎng)關(guān)的MAC地址。以Windows XP為例,點(diǎn)擊“開始”→“運(yùn)行”→輸入“cmd”→“確定”→輸入“arp -a”,查看網(wǎng)關(guān)的MAC地址;
第二步,編寫批處理文件arp.bat,內(nèi)容如下:
arp -s 10.216.96.3 00-00-0c-07-0a-01(注:arp -s是用來手動(dòng)綁定IP地址對應(yīng)的MAC地址);
第三步,編寫完后另存為.bat文件,并將這個(gè)批處理文件拖到Windows開始程序的“啟動(dòng)”中,重起電腦即可。
ARP協(xié)議制定時(shí)間比較早,對于ARP病毒攻擊最根本的解決措施就是使用 IPv6協(xié)議,因?yàn)镮Pv6定義了鄰機(jī)發(fā)現(xiàn)協(xié)議(NDP),把ARP納入NDP并運(yùn)行于因特網(wǎng)控制報(bào)文協(xié)議(ICMP)上,使ARP更具有一般性,包括更多的內(nèi)容,而且不用為每種鏈路層協(xié)議定義一種ARP。
隨著網(wǎng)絡(luò)技術(shù)的不斷更新,網(wǎng)絡(luò)建設(shè)的不斷完善,我們已經(jīng)可以更好的解決ARP攻擊問題,確保網(wǎng)絡(luò)安全可靠運(yùn)行。
10.3969/j.issn.1001-8972.2011.15.054