張 帥,白 偉
(太原廣播電視大學(xué),山西 太原 030002)
網(wǎng)絡(luò)監(jiān)聽檢測與防范技術(shù)研究
張 帥,白 偉
(太原廣播電視大學(xué),山西 太原 030002)
網(wǎng)絡(luò)監(jiān)聽在網(wǎng)絡(luò)安全中扮演著雙重的作用,一方面可以協(xié)助網(wǎng)絡(luò)管理員監(jiān)測網(wǎng)絡(luò)數(shù)據(jù)、排除網(wǎng)絡(luò)故障、優(yōu)化網(wǎng)絡(luò)服務(wù),另一方面也常被黑客利用進(jìn)行網(wǎng)絡(luò)監(jiān)聽與竊取數(shù)據(jù),對用戶信息的泄密構(gòu)成了極大的威脅。論文首先分析了共享式和交換式網(wǎng)絡(luò)的特點(diǎn),研究了基于兩種網(wǎng)絡(luò)的監(jiān)聽原理,并在此基礎(chǔ)上提出了針對惡意網(wǎng)絡(luò)監(jiān)聽行為的檢測方法,最終給出了網(wǎng)絡(luò)監(jiān)聽的安全防范措施。
網(wǎng)絡(luò)監(jiān)聽;網(wǎng)絡(luò)安全;混雜模式;檢測;防范
隨著計算機(jī)網(wǎng)絡(luò)與通信技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)已經(jīng)成為我們工作、生活中不可或缺的重要組成部分。當(dāng)Internet網(wǎng)絡(luò)給我們帶來社會與經(jīng)濟(jì)利益的同時,也受到了網(wǎng)絡(luò)黑客的攻擊。在眾多網(wǎng)絡(luò)安全問題中,網(wǎng)絡(luò)監(jiān)聽給人們的網(wǎng)絡(luò)信息與數(shù)據(jù)的交互帶來了極大的安全隱患。為了更好地管理網(wǎng)絡(luò)且保證網(wǎng)絡(luò)數(shù)據(jù)的安全性與保密性,對網(wǎng)絡(luò)監(jiān)聽行為的檢測與防范將顯得十分重要。
網(wǎng)絡(luò)監(jiān)聽是指利用計算機(jī)網(wǎng)絡(luò)接口監(jiān)聽、捕獲目的地為其他計算機(jī)的數(shù)據(jù)報文,并對數(shù)據(jù)的信息進(jìn)行一定的解析。網(wǎng)絡(luò)監(jiān)聽猶如一把雙刃劍:一方面,它可以協(xié)助網(wǎng)絡(luò)管理員監(jiān)測網(wǎng)絡(luò)傳輸中的異常數(shù)據(jù),并在排除網(wǎng)絡(luò)故障等方面發(fā)揮著積極的作用。另一方面,網(wǎng)絡(luò)監(jiān)聽也是黑客收集有效信息、數(shù)據(jù)等的重要手段,黑客在網(wǎng)絡(luò)入侵得手后往往會進(jìn)行網(wǎng)絡(luò)監(jiān)聽,從而造成以太網(wǎng)內(nèi)口令失竊、敏感數(shù)據(jù)等被截獲。
1.共享網(wǎng)絡(luò)的監(jiān)聽原理
共享式以太網(wǎng)采用載波監(jiān)聽多路訪問與沖突檢測的(簡稱CSMA/CD)機(jī)制來進(jìn)行傳輸控制。它的工作原理是:發(fā)送數(shù)據(jù)前先監(jiān)聽信道是否空閑,若空閑則裝配數(shù)據(jù)幀開始傳輸數(shù)據(jù),在傳輸數(shù)據(jù)的過程中邊發(fā)送邊繼續(xù)監(jiān)聽網(wǎng)絡(luò),當(dāng)檢測到?jīng)_突時,則廣播一個擁塞信號,并停止發(fā)送數(shù)據(jù),當(dāng)?shù)却粋€隨機(jī)時間之后,再重新嘗試。共享式局域網(wǎng)采用的是廣播信道,每一臺主機(jī)都共享一條網(wǎng)絡(luò)總線,在正常的工作模式下,局域網(wǎng)內(nèi)每一臺主機(jī)的網(wǎng)卡會根據(jù)數(shù)據(jù)包中的目的MAC地址決定是否接收該廣播數(shù)據(jù),當(dāng)經(jīng)過判斷是發(fā)送給自己的數(shù)據(jù)包時,則產(chǎn)生中斷信號通知CPU,再由操作系統(tǒng)根據(jù)設(shè)置的中斷程序地址調(diào)用相應(yīng)程序接收數(shù)據(jù),否則通常會選擇丟棄該數(shù)據(jù)包。
因此,網(wǎng)絡(luò)監(jiān)聽的實(shí)現(xiàn)就要改變常規(guī)的網(wǎng)卡工作模式。網(wǎng)卡有四種工作模式:①廣播模式:能夠接收網(wǎng)絡(luò)中的廣播信息。②組播模式:能夠接收組播數(shù)據(jù)。③直接模式:只有目的網(wǎng)卡才能接收該數(shù)據(jù)。④混雜模式:網(wǎng)卡能夠接收一切通過它的數(shù)據(jù),而不管該數(shù)據(jù)是否是發(fā)送給自己。進(jìn)行網(wǎng)絡(luò)監(jiān)聽的主機(jī)往往工作在混雜模式下(Promiscuous model),因而可以接收到網(wǎng)絡(luò)中所有的數(shù)據(jù)包,并通過相應(yīng)的軟件對數(shù)據(jù)包中的信息做進(jìn)一步的分析。而且由于現(xiàn)在網(wǎng)絡(luò)中使用的大部分協(xié)議都是早期設(shè)計的,許多協(xié)議的實(shí)現(xiàn)都是基于一種非常友好、通信的雙方充分信任的基礎(chǔ)之上,因此許多信息都以明文的形式發(fā)送。如果用戶的賬戶名和口令等信息也以明文的方式在網(wǎng)上傳輸,而此時一個黑客或網(wǎng)絡(luò)攻擊者正在進(jìn)行網(wǎng)絡(luò)監(jiān)聽,那么就能輕易地從監(jiān)聽到的信息中提取出敏感信息。
2.交換網(wǎng)絡(luò)的監(jiān)聽原理
交換式以太網(wǎng)的核心組成部分是以太網(wǎng)交換機(jī),工作在數(shù)據(jù)鏈路層,可以識別數(shù)據(jù)包中的MAC地址,并根據(jù)MAC地址進(jìn)行轉(zhuǎn)發(fā),然后將這些MAC地址與對應(yīng)的端口記錄在自己內(nèi)部的一個地址表中。具體的工作原理如下:
(1)當(dāng)交換機(jī)從某個端口收到一個數(shù)據(jù)包時,先讀取數(shù)據(jù)包中的源MAC地址,并記錄源MAC地址與端口的對應(yīng)關(guān)系。
(2)再讀取數(shù)據(jù)包中的目的MAC地址,并在地址表中查找相應(yīng)的端口,如表中有與目的MAC地址對應(yīng)的端口映射記錄,將數(shù)據(jù)包直接發(fā)送到該端口。
(3)如表中找不到相應(yīng)的映射記錄,則需要將數(shù)據(jù)包廣播到所有端口上,當(dāng)目的主機(jī)收到該請求時產(chǎn)生回應(yīng),交換機(jī)便將MAC地址與端口的對應(yīng)關(guān)系記錄在自己的映射表中。
網(wǎng)絡(luò)監(jiān)聽在交換式局域網(wǎng)內(nèi)部不能僅僅靠設(shè)置網(wǎng)卡為混雜模式來實(shí)現(xiàn),因?yàn)槊恳慌_主機(jī)都是通過交換機(jī)的端口進(jìn)行連接,而不是直接進(jìn)行數(shù)據(jù)的廣播,但是在交換式網(wǎng)絡(luò)中依然可以實(shí)現(xiàn)網(wǎng)絡(luò)的監(jiān)聽。常用的網(wǎng)絡(luò)監(jiān)聽方法概括起來有以下三種:MAC泛洪(MAC Flooding)、MAC復(fù)制(MACDuplicating)和ARP欺騙。
(1)MAC泛洪
MAC泛洪發(fā)生在OSI模型的第二層,攻擊者在局域網(wǎng)內(nèi)大量地隨機(jī)發(fā)送假冒的源MAC地址和目的MAC地址,將數(shù)據(jù)幀發(fā)送到以太網(wǎng)上,導(dǎo)致交換機(jī)的可尋址存儲器(CAM)溢出,使交換機(jī)失去轉(zhuǎn)發(fā)功能。此時一些交換機(jī)便開始向所有連在它上面的鏈路發(fā)送數(shù)據(jù)。原因很簡單,因?yàn)榻粨Q機(jī)是負(fù)責(zé)建立兩個節(jié)點(diǎn)間的“虛電路”,因此就必須維護(hù)一個交換機(jī)端口與MAC地址的映射表,這個映射表是放在交換機(jī)內(nèi)存中的,但由于內(nèi)存數(shù)量的有限,地址映射表可以存儲的映射記錄也有限。如果惡意攻擊者向交換機(jī)發(fā)送大量的虛假的MAC地址數(shù)據(jù),這些交換機(jī)就會像一臺普通的HUB那樣只是簡單地向所有端口廣播數(shù)據(jù),這個時候,將網(wǎng)絡(luò)中任意一臺主機(jī)的網(wǎng)卡設(shè)置為混雜模式,監(jiān)聽者就可以達(dá)到監(jiān)聽的目的。
(2)MAC復(fù)制
MAC復(fù)制通常用于對交換機(jī)的欺騙。實(shí)際上就是修改本地的MAC地址,使其與欲監(jiān)聽主機(jī)的MAC地址相同,這樣交換機(jī)就會發(fā)現(xiàn)有兩個端口對應(yīng)相同的MAC地址,于是就把發(fā)送到該MAC地址的數(shù)據(jù)包同時從這個交換機(jī)的兩個端口發(fā)送出去,從而達(dá)到了網(wǎng)絡(luò)監(jiān)聽的目的。大多數(shù)網(wǎng)卡允許重新更改MAC地址,例如某些網(wǎng)卡提供了在WINDOWS控制臺下通過控制面板中的Network Address選項直接修改MAC地址的功能。其次還可以重新燒錄新的MAC地址到網(wǎng)卡的EEPROM(電子式可抹寫內(nèi)存)中,這將永遠(yuǎn)地更改網(wǎng)卡上的MAC地址。
(3)ARP欺騙
ARP協(xié)議雖然是一個高效的數(shù)據(jù)鏈路層協(xié)議,但作為一個局域網(wǎng)協(xié)議,它同樣是建立在各主機(jī)之間相互信任的基礎(chǔ)上的,因此也存在一些安全問題。依照ARP協(xié)議的設(shè)計原理,為了減少網(wǎng)絡(luò)上過多的ARP數(shù)據(jù)通信,一個主機(jī)即使收到一個非自己請求的ARP應(yīng)答包,它也會更新自己的ARP緩存表,這樣就造成了ARP欺騙的可能。如果一個黑客要監(jiān)聽同一網(wǎng)絡(luò)中兩臺主機(jī)之間的通信,它會分別向這兩臺主機(jī)發(fā)送一個偽造的ARP應(yīng)答包,讓兩臺主機(jī)的數(shù)據(jù)包都發(fā)送到自己的主機(jī)上,然后再做好數(shù)據(jù)轉(zhuǎn)發(fā)的功能,這樣,雙方看似“直接”的通信連接,實(shí)際上都是通過黑客所在的主機(jī)進(jìn)行間接通信,從而達(dá)到了網(wǎng)絡(luò)監(jiān)聽的目的。
1.MAC檢測
網(wǎng)卡處于混雜模式時,它會將所有接收到的數(shù)據(jù)包都向內(nèi)核協(xié)議棧提交,而此時很多操作系統(tǒng)的內(nèi)核協(xié)議棧并不對底層提交的數(shù)據(jù)幀的目的MAC地址進(jìn)行檢查,或者只進(jìn)行簡單的檢查。例如:多種Linux內(nèi)核以及NETBSD都不進(jìn)行檢查,而Windows98、Windows NT下的絕大部分網(wǎng)卡驅(qū)動程序只通過檢查MAC地址的第1個字節(jié)是否為OXFF來判斷數(shù)據(jù)包是否為廣播包,而不是標(biāo)準(zhǔn)的:FF-FF-FF-FF-FF-FF,所以當(dāng)接收到一個目的MAC地址為FF-00-00-00-00-00,目的IP地址為本機(jī)的IP數(shù)據(jù)包時,這些主機(jī)就會響應(yīng)。根據(jù)上述原理,MAC檢測的方法如下:給被檢測的主機(jī)發(fā)送一個MAC地址無效而IP地址正確的數(shù)據(jù)包,并在這個偽造的數(shù)據(jù)包中構(gòu)造一個ICMP ECHO請求,當(dāng)網(wǎng)卡處于監(jiān)聽模式時,該主機(jī)就會接收將其存放到相應(yīng)的堆棧中,并會返回響應(yīng)包;當(dāng)網(wǎng)卡工作在正常的模式下時,就會忽略該請求響應(yīng)。因此,通過判斷其是否響應(yīng)而暴露其工作模式。當(dāng)偽造的以太網(wǎng)數(shù)據(jù)幀中的IP地址設(shè)置為網(wǎng)絡(luò)廣播地址時,這個測試將非常有效。
2.DNS檢測
DNS是指域名服務(wù)器(Domain Name Server),負(fù)責(zé)將Internet上域名與IP地址進(jìn)行解析。而許多竊聽程序?qū)λO(jiān)聽到的IP地址會自動發(fā)一些反向DNS請求,因此可以通過觀察DNS相關(guān)數(shù)據(jù)包來檢測監(jiān)聽。具體的操作是:對一個根本不存在的IP地址發(fā)Ping命令,只要有監(jiān)聽程序聽到此數(shù)據(jù)包后,就會對該地址發(fā)反向的DNS請求。通過這樣的方法,我們就可以進(jìn)行有效的監(jiān)聽檢測。
3.響應(yīng)檢測
主機(jī)的響應(yīng)時間檢測是指在較短的時間內(nèi)發(fā)送大量的數(shù)據(jù)包,用來檢測系統(tǒng)的反應(yīng)時間。采用ICMP數(shù)據(jù)包對主機(jī)進(jìn)行檢測,這是因?yàn)镮CMP協(xié)議處于TCP/IP協(xié)議棧的底層,執(zhí)行的優(yōu)先級較高,因此測試系統(tǒng)的反應(yīng)時間較快,對網(wǎng)絡(luò)的負(fù)載影響較小。而采用FTP、TELNET等協(xié)議進(jìn)行檢測時,由于優(yōu)先級低、反應(yīng)時間慢,會加重網(wǎng)絡(luò)負(fù)載,造成網(wǎng)絡(luò)擁塞。基于上述理論,我們首先利用antisiffer等工具測試被檢測主機(jī)的ICMP ECHO請求及響應(yīng)的基準(zhǔn)時間,當(dāng)?shù)玫街鳈C(jī)的負(fù)載數(shù)據(jù)以后,立刻向該網(wǎng)絡(luò)發(fā)送大量的偽裝數(shù)據(jù)包,與此同時再次發(fā)送測試數(shù)據(jù)包以確定平均響應(yīng)時間的變化值,該網(wǎng)絡(luò)監(jiān)聽程序會在接收到該數(shù)據(jù)包后并進(jìn)行數(shù)據(jù)的處理與分析,因此會加重主機(jī)的負(fù)載,響應(yīng)時間會發(fā)生顯著變化,一般會延長一到四個數(shù)量級,而處于正常工作模式的主機(jī),相應(yīng)時間的變化會很小。因此,通過響應(yīng)時間的變化來判斷主機(jī)是否運(yùn)行監(jiān)聽程序。
4.ARP包檢測
ARP檢測是指使用ARP數(shù)據(jù)包替代上述的ICMP數(shù)據(jù)包。向局域網(wǎng)內(nèi)的所有主機(jī)發(fā)送非廣播方式且目的MAC地址不存在的偽ARP數(shù)據(jù)包,如果局域網(wǎng)內(nèi)的某個主機(jī)以自己的IP地址響應(yīng)了這個ARP請求,那么它的網(wǎng)卡工作模式即為混雜模式,由此我們就可以判斷,該主機(jī)很有可能處于網(wǎng)絡(luò)監(jiān)聽狀態(tài),這是目前相對而言比較好的從硬件方面檢測監(jiān)聽主機(jī)的方法。
根據(jù)對網(wǎng)絡(luò)監(jiān)聽原理以及如何進(jìn)行監(jiān)聽檢測的分析與總結(jié),我們提出了網(wǎng)絡(luò)監(jiān)聽的具體防范措施。具體的實(shí)現(xiàn)方式有以下幾種:
1.分割網(wǎng)段
分割網(wǎng)段指的是利用子網(wǎng)掩碼將原來的IP地址(網(wǎng)絡(luò)號+主機(jī)號)劃分為(網(wǎng)絡(luò)號+子網(wǎng)號+主機(jī)號),這樣既可以有效減少網(wǎng)絡(luò)阻塞、減少網(wǎng)絡(luò)廣播,又降低了局域網(wǎng)內(nèi)被監(jiān)聽的可能性。這是由于局域網(wǎng)下的各種監(jiān)聽方法都無法跨網(wǎng)段進(jìn)行,使用交換機(jī)、網(wǎng)橋等設(shè)備就可以有效地阻止被竊聽。將相互信任的主機(jī)放在一起,組成各個小網(wǎng)段,讓竊聽的可能性和必要性降至最低。
2.使用靜態(tài)ARP表
靜態(tài)ARP表采用手工輸入的方法,在連網(wǎng)的過程中不處理ARP響應(yīng)包,不對ARP表做任何修改。但是此方法的缺點(diǎn)是隨著計算機(jī)的重新啟動,ARP緩沖表就會被清空。因此,我們可以編寫一個簡單的腳本文件,將所有的ARP緩沖記錄寫在腳本內(nèi):
然后將該文件置于系統(tǒng)的啟動項中,每次當(dāng)計算機(jī)啟動時就會將該記錄添加到ARP緩沖表中,但是當(dāng)網(wǎng)關(guān)地址以及局域網(wǎng)內(nèi)進(jìn)行通信的主機(jī)變動時,此時需要對該文件的內(nèi)容進(jìn)行更改,因此適合網(wǎng)絡(luò)環(huán)境相對較小、主機(jī)數(shù)量相對穩(wěn)定的局域網(wǎng)內(nèi)。
3.數(shù)據(jù)加密
所謂數(shù)據(jù)加密(Data Encryption),就是指將一個信息(或稱明文,plain text) 經(jīng)過加密鑰匙(Encryption key) 及加密函數(shù)轉(zhuǎn)換,變成無意義的密文(Cipher text),而接收方則將此密文經(jīng)過解密函數(shù)、解密鑰匙(Decryption key)還原成明文。為了使Internet變得更安全,人們在重要信息傳輸上往往會使用數(shù)據(jù)加密技術(shù)和基于加密理論的數(shù)字簽名技術(shù),這種方法使得監(jiān)聽者即使可以監(jiān)聽到信息,也無法閱讀信息,在一定程度上保證了信息在網(wǎng)絡(luò)上傳輸?shù)陌踩浴?/p>
4.運(yùn)用VLAN技術(shù)
VLAN技術(shù)是一種根據(jù)局域網(wǎng)內(nèi)設(shè)備的邏輯地址而不是物理地址將局域網(wǎng)劃分成一個個的網(wǎng)段。由于交換機(jī)只能在同一VLAN內(nèi)的端口之間交換數(shù)據(jù),不同VLAN的端口不能直接訪問,因此,通過劃分VLAN可以提高網(wǎng)絡(luò)的安全性,而且有助于控制流量。其次,當(dāng)一臺計算機(jī)物理位置需要發(fā)生變化時,采用MAC地址劃分的VLAN交換機(jī)可以自動跟蹤該終端的MAC地址,并自動將其納入定義的VLAN中,因此也降低了移動和變更的管理成本。
5.交換機(jī)端口綁定
對于安全性要求較高的網(wǎng)絡(luò)內(nèi)部環(huán)境,可以通過MAC地址與交換機(jī)端口的綁定來有效控制非法用戶的網(wǎng)絡(luò)監(jiān)聽。通過端口綁定不僅可以限制計算機(jī)的訪問流量、控制數(shù)據(jù)包的收發(fā)量,還可以有效地保障端口的安全管理,對網(wǎng)絡(luò)管理起到了非常重要的作用。交換機(jī)端口綁定的策略分為靜態(tài)方式和動態(tài)方式兩種。如果其他合法用戶的PC機(jī)想通過這個端口使用網(wǎng)絡(luò),需要向網(wǎng)絡(luò)管理員提出授權(quán)申請或準(zhǔn)入身份認(rèn)證,再由管理員在交換機(jī)的配置模式下實(shí)現(xiàn)交換機(jī)與端口的綁定,因此在一定程度上為網(wǎng)絡(luò)的安全使用提供了重要保障。
6.設(shè)置ARP服務(wù)器
ARP緩沖表記錄了一段時間內(nèi)IP地址與MAC地址的映射關(guān)系,但是ARP緩沖表是動態(tài)更新的,一段時間內(nèi)未使用的記錄則會被自動刪除。解決的辦法是對ARP緩沖記錄進(jìn)行集中管理。也就是指定局域網(wǎng)內(nèi)部的一臺機(jī)器作為ARP服務(wù)器,專門保存并且維護(hù)可信范圍內(nèi)的所有主機(jī)的IP地址與MAC地址映射記錄。該服務(wù)器通過查閱自己的ARP緩存的靜態(tài)記錄并以被查詢主機(jī)的名義響應(yīng)局域網(wǎng)內(nèi)部的ARP請求。同時,需要設(shè)置局域網(wǎng)內(nèi)部的其他主機(jī)只使用來自ARP服務(wù)器的ARP響應(yīng),這樣在一定程度上阻止了利用ARP協(xié)議漏洞進(jìn)行的網(wǎng)絡(luò)監(jiān)聽。
論文對共享式和交換式局網(wǎng)絡(luò)下的網(wǎng)絡(luò)監(jiān)聽原理進(jìn)行了深入的研究,并根據(jù)其特點(diǎn)提出了對惡意網(wǎng)絡(luò)監(jiān)聽行為的檢測方法以及具體的防范措施。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)監(jiān)聽的手段和方法也會層出不窮,因此,從事網(wǎng)絡(luò)維護(hù)的工作人員以及網(wǎng)絡(luò)安全的科研工作者應(yīng)在實(shí)際的安全策略中,結(jié)合網(wǎng)絡(luò)自身的特點(diǎn),勤于思考、勤于改進(jìn),力求提高網(wǎng)絡(luò)檢測與防范的準(zhǔn)確性、廣泛性。只有這樣,才有可能最大限度地保障網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)陌踩浴?/p>
[1]張昊,楊靜.計算機(jī)網(wǎng)絡(luò)監(jiān)聽檢測技術(shù)淺析[J].合肥學(xué)院學(xué)報(自然科學(xué)版),2011,(3):44-47.
[2]陳輝,周自立.網(wǎng)絡(luò)安全實(shí)驗(yàn)中關(guān)于網(wǎng)絡(luò)監(jiān)聽的實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2009,(5):72-74,82.
[3]紀(jì)彥星.基于以太網(wǎng)的數(shù)據(jù)監(jiān)聽方法研究與實(shí)現(xiàn)[J].計算機(jī)與數(shù)字工程,2010,(8):160-164.
[4]李琳,姜春雨.局域網(wǎng)技術(shù)與應(yīng)用[M].清華大學(xué)出版社,2004:75-82.
[5]徐丹,黎俊偉,高傳善等.基于ETHERNET的網(wǎng)絡(luò)監(jiān)聽以及ARP欺騙 [J].計算機(jī)應(yīng)用與軟件,2005,(11):105-107.
[6]向昕,李志蜀.基于ARP欺騙的網(wǎng)絡(luò)監(jiān)聽原理及實(shí)現(xiàn)[J].四川大學(xué)學(xué)報(自然科學(xué)版),2005,(4):714-718.
[7]喻卓彥.局域網(wǎng)網(wǎng)絡(luò)監(jiān)聽技術(shù)概述[J].信息通信,2011,(2):67-68.
TN
A
1673-0046(2012)4-0149-03