国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Linux的ARP檢測(cè)與防御系統(tǒng)

2018-06-29 01:58:04陳軍孫義博岳婷
網(wǎng)絡(luò)空間安全 2018年1期

陳軍 孫義博 岳婷

摘 要:ARP協(xié)議,即地址解析協(xié)議,由于協(xié)議存在的漏洞導(dǎo)致ARP欺騙幾乎無(wú)法避免。為探討如何解決這一問(wèn)題,通過(guò)理論研究和實(shí)證,論文從主動(dòng)和被動(dòng)兩個(gè)模塊提出了ARP檢測(cè)與防御的方法。主要思路是利用基于Linux的開(kāi)源路由器系統(tǒng)OpenWRT定制路由器,對(duì)網(wǎng)絡(luò)流量進(jìn)行監(jiān)測(cè),一旦主機(jī)網(wǎng)絡(luò)流量達(dá)到一定閾值時(shí),通過(guò)對(duì)其進(jìn)行檢查來(lái)判斷源主機(jī)是否遭受ARP欺騙,以維護(hù)局域網(wǎng)的安全運(yùn)行。

關(guān)鍵詞:ARP檢測(cè)與防御;主動(dòng)檢測(cè);被動(dòng)檢測(cè)與防御;Netfilter;OpenWRT

中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A

ARP detection and defense system based on Linux

Abstract: ARP, the Address resolution protocol, owing to the loopholes of the protocol, leads to ARP spoofing almost impossible to avoid. In order to explore how to solve this problem, through theoretical research and empirical analysis, this paper puts forward ARP detection and defense methods from two modules of active and passive. The main idea is to use the open source router system customized OpenWRT router based on Linux, monitoring the network traffic.Once the host network traffic reaches a certain threshold,,we will examine and determine whether the host is deceived, to maintain the safe operation of LAN.

Key words: ARP detection and defense; active detection; passive detection and defense; netfilter; openWRT

1 引言

在局域網(wǎng)中,每臺(tái)計(jì)算機(jī)都擁有兩個(gè)地址,即IP地址和MAC地址。實(shí)際應(yīng)用時(shí),若想根據(jù)一臺(tái)機(jī)器(主機(jī)或路由器)的IP地址找出該臺(tái)機(jī)器相應(yīng)的硬件地址(MAC地址),則需要使用地址解析協(xié)議ARP。對(duì)于每臺(tái)裝有TCP/IP協(xié)議的計(jì)算機(jī),均存在一個(gè)ARP緩存表,表里存放著對(duì)應(yīng)的IP地址和MAC地址。同時(shí),計(jì)算機(jī)中的ARP緩存表是動(dòng)態(tài)變化的,會(huì)根據(jù)所收到的ARP應(yīng)答不斷地進(jìn)行更新,以保存最近的IP地址和MAC地址。然而,對(duì)于大多數(shù)操作系統(tǒng),它不會(huì)去判斷自己是否發(fā)送了ARP請(qǐng)求,而會(huì)根據(jù)所有接收到的ARP應(yīng)答對(duì)ARP緩存進(jìn)行更新,這便對(duì)計(jì)算機(jī)造成了潛在的安全威脅。攻擊者利用這一漏洞,并偽造IP和MAC進(jìn)行ARP欺騙,對(duì)攻擊目標(biāo)(受害方)實(shí)施惡意攻擊,截獲通信過(guò)程傳輸?shù)男畔?。因此,為了更好地保障網(wǎng)絡(luò)的安全,需要在攻擊者對(duì)源主機(jī)成功實(shí)施ARP欺騙之前,檢測(cè)到ARP欺騙并采取防御措施。

2 ARP欺騙

2.1 ARP欺騙原理

