編者按:針對ARP協(xié)議的網(wǎng)絡(luò)攻擊時有發(fā)生,筆者就遇到此類攻擊導(dǎo)致的網(wǎng)絡(luò)故障,本文針對此類故障詳細(xì)探討其中發(fā)生的緣由及排查經(jīng)過。
ARP(地 址解析協(xié)議)是一個位于網(wǎng)絡(luò)層中,將IP地 址解析為對應(yīng)的MAC地址的協(xié)議。ARP協(xié)議有簡單、易用的優(yōu)點(diǎn),但是也因為其沒有任何安全認(rèn)證機(jī)制而容易被攻擊者利用。
ARP協(xié)議是建立在信任局域網(wǎng)內(nèi)所有節(jié)點(diǎn)的基礎(chǔ)上的,它很高效,但卻不安全。它是無狀態(tài)的協(xié)議,不會檢查自己是否發(fā)過請求包,也不會驗證是否是合法的應(yīng)答,只要收到目標(biāo)MAC是自己的ARP reply包或ARP廣播包,都會接受并緩存。
筆者單位辦公網(wǎng)是一個局域網(wǎng),其拓?fù)淙鐖D1所示。中心核心是一臺華為5700的交換機(jī),所有接入交換機(jī)通過兩臺匯聚交換機(jī)接入核心交換機(jī),用戶數(shù)量約800。在某天,大量辦公網(wǎng)用戶不能上網(wǎng),Ping網(wǎng)關(guān)發(fā)現(xiàn)網(wǎng)絡(luò)時通時斷,且基本狀態(tài)為斷。
圖1 網(wǎng)絡(luò)拓?fù)鋱D
由于大量辦公用戶網(wǎng)絡(luò)無法Ping通網(wǎng)關(guān),因此筆者通過display interface brief命令直接查看核心交換機(jī)端口情況,發(fā)現(xiàn)端口in和out的流量都不大,可排除流量過大導(dǎo)致端口堵死的情況。
然后通過dispaly trapbuffer命令查看核心交換機(jī)的告警信息,發(fā)現(xiàn)有大量告警信息,如圖2所示,因為有攻擊導(dǎo)致一些包被丟棄。
使用diaplay cpu-usage命令查看核心交換機(jī)的CPU使用率,發(fā)現(xiàn)CPU利用率高達(dá)98%。通過diaplay cpudefend statistics命令查看核心交換機(jī)上各種報文的Pass和Drop統(tǒng)計情況,發(fā)現(xiàn)ARP-Miss報文和ARP request報文Pass和Drop統(tǒng)計都很大,其中ARP-Miss報文的Drop列計數(shù)非常大,比Pass大很多,并以每秒10 000左右增長。
圖2 告警信息圖
ARP-Miss報文是設(shè)備在轉(zhuǎn)發(fā)時因匹配不到對應(yīng)的ARP表項而上報的消息,即設(shè)備路由表中存在該IP報文的目的IP對應(yīng)的路由表項,但沒有該路由表項中下一跳對應(yīng)的ARP表項時,將生成ARP-Miss報文。ARP-Miss報文會被送到CPU進(jìn)行處理,消耗CPU資源。
使用display current命令查看核心交換機(jī)狀態(tài),發(fā)現(xiàn)未部署ARP防護(hù)策略,ARP-Miss消息限速和CPCAR的速率都是默認(rèn)值。
至此,故障可定位于ARP攻擊導(dǎo)致的網(wǎng)絡(luò)故障。
ARP-Miss報文Drop增長率過大原因可能有兩個:
1.可能存在環(huán)路
通常情況下,ARP報文的交互是有序進(jìn)行的,短時間內(nèi)不會出現(xiàn)大量ARP報文的丟棄。當(dāng)核心交換機(jī)作為匯聚網(wǎng)關(guān)時,ARP-Miss報文Drop增長率過大可能是ARP廣播報文在網(wǎng)絡(luò)物理環(huán)路中進(jìn)行轉(zhuǎn)發(fā),形成ARP廣播風(fēng)暴沖擊核心交換機(jī),被交換機(jī)丟棄。
圖3 數(shù)據(jù)包抓包分析
單位辦公網(wǎng)所有交換機(jī)STP使能已經(jīng)打開,使用diaplay stp brief查看所有端口forwarding正常,且使用display mac-address falpping record查看未存在地址漂移記錄,故排除存在環(huán)路的原因。
2.可能是ARP-Miss攻擊
如果網(wǎng)絡(luò)中有用戶向核心交換機(jī)發(fā)送大量目標(biāo)IP地址不能解析的IP報文,核心交換機(jī)將觸發(fā)大量ARP Miss消息,消耗核心交換機(jī)CPU資源,影響其對正常ARP Miss消息的處理,導(dǎo)致ARP學(xué)習(xí)失敗,直接表現(xiàn)為用戶不能上網(wǎng)。
為驗證是否存在ARPMiss攻擊,在核心交換機(jī)上對所有數(shù)據(jù)進(jìn)行抓包分析,發(fā)現(xiàn)許多主機(jī)不斷掃描本網(wǎng)段主機(jī),發(fā)送大量目標(biāo)IP地址不能解析的IP報文,導(dǎo)致核心交換機(jī)觸發(fā)大量ARP-Miss消息,如圖4所示。同時通過抓包統(tǒng)計發(fā)現(xiàn)此行為基本15 min發(fā)生一次,一臺主機(jī)一次發(fā)送約600個ARP報文,且此類主機(jī)大面積出現(xiàn),通過排查發(fā)現(xiàn)這些主機(jī)均沒有安裝掃描地址軟件,故判斷此次網(wǎng)絡(luò)故障是由病毒發(fā)起的ARP-Miss攻擊。
1.在核心交換機(jī)上部署ARP防護(hù)策略,主要包括ARP報文限速、ARP-Miss消息限速及ARP表項嚴(yán)格學(xué)習(xí)等,以免造成核心交換機(jī)CPU負(fù)荷過重。
2.客戶端主機(jī)安裝殺毒軟件,及時更新病毒庫,同時打上安全補(bǔ)丁。