網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來(lái)的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機(jī)整體,實(shí)現(xiàn)資源的全面共享和有機(jī)協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計(jì)算機(jī)、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專(zhuān)家資源、大型數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認(rèn)為是互聯(lián)網(wǎng)發(fā)展的第三階段。 5、使用 ngrep來(lái)處理tfn2k 攻擊
根據(jù)使用DNS來(lái)跟蹤tfn2k駐留程序的原理,現(xiàn)在已經(jīng)出現(xiàn)了稱(chēng)為ngrep的實(shí)用工具。經(jīng)過(guò)修改的ngrep(參見(jiàn)附錄)可以監(jiān)聽(tīng)大約五種類(lèi)型的tfn2k拒絕服務(wù)攻擊(targa3, SYN flood, UDP flood, ICMP flood 和 smurf),它還有一個(gè)循環(huán)使用的緩存用來(lái)記錄DNS和ICMP請(qǐng)求。如果ngrep發(fā)覺(jué)有攻擊行為的話,它會(huì)將其緩存中的內(nèi)容打印出來(lái)并繼續(xù)記錄ICMP回應(yīng)請(qǐng)求。假如攻擊者通過(guò)ping目標(biāo)主機(jī)的手段來(lái)鉚定攻擊目標(biāo)的話,在攻擊過(guò)程中或之后記錄ICMP的回應(yīng)請(qǐng)求是一種捕獲粗心的攻擊者的方法。由于攻擊者還很可能使用其他的服務(wù)來(lái)核實(shí)其攻擊的效果(例如web),所以對(duì)其他的標(biāo)準(zhǔn)服務(wù)也應(yīng)當(dāng)有盡量詳細(xì)的日志記錄。 還應(yīng)當(dāng)注意,ngrep采用的是監(jiān)聽(tīng)網(wǎng)絡(luò)的手段,因此,ngrep無(wú)法在交換式的環(huán)境中使用。但是經(jīng)過(guò)修改的ngrep可以不必和你的DNS在同一個(gè)網(wǎng)段中,但是他必須位于一個(gè)可以監(jiān)聽(tīng)到所有DNS請(qǐng)求的位置。經(jīng)過(guò)修改的ngrep也不關(guān)心目標(biāo)地址,您可以把它放置在DMZ網(wǎng)段,使它能夠檢查橫貫該網(wǎng)絡(luò)的tfn2k攻擊。從理論上講,它也可以很好的檢測(cè)出對(duì)外的tfn2k攻擊。
運(yùn)行 ngrep, 您將看到:
[root@lughnasad ngrep]# ./ngrep Ngrep with TFN detection modifications by wiretrip / www.wiretrip.net Watching DNS server: 10.0.0.8 interface: eth0 (10.0.0.0/255.255.0.0)
從這里開(kāi)始ngrep將監(jiān)聽(tīng)tfn2k攻擊,如果檢測(cè)到攻擊, ngrep將在屏幕上打印:
Sun Jan 9 17:30:01 2000 A TFN2K UDP attack has been detected! Last (5000) DNS requests: 《list of IPs that made DNS requests, up to DNS_REQUEST_MAX length》 Last (1000) ICMP echo requests (pings): 《list of IPs that made ICMP echo requests, up to ICMP_REQUEST_MAX length》 Incoming realtime ICMP echo requests (pings): 《all ICMP echo requests since the attack was detected》
以上的列表并不是唯一的,可以對(duì)它進(jìn)行調(diào)整讓他不僅顯示是誰(shuí)請(qǐng)求,而且請(qǐng)求多少次,頻率為多少等等。在ICMP flood事件中,ICMP回應(yīng)請(qǐng)求的報(bào)告中將不包括做為tfn2k flood一部分的ICMP包。Ngrep還可以報(bào)告檢測(cè)出來(lái)的除smurf之外的攻擊類(lèi)型(TARGA, UDP, SYN, ICMP等)。混合式的攻擊在缺省情況下表現(xiàn)為ICMP攻擊,除非你屏蔽了向內(nèi)的ICMP回應(yīng)請(qǐng)求,這樣它就表現(xiàn)為UDP或SYN攻擊。這些攻擊的結(jié)果都是基本類(lèi)似的。
6、附錄- Ngrep.c with tfn2k detection
以下的代碼在使用前應(yīng)當(dāng)更改一些參數(shù)。 #define DNS_REQUEST_MAX 5000 #define ICMP_REQUEST_MAX 1000 通知ngrep最大的請(qǐng)求跟蹤數(shù)(在檢測(cè)攻擊之前)。傳輸較為繁忙的網(wǎng)站應(yīng)當(dāng)增加這一數(shù)值(網(wǎng)絡(luò)流量較為繁忙的網(wǎng)站DNS的請(qǐng)求數(shù)最好在10,000,而ICMP請(qǐng)求為2000-3000)
#define FLOOD_THRESHOLD 20
用在10秒中內(nèi)有多少同一類(lèi)型的攻擊包來(lái)確認(rèn)為真正的攻擊。數(shù)目設(shè)計(jì)的越大,程序報(bào)受攻擊的可能性就越小。假如您老是收到錯(cuò)誤的警報(bào),那么您應(yīng)當(dāng)增加一下這個(gè)數(shù)值。
#define DNS_SERVER_IP "10.0.0.8"
Ngrep通過(guò)監(jiān)視DNS服務(wù)器的53端口的UDP包來(lái)跟蹤向內(nèi)的DNS請(qǐng)求(只有UDP)。因此,ngrep需要知道您的DNS服務(wù)器的IP地址。
我們的設(shè)備可能會(huì)有多個(gè)DNS服務(wù)器,但我們認(rèn)為對(duì)一臺(tái)DNS服務(wù)器的支持足以證明這項(xiàng)技術(shù)的能力。 #define TTL_THRESHOLD 150
tfn2k SYN flood 攻擊使用的 TTL值通常在200-255的范圍內(nèi)。估計(jì)到攻擊者與目標(biāo)主機(jī)之間不止50跳,因此我們可以只查找TTL時(shí)間高于150的包。假如您相信攻擊者在50跳左右,那么您可以對(duì)TTL的限制進(jìn)行一下更改。
編譯更改過(guò)的 ngrep
編譯和安裝都非常簡(jiǎn)單。您僅需要使用以下之一來(lái)取代ngrep.c 文件。處于方便起見(jiàn),我們可以詳細(xì)說(shuō)明。
這段代碼只是在RedHat 6.1 和Mandrake 6.5 Linux上測(cè)試過(guò)。 首先您需要在 http://www.packetfactory.net/ngrep/ 下載ngrep,我們測(cè)試的是1.35版。
然后在 ftp://ftp.ee.lbl.gov/libpcap.tar.Z下載libpcap 我們使用的是 0.40版。 把文件放在臨時(shí)文件夾里并解包,tar xvzf libpcap.tar.Z
然后進(jìn)行編譯
cd libpcap-0.4; ./configure; make; make install; make install-incl
假如您遇到了困難,可以參見(jiàn)在libpcap-0.4目錄里的README或INSTALL文件。根據(jù)我們實(shí)驗(yàn)的經(jīng)驗(yàn),如果/usr/local/include 和/usr/local/include/net目錄在linux系統(tǒng)中不存在的話,安裝會(huì)失敗。加入您在安裝時(shí)遇到了pcap.h 或 bpf.h的錯(cuò)誤時(shí)你可以運(yùn)行 mkdir /usr/local/include; mkdir /usr/local/include/net然后重新運(yùn)行'make install-incl'。然后我們需要編譯ngrep (使用我們修改過(guò)的版本)。首先解包:
tar xvzf ngrep-1.35.tar.gz
然后進(jìn)行配置:
cd ngrep; ./configure 然后把ngrep.c復(fù)制到ngrep目錄里。你可以覆蓋也可以備份原始的ngrep.c文件。在這里,您應(yīng)當(dāng)回顧在修改過(guò)的ngrep.c里的配置,至少您應(yīng)當(dāng)把DNS_SERVER_IP更改為您所使用的DNS的地址。更改完畢后你就可以運(yùn)行'make',這樣就建立了ngrep應(yīng)用程序。
Modified ngrep.c source code /* this code is available for download from http://www.wiretrip.net/na/ngrep.c */ /* * $Id: ngrep.c,v 1.35 1999/10/13 16:44:16 jpr5 Exp $ * */ /* TFN detection code added by Rain Forest Puppy / rfp@wiretrip.net and Night Axis / na@wiretrip.net */ /********* TFN detection defines *******************************/ /* how many DNS and ICMP requests to track */ #define DNS_REQUEST_MAX 5000 #define ICMP_REQUEST_MAX 1000 /* flood threshold is matches per 10 seconds */ #define FLOOD_THRESHOLD 20 /* IP of your DNS server */ #define DNS_SERVER_IP "10.9.100.8" /* TFN syn uses ttl between 200-255. Assuming less than 50 hops, flag stuff with ttl > TTL_THRESHOLD (other critera are used as well) */ #define TTL_THRESHOLD 150 /**************************************************************/ #include <stdlib.h> #include <string.h> #include <signal.h> #ifdef LINUX #include <getopt.h> #endif #if defined(BSD)
網(wǎng)絡(luò)的神奇作用吸引著越來(lái)越多的用戶(hù)加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來(lái)越嚴(yán)峻的考驗(yàn)―從硬件上、軟件上、所用標(biāo)準(zhǔn)上......,各項(xiàng)技術(shù)都需要適時(shí)應(yīng)勢(shì),對(duì)應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進(jìn)步的催化劑。
|