摘要:對(duì)校園局域網(wǎng)頻繁發(fā)生的ARP欺騙的問(wèn)題進(jìn)行論證,通過(guò)網(wǎng)管等實(shí)際生活中的例子加以解釋,介紹幾種常見(jiàn)的ARP欺騙和攻擊方式以及與MAC地址綁定的種種結(jié)合方式,并且從客戶端、 網(wǎng)關(guān)等多個(gè)方面提出關(guān)于如何防御ARP攻擊的多種方法,以達(dá)到全面防御、維護(hù)局域網(wǎng)絡(luò)安全的目的。
關(guān)鍵詞:地址解析協(xié)議;ARP欺騙;MAC地址綁定;網(wǎng)絡(luò)安全
中圖分類號(hào):TP39 文獻(xiàn)標(biāo)志碼:A文章編號(hào):1673-291X(2010)08-0254-02
一、ARP與MAC
ARP(Address Resolution Protocol)是地址解析協(xié)議的簡(jiǎn)稱,是一種將IP地址轉(zhuǎn)化為物理地址的協(xié)議。在OSI網(wǎng)絡(luò)參考模型的第二層(數(shù)據(jù)鏈路層)中,存在著兩個(gè)子層:介質(zhì)訪問(wèn)控制(MAC)和邏輯鏈路控制(LLC)。由 MAC子層提供的最廣為認(rèn)知的服務(wù)或許就是它的地址了,就像以太網(wǎng)的地址一樣。在以太網(wǎng)中,數(shù)據(jù)傳輸?shù)哪康牡刂泛驮吹刂返恼矫Q是MAC地址。此地址大多數(shù)情況下是獨(dú)一無(wú)二的固化到硬件設(shè)備上的,而IP地址所要轉(zhuǎn)化的物理地址就是MAC地址。
在網(wǎng)絡(luò)數(shù)據(jù)傳輸中實(shí)際傳輸?shù)氖恰皫?Frame),它以比特流的方式通過(guò)傳輸介質(zhì)傳輸出去,其中,幀里面就包含有所要傳送的主機(jī)的MAC地址。在以太網(wǎng)中,一臺(tái)主機(jī)要同另一臺(tái)主機(jī)進(jìn)行通信,就必須要知道對(duì)方的MAC地址。但是,我們?nèi)绾沃肋@個(gè)MAC地址呢?這時(shí)就用到了地址解析協(xié)議。所謂“地址解析”,就是主機(jī)在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過(guò)程。ARP協(xié)議的基本功能就是通過(guò)目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址,以保證通信的順利進(jìn)行。每臺(tái)安裝有TCP/IP協(xié)議的計(jì)算機(jī)主機(jī)里都有一個(gè)ARP緩存表,表中的IP地址與MAC地址是一一對(duì)應(yīng)的,如下表 所示:

