一、 簡述
隨著網絡技術和網絡應用的發展,網絡安全問題顯得越來越重要,已經被提到一個很高高的高度。DDOS攻擊隨著網際網路的快速發展,也日益猖獗,從原來的的幾兆、幾十兆,到現在的幾十G、幾十T的流量攻擊,形成了一個很大的利益鏈。DDOS攻擊由於容易實施、難以防範、難以追蹤等而成為最難解決的網絡安全問題之一,給網絡社會帶來了極大的危害。同時,拒絕服務攻擊也將是未來信息戰的重要手段之一。
1、什麼是拒絕服務攻擊(DOS)
DoS是Denial of Service的簡稱,即拒絕服務,造成DoS的攻擊行為被稱為DoS攻擊,其目的是使計算機或網絡無法提供正常的服務。最常見的DoS攻擊有計算機網絡帶寬攻擊和連通性攻擊。帶寬攻擊指以極大的通信量衝擊網絡,使得所有可用網絡資源都被消耗殆盡,最後導致合法的用戶請求就無法通過。連通性攻擊指用大量的連接請求衝擊計算機,使得所有可用的作業系統資源都被消耗殆盡,最終計算機無法再處理合法用戶的請求。
2、什麼是分布式拒絕服務攻擊(DDOS)
DDoS攻擊手段是在傳統的DoS攻擊基礎之上產生的一類攻擊方式。單一的DoS攻擊一般是採用一對一方式的,當攻擊目標CPU速度低、內存小或者網絡帶寬小等等各項性能指標不高它的效果是明顯的。隨著計算機與網絡技術的發展,計算機的處理能力迅速增長,內存大大增加,同時也出現了千兆級別的網絡,這使得DoS攻擊的困難程度加大了-目標對惡意攻擊包的"消化能力"加強了不少,例如你的攻擊軟體每秒鐘可以發送3,000個攻擊包,但我的主機與網絡帶寬每秒鐘可以處理10,000個攻擊包,這樣一來攻擊就不會產生什麼效果。
這時侯分布式的拒絕服務攻擊手段(DDoS)就應運而生了。理解了DoS攻擊的話,它的原理就很簡單。如果說計算機與網絡的處理能力加大了10倍,用一臺攻擊機來攻擊不再能起作用的話,攻擊者使用10臺攻擊機同時攻擊呢?用100臺呢?DDoS就是利用更多的傀儡機來發起進攻,以比從前更大的規模來進攻受害者。
分布式拒絕服務(DDoS:Distributed Denial of Service)攻擊指藉助於客戶/伺服器技術,將多個計算機聯合起來作為攻擊平臺,對一個或多個目標發動DoS攻擊,從而成倍地提高拒絕服務攻擊的威力。通常,攻擊者使用一個偷竊帳號將DDoS主控程序安裝在一個計算機上,在一個設定的時間主控程序將與大量代理程序通訊,代理程序已經被安裝在Internet上的許多計算機上。代理程序收到指令時就發動攻擊。利用客戶/伺服器技術,主控程序能在幾秒鐘內激活成百上千次代理程序的運行
高速廣泛連接的網絡給大家帶來了方便,也為DDoS攻擊創造了極為有利的條件。在低速網絡時代時,黑客佔領攻擊用的傀儡機時,總是會優先考慮離目標網絡距離近的機器,因為經過路由器的跳數少,效果好。而現在電信骨幹節點之間的連接都是以G為級別的,大城市之間更可以達到2.5G的連接,這使得攻擊可以從更遠的地方或者其他城市發起,攻擊者的傀儡機位置可以在分布在更大的範圍,選擇起來更靈活了。
3、被DDoS攻擊時的現象
· 被攻擊主機上有大量等待的TCP連接
· 網絡中充斥著大量的無用的數據包,源地址為假
· 製造高流量無用數據,造成網絡擁塞,使受害主機無法正常和外界通訊
· 利用受害主機提供的服務或傳輸協議上的缺陷,反覆高速的發出特定的服務請求,使受害主機無法及時處理所有正常請求
· 嚴重時會造成系統死機
4、攻擊運行原理
如圖1.1,一個比較完善的DDoS攻擊體系分成四大部分,先來看一下最重要的第2和第3部分:它們分別用做控制和實際發起攻擊。請注意控制機與攻擊機的區別,對第4部分的受害者來說,DDoS的實際攻擊包是從第3部分攻擊傀儡機上發出的,第2部分的控制機只發布命令而不參與實際的攻擊。對第2和第3部分計算機,黑客有控制權或者是部分的控制權,並把相應的DDoS程序上傳到這些平臺上,這些程序與正常的程序一樣運行並等待來自黑客的指令,通常它還會利用各種手段隱藏自己不被別人發現。在平時,這些傀儡機器並沒有什麼異常,只是一旦黑客連接到它們進行控制,並發出指令的時候,攻擊傀儡機就成為害人者去發起攻擊了。
一般情況下黑客不直接去控制攻擊傀儡機,而要從控制傀儡機上中轉一下,這就導致DDoS攻擊難以追查。攻擊者使用的傀儡機越多,他實際上提供給受害者的分析依據就越多。佔領一臺機器後,高水平的攻擊者會首先做兩件事:1. 考慮如何留好後門(我以後還要回來的哦)!2. 如何清理日誌。這就是擦掉腳印,不讓自己做的事被別人查覺到。有些攻擊者會把日誌全都刪掉,但這樣的話網管員發現日誌都沒了就會知道受到了攻擊,雖然無法再從日誌發現線索。狡猾的攻擊者會挑有關自己的日誌項目刪掉,讓人看不到異常的情況。這樣可以長時間地利用傀儡機。在傀儡機上清理日誌是一項龐大的工程,即使在有很好的日誌清理工具的幫助下,黑客也是對這個任務很頭痛的。這就導致了有些攻擊機弄得不是很乾淨,通過它上面的線索找到了控制它的上一級計算機,這上級的計算機如果是黑客自己的機器,那麼他就會被揪出來了。但如果這是控制用的傀儡機的話,黑客自身還是安全的。控制傀儡機的數目相對很少,一般一臺就可以控制幾十臺攻擊機,清理一臺計算機的日誌對黑客來講就輕鬆多了,這樣從控制機再找到黑客的可能性也小多了。
二、 DDoS的類型及原理
DDOS攻擊主要分為三類:流量型攻擊;連接型攻擊;特殊協議缺陷。
1、 Ip lood
攻擊原理:此攻擊以多個隨機的源主機地址向目的主機發送超大量的隨機或特定的IP包,造成目標主機不能處理其他正常的IP報文。
原理圖:
2、 Ip Frag Flood
攻擊原理:攻擊者構造的分片報文,但是不向接收方發送最後一個分片報文,導致接收方要為所有的分片報文分配內存空間,可由於最後一個分片報文永遠不會達到,接收方的內存得不到及時的釋放,當攻擊者這種攻擊的分片報文發送的足夠多、足夠快,很容易佔滿接收方內存,讓接收方無內存資源處理正常的業務,從而達到攻擊效果。
原理圖:
3、 Icmp Flood
攻擊原理:icmpflood也就是ping flood,此攻擊在短時間內向目的主機發送大量的ping的echo報文,主機不斷響應,造成網絡堵塞、主機資源耗盡。
原理圖:
4、 Syn Flood
攻擊原理:依據tcp建立連接的三次握手。此攻擊以多個隨機的源主機地址向目的主機發送syn包,而在收到目的主機的syn+ack包後並不回應,目的主機就為這些源主機建立大量的連接隊列,由於沒有收到ack一直維護這些連接隊列,造成資源的大量消耗而不能向正常的請求提供服務。與之類似的攻擊方式還有ackflood、s-ackflood、finflood、rstflood、tcpflood 。
原理圖:
5、 Udp Flood
攻擊原理:此攻擊在短時間那模擬隨機的源埠地址向隨機的目的埠發送大量的udp包,造成目標主機不能處理其他udp的請求。
原理圖:
6、 Udp 反射 Flood
攻擊原理:有時被保護伺服器也有同外部伺服器進行udp交互的需求,攻擊者就會利用此交互對被保護伺服器進行udp反射放大攻擊。此攻擊在短時間那冒充被攻擊地址向外部公用的伺服器發送大量的udp請求包,外部伺服器收到虛假的udp請求就會回復大量的回應包給被攻擊伺服器地址,造成目標主機被保護伺服器不能處理其他正常的交互流。
原理圖:
7、 Ipscan
攻擊原理:攻擊者通過IP掃描可以迅速伺服器網絡情況及伺服器主機信息,為後面的攻擊做好準備。通過發送IP掃描探測包探測存在的伺服器主機。
原理圖:
8、 Portscan
攻擊原理:當一個源ip地址在規定的時間間隔內將tcp syn包發送給一個目標地址的多個不同埠時,就是一次埠掃描,目的是掃描可用的服務,從而識別目標的服務。
原理圖:
9、 Smurf
攻擊原理:攻擊向一個子網的廣播地址發送icmp echo 包,並且將源地址設置為要攻擊的子網中的地址,從而,子網中所有的主機都向被攻擊的主機回應icmp reply包,使主機受到攻擊。
原理圖:
10、 ping of death
攻擊原理:根據tcp/ip的規範,一個包的長度最大為65535位元組。攻擊向一個目標地址發送icmp echo包的大於65535位元組(這需要多個分片疊加才能做到),當主機重組這些分片發現包大於65535位元組時,就會導致宕機。
原理圖:
11、 winNuke
攻擊原理:攻擊者先和目標主機建立連接(目標埠為139),然後向目標主機發送目標埠為139 tcp urg位置1的包,這樣就產生了netbios碎片重疊,導致運行windows的機器崩潰。
原理圖:
12、 tear of drop
攻擊原理:ip數據包在網絡中傳遞時,數據包因為路徑MTU會分為更小的分片,攻擊者發送兩片分片,第一個分片的偏移量為0,長度為N,第二個分片的偏移量小於N,目標主機在重組這些分片時,tcp/ip堆棧會分配超乎尋常的巨大資源,從而造成系統資源的缺乏,嚴重的機器重啟。
原理圖: