[摘要] 對(duì)等網(wǎng)阻隔原理是“網(wǎng)絡(luò)節(jié)點(diǎn)”中的監(jiān)聽(tīng)主機(jī)首先將用戶(hù)的數(shù)據(jù)劫持到本地,然后利用arp偽造arp包同時(shí)欺騙網(wǎng)關(guān)和客戶(hù)機(jī),達(dá)到阻隔目的。
[關(guān)鍵詞] 對(duì)等網(wǎng)阻隔arp
一、研究意義
隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展和互聯(lián)網(wǎng)的快速普及,以及便捷廉價(jià)等優(yōu)勢(shì),網(wǎng)絡(luò)已成為人們獲取信息、進(jìn)行網(wǎng)上交易等活動(dòng)的重要手段。眾所周知,互聯(lián)網(wǎng)是把“雙刃劍”,它給人們工作、生活帶來(lái)了極大進(jìn)步和便利的同時(shí),也帶來(lái)了巨大的負(fù)面影響,各種邪教、色情、暴力、賭博等有害信息也充斥著互聯(lián)網(wǎng)網(wǎng)絡(luò)。伴隨“對(duì)等網(wǎng)”(P2P)技術(shù)的發(fā)展,網(wǎng)上可以使用的P2P工具也越來(lái)越多,如QQ、ICQ、MSN?Messenger、eDonkey、eMule、迅雷,以及BT等都是比較流行的P2P工具。由于P2P本身技術(shù)特點(diǎn),它既可作客戶(hù)端又可作服務(wù)器,因此信息資源極其豐富。其獲取方便、速度快、隱蔽性強(qiáng)、對(duì)其控制難等特點(diǎn),給有害信息迅速傳播提供了一條快車(chē)道,其危害性比網(wǎng)站傳播更大。網(wǎng)絡(luò)安全是影響電子商務(wù)迅速發(fā)展的一個(gè)重要因素之一,因此在電子商務(wù)等特定場(chǎng)所,有必要對(duì)對(duì)等網(wǎng)進(jìn)行適當(dāng)控制,確保電子商務(wù)交易的正常進(jìn)行。
二、研究方法
基于旁路阻隔技術(shù)的主要優(yōu)點(diǎn)是性能高,而且不影響正常的網(wǎng)絡(luò)結(jié)構(gòu),目前常用的方法一般有這樣幾種:
1.利用icmp報(bào)文的host unreachable回應(yīng)來(lái)干擾應(yīng)用程序
其基本原理是這樣的:當(dāng)路由器收到一份IP數(shù)據(jù)報(bào)但又不能轉(zhuǎn)發(fā)時(shí),就要發(fā)送一份ICMP“主機(jī)不可達(dá)”差錯(cuò)報(bào)文給主機(jī)。如果我們偽造這樣一個(gè)icmp報(bào)文,并且偽造IP地址為路由器的,這樣主機(jī)收到這個(gè)icmp報(bào)文后,就誤認(rèn)為目標(biāo)不可達(dá),從而達(dá)到了阻隔的目的。
2.利用打亂tcp報(bào)文的seq,ack序列號(hào)來(lái)達(dá)到阻隔的目的
這種過(guò)濾技術(shù)也是目前用的最成熟,適用面最廣的一種技術(shù)。TCP協(xié)議采用了兩種條件來(lái)確認(rèn)每條已經(jīng)建立連接的TCP通道,第一個(gè)是基礎(chǔ)連接確認(rèn),即TCP連接中的四大必備條件:源IP、源TCP端口、目標(biāo)IP、目標(biāo)TCP端口;第二個(gè)是“序號(hào)標(biāo)識(shí)”(Sequence numbers,SEQ),它們是成對(duì)出現(xiàn)的,分為“Sequence”(SEQ,序號(hào)字段)和“Acknowledgement Sequence”(ACK SEQ,確認(rèn)序號(hào)字段),TCP每次建立一個(gè)連接時(shí),會(huì)給雙方指定這樣一條規(guī)則:序號(hào)字段指出了本報(bào)文中傳送的數(shù)據(jù)在發(fā)送主機(jī)所要傳送的整個(gè)數(shù)據(jù)流中的順序號(hào),而確認(rèn)序號(hào)字段指出了發(fā)送本報(bào)文的主機(jī)希望接收的對(duì)方主機(jī)中下一個(gè)八位組的順序號(hào)。TCP如此謹(jǐn)慎,就是為了避免出現(xiàn)前面提到的假設(shè),雖然這種假設(shè)發(fā)生的幾率很?。ㄐ枰獫M(mǎn)足TCP的基礎(chǔ)連接確認(rèn)條件),但是它總有機(jī)會(huì)發(fā)生的。然而不幸的是,這對(duì)序號(hào)是可以預(yù)測(cè)的,因?yàn)門(mén)CP必須遵從以下守則:一臺(tái)主機(jī)即將發(fā)出的報(bào)文中的SEQ值應(yīng)等于它所剛收到的報(bào)文中的ACK SEQ值,而它所要發(fā)送報(bào)文中的ACK SEQ值應(yīng)為它所收到報(bào)文中的SEQ值加上該報(bào)文中所發(fā)送的TCP數(shù)據(jù)的長(zhǎng)度,即兩者存在“本次發(fā)送的SEQ=上次收到的ACK SEQ;本次發(fā)送的ACK SEQ=上次收到的SEQ+本次發(fā)送的TCP數(shù)據(jù)長(zhǎng)度”的聯(lián)系。知道這個(gè)規(guī)律后,我們就可以利用它來(lái)進(jìn)行阻隔。和icmp阻隔的原理差不多,都是采用偽造報(bào)文的方式,我們用旁路的方式獲取了源主機(jī)與目的主機(jī)通訊的seq,ack序列號(hào),則我們根據(jù)這個(gè)序列號(hào)和報(bào)文的長(zhǎng)度,可以算出源主機(jī)需求的下一個(gè)報(bào)文的序列號(hào),然后偽造這個(gè)序列號(hào),這樣就可以達(dá)到阻隔源主機(jī)的目的了。這種方式的適用面非常廣,所有基于tcp的協(xié)議都可以阻隔。而且目前的過(guò)濾系統(tǒng),IDS系統(tǒng)均是基于這個(gè)原理來(lái)做的。
3.利用發(fā)送tcp reset報(bào)文來(lái)實(shí)現(xiàn)阻隔
原理同上,只不過(guò)發(fā)送的不是ack報(bào)文,而是reset報(bào)文,這樣針對(duì)客戶(hù)端的效果更好。
4.基于協(xié)議的偽造
由于基于tcp的seq,ack序列號(hào)偽造的方法和發(fā)送reset報(bào)文的辦法不適合udp協(xié)議,故對(duì)于udp協(xié)議的偽造還得另想辦法。udp協(xié)議的阻隔沒(méi)有通用的辦法,只有針對(duì)具體的協(xié)議來(lái)進(jìn)行偽造,不過(guò)目前互聯(lián)網(wǎng)上基于udp協(xié)議的系統(tǒng)還不是很多,大部分還是基于tcp協(xié)議的。這種方法適用面很窄,只能針對(duì)具體的udp應(yīng)用協(xié)議,如qq。針對(duì)這些協(xié)議,偽造服務(wù)端與客戶(hù)端通訊,從而中斷客戶(hù)端的連接。
三、實(shí)例驗(yàn)證
這里有一個(gè)對(duì)等網(wǎng)旁路阻隔的演示程序,它是基于winpcap4.0_beta2庫(kù)支持,使用VC++6.0開(kāi)發(fā),運(yùn)行于win2000/xp下的程序。系統(tǒng)可以運(yùn)行在兩種環(huán)境下:
1.推薦的環(huán)境(如圖1)
將裝旁路阻隔程序的計(jì)算機(jī)安裝兩個(gè)網(wǎng)卡,一個(gè)網(wǎng)卡連接到交換機(jī)的鏡像口,這樣可以監(jiān)控到整個(gè)局域網(wǎng)的網(wǎng)絡(luò)流量。另一個(gè)網(wǎng)卡連接到內(nèi)部局域網(wǎng)里面,可以充當(dāng)普通客戶(hù)機(jī)使用。
圖1
圖2
2.普通環(huán)境(如圖2)
在這種情況下,對(duì)客戶(hù)機(jī)器阻隔的數(shù)量受到限制,一般只可以阻隔不超過(guò)30臺(tái)的單局域網(wǎng)。
3.阻隔原理
對(duì)等網(wǎng)阻隔原理是使用“網(wǎng)絡(luò)節(jié)點(diǎn)”中的監(jiān)聽(tīng)主機(jī)首先將用戶(hù)的數(shù)據(jù)劫持到本地,然后利用arp偽造arp包同時(shí)欺騙網(wǎng)關(guān)和客戶(hù)機(jī),達(dá)到阻隔目的。比如客戶(hù)機(jī)A的ip地址是10.10.0.200,網(wǎng)關(guān)是10.10.0.254,阻隔機(jī)的ip是10.10.0.221,網(wǎng)關(guān)也是10.10.0.254,阻隔機(jī)實(shí)現(xiàn)阻隔客戶(hù)機(jī)A的原理是這樣的。
首先,阻隔程序不停的利用arp偽造告訴網(wǎng)關(guān),ip地址是10.10.0.200的MAC地址就是我的MAC地址。
其次,阻隔程序不停的利用arp偽造告訴客戶(hù)機(jī)A,網(wǎng)關(guān)10.10.0.254的MAC地址就是我的MAC地址。
最后,經(jīng)過(guò)一段時(shí)間(一般10稱(chēng)~30秒左右),客戶(hù)機(jī)A和網(wǎng)關(guān)均相信了阻隔機(jī)說(shuō)的,從而阻隔機(jī)充當(dāng)了一個(gè)中間人的角色,它在客戶(hù)機(jī)A和網(wǎng)關(guān)之間轉(zhuǎn)發(fā)數(shù)據(jù)。所以這種情況下需要在阻隔機(jī)上安裝單網(wǎng)卡共享上網(wǎng)程序來(lái)轉(zhuǎn)發(fā)數(shù)據(jù),比如sygate,homeshare等程序都支持此功能,以配合使用。
目前部分協(xié)議的阻隔效果如表所示。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。