二、ARP 欺騙和攻擊方式
1.簡(jiǎn)單的欺騙攻擊
這種欺騙方式是指:欺騙主機(jī)通過(guò)發(fā)送偽造的 ARP 包來(lái)欺騙網(wǎng)關(guān)和目標(biāo)主機(jī),讓目標(biāo)主機(jī)認(rèn)為這是一個(gè)合法的主機(jī)。包括以下情況:局域網(wǎng)主機(jī)冒充網(wǎng)關(guān)進(jìn)行欺騙。假設(shè)有主機(jī)PC_A:當(dāng) PC_A 要與網(wǎng)關(guān) GW_C 通訊時(shí),首先要知道 GW_C 的 MAC 地址,如果局域網(wǎng)中另有一臺(tái)主機(jī) PC_B 冒充 GW_C 告訴 PC_A:GW_C 的 MAC 地址是 MAC B,那么 PC_A 就受騙了;或者直接告訴 PC_A:GW_C 的 MAC 地址是 PC_X,那么,就會(huì)如同我們郵寄信件時(shí)寫(xiě)錯(cuò)了地址,信件或者是發(fā)錯(cuò)了地方,或者是根本就發(fā)送不出去。這樣一來(lái)就會(huì)造成斷線。
網(wǎng)絡(luò)中通訊有一個(gè)前提條件,也就是必須滿足通訊雙方都能向?qū)Ψ絺魉蛿?shù)據(jù)才會(huì)確保正常通訊,即確保 PC_A GW_C 和 GW_CPC_A 的通訊都沒(méi)有問(wèn)題時(shí),才能確保通訊正常。假如有主機(jī)PC_B 冒充 PC_A,告訴 GW_C,PC_A 的 MAC 是 MAC B,那么就會(huì)出現(xiàn):當(dāng) PC_AGW_C 時(shí)沒(méi)有問(wèn)題,可是當(dāng) GW_CPC_A 時(shí)就會(huì)出錯(cuò),造成網(wǎng)絡(luò)斷線的現(xiàn)象。
2.基于 ARP 的“中間人攻擊”
MITM (Man-In-The-Middle)稱為“中間人攻擊”,是一種“間接”的入侵攻擊方式。這種攻 擊是利用一定手段在兩臺(tái)或多臺(tái)主機(jī)之間人為地加入一臺(tái)透明主機(jī),這臺(tái)主機(jī)就稱為“中間人”。“中間人”能夠與原始主機(jī)建立連接、截獲并篡改它們的通信數(shù)據(jù)。由于“中間人”對(duì)于原通信雙方是透明的,使得“中間人”很難被發(fā)現(xiàn),也就使得這種攻 擊更加具有隱蔽性。而其中“中間人”常用的一種手段就是通過(guò) ARP 欺騙的方式來(lái)實(shí)現(xiàn)的。
假設(shè)有同一網(wǎng)段內(nèi)的三臺(tái)主機(jī) A,B,C。主機(jī) A,B 為合法主機(jī),C 為“中間人”攻擊者。如果主機(jī) C 分別向主機(jī) A 和 C 發(fā)送假消息,即:告訴主機(jī) A,主機(jī) C 的 MAC 地址是 MAC B,同時(shí)告訴主機(jī) B,主機(jī) C 的 MAC 地址是 MAC A。這樣主機(jī) C 就成功地成為了 A 與 B 的“中間人”。那么,A,B 間正常的直接通信也會(huì)隨之中斷。取而代之的是 A,B 間每次進(jìn)行 信息交互時(shí)都要經(jīng)過(guò)主機(jī) C。這樣,主機(jī) C 就可以有辦法監(jiān)聽(tīng) A 與 B 之間的通信,達(dá)到監(jiān)聽(tīng)的目的了。如果 C 不轉(zhuǎn)發(fā) A 與 B 之間的通信,就會(huì)造成主機(jī) A,B 之間的網(wǎng)絡(luò)連接中斷。
三、ARP 欺騙解決方案
1.DHCP 結(jié)合靜態(tài)捆綁法
DHCP是 Dynamic Host Configuration Protocol(動(dòng)態(tài)主機(jī)分配協(xié)議)縮寫(xiě)。要想徹底避免ARP欺騙的發(fā)生,我們需要讓每臺(tái)計(jì)算機(jī)的 MAC 地址與 IP 地址唯一且對(duì)應(yīng)。雖然我們 可以通過(guò)為每臺(tái)計(jì)算機(jī)設(shè)置 IP 地址的方法來(lái)管理網(wǎng)絡(luò),但是,對(duì)于那些通過(guò) ARP 欺騙非法攻擊的用戶來(lái)說(shuō),他可以事先自己手動(dòng)更改 IP 地址,這樣檢查起來(lái)就更加復(fù)雜了。這就需要進(jìn)行 IP 與 MAC 的雙向綁定,也就是說(shuō),在網(wǎng)關(guān)的交換機(jī)處?kù)o態(tài)綁定用戶的 MAC地址和 IP 地址的同時(shí),在客戶端靜態(tài)綁定網(wǎng)關(guān) MAC 地址和 IP 地址以及同一網(wǎng)段的 IP 地址和MAC地址,使之不再動(dòng)態(tài)學(xué)習(xí)。但這只是一個(gè)理想的解決方案,因?yàn)檫@樣會(huì)大大加重網(wǎng)絡(luò)管理的負(fù)擔(dān)。網(wǎng)絡(luò)管理員要非常熟悉交換機(jī)設(shè)備,因?yàn)楣芾韱T要在交換機(jī)和客戶端加入一 臺(tái)計(jì)算機(jī)并且添加一條記錄,否則將無(wú)法通信。這就需要提出一種更加全面立體的防御對(duì)策。
2.兩種主要的防御方案
(1) 使用路由器進(jìn)行設(shè)置
為了防止局域網(wǎng)外部對(duì)局域網(wǎng)進(jìn)行ARP攻擊,下面以阿爾法寬帶路由器為例介紹基本的路由器ARP表綁定設(shè)置。在進(jìn)行ARP綁定前首先要確定網(wǎng)絡(luò)是正常運(yùn)行的,然后再進(jìn)ARP綁定設(shè)置。具體設(shè)置如下:首先要啟用ARP綁定功能,其次要綁定ARP表。選擇“ARP 映射表”。
當(dāng)確認(rèn)這個(gè)表是正確的,隨后進(jìn)行綁定操作,為了在路由器重啟后使這些綁定條目仍然有效,可以選擇“全部導(dǎo)入”把這些條目存入靜態(tài)ARP表,對(duì)于這個(gè)靜態(tài) ARP 映射表,可以進(jìn)行修改、刪除、取消綁定等操作。如果已經(jīng)知道局域網(wǎng)內(nèi)主機(jī)的MAC 地址,也可以在這里手工輸入MAC 地址、IP 地址來(lái)添加靜態(tài)ARP 映射條目。進(jìn)行綁定置前要確認(rèn)ARP 緩存表是正確的。盡量手工設(shè)置電腦的IP地址,如果是采用DHCP動(dòng)態(tài)獲取 IP 地址,以后可能會(huì)出現(xiàn)獲取到的地址與當(dāng)前綁定的地址不一致而導(dǎo)致某些電腦不能上網(wǎng)。當(dāng)更換電腦網(wǎng)卡時(shí)要更新靜態(tài)ARP映射表。否則由于更換了網(wǎng)卡的主機(jī)的MAC地址與ARP表中的不一致,也會(huì)導(dǎo)致無(wú)法上網(wǎng)。
(2)客戶端主機(jī)進(jìn)行 ARP 綁定設(shè)置
至于個(gè)人電腦的綁定設(shè)置,可以通過(guò)一些軟件如AntiARP-DNS,或者一些自己編寫(xiě)的批處理文件使之能夠靜態(tài)綁定ARP緩存表,此外,Windows Vista也提供了這樣的功能。下面僅針對(duì)大多數(shù)用戶介紹一種在命令提示符下綁定ARP緩存表的方法。
在本地主機(jī)上可以使用 arp –a 命令(顯示如下圖):