數(shù)據(jù)包在以太網(wǎng)中傳輸,尋址依據(jù)是計(jì)算機(jī)的物理地址(MAC地址)。ARP協(xié)議就是通過(guò)目的主機(jī)的IP地址查詢(xún)其MAC地址,動(dòng)態(tài)生成ARP緩存表,從而使通信順利進(jìn)行。因此,若想要得到目的主機(jī)的MAC地址,首先,需要知道其IP地址。而ARP協(xié)議是一種無(wú)狀態(tài)協(xié)議,源主機(jī)收到ARP應(yīng)答包之后,不會(huì)主動(dòng)驗(yàn)證它的真實(shí)性,而是直接將其中的MAC地址更新到ARP緩存表中。因此,攻擊者可以通過(guò)發(fā)送大量的ARP欺騙報(bào)文來(lái)淹沒(méi)正常的ARP報(bào)文,使得源主機(jī)在接收ARP應(yīng)答包后,將欺騙報(bào)文中的MAC地址更新到源主機(jī)ARP緩存表中,以達(dá)到后續(xù)實(shí)現(xiàn)ARP欺騙的目的。

2.2 ARP欺騙實(shí)現(xiàn)

假設(shè)主機(jī)C已經(jīng)知道主機(jī)B的IP地址,則主機(jī)C可通過(guò)偽造成主機(jī)B的IP對(duì)主機(jī)A發(fā)起ARP欺騙。假設(shè)當(dāng)前情況下,主機(jī)A的ARP緩存記錄中沒(méi)有主機(jī)B的記錄,則主機(jī)A將在局域網(wǎng)中廣播包含主機(jī)B IP的ARP請(qǐng)求,此時(shí)事先將自己的IP偽造成主機(jī)B的IP的主機(jī)C也能接收到ARP請(qǐng)求包,并對(duì)主機(jī)A做出應(yīng)答,主機(jī)A在接收到來(lái)自于主機(jī)C的ARP響應(yīng)報(bào)文時(shí),不會(huì)對(duì)該報(bào)文的正確性進(jìn)行核實(shí),而會(huì)直接將ARP應(yīng)答包里的MAC地址更新到自己的ARP緩存表中。此后,主機(jī)C便可監(jiān)聽(tīng)主機(jī)A和主機(jī)B之間的通信,甚至阻斷主機(jī)A和主機(jī)B之間的通信。

3 ARP檢測(cè)與防御

按照檢測(cè)ARP欺騙的方式,將檢測(cè)系統(tǒng)分為兩個(gè)模塊,即主動(dòng)模塊和被動(dòng)模塊。

3.1 ARP檢測(cè)

3.1.1 主動(dòng)檢測(cè)

程序從計(jì)算機(jī)中將ARP項(xiàng)導(dǎo)入內(nèi)存,根據(jù)ARP項(xiàng)中的IP地址向局域網(wǎng)發(fā)送ARP 請(qǐng)求包,然后通過(guò)Windump、Snifferpro等抓包軟件,抓取 ARP 的Reply包,通過(guò)分析ARP應(yīng)答包里的信息行來(lái)判斷源主機(jī)是否遭受ARP欺騙。如果最后的MAC地址并非網(wǎng)關(guān)的真實(shí)MAC地址,則說(shuō)明存在ARP欺騙,而且進(jìn)行ARP欺騙的主機(jī)的MAC地址即為ARP應(yīng)答包里的MAC地址。這種主動(dòng)檢測(cè)源主機(jī)是否遭受ARP欺騙的方法簡(jiǎn)單有效,但必須在局域網(wǎng)內(nèi)部聽(tīng)包,而且人的工作量也較大。

3.1.2 被動(dòng)檢測(cè)

斷網(wǎng)時(shí),刪除主機(jī)已經(jīng)存儲(chǔ)的ARP緩存,減少主機(jī)遭受ARP攻擊的概率。程序在計(jì)算機(jī)聯(lián)網(wǎng)的瞬間獲取新的網(wǎng)關(guān)IP地址和MAC地址映射對(duì),將其存儲(chǔ)在文件中并且對(duì)其進(jìn)行加密,之后不停地抓取來(lái)自網(wǎng)絡(luò)的ARP請(qǐng)求包。

對(duì)于主機(jī)端,一定時(shí)間內(nèi),若出現(xiàn)包含同一源IP地址或者同一源MAC地址的ARP請(qǐng)求包超過(guò)某一特定閾值或者出現(xiàn)大量包含不同IP和MAC的ARP請(qǐng)求包的情況,則系統(tǒng)將發(fā)出警示,觸發(fā)內(nèi)核層過(guò)濾驅(qū)動(dòng),對(duì)ARP請(qǐng)求包實(shí)施攔截;若發(fā)現(xiàn)與網(wǎng)關(guān)的IP地址相同但是MAC地址不同,則使用存儲(chǔ)在文件中的ARP項(xiàng)對(duì)被污染的ARP項(xiàng)進(jìn)行覆蓋,保證ARP項(xiàng)的正確性。

