任皓
(解放軍總醫(yī)院計算機室,北京100853)
目前,網(wǎng)絡(luò)已經(jīng)得到了廣泛的應(yīng)用,為人民日常生活提供了諸多便利,比如視頻聊天、購物、閱讀新聞、資源共享等,但是網(wǎng)絡(luò)自身也存在著不足。近年來,一些不法分子通過網(wǎng)絡(luò)竊取公民和企業(yè)私密信息,給人們的日常生活和工作帶來威脅。其中,ARP欺騙[1-3]是黑客竊取信息的一種有效手段,它可以截獲網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包,從中分析出帳號、口令等敏感信息[4],還可以進一步分析通信內(nèi)容,便于對通信內(nèi)容實施篡改和重放,即使信息加密,黑客也可以嘗試密碼破譯[5-6],所以ARP欺騙是實施網(wǎng)絡(luò)攻擊的重要手段。同時,它的隱蔽性極高,不會影響用戶的正常通信,不易被用戶察覺,所以要想發(fā)現(xiàn)網(wǎng)絡(luò)中的ARP欺騙行為,需要采用網(wǎng)絡(luò)分析技術(shù),對網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包進行詳細的監(jiān)控和分析,鎖定可疑主機,并結(jié)合多種網(wǎng)絡(luò)檢測方法,正確識別出ARP欺騙行為。
ARP協(xié)議是Address Resolution Protocol地址解析協(xié)議的縮寫,數(shù)據(jù)在局域網(wǎng)中以幀的方式進行傳輸,根據(jù)幀中目標(biāo)主機的MAC(Medium Access Control)地址來尋址[7]。該協(xié)議具有高效的優(yōu)點,但是缺乏驗證機制,當(dāng)主機接收到ARP數(shù)據(jù)包時,不會進行任何認(rèn)證就刷新自己的ARP高速緩存[8-9]。利用這一點可以實現(xiàn)ARP欺騙,造成ARP緩存中毒[10],將錯誤的IP地址和MAC地址的映射信息記錄在自己的ARP高速緩存中。
ARP欺騙有兩種實現(xiàn)方法。一種實現(xiàn)方法是利用ARP請求[11-12]。黑客主機可以發(fā)送ARP請求,在ARP請求的源IP地址和源MAC地址字段填充虛假的信息。圖1是利用ARP請求實施ARP欺騙的一個示例。主機A的IP地址為209.0.0.5,MAC地址為00-00-C0-15-AD-18。為了實施ARP欺騙,它采用發(fā)送ARP請求的方法,源IP地址被填充為209.0.0.7,即主機Z的IP地址。當(dāng)主機A廣播欺騙性的ARP請求時,網(wǎng)絡(luò)中的主機都會相應(yīng)更新自己的ARP高速緩存,把IP地址209.0.0.7與MAC地址00-00-C0-15-AD-18聯(lián)系在一起。此后這些主機需要向主機Z的IP地址發(fā)送數(shù)據(jù)包時,將依據(jù)ARP高速緩存中的錯誤信息向主機A發(fā)送數(shù)據(jù)包。由于ARP請求以廣播的形式發(fā)送,一個包含欺騙性信息的ARP請求將刷新網(wǎng)絡(luò)中所有主機的ARP高速緩存,影響面大。這是一種優(yōu)勢也是一種缺陷,缺陷主要在于欺騙行為過于明顯,容易被發(fā)現(xiàn)。此外,在圖1所示的示例中,當(dāng)主機A發(fā)送ARP請求時,身份被偽造的主機Z將彈出IP地址沖突的對話框,因為它發(fā)現(xiàn)一臺主機使用的IP地址與自己相同。身份被偽造的主機可以通告網(wǎng)絡(luò)管理員進行排查,發(fā)現(xiàn)實施ARP欺騙的主機。
圖1 利用ARP請求實施ARP欺騙
實施ARP欺騙的另外一種方法是利用ARP響應(yīng)。一臺主機發(fā)送ARP請求以后,如果有其他主機發(fā)送欺騙性的ARP響應(yīng),發(fā)送請求的主機不會進行甄別,會認(rèn)為ARP響應(yīng)的內(nèi)容真實并刷新自己的ARP高速緩存。圖2是利用ARP響應(yīng)實施ARP欺騙的一個示例。主機A發(fā)送ARP請求,希望獲得IP地址為209.0.0.6的主機的MAC地址。主機Z發(fā)出欺騙性的ARP響應(yīng),聲稱與209.0.0.6對應(yīng)的MAC地址是自己的MAC地址08-00-2B-00-EE-0C。主機A在收到響應(yīng)后會將主機Z提供的欺騙性信息記錄下來。
圖2 利用ARP響應(yīng)實施ARP欺騙
利用ARP響應(yīng)實施欺騙,主機不會檢查自己是否發(fā)送過ARP請求,所有的ARP應(yīng)答都會接收下來。這給黑客利用ARP響應(yīng)實施欺騙提供了極大便利。采用ARP響應(yīng)進行欺騙,針對性強,只有黑客希望欺騙的目的主機會刷新ARP高速緩存,其他主機不受干擾。此外,身份被偽造的主機上也不會有告警信息出現(xiàn)。因此,ARP欺騙是實施網(wǎng)絡(luò)監(jiān)聽的有效手段。ARP病毒程序就是采用ARP欺騙實施中間人攻擊來監(jiān)聽兩臺主機間的通信數(shù)據(jù)[13-14]。舉例來看,在圖3中,主機Z希望監(jiān)聽主機A與主機B之間的數(shù)據(jù)通信。為了達成此目的,主機Z向主機A發(fā)送欺騙性的ARP報文,使得在主機A的ARP高速緩存將主機B的IP地址209.0.0.6與主機Z的MAC地址08-00-2B-00-EE-0C綁定。同時,主機Z向主機B發(fā)送欺騙性的ARP報文,使得在主機B的ARP高速緩存將主機A的IP地址209.0.0.5與主機Z的MAC地址08-00-2B-00-EE-0C綁定。在這種情況下,當(dāng)主機A需要向主機B發(fā)送數(shù)據(jù)幀時,目的MAC地址中將填入主機Z的MAC地址,即主機Z能夠收到主機A發(fā)向主機B的數(shù)據(jù)。相應(yīng)的,主機B向主機A發(fā)送數(shù)據(jù)幀時,真正的接收者也是主機Z。主機Z在主機A和主機B之間再進行數(shù)據(jù)的轉(zhuǎn)發(fā),即可以確保監(jiān)聽兩臺主機的所有通信數(shù)據(jù),同時不會干擾主機A和主機B的相互通信。
在一個局域網(wǎng)中,使用Cain工具[15]仿真利用ARP欺騙攻擊來監(jiān)聽兩臺主機之間的通信。主機A和主機B使用飛秋進行通信,主機C使用Cain工具對主機A和B進行ARP欺騙攻擊。其中,局域網(wǎng)的網(wǎng)段范圍為10.65.19.1到10.65.19.254,主機A的IP地址為10.65.19.1,主機B的IP地址為10.65.19.96。
在主機C中安裝好Cain工具后,對主機所在的局域網(wǎng)進行掃描和嗅探,嗅探一段時間后,可以在界面上看到局域網(wǎng)上主機的列表,列表中顯示了主機的IP地址和所對應(yīng)的MAC地址。如果嗅探到希望監(jiān)聽的兩臺主機,Cain就開始對主機A和B進行ARP欺騙攻擊,并進行監(jiān)聽,界面中將顯示監(jiān)聽到的主機A和B之間發(fā)送消息的數(shù)量,如圖3所示。
圖3 開始ARP欺騙攻擊
采用數(shù)據(jù)包分析技術(shù),使用Wireshark軟件[16]捕獲數(shù)據(jù)包,對主機C實時監(jiān)聽,在主機C上啟動Wireshark,捕獲主機C分別發(fā)送給主機A和主機B的ARP請求,如圖4所示。通過上述分析,可以知道Cain利用了ARP請求進行ARP欺騙攻擊。Cain在攻擊時,通過ARP請求詢問“who has 10.65.19.1”,同時ARP請求中“Sender IP address”字段填入主機B的IP地址 10.65.19.96,而“Sender MAC address”字段填入的卻是主機C的MAC地址。主機A在收到該ARP請求后,將根據(jù)這兩個字段更新自己的ARP高速緩存,把主機B的IP地址與主機C的MAC地址聯(lián)系在一起,此后主機A需要向主機B發(fā)送數(shù)據(jù)包時,將依據(jù)ARP高速緩存中的錯誤信息向主機C發(fā)送數(shù)據(jù)包;同理,主機C在通過ARP請求詢問“who has 10.65.19.96”時,主機B也將更改自己的ARP高速緩存。
圖4 捕獲的ARP請求
當(dāng)主機A和B之間使用飛秋通信時,原本是A發(fā)送給B的數(shù)據(jù)包,發(fā)送給了主機C,原本是B發(fā)送給A的數(shù)據(jù)包,也發(fā)送給了主機C,使用Cain可以發(fā)現(xiàn)Wireshark捕獲了它們之間的通信數(shù)據(jù)包,如圖5所示。而A、B之間使用飛秋能夠正常通信,說明Cain在監(jiān)聽到數(shù)據(jù)包的同時,又將數(shù)據(jù)包重新發(fā)回給原來的接收方,不會影響雙方的通信。通過分析可知,ARP欺騙行為十分隱蔽,被監(jiān)聽雙方的通信不會受到影響,所以幾乎無法感知,但是通過捕獲的數(shù)據(jù)包,可以看出實施ARP欺騙的主機會在短時間內(nèi)發(fā)送大量的ARP請求或者ARP響應(yīng)數(shù)據(jù)幀,這種現(xiàn)象可以幫助網(wǎng)絡(luò)管理員發(fā)現(xiàn)實施ARP欺騙的可疑主機。同時,結(jié)合以下檢測方法,可以進一步準(zhǔn)確地識別出實施ARP欺騙的主機:一是采用PING主機的方法。網(wǎng)絡(luò)管理員向可疑主機發(fā)送定制的PING數(shù)據(jù)包,目的IP地址是可疑主機的IP地址,目的MAC地址是隨機填入的數(shù)值。如果目的主機的網(wǎng)卡處于正常工作模式,這種數(shù)據(jù)包將會被丟棄,如果目的主機的網(wǎng)卡工作在混雜模式,它將接受數(shù)據(jù)包,主機對這個異常的PING數(shù)據(jù)包進行回應(yīng),那么該主機就是實施ARP欺騙的主機;二是發(fā)送垃圾數(shù)據(jù)包的方法。向網(wǎng)絡(luò)中發(fā)送大量的MAC地址不存在的數(shù)據(jù)包,正常的主機會丟棄這些數(shù)據(jù)包,而網(wǎng)卡處于混雜模式的主機會接收這些數(shù)據(jù)包進行處理,這些數(shù)據(jù)包會占用監(jiān)聽主機大部分CPU資源,導(dǎo)致計算機性能下降。此時,網(wǎng)絡(luò)管理員向可疑主機發(fā)送PING數(shù)據(jù)包,并比較發(fā)送垃圾數(shù)據(jù)包前后可疑主機的響應(yīng)速度是否下降,如果響應(yīng)速度變慢了,可以推斷出該主機正在實施ARP欺騙。
圖5 Wireshark捕獲通信數(shù)據(jù)包
本文先對ARP欺騙的原理和特征進行了詳細的介紹,再采用Cain軟件對ARP欺騙過程進行仿真實驗,實驗表明ARP欺騙行為不影響被監(jiān)聽雙方的通信,隱蔽性強;最后利用Wireshark軟件捕獲攻擊過程中的數(shù)據(jù)包,通過對數(shù)據(jù)包分析可以推測出網(wǎng)絡(luò)中實時ARP欺騙的可疑主機,再結(jié)合PING主機和發(fā)送垃圾數(shù)據(jù)包的檢測方法進一步確認(rèn)實施欺騙的主機?;谏鲜鲅芯?,下一步工作將進一步探討ARP欺騙防御方法,加強局域網(wǎng)的安全防范。
[1]王松濱.ARP攻擊與局域網(wǎng)安全[J].電子技術(shù)與軟件工程,2016(23):218-220.
[2]劉婷,孫陸鵬,孟慶偉.基于ARP欺騙的校園網(wǎng)絡(luò)防御策略研究[J].電腦知識與技術(shù),2016(22):21-23.
[3]王睿.ARP欺騙原理及其防范研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2013(6):24-26.
[4]馬麗君.基于校園網(wǎng)ARP欺騙分析及防御技術(shù)[J].數(shù)字技術(shù)與應(yīng)用,2012(2):216-218.
[5]楊峰.計算機網(wǎng)絡(luò)中的黑客攻擊技術(shù)及其防御技術(shù)研究[J].軟件導(dǎo)刊,2013,12(8):130-132.
[6]丁偉,談程.一種基于密文分析的密碼識別技術(shù)[J].通信技術(shù),2016,49(10):1382-1385.
[7]王松濱.ARP攻擊與局域網(wǎng)安全[J].電子技術(shù)與軟件工程,2016,37(23):219-211.
[8]王紹龍,王劍,馮超.ARP欺騙攻擊的取證和防御方法[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2016(10):27-28.
[9]張小平.基于ARP漏洞與ARP攻擊防范的研究[J].電子技術(shù)與軟件工程,2013(8):249-251.
[10]吳禮發(fā),洪征,李華波.網(wǎng)絡(luò)攻防原理[M].北京:機械工業(yè)出版社,2012.
[11]許力航.關(guān)于計算機網(wǎng)絡(luò)安全中ARP攻擊的探討[J].無線互聯(lián)科技,2015(1):16-17.
[12]黃學(xué)毛.論局域網(wǎng)中ARP攻擊及防范措施[J].電腦知識與技術(shù),2016,12(2):30-32.
[13]劉衍斌,王岳斌,陳崗.基于ARP欺騙的中間人攻擊的檢測與防范[J].信息安全,2012,28(8):136-138.
[14]靳燕.ARP攻擊實驗仿真及防范技術(shù)分析[J].操作系統(tǒng)、網(wǎng)絡(luò)體系與服務(wù)器技術(shù),2016(7):29-32.
[15]石春宏.淺議ARP攻擊及其防御[J].網(wǎng)絡(luò)通訊及安全,2016,12(30):26-28.
[16]趙建立,吳聰聰.Wireshark在《計算機網(wǎng)絡(luò)》教學(xué)中的應(yīng)用研究[J].現(xiàn)代計算機,2013(5):29-32.