upside
反病毒 反詐騙 反虐犬
|
分享:
▼
x0
|
[資訊教學] 典型DoS攻擊原理及抵禦措施
典型DoS攻擊原理及抵禦措施 smurf、trinoo、tfn、tfn2k以及stacheldraht是比較常見的DoS攻擊程式,本文將對它們的原理以及抵禦措施進行論述,以幫助管理員有效地抵禦DoS風暴攻擊,維護站點安全。
一、何為"smurf 攻擊",如何抵禦?
Smurf 是一種簡單但有效的 DDoS 攻擊技術,它利用了ICMP(Internet控制資訊協定)。ICMP在Internet上用於錯誤處理和傳遞控制資訊。它的功能之一是與主機聯繫,通 過發送一個“回音請求”(echorequest)資訊包看看主機是否“活著”。最普通的ping程式就使用了這個功能。Smurf是用一個偷來的帳號安 裝到一個電腦上的,然後用一個偽造的源位址連續ping一個或多個電腦網路,這就導致所有電腦所回應的那個電腦並不是實際發送這個資訊包的那個計 算機。這個偽造的源位址,實際上就是攻擊的目標,它將被極大數量的響應信息量所淹沒。對這個偽造資訊包做出回應的電腦網路就成為攻擊的不知情的同謀。
下面是Smurf DDoS 攻擊的基本特性以及建議採用的抵禦策略:
1、Smurf的攻擊平臺:smurf為了能工作,必須要找到攻擊平臺,這個平臺就是:其路由器上啟動了 IP廣播功能。這個功能允許 smurf 發送一個偽造的ping資訊包,然後將它傳播到整個電腦網路中。
2、為防止系統成為 smurf攻擊的平臺, 要將所有路由器上IP的廣播功能都禁止。一般來講,IP廣播功能並不需要。
3、攻擊者也有可能從LAN內部發動一個smurf攻擊,在這種情況下,禁止路由器上的IP 廣播功能就沒有用了。為了避免這樣一個攻擊,許多作業系統都提供了相應設置,防止電腦對IP廣播請求做出回應。
4、如果攻擊者要成功地利用你成為攻擊平臺,你的路由器必須要允許資訊包以不是從你的內網中產生的源位址離開網路。配置路由器,讓它將不是由你的內網中生成的資訊包過濾出去,這是有可能做到的。這就是所謂的網路出口篩檢程式功能。
5、ISP則應使用網路入口篩檢程式,以丟掉那些不是來自一個已知範圍內IP位址的資訊包。
6、 挫敗一個smurf 攻擊的最簡單方法對邊界路由器的回音應答(echoreply)資訊包進行過濾,然後丟棄它們,這樣就能阻止“命中”Web伺服器和內網。對於那些使用 Cisco路由器的人,另一個選擇是CAR(Committed Access Rate,承諾訪問速率)。
丟棄所有的回音應答資訊 包能使網路避免被淹沒,但是它不能防止來自上游供應者通道的交通堵塞。如果你成為了攻擊的目標,就要請求ISP對回音應答資訊包進行過濾並丟棄。 如果不想完全禁止回音應答,那麼可以有選擇地丟棄那些指向你的公用Web 伺服器的回音應答資訊包。CAR技術由Cisco 開發,它能夠規定出各種資訊包類型使用的帶寬的最大值。例如,使用CAR,我們就可以精確地規定回音應答資訊包所使用的帶寬的最大值。 二、何為 "trinoo",如何抵禦它?
trinoo 是複雜的 DDoS攻擊程式,它使用“master”程式對實際實施攻擊的任何數量的“代理”程式實現自動控制。攻擊者連接到安裝了master程式的電腦,啟動 master程式,然後根據一個IP位址的列表,由master程式負責啟動所有的代理程式。接著,代理程式用UDP資訊包衝擊網路,從而攻擊目標。在攻 擊之前,侵入者為了安裝軟體,已經控制了裝有master程式的電腦和所有裝有代理程式的電腦。
下面是trinoo DDoS 攻擊的基本特性以及建議採用的抵禦策略:
1、在master程式與代理程式的所有通訊中,trinoo都使用了UDP協定。入侵檢測軟體能夠尋找使用UDP協定的資料流程(類型17)。
2、Trinoo master程式的監聽埠是27655, 攻擊者一般借助telnet通過TCP連接到master程式所在電腦。入侵檢測軟體能夠搜索到使用TCP (類型6)並連接到埠27655的資料流程。
3、所有從master程式到代理程式的通訊都包含字串"l44",並且被引導到代理的UDP 埠27444。入侵檢測軟體檢查到UDP 埠27444的連接,如果有包含字串l44的資訊包被發送過去,那麼接受這個資訊包的電腦可能就是DDoS代理。
4、Master和代理之間通訊受到口令的保護,但是口令不是以加密格式發送的,因此它可以被“嗅探”到並被檢測出來。使用這個口令以及來自Dave Dittrich的trinot腳本,要準確地驗證出trinoo代理的存在是很可能的。
一旦一個代理被準確地識別出來,trinoo網路就可以安裝如下步驟被拆除:
•在代理daemon上使用"strings"命令,將master的IP位址暴露出來。
•與所有作為trinoo master的機器管理者聯繫,通知它們這一事件。
•在master電腦上,識別含有代理IP位址列表的文件(默認名"..."),得到這些電腦的IP位址列表。
•向代理發送一個偽造"trinoo"命令來禁止代理。通過crontab 檔(在UNIX系統中)的一個條目,代理可以有規律地重新啟動, 因此,代理電腦需要一遍一遍地被關閉,直到代理系統的管理者修復了crontab檔為止。
•檢查master程式的活動TCP連接,這能顯示攻擊者與trinoo master程式之間存在的即時連接。
•如果網路正在遭受trinoo攻擊,那麼系統就會被UDP 資訊包所淹沒。Trinoo從同一源位址向目標主機上的任意埠發送資訊包。探測trinoo就是要找到多個UDP資訊包,它們使用同一來源IP位址、同一目的IP位址、同一源埠,但是不同的目的埠。 三、何為"Tribal Flood Network" 和 "TFN2K",如何抵禦?
Tribe Flood Network與trinoo一樣,使用一個master程式與位於多個網路上的攻擊代理進行通訊。TFN可以並行發動數不勝數的DoS攻擊,類型多種多 樣,而且還可建立帶有偽裝源IP位址的資訊包。 可以由TFN發動的攻擊包括:UDP衝擊、TCP SYN 衝擊、ICMP回音請求衝擊以及 ICMP 廣播。
以下是TFN DDoS 攻擊的基本特性以及建議的抵禦策略:
1、發動TFN時,攻擊者要訪問master程式並向它發送一個或多個目標IP位址,然後Master程式繼續與所有代理程式通訊,指示它們發動攻擊。
TFN Master程式與代理程式之間的通訊使用ICMP回音應答資訊包,實際要執行的指示以二進位形式包含在16位元ID域中。ICMP(Internet控制 資訊協定)使資訊包協定過濾成為可能。通過配置路由器或入侵檢測系統,不允許所有的ICMP回音或回音應答資訊包進入網路,就可以達到挫敗TFN代理的目 的。但是這樣會影響所有使用這些功能的Internet程式,比如ping。
TFN Master程式讀取一個IP位址列表,其中包含代理程式的位置。這個列表可能使用如"Blowfish"的加密程式進行了加密。如果沒有加密的話,就可以從這個列表方便地識別出代理資訊。
2、用於發現系統上TFN 代理程式的程式是td, 發現系統上master程式的程式是tfn。TFN 代理並不查看ICMP回音應答資訊包來自哪里,因此使用偽裝ICMP 資訊包沖刷掉這些過程是可能的。
TFN2K是TFN的一個更高級的版本,它“修復”了TFN的某些缺點:
1、在TFN2K下,Master與代理之間的通訊可以使用許多協定,例如TCP、UDP或ICMP,這使得協議過濾不可能實現。
2、TFN2K能夠發送破壞資訊包,從而導致系統癱瘓或不穩定。
3、TFN2K偽造IP源位址,讓資訊包看起來好像是從LAN上的一個臨近機器來的,這樣就可以挫敗出口過濾和入口過濾。
4、由於TFN2K是最近剛剛被識破的,因此還沒有一項研究能夠發現它的明顯弱點。
在人們能夠對TFN2K進行更完全的分析之前,最好的抵禦方法是:
•加固系統和網路,以防系統被當做DDoS主機。
•在邊界路由器上設置出口過濾,這樣做的原因是或許不是所有的TFN2K源位址都用內部網路位址進行偽裝。
•請求上游供應商配置入口過濾。 副
四、何為 "stacheldraht",如何防範?
Stacheldraht 也是基於TFN和trinoo一樣的客戶機/伺服器模式,其中Master程式與潛在的成千個代理程式進行通訊。在發動攻擊時,侵入者與master程式 進行連接。Stacheldraht增加了以下新功能:攻擊者與master程式之間的通訊是加密的,以及使用rcp(remote copy,遠端複製)技術對代理程式進行更新。
Stacheldraht 同TFN一樣,可以並行發動數不勝數的DoS攻擊,類型多種多樣,而且還可建立帶有偽裝源IP位址的資訊包。Stacheldraht所發動的攻擊包括UDP 衝擊、TCP SYN 衝擊、ICMP 回音應答衝擊以及ICMP播放。
以下是Stacheldraht DDoS攻擊的基本特徵以及建議採取的防禦措施:
1、在發動Stacheldraht攻擊時,攻擊者訪問master程式,向它發送一個或多個攻擊目標的 IP位址。Master程式再繼續與所有代理程式進行通訊,指示它們發動攻擊。
Stacheldraht master程式與代理程式之間的通訊主要是由ICMP回音和回音應答資訊包來完成的。配置路由器或入侵檢測系統,不允許一切ICMP回音和回音應答資訊 包進入網路,這樣可以挫敗Stacheldraht代理。但是這樣會影響所有要使用這些功能的Internet程式,例如ping。
2、代理程式要讀取一個包含有效master程式的IP位址列表。這個位址列表使用了Blowfish加密程式進行加密。代理會試圖與列表上所有的master程式進行聯繫。如果聯繫成功, 代理程式就會進行一個測試,以確定它被安裝到的系統是否會允許它改變"偽造"資訊包的源位址。通過配置入侵檢測系統或使用嗅探器來搜尋它們的簽名資訊,可以探測出這兩個行為。
代 理會向每個master發送一個ICMP 回音應答資訊包,其中有一個ID 域包含值666,一個資料欄包含字串"skillz"。如果master收到了這個資訊包,它會以一個包含值667的ID 域和一個包含字串"ficken"的資料欄來應答。代理和master通過交換這些資訊包來實現週期性的基本接觸。通過對這些資訊包的監控,可以探測出 Stacheldraht。
一旦代理找到了一個有效master程式,它會向master發送一個ICMP資訊包,其中有一個偽造的 源位址,這是在執行一個偽造測試。這個假位址是"3.3.3.3"。如果master收到了這個偽造位址,在它的應答中,用ICMP資訊包資料欄中 的"spoofworks"字串來確認偽造的源地址是奏效的。通過監控這些值,也可以將Stacheldraht檢測出來。
3、Stacheldraht代理並不檢查 ICMP 回音應答資訊包來自哪里,因此就有可能偽造 ICMP 資訊包將其排除。
4、Stacheldraht代理程式與TFN 和 trinoo一樣,都可以用一個C程式來探測。 五、如何配置路由器、防火牆和入侵檢測系統來抵禦常見DDoS攻擊?
1、抵禦 Smurf
•確定你是否成為了攻擊平臺:對不是來自於你的內部網路的資訊包進行監控;監控大容量的回音請求和回音應答資訊包。
•避免被當做一個攻擊平臺:在所有路由器上禁止IP廣播功能;將不是來自於內部網路的資訊包過濾掉。
•減輕攻擊的危害:在邊界路由器對回音應答資訊包進行過濾,並丟棄;對於Cisco路由器,使用CAR來規定回音應答資訊包可以使用的帶寬最大值。
2、抵禦trinoo
•確定你是否成為攻擊平臺:在master程式和代理程式之間的通訊都是使用UDP協定, 因此對使用UDP協議(類別 17)進行過濾;攻擊者用TCP埠27655與master程式連接,因此對使用TCP (類別6)埠 27655連接的流進行過濾;master與代理之間的通訊必須要包含字串"l44" ,並被引導到代理的UDP 埠27444,因此對與UDP埠27444連接且包含字串l44的資料流程進行過濾。
•避免被用作攻擊平臺:將不是來自於你的內部網路的資訊包過濾掉。
•減輕攻擊的危害: 從理論上說,可以對有相同源IP位址的、相同目的IP位址的、相同源埠的、不通目的埠的UDP資訊包序列進行過濾,並丟棄它們。
3、抵禦TFN和TFN2K
•確定你是否成為攻擊平臺:對不是來自於內部網路的資訊包進行監控。
•避免被用作攻擊平臺:不允許一切到你的網路上的ICMP回音和回音應答資訊包,當然這會影響所有要使用這些功能的Internet程式;將不是來源於內部網路的資訊包過濾掉。
4、抵禦Stacheldraht
• 確定你是否成為攻擊平臺:對ID域中包含值666、資料欄中包含字串"skillz"或ID域中包含值667、資料欄中包含字串"ficken"的 ICMP回音應答資訊包進行過濾;對源位址為"3.3.3.3"的ICMP資訊包和ICMP資訊包資料欄中包含字串"spoofworks"的資料流程進 行過濾。
•避免被用作攻擊平臺:不允許一切到你的網路上的ICMP回音和回音應答資訊包, 當然這會影響所有要使用這些功能的Internet程式;將不是來源於內部網路的資訊包過濾掉;將不是來源於內部網路的資訊包過濾掉。
|