這就是主機(jī)中的ARP緩存表。其中,“dynamic”代表動(dòng)態(tài)緩存,即這項(xiàng)在收到一個(gè)ARP包時(shí)會(huì)被動(dòng)態(tài)修改。如果更改的ARP緩存表中的“Physical Address”是被欺騙的虛假的信息, 當(dāng)主機(jī)通過(guò)ARP緩存表按照提供的MAC地址進(jìn)行通信時(shí)卻不能找到正確的通信對(duì)象,因此就不能和其他主機(jī)正常通信了。所以,我們要手動(dòng)建立起可信任的ARP緩存表。靜態(tài)表的建立用arp -s IP MAC命令。
執(zhí)行“arp –s 222.26.12.129 00-e0-fc-49-a9-fb”再次查看 ARP 緩存表(顯示如下圖):

此時(shí)“Type”項(xiàng)變成了“static”靜態(tài)類型。在這種狀態(tài)下,在接收到ARP包時(shí)也不會(huì)改變本地緩存表,從而有效地防止ARP攻擊。由于靜態(tài)的ARP緩存表在每次重啟后都會(huì)自動(dòng)恢復(fù)原來(lái)設(shè)置,所以每次開(kāi)機(jī)都需要重新設(shè)置。
綜上所述,ARP協(xié)議自身的缺陷給網(wǎng)絡(luò)尤其是局域網(wǎng)絡(luò)的安全帶來(lái)很大的隱患,我們要高度重視。但是,只要掌握了它的基本原理,就可以從多方面下手,杜絕隱患。
參考文獻(xiàn):
[1] 賴?yán)?Riley,C.),等.ISCO 網(wǎng)絡(luò)核心技術(shù)解析[M].江魁,等,譯.北京:水利水電出版社,2005.
[3] 王群.網(wǎng)絡(luò)安全[M].北京:人民郵電出版社,2007.
[3] 譚敏,楊衛(wèi)平.ARP 病毒攻擊與防范[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2008,(4).