摘要:如何保障網(wǎng)絡(luò)的正常運(yùn)行已經(jīng)成為各單位業(yè)務(wù)系統(tǒng)能否順利開展的關(guān)鍵問題。而網(wǎng)絡(luò)中ARP欺騙攻擊的出現(xiàn)造成了大量電腦無法上網(wǎng),更有甚者導(dǎo)致網(wǎng)絡(luò)癱瘓。為保障網(wǎng)絡(luò)安全、穩(wěn)定的運(yùn)行。首先通過對(duì)ARP通訊的過程進(jìn)行研究,找出ARP攻擊產(chǎn)生的原因,再通過具體的案例來說明怎樣利用交換機(jī)的ACL功能來有效的防御ARP攻擊。
關(guān)鍵詞:ARP;交換機(jī);ACL
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)35-9943-02
Guard Against ARP Attacking the Analysis Resolving the Scheme Example
ZHENG Jian-feng
(Liuzhou City Bureau of Finance, Liuzhou 545006, China)
Abstract: How ensure network regularity running the question already becoming every business system being able to carry out smoothly or not. But, in the network, ARP attack brings about large amount of unable net play of computer, Lead to the network be paralysed furthermore. Be to ensure the network safety, stable. Study first by the fact that the communication process is in progress to ARP, Find out the cause that ARP go at produces, defense ARP go at again by explaining that ACL how to make use of switch is an effective to come the function coming concrete case.
Key words: ARP; switch; ACL
近兩年來我們?cè)诰钟蚓W(wǎng)中經(jīng)常發(fā)現(xiàn)這樣的怪事:網(wǎng)絡(luò)中同一網(wǎng)段的電腦大部分不能上網(wǎng),而電腦在重新啟動(dòng)后網(wǎng)絡(luò)又恢復(fù)正常,但過了沒多久就又不能上網(wǎng)了。當(dāng)你對(duì)不能上網(wǎng)的電腦進(jìn)行殺毒,卻發(fā)現(xiàn)沒有病毒,重新安裝系統(tǒng),可還是不能上網(wǎng)。而這就是網(wǎng)絡(luò)殺手—ARP攻擊造成的嚴(yán)重后果。
1 ARP攻擊成因分析
要想弄清楚電腦不能上網(wǎng)的原因。首先,我們來認(rèn)識(shí)ARP,它的全名是Address Resolution Protocol,地址解析協(xié)議,其功能是通過目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址,從而實(shí)現(xiàn)網(wǎng)絡(luò)內(nèi)設(shè)備間的正常通訊。其次,讓我們來分析ARP攻擊的過程。網(wǎng)絡(luò)中的設(shè)備(包括主機(jī)、交換機(jī)、路由器等)都有一張通過ARP協(xié)議建立的ARP緩存表,表中的內(nèi)容是IP地址和MAC地址的對(duì)應(yīng)關(guān)系。網(wǎng)絡(luò)設(shè)備就是通過ARP緩存表和其它設(shè)備通訊的。ARP攻擊就是通過大量的發(fā)送錯(cuò)誤的ARP報(bào)文,使得網(wǎng)絡(luò)設(shè)備中ARP緩存表的內(nèi)容,既IP地址和MAC地址的對(duì)應(yīng)關(guān)系出現(xiàn)錯(cuò)誤。這樣一來網(wǎng)絡(luò)設(shè)備間的通訊就無法正常進(jìn)行了。
2 解決方案實(shí)例分析
接下來通過具體的案例來說明怎么樣防御ARP欺騙攻擊。在如圖1所示的網(wǎng)絡(luò)環(huán)境中,核心交換機(jī)是H3C的S7510E,在S7510E上開啟三層功能,建立VLAN18,VLAN18的IP地址是10.79.58.1,子網(wǎng)掩碼是255.255.255.0,MAC地址是00-0F-E2-A4-14-52 。S7510E下連兩臺(tái)H3C的S3600-52P-SI,在S3600-52P-SI上開啟二層功能,將S1的第10個(gè)端口配置為屬于VLAN18的ACCESS端口,10端口下連PC1,PC1靜態(tài)配置的IP地址是10.79.58.16,子網(wǎng)掩碼是255.255.255.0,網(wǎng)關(guān)是10.79.58.1,MAC地址是00-19-5B-7F-12-AD。將S2的第20個(gè)端口配置為屬于VLAN18的ACCESS端口,20端口下連PC2,PC2靜態(tài)配置的IP地址是10.79.58.28,子網(wǎng)掩碼是255.255.255.0,網(wǎng)關(guān)是10.79.58.1,MAC地址是00-21-5E-30-5F-8C。
在正常的情況下PC1和PC2的ARP緩存表中都會(huì)有網(wǎng)關(guān)的IP地址和MAC地址的對(duì)應(yīng)記錄。這樣PC1和PC2的以太網(wǎng)幀就可以到達(dá)網(wǎng)關(guān),再通過網(wǎng)關(guān)到達(dá)其它目的地。但是當(dāng)PC1感染上了ARP病毒后,它就會(huì)向和它同一網(wǎng)段的PC2發(fā)送帶欺騙性質(zhì)的ARP報(bào)文。在這樣的ARP報(bào)文中,它將網(wǎng)關(guān)的MAC地址改為自己的MAC地址。這樣PC2的ARP緩存表就發(fā)生了變化,網(wǎng)關(guān)的IP地址對(duì)應(yīng)的MAC地址就變成了PC1的MAC地址了,而從PC2發(fā)出的以太網(wǎng)幀就沒辦法到達(dá)網(wǎng)關(guān)了而是要送到PC1那里了。這也就造成了PC2無法上網(wǎng)的狀況。而且PC1的ARP欺騙報(bào)文是隨機(jī)發(fā)送的,這樣就導(dǎo)致PC2的ARP緩存表連續(xù)不斷的被欺騙,即使我們使用ARP –d命令或者重新啟動(dòng)電腦的辦法清除了錯(cuò)誤的ARP緩存表,可是不一會(huì)就又遭到ARP欺騙報(bào)文的攻擊而產(chǎn)生錯(cuò)誤的ARP表了。
經(jīng)過以上的分析,我們知道只要使電腦不遭受ARP報(bào)文的欺騙攻擊,它的ARP緩存表就能保持正確,也就能正常的上網(wǎng)了。而這就需要在連接電腦的交換機(jī)上下功夫,使其起到屏障的作用。當(dāng)電腦發(fā)送出來的以太網(wǎng)幀到達(dá)交換機(jī)的時(shí)候,它做出判斷,是ARP欺騙攻擊的報(bào)文就阻止其通過,其它的以太網(wǎng)幀就讓其正常的通過。這樣ARP欺騙攻擊的報(bào)文就沒辦法發(fā)揮作用了。
通過在交換機(jī)上配置ACL,它的全名是Access Control List,訪問控制列表,就能使其對(duì)報(bào)文做智能判斷。H3C的S3600-52P-SI支持一種特殊的ACL—用戶自定義ACL,它以以太網(wǎng)幀的頭部為基準(zhǔn),指定從第幾個(gè)字節(jié)開始與掩碼進(jìn)行“與”操作,將從中提取出來的字符串和用戶定義的字符串進(jìn)行比較,找到匹配的報(bào)文后,再根據(jù)預(yù)先設(shè)定的策略允許或者禁止相應(yīng)的報(bào)文通過。
在H3C的S3600-52P-SI交換機(jī)上進(jìn)行用戶自定義ACL的配置分為五步。第一步,進(jìn)入系統(tǒng)視圖,命令為:system-view。第二步,創(chuàng)建并進(jìn)入用戶自定義ACL視圖,命令為:acl number acl-number,用戶自定義ACL的序號(hào)acl-number的取值范圍為5000~5999。第三步,定義ACL規(guī)則,命令為:rule [rule-id] {permit | deny} [rule-string rule-mask offset] <1-8>。用戶自定義ACL的規(guī)則編號(hào)rule-id的取值范圍為0~65534。permit和deny為策略,permit表示允許,deny表示拒絕。rule-string為用戶自定義的規(guī)則字符串,rule-mask為用戶自定義的規(guī)則掩碼,offset為規(guī)則掩碼的偏移量。為了解這三項(xiàng)的作用,我們先要了解攜帶ARP報(bào)文的以太網(wǎng)幀格式。我們?cè)谶@里重點(diǎn)介紹其中的兩個(gè)字段。如圖2所示,從左往右數(shù)第四項(xiàng)的幀類型,它由四個(gè)十六進(jìn)制數(shù)構(gòu)成,占兩個(gè)字節(jié),其含義是以太網(wǎng)幀攜帶的報(bào)文的類型,比如十六進(jìn)制數(shù)0806表示以太網(wǎng)幀攜帶的是ARP報(bào)文。從左往右數(shù)第十一項(xiàng)的發(fā)送端IP地址,它由八個(gè)十六進(jìn)制數(shù)構(gòu)成,占四個(gè)字節(jié)。表示發(fā)送此以太網(wǎng)幀的設(shè)備的IP地址。比如0A-4F-3A-01表示是IP地址為10.79.58.1的設(shè)備發(fā)送的以太網(wǎng)幀。在具體配置的時(shí)候rule-string的值就可以根據(jù)圖2所示各字段的內(nèi)容進(jìn)行填寫。Offset用來表示如圖2所示以太網(wǎng)幀從左邊算起第幾個(gè)字節(jié)開始與rule-mask所表示的位數(shù)進(jìn)行“與”操作,用得出的字符串和rule-string進(jìn)行比較,如果匹配則ACL規(guī)則預(yù)先設(shè)定的策略允許或者禁止起作用。從而到達(dá)對(duì)報(bào)文的控制。第五步,將用戶自定義ACL應(yīng)用到交換機(jī)端口上去。
在掌握了用戶自定義ACL的配置方法后,接下來就要找到需要禁止的報(bào)文的特征。經(jīng)分析得出ARP欺騙報(bào)文有兩個(gè)特點(diǎn):首先,它是一個(gè)ARP報(bào)文,也就是如圖2所示幀類型字段的值為0806。其次,它要冒充網(wǎng)關(guān)發(fā)出報(bào)文,也就是如圖2所示發(fā)送端IP地址字段的值為用十六進(jìn)制數(shù)表示的網(wǎng)關(guān)的IP地址。
經(jīng)過以上分析我們要想禁止PC1發(fā)出ARP欺騙報(bào)文,應(yīng)該在S1交換機(jī)上做如下配置。第一步,登陸到S1交換機(jī),輸入命令system-view,進(jìn)入到系統(tǒng)視圖。第二步,輸入命令acl number 5100,創(chuàng)建并進(jìn)入序號(hào)為5100的用戶自定義ACL視圖。第三步,輸入命令rule 1 deny 0806 ffff 16 0A4F3A01 ffffffff 32。其具體含義為:rule 1 表示創(chuàng)建的規(guī)則編號(hào)為1,deny表示當(dāng)滿足后面的條件時(shí)禁止報(bào)文的通過,0806 ffff 16表示第一個(gè)條件是從以太網(wǎng)幀頭部開始算起第16個(gè)字節(jié)后兩個(gè)字節(jié)(ffff表示四個(gè)十六進(jìn)制數(shù),也就是兩個(gè)字節(jié))的值是0806,也就是說這個(gè)以太網(wǎng)幀攜帶的是ARP報(bào)文,0A4F3A01 ffffffff 32表示第二個(gè)條件是從以太網(wǎng)幀頭部開始算起第32個(gè)字節(jié)后四個(gè)字節(jié)(ffffffff表示八個(gè)十六進(jìn)制數(shù),也就是四個(gè)字節(jié))的值是0A4F3A01,也即是說發(fā)送端IP地址為10.79.58.1。第四步,輸入命令quit退出到系統(tǒng)視圖,輸入命令interface Ethernet 1/0/10,進(jìn)入到第10端口配置視圖,輸入命令packet-filter inbound user-group 5100,將序號(hào)為5100的用戶自定義ACL配置到第10端口的入口。完成以上配置以后PC1的ARP欺騙報(bào)文就在進(jìn)入S1交換機(jī)的第十端口的時(shí)候被禁止了。
圖2 攜帶ARP報(bào)文的以太網(wǎng)幀格式
3 結(jié)束語
利用在交換機(jī)端口上配置用戶自定義ACL的方法對(duì)仿冒網(wǎng)關(guān)的ARP攻擊確實(shí)起到了有效的防御作用。但是仿冒網(wǎng)關(guān)的ARP攻擊只是筆者在網(wǎng)絡(luò)維護(hù)中最常見到的一種ARP攻擊方式。其它的ARP攻擊方式有:第一,欺騙網(wǎng)關(guān)攻擊。第二,“中間人”攻擊。第三,ARP報(bào)文泛洪攻擊。因此,想要全面的防御ARP欺騙攻擊就要在網(wǎng)絡(luò)中建立全方位的防御體系。具體的做法包括:第一,要在交換機(jī)上配置ARP DETECTION、靜態(tài)ARP綁定、ARP報(bào)文限速、ARP源抑制、ARP防IP報(bào)文攻擊等功能。第二,在網(wǎng)絡(luò)中部署硬件防火墻、入侵檢測(cè)系統(tǒng)。第三,要在電腦上安裝殺毒軟件、軟件防火墻,及時(shí)的給電腦打系統(tǒng)補(bǔ)丁,在接收U盤數(shù)據(jù)的時(shí)候要采取先殺毒后拷貝的方式,防止病毒從U盤傳入電腦。第四,對(duì)內(nèi)網(wǎng)、外網(wǎng)進(jìn)行物理隔離。第五,如果IP地址的獲取是通過DHCP服務(wù)器自動(dòng)分配的方式,則應(yīng)該采用802.1X認(rèn)證等方式進(jìn)行先認(rèn)證后分配IP地址再接入網(wǎng)絡(luò)的方式。ARP欺騙攻擊雖然給網(wǎng)絡(luò)的應(yīng)用帶來了很大的危害,但是只要我們采用正確的方法并部署得當(dāng),ARP欺騙攻擊是肯定能夠防御的。
參考文獻(xiàn):
[1] 王達(dá).網(wǎng)管員必讀:網(wǎng)絡(luò)組建[M].北京:電子工業(yè)出版社,2007.
[2] 王達(dá).網(wǎng)管員必讀:網(wǎng)絡(luò)安全[M].北京:電子工業(yè)出版社,2007.
[3] 陸魁軍.計(jì)算機(jī)網(wǎng)絡(luò)工程實(shí)踐教程:基于華為路由器和交換機(jī)[M].北京:北京清華大學(xué)出版社,2005.