邢金閣,劉 揚(yáng)
(1.東北農(nóng)業(yè)大學(xué)網(wǎng)絡(luò)信息中心,哈爾濱 150030;2.哈爾濱工業(yè)大學(xué)(威海)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山東 威海 2642099)
在局域網(wǎng)中,兩臺(tái)計(jì)算機(jī)收發(fā)數(shù)據(jù)是根據(jù)接收方MAC地址進(jìn)行尋址,由于物理地址(MAC)是平面地址,考慮到規(guī)?;肮芾韱?wèn)題,目前采用根據(jù)IP尋址方式。如果發(fā)送方主機(jī)僅知道IP地址,不知道接收方主機(jī)MAC地址,在數(shù)據(jù)包發(fā)送前就需得到接收方主機(jī)MAC地址[1]。ARP協(xié)議工作在局域網(wǎng)的數(shù)據(jù)鏈路層,完成32位IP地址到48位MAC地址映射,實(shí)現(xiàn)對(duì)接收方主機(jī)進(jìn)行物理尋址。網(wǎng)絡(luò)攻擊者通過(guò)ARP協(xié)議自身漏洞,采用ARP欺騙方式對(duì)這種映射關(guān)系進(jìn)行更改,從而破壞正常網(wǎng)絡(luò)傳輸。
在以太網(wǎng)中,數(shù)據(jù)包傳輸依靠MAC地址,IP地址與MAC對(duì)應(yīng)關(guān)系依靠動(dòng)態(tài)生成ARP表。ARP的緩存表能有效保證數(shù)據(jù)傳輸。ARP表實(shí)現(xiàn)機(jī)制不完善,當(dāng)主機(jī)收到ARP的應(yīng)答包后,它并不會(huì)主動(dòng)驗(yàn)證這個(gè)應(yīng)答包真實(shí)性,而將應(yīng)答包里MAC地址與IP映射關(guān)系替換掉原有的ARP緩存表里映射信息。由于ARP請(qǐng)求是以廣播方式進(jìn)行(目的MAC為FFFFFF),局域網(wǎng)內(nèi)任意一臺(tái)主機(jī)如未接到地址解析請(qǐng)求,它會(huì)向接收主機(jī)發(fā)送ARP應(yīng)答包,從而增大ARP欺騙的可行性,為ARP欺騙提供條件[2]。常見(jiàn)ARP欺騙方式主要有監(jiān)聽(tīng)、惡意攻擊和截取等。
監(jiān)聽(tīng)是比較常用的一種攻擊方式,發(fā)動(dòng)攻擊的主機(jī)插入到兩個(gè)正常通信主機(jī)之間,用這種方式得到通信雙方通信信息,為了更好獲取通信信息,監(jiān)聽(tīng)者需向兩個(gè)通信主機(jī)轉(zhuǎn)發(fā)信息從而保證使雙方通信能夠繼續(xù)。目前有外網(wǎng)監(jiān)聽(tīng)和內(nèi)網(wǎng)監(jiān)聽(tīng)。
1.1.1 外網(wǎng)監(jiān)聽(tīng)
假設(shè)在同一網(wǎng)段內(nèi)的主機(jī)A與主機(jī)B進(jìn)行通信,主機(jī)C為攻擊者并處于外網(wǎng)中,要監(jiān)聽(tīng)A與B主機(jī)通信內(nèi)容,具體示意圖如圖1所示。
主機(jī)C通過(guò)網(wǎng)關(guān)(或者路由器)監(jiān)聽(tīng)A和B的通信信息,考慮到信息從內(nèi)網(wǎng)到外網(wǎng)存活時(shí)間(TTL),攻擊者通過(guò)修改IP分組TTL,從而給發(fā)出欺騙包預(yù)留足夠時(shí)間。C發(fā)送給A的ARP應(yīng)答包中源IP地址為192.168.1.20、源物理地址為AB-AB-AB-AB-AB-AB。主要工作原理為:A接收ARP應(yīng)答包后,更新網(wǎng)絡(luò)緩存,將信息發(fā)送給B主機(jī)時(shí)尋址方式是按攻擊者主機(jī)C物理地址,由于ARP協(xié)議作用范圍只能限制在局域網(wǎng)中,而C主機(jī)在局域網(wǎng)外部,這時(shí)C主機(jī)利用ICMP協(xié)議查找并更新A主機(jī)所在路由器路由表,本來(lái)是要發(fā)給B主機(jī)信息,先經(jīng)過(guò)路由器,由路由器轉(zhuǎn)發(fā)給攻擊者。發(fā)送給B信息轉(zhuǎn)移到C主機(jī),實(shí)現(xiàn)攻擊者對(duì)A主機(jī)監(jiān)聽(tīng)。根據(jù)同樣的道理,攻擊者同時(shí)實(shí)現(xiàn)對(duì)B主機(jī)監(jiān)聽(tīng)。
圖1 外網(wǎng)監(jiān)聽(tīng)過(guò)程Fig.1 Procedure of monitoring outside the subnet
1.1.2 內(nèi)網(wǎng)監(jiān)聽(tīng)
在同一局域網(wǎng)內(nèi)有A、B、C主機(jī),假設(shè)C為攻擊者且監(jiān)聽(tīng)A和B主機(jī)間通信信息。具體攻擊見(jiàn)圖2。
圖2 內(nèi)網(wǎng)監(jiān)聽(tīng)過(guò)程Fig.2 Procedure of monitoring inside the subnet
內(nèi)網(wǎng)監(jiān)聽(tīng)的主要工作原理:C主機(jī)首先獲取到A和B主機(jī)IP地址,通過(guò)多種方法獲知A和B主機(jī)物理地址,例如通過(guò)ARP請(qǐng)求、響應(yīng)信息或通過(guò)ping命令等[3]。然后C主機(jī)將網(wǎng)卡功能擴(kuò)展,使之具有轉(zhuǎn)發(fā)功能,該模式被稱為混雜模式,C主機(jī)構(gòu)造ARP應(yīng)答包發(fā)送給A主機(jī),其中源IP地址192.168.1.20、源物理地址AB-AB-AB-AB-ABAB。
ARP協(xié)議就有漏洞,攻擊者偽造ARP包,將該包發(fā)送給A主機(jī),A主機(jī)在接收到攻擊者ARP應(yīng)答包后,開(kāi)始更新網(wǎng)絡(luò)緩存,與此同時(shí),攻擊者繼續(xù)用同樣的方式向主機(jī)B發(fā)送ARP應(yīng)答包,其中源IP地址為192.168.1.10、源物理地址為AB-AB-ABAB-AB-AB,從而完成ARP欺騙過(guò)程。
在信息安全等相關(guān)的技術(shù)中,惡意攻擊是指網(wǎng)絡(luò)內(nèi)部人員有計(jì)劃地竊聽(tīng)、偷竊和損壞信息,或拒絕其他授權(quán)用戶的訪問(wèn)。局域網(wǎng)內(nèi)的攻擊者一般采用持續(xù)對(duì)網(wǎng)內(nèi)所有的ARP請(qǐng)求采取應(yīng)答的手段,惡意填入不存在MAC地址,導(dǎo)致主機(jī)在更新ARP緩存時(shí),無(wú)法正確連接到目標(biāo)主機(jī),導(dǎo)致通訊中斷。另一方面,目標(biāo)主機(jī)持續(xù)接收到大量垃圾信息,目標(biāo)主機(jī)丟掉其他源主機(jī)發(fā)送信息,導(dǎo)致大量數(shù)據(jù)發(fā)送至網(wǎng)關(guān),使網(wǎng)關(guān)的負(fù)荷增加,出現(xiàn)網(wǎng)絡(luò)阻塞,無(wú)法維持正常通信[4]。惡意攻擊是一種比較常見(jiàn)網(wǎng)絡(luò)攻擊方式。
網(wǎng)絡(luò)安全中的截取技術(shù)中,攻擊者偽裝成收信方,用收信方的身份與送信方進(jìn)行通信。假設(shè)C主機(jī)為攻擊者,A主機(jī)為源主機(jī),B為收信方目的主機(jī),C主機(jī)偽裝成A主機(jī)向B主機(jī)進(jìn)行通信,以A主機(jī)的身份向B主機(jī)發(fā)送錯(cuò)誤信息,導(dǎo)致A主機(jī)與B主機(jī)中斷鏈接,攻擊者C主機(jī)采用B主機(jī)身份與A主機(jī)通信,從而獲取雙方通信信息。
在網(wǎng)絡(luò)信息安全技術(shù)中,對(duì)ARP欺騙最常用的一種檢測(cè)方式就是核對(duì)本地ARP緩存中IP地址與物理地址對(duì)應(yīng)關(guān)系,再結(jié)合ARP請(qǐng)求應(yīng)答情況來(lái)檢測(cè)網(wǎng)絡(luò)中是否存在ARP欺騙,檢測(cè)方法有ARP應(yīng)答分析法、匹配IP法和數(shù)據(jù)幀檢測(cè)法。
這是一種簡(jiǎn)便實(shí)用檢測(cè)方法,由ARP欺騙機(jī)制可知,攻擊者必須不間斷重復(fù)向目的主機(jī)發(fā)送報(bào)文,從而維持攻擊者與目的主機(jī)的通信。系統(tǒng)可通過(guò)監(jiān)聽(tīng)報(bào)文方法,如出現(xiàn)大量無(wú)應(yīng)答報(bào)文,且出現(xiàn)較多無(wú)請(qǐng)求的ARP應(yīng)答幀,則可能出現(xiàn)ARP欺騙。
如局域網(wǎng)內(nèi)出現(xiàn)ARP欺騙,則出現(xiàn)兩種情況:①當(dāng)目的主機(jī)接收到ARP請(qǐng)求時(shí),根據(jù)IP映射表對(duì)比請(qǐng)求幀IP地址與本機(jī)IP地址進(jìn)行對(duì)應(yīng),這兩個(gè)IP地址一致;②主機(jī)可定期查詢自己IP請(qǐng)求包,收到源地址ARP應(yīng)答包是本機(jī)IP地址[5-6]。
如進(jìn)行惡意攻擊ARP應(yīng)答包未留下攻擊者IP地址,但會(huì)在包含該ARP應(yīng)答包數(shù)據(jù)幀中有攻擊者的IP地址等相關(guān)信息[7]。一般網(wǎng)絡(luò)能正常通信情況下,數(shù)據(jù)幀頭部中的源物理地址與目的主機(jī)的物理地址應(yīng)該和幀中數(shù)據(jù)包的ARP信息是一致,如存在不一致情況,則很大程度上表示在網(wǎng)絡(luò)通信中有ARP欺騙包存在。
ARP映射表動(dòng)態(tài)更新情況是產(chǎn)生ARP欺騙主要原因,通過(guò)對(duì)網(wǎng)段中IP地址和物理地址進(jìn)行綁定方法可有效防止攻擊者動(dòng)態(tài)更新ARP的緩存。將MAC地址與主機(jī)的IP地址綁定后,攻擊主機(jī)發(fā)送ARP欺騙包到達(dá)目的主機(jī)無(wú)法更新目的主機(jī)中ARP緩存,達(dá)到預(yù)防ARP欺騙目的。但由于接入網(wǎng)絡(luò)中計(jì)算機(jī)用戶數(shù)量增加,這種方法將會(huì)產(chǎn)生大量IP地址浪費(fèi),不常聯(lián)網(wǎng)計(jì)算機(jī)也占用比較緊缺的網(wǎng)絡(luò)資源,增加操作和維護(hù)成本,如頻繁變更,出錯(cuò)概率會(huì)增加。
強(qiáng)化ARP更新策略,由于現(xiàn)行ARP協(xié)議要求在接收到任意應(yīng)答包時(shí)隨即更新緩存,易產(chǎn)生ARP欺騙,ARP更新尤為必要,基本原則是只讓目的主機(jī)接收自己了解的主機(jī)發(fā)送ARP應(yīng)答包,對(duì)未知源發(fā)送ARP請(qǐng)求包一律作丟棄處理,這種方案會(huì)多一個(gè)身份確認(rèn)過(guò)程。
加密技術(shù)是網(wǎng)絡(luò)信息安全研究重要分支,在ARP欺騙原理基礎(chǔ)上,為使監(jiān)聽(tīng)不易被對(duì)方覺(jué)察,即使攻擊者截獲相應(yīng)信息,也很難獲取,從而保證了網(wǎng)絡(luò)信息傳輸安全性。但這種技術(shù)需一種比較強(qiáng)大的加密算法支持,對(duì)網(wǎng)絡(luò)傳輸成本和實(shí)效性是一個(gè)挑戰(zhàn)。
防范局域網(wǎng)通信中的ARP欺騙算法主要原理是通過(guò)檢測(cè)接收到的ARP應(yīng)答或請(qǐng)求包,限制動(dòng)態(tài)修改主機(jī)中ARP緩存,通過(guò)有效的驗(yàn)證后方能修改緩存信息。該算法采用visual studio C++開(kāi)發(fā)環(huán)境,并結(jié)合winpcap開(kāi)發(fā)包和MFC類庫(kù),使用winpcap獲取數(shù)據(jù)包,其核心算法如下:
在網(wǎng)絡(luò)信息安全研究領(lǐng)域中,ARP欺騙是局域網(wǎng)中較常見(jiàn)的一種攻擊方式,其主要原因是ARP協(xié)議具有一種“無(wú)狀態(tài)”缺點(diǎn)。目前沒(méi)有便捷有效的方法來(lái)防范ARP欺騙產(chǎn)生,現(xiàn)存的一些防范策略都有一定的局限性,本文綜合分析有關(guān)防范ARP欺騙特點(diǎn)和限制,提出一種防范ARP欺騙的算法,該算法可有效的防范局域網(wǎng)中ARP欺騙,今后還需進(jìn)一步研究加入隨機(jī)算法來(lái)提高算法效率,盡可能降低ARP欺騙危害。
[1]鄧清華,陳松喬.ARP欺騙攻擊及其防范[J].微機(jī)發(fā)展,2004,14(8):82-86.
[2]Meng X M.Detecting and precaution of network spoofing base on ARP[J].Information Technology,2005(5):32-36.
[3]鄭文兵,李成忠.ARP欺騙原理及一種防范算法[J].江南大學(xué)學(xué)報(bào):自然科學(xué)版,2003,2(6):125-127.
[4]王燕,張新剛.基于ARP協(xié)議的攻擊及其防御方法分析[J].微計(jì)算機(jī)信息,2007,12(3):72-74.
[5]吳少華,方勇,胡勇,等.基于ARP協(xié)議的非法入網(wǎng)檢測(cè)與阻止技術(shù)研究[J].微計(jì)算機(jī)信息,2007(1):27-28.
[6]何聚厚,何秀青,李由,等.IP動(dòng)態(tài)偽裝模型研究[J].計(jì)算機(jī)科學(xué),2004(4):64-66.