對(duì)于路由器端,通過(guò)對(duì)ARP請(qǐng)求包的流量監(jiān)測(cè)來(lái)判斷源主機(jī)是否遭受ARP欺騙。若來(lái)自同一IP地址或MAC地址的ARP請(qǐng)求包或者應(yīng)答包,以及去往同一IP地址或MAC地址的ARP請(qǐng)求包或者應(yīng)答包的數(shù)量劇增,則意味著可能存在ARP欺騙。

3.2 ARP防御

3.2.1主動(dòng)防御

最常見(jiàn)的方法是對(duì)IP和MAC做靜態(tài)綁定。

在源主機(jī)的ARP中設(shè)置靜態(tài)地址映射記錄,這個(gè)記錄是永不過(guò)期的,因此源主機(jī)在向目的主機(jī)發(fā)送數(shù)據(jù)前不再需要通過(guò)廣播ARP請(qǐng)求,可直接通過(guò)查詢(xún)ARP靜態(tài)記錄來(lái)獲得目的主機(jī)的MAC 地址。若此時(shí)攻擊者仍用偽造的MAC地址對(duì)源主機(jī)做出應(yīng)答,源主機(jī)將不會(huì)更新ARP 緩存的靜態(tài)記錄。顯然,靜態(tài)綁定的方法存在局限性,這種方法要求目的主機(jī)的IP地址永遠(yuǎn)不變,這對(duì)絕大多數(shù)計(jì)算機(jī)來(lái)說(shuō)是無(wú)法實(shí)現(xiàn)的。一旦IP地址出現(xiàn)變動(dòng),就需要及時(shí)更新,工作量大而且繁瑣,這對(duì)很多人來(lái)說(shuō)都是一件不可行的事情。

3.2.2 主機(jī)端的被動(dòng)防御

主機(jī)端的被動(dòng)防御依靠使用Netfilter鉤子函數(shù)進(jìn)行實(shí)現(xiàn)驅(qū)動(dòng)過(guò)濾。

Netfilter所提供的Hook函數(shù)管理機(jī)制,可以實(shí)現(xiàn)數(shù)據(jù)包過(guò)濾和基于協(xié)議類(lèi)型的連接跟蹤等功能。在ARP的處理過(guò)程中有三個(gè)hook,分別是NF_ARP_IN,NF_ARP_OUT,NF_ARP_FORWARD。這三個(gè)Hook允許用戶(hù)注冊(cè)鉤子函數(shù),然后實(shí)現(xiàn)自己的功能。若要過(guò)濾或者攔截ARP數(shù)據(jù)包,必須要從arp_rcv函數(shù)進(jìn)入,才會(huì)走這三個(gè)Hook的鉤子函數(shù)。

當(dāng)收到應(yīng)用層傳來(lái)的通知時(shí),用所注冊(cè)的鉤子函數(shù)對(duì)ARP包進(jìn)行判斷,并與規(guī)則比對(duì)后,接收符合規(guī)則的ARP包,其余的一律丟棄,從而完成包的過(guò)濾。

3.2.3 路由器端的被動(dòng)防御

OpenWRT是Linux的嵌入式發(fā)行版本。OpenWRT支持多種處理器架構(gòu),且有多達(dá)3000多種軟件包,從工具鏈(Toolchain),到內(nèi)核(Linux Kernel),到軟件包(Packages),再到根文件系統(tǒng)(Rootfs)。一個(gè)簡(jiǎn)單的make命令就可以方便、快速地定制出一個(gè)具有特定功能的嵌入式系統(tǒng),用于制作固件,極其方便。

