對(duì)DoS攻擊原理及抵御措施的詳細(xì)描述
以下的文章主要向大家描述的是典型DoS攻擊原理以及抵御措施,smurf、trinoo、tfn與tfn2k以及stacheldraht是比較常見的DoS攻擊程序,本文主要講述的是它們的原理以及抵御措施,以幫助管理員有效地抵御DoS風(fēng)暴攻擊,維護(hù)站點(diǎn)安全。
smurf、trinoo、tfn、tfn2k以及stacheldraht是比較常見的DoS攻擊程序,本文將對(duì)它們的原理以及抵御措施進(jìn)行論述,以幫助管理員有效地抵御DoS風(fēng)暴攻擊,維護(hù)站點(diǎn)安全。
一、何為"smurf 攻擊",如何抵御?
Smurf是一種簡單但有效的 DDoS 攻擊技術(shù),它利用了ICMP (Internet控制信息協(xié)議)。ICMP在Internet上用于錯(cuò)誤處理和傳遞控制信息。它的功能之一是與主機(jī)聯(lián)系,通過發(fā)送一個(gè)“回音請(qǐng)求”(echo request)信息包看看主機(jī)是否“活著”。最普通的ping程序就使用了這個(gè)功能。Smurf是用一個(gè)偷來的帳號(hào)安裝到一個(gè)計(jì)算機(jī)上的,然后用一個(gè)偽造的源地址連續(xù)ping一個(gè)或多個(gè)計(jì)算機(jī)網(wǎng)絡(luò),這就導(dǎo)致所有計(jì)算機(jī)所響應(yīng)的那個(gè)計(jì)算機(jī)并不是實(shí)際發(fā)送這個(gè)信息包的那個(gè)計(jì)算機(jī)。這個(gè)偽造的源地址,實(shí)際上就是攻擊的目標(biāo),它將被極大數(shù)量的響應(yīng)信息量所淹沒。對(duì)這個(gè)偽造信息包做出響應(yīng)的計(jì)算機(jī)網(wǎng)絡(luò)就成為攻擊的不知情的同謀。
下面是Smurf DDoS 攻擊的基本特性以及建議采用的抵御策略:
1、Smurf的攻擊平臺(tái):smurf為了能工作,必須要找到攻擊平臺(tái),這個(gè)平臺(tái)就是:其路由器上啟動(dòng)了 IP廣播功能。這個(gè)功能允許 smurf 發(fā)送一個(gè)偽造的ping信息包,然后將它傳播到整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中。
2、為防止系統(tǒng)成為 smurf攻擊的平臺(tái),要將所有路由器上IP的廣播功能都禁止。一般來講,IP廣播功能并不需要。
3、攻擊者也有可能從LAN內(nèi)部發(fā)動(dòng)一個(gè)smurf攻擊,在這種情況下,禁止路由器上的IP 廣播功能就沒有用了。為了避免這樣一個(gè)攻擊,許多操作系統(tǒng)都提供了相應(yīng)設(shè)置,防止計(jì)算機(jī)對(duì)IP廣播請(qǐng)求做出響應(yīng)。更多信息請(qǐng)參閱http://www.cert.org/advisories/CA-98.01.smurf.html的附錄A。
4、如果攻擊者要成功地利用你成為攻擊平臺(tái),你的路由器必須要允許信息包以不是從你的內(nèi)網(wǎng)中產(chǎn)生的源地址離開網(wǎng)絡(luò)。配置路由器,讓它將不是由你的內(nèi)網(wǎng)中生成的信息包過濾出去,這是有可能做到的。這就是所謂的網(wǎng)絡(luò)出口過濾器功能。
5、ISP則應(yīng)使用網(wǎng)絡(luò)入口過濾器,以丟掉那些不是來自一個(gè)已知范圍內(nèi)IP地址的信息包。
6、挫敗一個(gè)smurf 攻擊的最簡單方法對(duì)邊界路由器的回音應(yīng)答(echo reply)信息包進(jìn)行過濾,然后丟棄它們,這樣就能阻止“命中”Web服務(wù)器和內(nèi)網(wǎng)。對(duì)于那些使用Cisco路由器的人,另一個(gè)選擇是CAR (Committed Access Rate,承諾訪問速率)。
丟棄所有的回音應(yīng)答信息包能使網(wǎng)絡(luò)避免被淹沒,但是它不能防止來自上游供應(yīng)者通道的交通堵塞。如果你成為了攻擊的目標(biāo),就要請(qǐng)求ISP對(duì)回音應(yīng)答信息包進(jìn)行過濾并丟棄。 如果不想完全禁止回音應(yīng)答,那么可以有選擇地丟棄那些指向你的公用Web 服務(wù)器的回音應(yīng)答信息包。 CAR 技術(shù)由Cisco 開發(fā),它能夠規(guī)定出各種信息包類型使用的帶寬的最大值。例如,使用CAR,我們就可以精確地規(guī)定回音應(yīng)答信息包所使用的帶寬的最大值。
二、何為 "trinoo",如何抵御它?
trinoo 是復(fù)雜的 DDoS 攻擊程序,它使用“master”程序?qū)?shí)際實(shí)施攻擊的任何數(shù)量的“代理”程序?qū)崿F(xiàn)自動(dòng)控制。攻擊者連接到安裝了master程序的計(jì)算機(jī),啟動(dòng)master程序,然后根據(jù)一個(gè)IP地址的列表,由master程序負(fù)責(zé)啟動(dòng)所有的代理程序。接著,代理程序用UDP 信息包沖擊網(wǎng)絡(luò),從而攻擊目標(biāo)。在攻擊之前,侵入者為了安裝軟件,已經(jīng)控制了裝有master程序的計(jì)算機(jī)和所有裝有代理程序的計(jì)算機(jī)。
下面是trinoo DDoS 攻擊的基本特性以及建議采用的抵御策略:
1、在master程序與代理程序的所有通訊中,trinoo都使用了UDP協(xié)議。入侵檢測軟件能夠?qū)ふ沂褂肬DP協(xié)議的數(shù)據(jù)流(類型17)。
2、Trinoo master程序的監(jiān)聽端口是27655,攻擊者一般借助telnet通過TCP連接到master程序所在計(jì)算機(jī)。入侵檢測軟件能夠搜索到使用TCP (類型6)并連接到端口27655的數(shù)據(jù)流。
3、所有從master程序到代理程序的通訊都包含字符串"l44",并且被引導(dǎo)到代理的UDP 端口27444。入侵檢測軟件檢查到UDP 端口27444的連接,如果有包含字符串l44的信息包被發(fā)送過去,那么接受這個(gè)信息包的計(jì)算機(jī)可能就是DDoS代理。
4、Master和代理之間通訊受到口令的保護(hù),但是口令不是以加密格式發(fā)送的,因此它可以被“嗅探”到并被檢測出來。使用這個(gè)口令以及來自Dave Dittrich的trinot腳本http://staff.washington.edu/dittrich/misc/trinoo.analysis,要準(zhǔn)確地驗(yàn)證出trinoo代理的存在是很可能的。
一旦一個(gè)代理被準(zhǔn)確地識(shí)別出來,trinoo網(wǎng)絡(luò)就可以安裝如下步驟被拆除:
在代理daemon上使用"strings"命令,將master的IP地址暴露出來。
與所有作為trinoo master的機(jī)器管理者聯(lián)系,通知它們這一事件。
在master計(jì)算機(jī)上,識(shí)別含有代理IP地址列表的文件(默認(rèn)名"..."),得到這些計(jì)算機(jī)的IP地址列表。
向代理發(fā)送一個(gè)偽造"trinoo"命令來禁止代理。通過crontab 文件(在UNIX系統(tǒng)中)的一個(gè)條目,代理可以有規(guī)律地重新啟動(dòng), 因此,代理計(jì)算機(jī)需要一遍一遍地被關(guān)閉,直到代理系統(tǒng)的管理者修復(fù)了crontab文件為止。
檢查master程序的活動(dòng)TCP連接,這能顯示攻擊者與trinoo master程序之間存在的實(shí)時(shí)連接。
如果網(wǎng)絡(luò)正在遭受trinoo攻擊,那么系統(tǒng)就會(huì)被UDP 信息包所淹沒。Trinoo從同一源地址向目標(biāo)主機(jī)上的任意端口發(fā)送信息包。探測trinoo就是要找到多個(gè)UDP信息包,它們使用同一來源IP地址、同一目的IP地址、同一源端口,但是不同的目的端口。
在http://www.fbi.gov/nipc/trinoo.htm上有一個(gè)檢測和根除trinoo的自動(dòng)程序。
三、何為"Tribal Flood Network" 和 "TFN2K",如何抵御?
Tribe Flood Network與trinoo一樣,使用一個(gè)master程序與位于多個(gè)網(wǎng)絡(luò)上的攻擊代理進(jìn)行通訊。TFN可以并行發(fā)動(dòng)數(shù)不勝數(shù)的DoS攻擊,類型多種多樣,而且還可建立帶有偽裝源IP地址的信息包。 可以由TFN發(fā)動(dòng)的攻擊包括:UDP沖擊、TCP SYN 沖擊、ICMP回音請(qǐng)求沖擊以及 ICMP 廣播。
以下是TFN DDoS 攻擊的基本特性以及建議的抵御策略:
1、發(fā)動(dòng)TFN時(shí),攻擊者要訪問master程序并向它發(fā)送一個(gè)或多個(gè)目標(biāo)IP地址,然后Master程序繼續(xù)與所有代理程序通訊,指示它們發(fā)動(dòng)攻擊。
TFN Master程序與代理程序之間的通訊使用ICMP回音應(yīng)答信息包,實(shí)際要執(zhí)行的指示以二進(jìn)制形式包含在16位ID域中。ICMP (Internet控制信息協(xié)議)使信息包協(xié)議過濾成為可能。通過配置路由器或入侵檢測系統(tǒng),不允許所有的ICMP回音或回音應(yīng)答信息包進(jìn)入網(wǎng)絡(luò),就可以達(dá)到挫敗TFN代理的目的。但是這樣會(huì)影響所有使用這些功能的Internet程序,比如ping。
TFN Master程序讀取一個(gè)IP地址列表,其中包含代理程序的位置。這個(gè)列表可能使用如"Blowfish"的加密程序進(jìn)行了加密。如果沒有加密的話,就可以從這個(gè)列表方便地識(shí)別出代理信息。
2、用于發(fā)現(xiàn)系統(tǒng)上TFN 代理程序的程序是td,發(fā)現(xiàn)系統(tǒng)上master程序的程序是tfn。TFN 代理并不查看ICMP回音應(yīng)答信息包來自哪里,因此使用偽裝ICMP 信息包沖刷掉這些過程是可能的。
TFN2K是TFN的一個(gè)更高級(jí)的版本,它“修復(fù)”了TFN的某些缺點(diǎn):
1、在TFN2K下,Master與代理之間的通訊可以使用許多協(xié)議,例如TCP、UDP或ICMP,這使得協(xié)議過濾不可能實(shí)現(xiàn)。
2、TFN2K能夠發(fā)送破壞信息包,從而導(dǎo)致系統(tǒng)癱瘓或不穩(wěn)定。
3、TFN2K偽造IP源地址,讓信息包看起來好像是從LAN上的一個(gè)臨近機(jī)器來的,這樣就可以挫敗出口過濾和入口過濾。
4、由于TFN2K是最近剛剛被識(shí)破的,因此還沒有一項(xiàng)研究能夠發(fā)現(xiàn)它的明顯弱點(diǎn)。
在人們能夠?qū)FN2K進(jìn)行更完全的分析之前,最好的抵御方法是:
加固系統(tǒng)和網(wǎng)絡(luò),以防系統(tǒng)被當(dāng)做DDoS主機(jī)。
在邊界路由器上設(shè)置出口過濾,這樣做的原因是或許不是所有的TFN2K源地址都用內(nèi)部網(wǎng)絡(luò)地址進(jìn)行偽裝。
請(qǐng)求上游供應(yīng)商配置入口過濾。
四、何為 "stacheldraht",如何防范?
Stacheldraht也是基于TFN和trinoo一樣的客戶機(jī)/服務(wù)器模式,其中Master程序與潛在的成千個(gè)代理程序進(jìn)行通訊。在發(fā)動(dòng)攻擊時(shí),侵入者與master程序進(jìn)行連接。Stacheldraht增加了以下新功能:攻擊者與master程序之間的通訊是加密的,以及使用rcp (remote copy,遠(yuǎn)程復(fù)制)技術(shù)對(duì)代理程序進(jìn)行更新。
Stacheldraht 同TFN一樣,可以并行發(fā)動(dòng)數(shù)不勝數(shù)的DoS攻擊,類型多種多樣,而且還可建立帶有偽裝源IP地址的信息包。Stacheldraht所發(fā)動(dòng)的攻擊包括UDP 沖擊、TCP SYN 沖擊、ICMP 回音應(yīng)答沖擊以及ICMP播放。
以下是Stacheldraht DDoS攻擊的基本特征以及建議采取的防御措施:
1、在發(fā)動(dòng)Stacheldraht攻擊時(shí),攻擊者訪問master程序,向它發(fā)送一個(gè)或多個(gè)攻擊目標(biāo)的 IP地址。Master程序再繼續(xù)與所有代理程序進(jìn)行通訊,指示它們發(fā)動(dòng)攻擊。
Stacheldraht master程序與代理程序之間的通訊主要是由ICMP 回音和回音應(yīng)答信息包來完成的。配置路由器或入侵檢測系統(tǒng),不允許一切ICMP回音和回音應(yīng)答信息包進(jìn)入網(wǎng)絡(luò),這樣可以挫敗Stacheldraht代理。但是這樣會(huì)影響所有要使用這些功能的Internet程序,例如ping。
2、代理程序要讀取一個(gè)包含有效master程序的IP地址列表。這個(gè)地址列表使用了Blowfish加密程序進(jìn)行加密。代理會(huì)試圖與列表上所有的master程序進(jìn)行聯(lián)系。
【編輯推薦】