進(jìn)入2000年以來,網(wǎng)絡(luò)遭受攻擊事件不斷發(fā)生,全球許多著名網(wǎng)站如yahoo、cnn、buy、ebay、fbi,包括中國(guó)的新浪網(wǎng)相繼遭到不名身份的黑客攻擊,值得注意的是,在這些攻擊行為中,黑客擯棄了以往常常采用的更改主頁這一對(duì)網(wǎng)站實(shí)際破壞性有限的做法,取而代之的是,在一定時(shí)間內(nèi),徹底使被攻擊的網(wǎng)絡(luò)喪失正常服務(wù)功能,這種攻擊手法為 DDoS,即分布式拒絕服務(wù)攻擊(Distributed denial of service )。
簡(jiǎn)單的講,拒絕服務(wù)就是用超出被攻擊目標(biāo)處理能力的海量數(shù)據(jù)包消耗可用系統(tǒng),帶寬資源,致使網(wǎng)絡(luò)服務(wù)癱瘓的一種攻擊手段。在早期, 拒絕服務(wù)攻擊主要是針對(duì)處理能力比較弱的單機(jī),如個(gè)人pc,或是窄帶寬連接的網(wǎng)站,對(duì)擁有高帶寬連接,高性能設(shè)備的網(wǎng)站影響不大,但在99年底,伴隨著DDoS的出現(xiàn),這種高端網(wǎng)站高枕無憂的局面不復(fù)存在,與早期的DoS攻擊由單臺(tái)攻擊主機(jī)發(fā)起,單兵作戰(zhàn)相較,DDoS實(shí)現(xiàn)是借助數(shù)百,甚至數(shù)千臺(tái)被植入攻擊守護(hù)進(jìn)程的攻擊主機(jī)同時(shí)發(fā)起的集團(tuán)作戰(zhàn)行為,在這種幾百,幾千對(duì)一的較量中, 網(wǎng)絡(luò)服務(wù)提供商所面對(duì)的破壞力是空前巨大的。
拒絕服務(wù)攻擊自問世以來,衍生了多種形式,現(xiàn)將兩種使用較頻繁的TCP-SYN flood, UDP flood做一個(gè)介紹 。TCP-SYN flood又稱半開式連接攻擊,每當(dāng)我們進(jìn)行一次標(biāo)準(zhǔn)的TCP連接(如WWW瀏覽,下載文件等)會(huì)有一個(gè)一個(gè)三次握手的過程,首先是請(qǐng)求方向服務(wù)方發(fā)送一個(gè)SYN消息,服務(wù)方收到SYN后,會(huì)向請(qǐng)求方回送一個(gè)SYN-ACK表示確認(rèn),當(dāng)請(qǐng)求方收到SYN-ACK后則再次向服務(wù)方發(fā)送一個(gè)ACK消息,一次成功的TCP連接由此就建立,可以進(jìn)行后續(xù)工作了,如圖所示:

