原文:
http://bbs.bi...com/ 什麼是DDOS攻擊| 怎麼抵抗DDOS攻擊
一、為何要DDOS?
隨著Internet互聯網路頻寬的增加和多種DDOS駭客工具的不斷發布,DDOS拒絕服務攻擊的實施越來越容易
,DDOS攻擊事件正在成上升趨勢。出於商業競爭、打擊報復和網路敲詐等多種因素,導致很多IDC托管機
房、商業站點、遊戲服務器、聊天網路等網路服務商長期以來一直被DDOS攻擊所困擾,隨之而來的是客戶
投訴、同虛擬主機用戶受牽連、法律糾紛、商業損失等一系列問題,因此,解決DDOS攻擊問題成為網路服
務商必須考慮的頭等大事。
二、什麼是DDOS?
DDOS是英文Distributed Denial of Service的縮寫,意即「分佈式拒絕服務」,那麼什麼又是拒絕服務
(Denial of Service)呢?可以這麼理解,凡是能導致合法用戶不能夠訪問正常網路服務的行為都算是
拒絕服務攻擊。也就是說拒絕服務攻擊的目的非常明確,就是要阻止合法用戶對正常網路資源的訪問,從
而達成攻擊者不可告人的目的。雖然同樣是拒絕服務攻擊,但是DDOS和DOS還是有所不同,DDOS的攻擊策
略側重於通過很多「殭屍主機」(被攻擊者入侵過或可間接利用的主機)向受害主機發送大量看似合法的
網路包,從而造成網路阻塞或服務器資源耗盡而導致拒絕服務,分佈式拒絕服務攻擊一旦被實施,攻擊網
絡包就會猶如洪水般湧向受害主機,從而把合法用戶的網路包淹沒,導致合法用戶無法正常訪問服務器的
網路資源,因此,拒絕服務攻擊又被稱之為「洪水式攻擊」,常見的DDOS攻擊手段有SYN Flood、ACK
Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等;而
DOS則側重於通過對主機特定漏洞的利用攻擊導致網路棧失效、系統崩潰、主機死機而無法提供正常的網
絡服務功能,從而造成拒絕服務,常見的DOS攻擊手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、
Smurf、Bonk、OOB等。就這兩種拒絕服務攻擊而言,危害較大的主要是DDOS攻擊,原因是很難防範,至於
DOS攻擊,通過給主機服務器打補丁或安裝防火牆軟體就可以很好地防範,後文會詳細介紹怎麼對付DDOS
攻擊。
三、被DDOS了嗎?
DDOS的表現形式主要有兩種,一種為流量攻擊,主要是針對網路頻寬的攻擊,即大量攻擊包導致網路
頻寬被阻塞,合法網路包被虛假的攻擊包淹沒而無法到達主機;另一種為資源耗盡攻擊,主要是針對服務
器主機的攻擊,即通過大量攻擊包導致主機的記憶體被耗盡或CPU被內核及應用程序占完而造成無法提供網
絡服務。
如何判斷網站是否遭受了流量攻擊呢?可通過Ping命令來測試,若發現Ping超時或丟包嚴重(假定平
時是正常的),則可能遭受了流量攻擊,此時若發現和你的主機接在同一交換機上的服務器也訪問不了了
,基本可以確定是遭受了流量攻擊。當然,這樣測試的前提是你到服務器主機之間的ICMP協議沒有被路由
器和防火牆等設備屏蔽,否則可採取Telnet主機服務器的網路服務連接埠來測試,效果是一樣的。不過有一
點可以肯定,假如平時Ping你的主機服務器和接在同一交換機上的主機服務器都是正常的,突然都Ping不
通了或者是嚴重丟包,那麼假如可以排除網路故障因素的話則肯定是遭受了流量攻擊,再一個流量攻擊的
典型現象是,一旦遭受流量攻擊,會發現用遠程終端連接網站服務器會失敗。
相對於流量攻擊而言,資源耗盡攻擊要容易判斷一些,假如平時Ping網站主機和訪問網站都是正常的,發
現突然網站訪問非常緩慢或無法訪問了,而Ping還可以Ping通,則很可能遭受了資源耗盡攻擊,此時若在
服務器上用Netstat -na命令觀察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等狀態存在,而
ESTABLISHED很少,則可判定肯定是遭受了資源耗盡攻擊。還有一種屬於資源耗盡攻擊的現象是,Ping自
己的網站主機Ping不通或者是丟包嚴重,而Ping與自己的主機在同一交換機上的服務器則正常,造成這種
原因是網站主機遭受攻擊後導致系統內核或某些應用程序CPU利用率達到100%無法回應Ping命令,其實帶
寬還是有的,否則就Ping不通接在同一交換機上的主機了。
當前主要有三種流行的DDOS攻擊:
1、SYN/ACK Flood攻擊:這種攻擊方法是經典最有效的DDOS方法,可通殺各種系統的網路服務,主要是通
過向受害主機發送大量偽造源IP和源連接埠的SYN或ACK包,導致主機的快取資源被耗盡或忙於發送回應包而
造成拒絕服務,由於源都是偽造的故追蹤起來比較困難,缺點是實施起來有一定難度,需要高頻寬的殭屍
主機支援。少量的這種攻擊會導致主機服務器無法訪問,但卻可以Ping的通,在服務器上用Netstat -na
命令會觀察到存在大量的SYN_RECEIVED狀態,大量的這種攻擊會導致Ping失敗、TCP/IP棧失效,並會出現
系統凝固現象,即不響應鍵盤和滑鼠。普通防火牆大多無法抵禦此種攻擊。
2、TCP全連接攻擊:這種攻擊是為了繞過常規防火牆的檢查而設計的,一般情況下,常規防火牆大多具備
過濾TearDrop、Land等DOS攻擊的能力,但對於正常的TCP連接是放過的,殊不知很多網路服務程序(如:
IIS、Apache等Web服務器)能接受的TCP連接數是有限的,一旦有大量的TCP連接,即便是正常的,也會導
致網站訪問非常緩慢甚至無法訪問,TCP全連接攻擊就是通過許多殭屍主機不斷地與受害服務器建立大量
的TCP連接,直到服務器的記憶體等資源被耗盡而被拖跨,從而造成拒絕服務,這種攻擊的特點是可繞過一
般防火牆的防護而達到攻擊目的,缺點是需要找很多殭屍主機,並且由於殭屍主機的IP是暴露的,因此容
易被追蹤。
3、刷Script腳本攻擊:這種攻擊主要是針對存在ASP、JSP、PHP、CGI等腳本程序,並調用MSSQLServer、
MySQLServer、Oracle等資料庫的網站系統而設計的,特徵是和服務器建立正常的TCP連接,並不斷的向腳
本程序提交查詢、列表等大量耗費資料庫資源的調用,典型的以小博大的攻擊方法。一般來說,提交一個
GET或POST指令對客戶端的耗費和頻寬的佔用是幾乎可以忽略的,而服務器為處理此請求卻可能要從上萬
條記錄中去查出某個記錄,這種處理過程對資源的耗費是很大的,常見的資料庫服務器很少能支援數百個
查詢指令同時執行,而這對於客戶端來說卻是輕而易舉的,因此攻擊者只需通過Proxy代理向主機服務器
大量遞交查詢指令,只需數分鐘就會把服務器資源消耗掉而導致拒絕服務,常見的現象就是網站慢如蝸牛
、ASP程序失效、PHP連接資料庫失敗、資料庫主程序佔用CPU偏高。這種攻擊的特點是可以完全繞過普通
的防火牆防護,輕鬆找一些Proxy代理就可實施攻擊,缺點是對付只有靜態頁面的網站效果會大打折扣,
並且有些Proxy會暴露攻擊者的IP地址。
四、怎麼抵禦DDOS?
對付DDOS是一個系統工程,想僅僅依靠某種系統或產品防住DDOS是不現實的,可以肯定的是,完全杜絕
DDOS目前是不可能的,但通過適當的措施抵禦90%的DDOS攻擊是可以做到的,基於攻擊和防禦都有成本開
銷的緣故,若通過適當的辦法增強了抵禦DDOS的能力,也就意味著加大了攻擊者的攻擊成本,那麼絕大多
數攻擊者將無法繼續下去而放棄,也就相當於成功的抵禦了DDOS攻擊
以下幾點是防禦DDOS攻擊幾點:
1、採用高性能的網路設備
首先要保證網路設備不能成為瓶頸,因此選擇路由器、交換機、硬體防火牆等設備的時候要盡量選用知名
度高、口碑好的產品。再就是假如和網路提供商有特殊關係或協議的話就更好了,當大量攻擊發生的時候
請他們在網路接點處做一下流量限制來對抗某些種類的DDOS攻擊是非常有效的。
3、充足的網路頻寬保證
網路頻寬直接決定了能抗受攻擊的能力,假若僅僅有10M頻寬的話,無論採取什麼措施都很難對抗現在的
SYNFlood攻擊,當前至少要選擇100M的共享頻寬,最好的當然是掛在1000M的主幹上了。
但需要注意的是,主機上的網卡是1000M的並不意味著它的網路頻寬就是千兆的,若把它接在100M的
交換機上,它的實際頻寬不會超過100M,再就是接在100M的頻寬上也不等於就有了百兆的頻寬,因為網路
服務商很可能會在交換機上限制實際頻寬為10M,這點一定要搞清楚。
4、安裝專業抗DDOS防火牆