無(wú)線路由器是無(wú)線局域網(wǎng)的中樞,所以無(wú)線路由器必須在系統(tǒng)的控制范圍之下,只有這樣系統(tǒng)的安全才能保證。無(wú)線路由器承擔(dān)著給局域網(wǎng)中主機(jī)分配IP的職能,相當(dāng)于DHCP服務(wù)器,自然會(huì)有局域網(wǎng)中每一臺(tái)主機(jī)的IP、MAC地址映射,因此,可以據(jù)此過(guò)濾ARP包。由于頻繁檢測(cè)會(huì)降低轉(zhuǎn)發(fā)效率,所以應(yīng)該在主機(jī)網(wǎng)絡(luò)流量達(dá)到一定閾值時(shí),對(duì)其進(jìn)行檢測(cè)。

(1)針對(duì)同一IP或同一MAC地址,是否大多數(shù)數(shù)據(jù)包都是ARP請(qǐng)求包或者應(yīng)答包。若是,拒絕轉(zhuǎn)發(fā)數(shù)據(jù)包。

(2)ARP請(qǐng)求包的源ARP項(xiàng)是否與其在路由器中留下的信息相同。若不同,將其丟棄。

在此基礎(chǔ)上,可以基于OpenWRT定制過(guò)濾ARP包的功能模塊。將過(guò)濾函數(shù)及過(guò)濾規(guī)則編寫(xiě)進(jìn)入OpenWRT的內(nèi)核文件,編譯之后將其移植到路由器上。

4 算法實(shí)現(xiàn)

目前,系統(tǒng)已經(jīng)實(shí)現(xiàn)了主動(dòng)檢測(cè)模塊。被動(dòng)檢測(cè)和被動(dòng)防御模塊的結(jié)構(gòu)已經(jīng)明確,正在著手解決。其中主動(dòng)檢測(cè)部分使用Libpcap庫(kù),進(jìn)行網(wǎng)絡(luò)流量分析。主機(jī)端被動(dòng)檢測(cè)模塊則寫(xiě)成守護(hù)進(jìn)程的形式,從計(jì)算機(jī)一開(kāi)機(jī),就開(kāi)始運(yùn)行(同時(shí)由于只抓ARP包,所以平時(shí)根本不會(huì)擔(dān)心占用系統(tǒng)太多資源),不用耗用人力資源,減少成本。被動(dòng)防御由主機(jī)端和路由器端的雙重防御組成,主機(jī)端被動(dòng)防御使用Netfilter框架,使得代碼量減小,同時(shí)更加貼合系統(tǒng)底層,路由器端被動(dòng)防御模塊是基于OpenWRT的開(kāi)發(fā)的,這使得對(duì)路由器硬件本身的要求并不嚴(yán)格,減少了系統(tǒng)的布置成本,也是模塊定制更加自由。

為了更清晰地現(xiàn)實(shí)系統(tǒng)對(duì)規(guī)則的使用邏輯,給出如下偽代碼:

//主機(jī)網(wǎng)絡(luò)流量被動(dòng)檢測(cè)和防御模塊

ger_gateway(); //獲取網(wǎng)關(guān)ip、mac地址映射并進(jìn)行存儲(chǔ)

capture_packet(); //開(kāi)啟抓包線程,抓包并存儲(chǔ)check();

//開(kāi)啟檢測(cè)線程,檢查所抓包

//的存儲(chǔ)若有過(guò)期的,進(jìn)行清理

//若發(fā)現(xiàn)網(wǎng)絡(luò)異常,則報(bào)警,

//通知內(nèi)核層進(jìn)行過(guò)濾,并且使用

//getgateway()獲得的ip、mac

//地址映射與arp緩存進(jìn)行比對(duì),

//若出現(xiàn)差異,使用其進(jìn)行覆蓋

//路由器網(wǎng)絡(luò)流量被動(dòng)檢測(cè)模塊

if(size_measure_max() == true) //流量檢測(cè),如果流量較大,則檢測(cè)是

filter() //否符合過(guò)濾規(guī)則,若符合,則對(duì)其ARP包進(jìn)行過(guò)濾。

5 結(jié)束語(yǔ)

本文通過(guò)對(duì)ARP包的定性分析和定量分析,檢測(cè)局域網(wǎng)中是否存在ARP欺騙,并提出了相應(yīng)的防御方案。一方面,以主機(jī)端和網(wǎng)絡(luò)轉(zhuǎn)發(fā)端結(jié)合的方式對(duì)ARP包進(jìn)行過(guò)濾,減輕了主機(jī)端單獨(dú)過(guò)濾ARP包的壓力。另一方面,以路由器為出發(fā)點(diǎn),基于OpenWRT定制過(guò)濾ARP包的功能模塊,當(dāng)攻擊者以洪泛的方式進(jìn)行ARP攻擊時(shí),路由器將拒絕對(duì)擁有相同源ARP項(xiàng)、相同目的ARP項(xiàng)或者相同目的IP地址的絕大多數(shù)數(shù)據(jù)包的轉(zhuǎn)發(fā)。

互聯(lián)網(wǎng)在滿(mǎn)足人們信息需求的同時(shí),也引起了很多網(wǎng)絡(luò)安全上的問(wèn)題。一些組織或者個(gè)人出于某種特殊目的,故意侵犯他人的隱私甚至國(guó)家機(jī)密,對(duì)網(wǎng)絡(luò)空間進(jìn)行惡意攻擊和破壞。因此,需要不斷地去研究更好的防御手段,來(lái)維護(hù)網(wǎng)絡(luò)空間的安全。

參考文獻(xiàn)

[1] 史雋彬,秦科.ARP攻擊現(xiàn)狀分析及一種應(yīng)對(duì)ARP攻擊的方法[J].陜西理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2013,29(02):45-49.

[2] 朱錢(qián)廣.基于深度包過(guò)濾的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].東華大學(xué),2010.

[3] 徐亮,梁華慶.Netfilter防火墻抗ARP攻擊的防御特性設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2009,9(13):3889-3892+3900.

[4] 孫名松,劉鑫,耿姝.基于Linux的ARP防火墻的研究與實(shí)現(xiàn)[J]. 自動(dòng)化技術(shù)與應(yīng)用,2008,(12):63-66.

[5] 林宏剛,陳麟,王標(biāo),吳彥偉.一種主動(dòng)檢測(cè)和防范ARP攻擊的算法研究[J].四川大學(xué)學(xué)報(bào)(工程科學(xué)版),2008,(03):143-149.

[6] 王燕,張新剛.基于ARP協(xié)議的攻擊及其防御方法分析[J].微計(jì)算機(jī)信息,2007,(36):72-74.

[7] 邱浩.帶入侵檢測(cè)的Linux個(gè)人防火墻的研究與實(shí)現(xiàn)[D].貴州大學(xué),2006.

[8] 方山. 網(wǎng)絡(luò)防火墻狀態(tài)檢測(cè)技術(shù)的研究與實(shí)現(xiàn)[D].暨南大學(xué),2003.

[9] 邢金閣,劉揚(yáng). ARP欺騙攻擊的檢測(cè)及防御技術(shù)研究[J].東北農(nóng)業(yè)大學(xué)學(xué)報(bào),2012,43(08):74-77.

[10] 李筱楠,劉洋,李德雄.ARP攻擊防御與檢測(cè)[J].石家莊鐵路職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008,(01):56-59.

[11] 鄧婉婷.校園網(wǎng)ARP攻擊檢測(cè)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[D].電子科技大學(xué),2011.

[12] 李啟南.基于FARIMA的ARP欺騙入侵檢測(cè)[J].計(jì)算機(jī)工程,2011,37(02):139-140+142.

[13]陸炯.一種OpenWrt物聯(lián)網(wǎng)家庭網(wǎng)關(guān)服務(wù)質(zhì)量的研究與設(shè)計(jì)[D].西安電子科技大學(xué),2014.

天津市| 尚志市| 汽车| 噶尔县| 阿荣旗| 临朐县| 双城市| 海伦市| 平乐县| 潍坊市| 彰武县| 包头市| 万州区| 陵水| 淅川县| 阿合奇县| 遂宁市| 吴堡县| 东乌珠穆沁旗| 获嘉县| 海丰县| 靖西县| 潞西市| 马尔康县| 亚东县| 嘉祥县| 邢台县| 天全县| 新民市| 林芝县| 湖南省| 商都县| 通许县| 张北县| 铜梁县| 育儿| 大埔县| 社会| 彭阳县| 奇台县| 五大连池市|