而TCP-SYN flood在它的實(shí)現(xiàn)過程中只有前兩個(gè)步驟,當(dāng)服務(wù)方收到請(qǐng)求方的SYN并回送SYN-ACK確認(rèn)消息后, 請(qǐng)求方由于采用源地址欺騙等手段,致使服務(wù)方得不到ACK回應(yīng),這樣,服務(wù)方會(huì)在一定時(shí)間處于等待接收請(qǐng)求方ACK消息的狀態(tài),一臺(tái)服務(wù)器可用的TCP連接是有限的,如果惡意攻擊方快速連續(xù)的發(fā)送此類連接請(qǐng)求,則服務(wù)器可用TCP連接隊(duì)列很快將會(huì)阻塞,系統(tǒng)可用資源,網(wǎng)絡(luò)可用帶寬急劇下降,無法向用戶提供正常的網(wǎng)絡(luò)服務(wù)。
Udp在網(wǎng)絡(luò)中的應(yīng)用也是比較廣泛的,比如DNS解析、realaudio實(shí)時(shí)音樂、網(wǎng)絡(luò)管理、聯(lián)網(wǎng)游戲等,基于udp的攻擊種類也是比較多的,如目前在互連網(wǎng)上提供www、mail等服務(wù)的設(shè)備一般為使用unix操作系統(tǒng)的服務(wù)器,他們默認(rèn)是開放一些有被惡意利用可能的udp服務(wù)的,如:echo,chargen. echo服務(wù)回顯接收到的每一個(gè)數(shù)據(jù)包,而原本作為測(cè)試功能的chargen服務(wù)會(huì)在收到每一個(gè)數(shù)據(jù)包時(shí)隨機(jī)反饋一些字符,如果惡意攻擊者將這兩個(gè)udp服務(wù)互指,則網(wǎng)絡(luò)可用帶寬會(huì)很快耗盡。
自99年后半年開始,DDoS攻擊不斷在Internet出現(xiàn),并在應(yīng)用的過程中不斷的得到完善,在Unix或nt環(huán)境上截至目前已有一系列比較成熟的軟件產(chǎn)品,如Trinoo,TFN,TFN2K,STACHELDRATH等,他們基本核心及攻擊思路是很相象的,下面就通過Trinoo對(duì)這類軟件做一介紹。
Trinoo是基于UDP flood的攻擊軟件,它向被攻擊目標(biāo)主機(jī)隨機(jī)端口發(fā)送全零的4字節(jié)UDP包,被攻擊主機(jī)的網(wǎng)絡(luò)性能在處理這些超出其處理能力垃圾數(shù)據(jù)包的過程中不斷下降,直至不能提供正常服務(wù)甚至崩潰。
Trinoo攻擊功能的實(shí)現(xiàn),是通過三個(gè)模塊付諸實(shí)施的,
1:攻擊守護(hù)進(jìn)程(NS) 2:攻擊控制進(jìn)程(MASTER) 3:客戶端(NETCAT,標(biāo)準(zhǔn)TELNET程序等),
攻擊守護(hù)進(jìn)程N(yùn)S是真正實(shí)施攻擊的程序,它一般和攻擊控制進(jìn)程(MASTER)所在主機(jī)分離,在原始C文件ns.c編譯的時(shí)候,需要加入可控制其執(zhí)行的攻擊控制進(jìn)程MASTER所在主機(jī)IP,(只有在ns.c中的IP方可發(fā)起ns的攻擊行為)編譯成功后,黑客通過目前比較成熟的主機(jī)系統(tǒng)漏洞破解(如rpc.cmsd,rpc.ttdbserver,rpc.statd)可以方便的將大量NS植入因特網(wǎng)中有上述漏洞主機(jī)內(nèi)。ns運(yùn)行時(shí),會(huì)首先向攻擊控制進(jìn)程(MASTER)所在主機(jī)的31335端口發(fā)送內(nèi)容為HELLO的UDP包,標(biāo)示它自身的存在,隨后攻擊守護(hù)進(jìn)程即處于對(duì)端口27444的偵聽狀態(tài),等待master攻擊指令的到來。
攻擊控制進(jìn)程(MASTER)在收到攻擊守護(hù)進(jìn)程的HELLO包后,會(huì)在自己所在目錄生成一個(gè)加密的名為...的可利用主機(jī)表文件, MASTER的啟動(dòng)切枰?藶氳模?謖?肥淙肽?廈藶雊Orave后, MASTER即成功啟動(dòng),它一方面?zhèn)陕牰丝?1335,等待攻擊守護(hù)進(jìn)程的HELLO包,另一方面?zhèn)陕牰丝?7665,等待客戶端對(duì)其的連接。當(dāng)客戶端連接成功并發(fā)出指令時(shí), MASTER所在主機(jī)將向攻擊守護(hù)進(jìn)程ns所在主機(jī)的27444端口傳遞指令。
客戶端不是trinoo自帶的一部分,可用標(biāo)準(zhǔn)的能提供TCP連接的程序,如TELNET,NETCAT等,連接MASTER所在主機(jī)的27665端口, 輸入默認(rèn)密碼betaalmostdone后,即完成了連接工作,進(jìn)入攻擊控制可操作的提示狀態(tài)。
目前版本的trinoo有六個(gè)可用命令,mtimer:設(shè)定攻擊時(shí)長(zhǎng),如mtimer 60,攻擊60秒,如果不設(shè)置的話,默認(rèn)是無限。dos:對(duì)某一目標(biāo)主機(jī)實(shí)施攻擊,如dos 12.34.45.56 mdie:停止正在實(shí)施的攻擊,使用這一功能需要輸入口令killme,mping:請(qǐng)求攻擊守護(hù)進(jìn)程N(yùn)S回應(yīng),監(jiān)測(cè)ns是否工作。mdos, 對(duì)多個(gè)目標(biāo)主機(jī)實(shí)施攻擊,msize:設(shè)置攻擊UDP包的大小。 Trinoo運(yùn)行的總體輪廓可用下圖說明:

