關于冰盾 | 使用條款 | 網站地圖
 
DDOS與DDOS追蹤的介紹
DDOS與DDOS追蹤的介紹
作者:冰盾防火墻 網站:www.gjmudd.tw 日期:2015-01-06
 

我很早前研究anti-DDOS,其中就有追蹤一塊,可以在這里介紹一些,但是實際上只有很少技術被投入使用了,大多數都還是依然是實驗室的東西,已經投入實用的我單獨提出來。

追蹤技術有:

·鏈級測試 (Link Testing)

多數的追蹤技術都是從最接近victim的路由器開始,然后開始檢查上流數據鏈,直到找到攻擊流量發起源。理想情況下,這種過程可以遞歸執行直到找到攻擊源頭。這種技術假設攻擊一直保持活動直到完成追蹤,因此很難在攻擊結束后、間歇性攻擊或對追蹤進行攻擊調整等情況進行追蹤。包括下面兩種鏈級測試:

1、Input debugging 
很多路由器都提供Input debugging特性,這能讓管理員在一些出口端過濾特定的數據包,而且能決定可以達到那些入口。這種特性就被用來作traceback:首先,victim在確定被攻擊時,要從所有的數據包中描述出攻擊包標志。通過這些標志,管理員在上流的出口端配置合適的Input debugging。這個過濾會體現出相關的input端口,這個過濾過程可以一直朝上流進行,直到能夠到達最初的源頭。當然這種工作很多依靠手工,一些國外的ISP聯合開發的工具能夠在它們的網絡中進行自動的追蹤。 
但是這種辦法最大的問題就是管理花費。聯系多個ISP并同他們合作需要時間。因此這種辦法需要大量的時間,而且幾乎不可能完成。

2、Controlled flooding 
Burch和 Cheswick提出的方法。這種方法實際上就是制造flood攻擊,通過觀察路由器的狀態來判斷攻擊路徑。首先應該有一張上游的路徑圖,當受到攻擊的時候,可以從victim的上級路由器開始依照路徑圖對上游的路由器進行控制的flood,因為這些數據包同攻擊者發起的數據包同時共享了路由器,因此增加了路由器丟包的可能性。通過這種沿路徑圖不斷向上進行,就能夠接近攻擊發起的源頭。 
這種想法很有獨創性而且也很實際,但是有幾個缺點和限制。最大的缺點就是這種辦法本身就是一種DOS攻擊,會對一些信任路徑也進行DOS,這個缺點也很難用程序實施。而且,Controlled flooding要求有一個幾乎覆蓋整個網絡的拓撲圖。Burch和 Cheswick也指出,這種辦法很難用于DDOS攻擊的追蹤。這種方法也只能對正在進行攻擊的情況有效。

現在CISCO的路由器的CEF(Cisco Express Forwarding)實際上就是一種鏈級測試,也就是說,要用CEF追蹤到最終源頭的話,那么整個鏈路上的路由器都得使用CISCO的路由器,而且支持CEF。就得要Cisco 12000或者7500系列的路由器了。(不知道現在怎么樣,沒查最新的CISCO文檔),但是要用這個功能是很費資源的。

在CISCO路由器(支持ip source-track的路由器)上IP源追蹤以下面的步驟實現:

1、當發現目的被攻擊,打開整個路由器上對目的地址的追蹤,輸入命令 ip source-track。 
2、每個Line Card為要追蹤的目的地址創建特定的CEF隊列。對于line card或者端口適配器用特定的ASIC作包轉換,CEF隊列用于將包置入line card或者port adapter的CPU。 
3、每個line card CPU收集關于要追蹤目的的通訊信息 
4、所產生的數據定時導出到路由器。要現實這些流信息的摘要,輸入命令:show ip source-track summary。要顯示每個輸入接口的更多的細節信息,輸入命令show ip source-track 
5、統計被追蹤的IP地址的細目表。這可用于上游路由器繼續分析。可以在當前路由器上關閉IP source tracker,輸入命令:no ip source-track。然后在上游路由器上再打開這個功能。 
6、重復步驟1到5,直到找到攻擊源。

這差不多能夠解答securitytest提的了吧。


·Logging

這種方法通過在主路由器上記錄數據包,然后通過數據采集技術來決定這些數據包的穿越路徑。雖然這種辦法可以用于對攻擊后的數據進行追蹤,它也有很明顯的缺點,比如可能要求大量的資源(或者取樣),并且對付大量數據的綜合問題。

·ICMP追蹤

這種方法主要依靠路由器自身產生的ICMP跟蹤消息。每個路由器都有很低的概率(比如:1/200000),數據包可能會把內容復制到一個ICMP消息包中,并且包含了到臨近源地址的路由器信息。當flood攻擊開始的時候,victim就可以利用這些ICMP消息來重新構造攻擊者的路徑。這種方式同上面介紹的比較,有很多優點,但是也有一些缺點。比如:ICMP可能被從普通流量中過濾掉,并且,ICMP追蹤消息還要同input debugging特性(將數據包同數據包input端口和/或者要到達的MAC地址關聯的能力)相關,但是,可能一些路由器就沒有這樣的功能。同時,這種辦法還必須有一種辦法來處理攻擊者可能發送的偽造ICMP Traceback消息。也就是說,我們可以把這種方式同其他辦法一起使用來讓跟蹤機制更有效。(IETF iTrace)