我們來看一次攻擊的實(shí)例:
由于目前版本的trinoo尚未采用IP地址欺騙,因此在被攻擊的主機(jī)系統(tǒng)日志里我們可以看到如下紀(jì)錄:
由上述日志,我們不難看出發(fā)起攻擊的ip地址,這一問題,通過ip spoof在后期的軟件tfn,tfn2k等軟件中得到了解決,給被攻擊者找出肇事者進(jìn)一步增加了難度。
Trinoo等DdoS攻擊軟件的出現(xiàn),對(duì)網(wǎng)絡(luò)的安全產(chǎn)生了巨大的挑戰(zhàn),借助這種在網(wǎng)上可以得到的公開軟件,任何一個(gè)普通的上網(wǎng)者對(duì)網(wǎng)絡(luò)的安全都構(gòu)成了潛在的威脅,那么能不能做一些預(yù)防工作呢?
有一些是可以做的,
首先,檢測(cè)自己的系統(tǒng)是否被植入了攻擊守護(hù)程序,最簡(jiǎn)單的辦法,檢測(cè)上述提到的udp端口,如netstat -a | grep udp 端口號(hào),如果得到listen等激活狀態(tài),就要注意了,或者用專門的檢測(cè)軟件,這里推薦美國(guó)FBI專門研制的Find Distributed Denial of Service (find_ddos) , 最新版本的可檢測(cè)到tfn2k client, tfn2k daemon, trinoo daemon, trinoo master, tfn daemon, tfn client, stacheldraht master, stacheldraht client, stachelddraht demon和 tfn-rush client等目前幾乎所有流行攻擊軟件。 它的運(yùn)行很簡(jiǎn)單,解開包,運(yùn)行find_ddos即可,下面為在一臺(tái)可疑設(shè)備運(yùn)行結(jié)果,
看來這臺(tái)設(shè)備的攻擊守護(hù)程序還不少呢,系統(tǒng)管理員要注意啦!
這個(gè)軟件可從下面的地址得到:http://www.fbi.gov/nipc/trinoo.htm 。
其次,封掉不必要的UDP服務(wù),如echo,chargen,減少udp攻擊的入口。
第三,在路由器連接骨干網(wǎng)絡(luò)的端口結(jié)合采用CEF和ip verify unicast reverse-path,擋住一部分ip spoof,syn的攻擊。同時(shí)使用access control lists將可能被使用的網(wǎng)絡(luò)保留地址封掉。 借助使用CAR技術(shù)來限制 ICMP 報(bào)文大小。具體使用可查閱cisco網(wǎng)站。
第四,在敏感主機(jī)如www服務(wù)器使用ip filter軟件。
截至目前,實(shí)際很徹底的防御手段還沒有出現(xiàn),但采用上述做法可以較大地減小不安全性。
Internet的發(fā)展,永遠(yuǎn)是一場(chǎng)不會(huì)停止的網(wǎng)絡(luò)安全攻與防的較量。
68476636-8002)