這就是yawl說的IETF的工作組研究的內容,當時我給Bellovin提出一些意見,但是沒有得到答案。比如: 
1、盡管是隨機1/20000發送追蹤包,但是,對于偽造TRACEBACK的包情況下,對路由器的效率將有一定的影響。 
2、追蹤包的認證并不能解決偽造問題。因為要判別是否是偽造包,那么必須去認證,加大了工作量。 
3、即便使用NULL 認證,同樣能夠達到目的(有認證的情況下)。而且也不會有太大影響。 
4、itrace的本來目的是去對付DOS的欺騙源問題,但是現在的設計仿佛讓我們更關心的是路徑而不是源頭。難道路徑比源頭更對我們解決DOS問題有用么?

等等,還有一堆問題,都是我覺得iTrace將會面臨的很難處理的問題。


·數據包標記

這種技術構想(因為現在沒有實用)就是要在現有協議的基礎上進行修改,而且修改很小,不象iTrace的想法,個人認為比iTrace更好一些。這種追蹤技術有很多細節研究,形成多種標記算法,但是最好的還是經過壓縮的邊緣取樣算法。

這種技術原理就是修改IP頭中,重載其中的identification域。也就是如果沒有使用到identification域的話,將這個域定義為標記。

將16bit的idnetification分成:3bit的offset(可允許8次分片),5bit的distance,以及8bit的邊緣分片。5bit的distance可以允許31級路由,這對于目前的網絡來說已經足夠了。

標記和重構路徑的算法是:

Marking procedure at router R: 
let R = BitIntereave(R, Hash(R)) 
let k be the number of none-overlappling fragments in R 
for each packet w 
let x be a random number from [0..1) 
if x<p then 
let o be a random integer from [0..k-1] 
let f be the fragment of R at offset o 
write f into w.frag 
write 0 into w.distance 
wirte o into w.offset 
else 
if w.distance=0 then 
let f be the fragment of R at offset w.offset 
write f⊕w.frag into w.frag 
increment w.distance

 

Path reconstruction procedure at victim v:

let FragTbl be a table of tuples(frag,offset,distance) 
let G be a tree with root v 
let edges in G be tuples(start,end,distance) 
let maxd:=0 
let last:=v 
for each packet w from attacker 
FragTbl.Insert(w.frag,w.offset,w.distance) 
if w.distance>maxd then 
maxd:=w.distance 
for d:=0 to maxd 
for all ordered combinations of fragments at distance d 
construct edge z 
if d!=0 then 
z:= z⊕last 
if Hash(EvenBits(z))=OddBits(z) then 
insert edge(z,EvenBits(z),d) into G 
last:=EvenBits(z); 
remove any edge(x,y,d) with d!=distance from x to v in G 
extract path(Ri..Rj) by enumerating acyclic paths in G

實驗室情況下這種標記技術只需要victim能夠抓到1000到2500個包就能夠重構整個路徑了,應該說結果是很好的,但是沒有投入到實用中,主要是需要路由器廠商和ISP支持。

差不多ip traceback的已經實用的技術和實驗室技術,或者已經死掉的,就主要是這些,雖然還有其他的一些。

已經很長時間沒有搞DDOS防范這一塊了,國內也有黑洞這樣的產品,以前也了解一些國外的,比如floodguard、toplayer、radware等。受securitytest提示,又了解到riverhead的,我就立刻看了看他們的白皮書。

因為前面bigfoot提出的主要是ip traceback的題目,securitytest也又到防御的問題。針對DDOS的問題ip traceback和Mitigation是不一樣的,ip traceback主要是進行追蹤,因為DDOS主要是spoof,而很難判別到真正的攻擊源,而且如果能夠很容易找到真正的攻擊源,不僅僅對付DDOS,對付其他的攻擊也很有幫助,比如法律問題等。而Mitigation是從受害者的角度,因為victim一般是沒有能力去調查整個網絡,找出source,而且,即便能夠找到source,也得有法律或者一些溝通的手段來讓source停下來(攻擊的source并不是source的攻擊者),這種意味著大量的溝通、跨ISP、跨過等類似的非技術問題,所以,通常很難處理。但是從victim的角度來說,必須得有所解決辦法,所以就需要Mitigation。

這又正好是我以前研究的范圍,所以,又會說出一大堆。對于Mitigation,其實,技術的根本就是要能從眾多的流量中將攻擊包和合法包分離出來,把攻擊包拋棄掉,讓合法包通過就性了。這就是根本,所以實際運用的技術就是要如何盡可能識別出攻擊包,而又盡可能小地影響正常包。這又得來分析DDOS(甚至DOS)的方式和原理。基本又下面幾種形式: 
1、系統漏洞形成的DOS。這種特征固定,檢測和防御也容易 
2、協議攻擊(一些跟系統處理相關,一些跟協議相關)。比如SYN FLOOD,碎片等。特征還好識別,檢測和防御相對容易。比如SYN COOKIE、SYN CACHE,碎片可以拋棄。比如land攻擊、smurf、teardrop等
3、bandwidth FLOOD。垃圾流量堵塞帶寬,特征不好識別,防御不容易 
4、基本合法的FLOOD

 

 
最新內容:
IPSec打造FreeBSD下信息安全傳輸[2015-01-06]
拒絕服務攻擊原理及解決方法[2015-01-06]
如何防范DDoS攻擊[2015-01-06]
Cisco路由器上如何防止DDoS[2015-01-06]
修改注冊表提高Win2000抗拒絕服務攻擊能力[2015-01-06]
從程序詳解拒絕服務攻擊[2015-01-06]
相關內容:
广东26选5计划群

合作伙伴: 黑基網 補天科技 威盾科技 站長下載 新飛金信 北京電信 ZOL應用下載
中華人民共和國增值電信業務經營許可證京ICP備14024464 公安備案號 京1081234 
版權所有©2003-2014 冰盾防火墻  www.gjmudd.tw 法律聲明
總機:(010)51661195