[摘 要] 隨著Internet互聯(lián)網(wǎng)絡(luò)帶寬的增加和多種DDOS黑客工具的不斷發(fā)布,DDOS拒絕服務(wù)攻擊的實施越來越容易,DDOS攻擊事件正在呈上升趨勢。出于商業(yè)競爭、打擊報復(fù)和網(wǎng)絡(luò)敲詐等多種因素,導致很多IDC托管機房、商業(yè)站點、游戲服務(wù)器、聊天網(wǎng)絡(luò)等網(wǎng)絡(luò)服務(wù)商長期以來一直被DDOS攻擊所困擾,隨之而來的是客戶投訴、同虛擬主機用戶受牽連、法律糾紛、商業(yè)損失等一系列問題,因此,解決DDOS攻擊問題成為網(wǎng)絡(luò)服務(wù)商必須要考慮的頭等大事。
[關(guān)鍵詞] DDOS 拒絕服務(wù) 網(wǎng)絡(luò)攻擊
一、DDOS簡介
DDOS是英文Distributed Denial of Service的縮寫,意即“分布式拒絕服務(wù)”,凡是能導致合法用戶不能夠正常訪問網(wǎng)絡(luò)服務(wù)的行為都可以被理解為拒絕服務(wù)攻擊。也就是說拒絕服務(wù)攻擊的目的非常明確,就是要阻止合法用戶對正常網(wǎng)絡(luò)資源的訪問。雖然同樣是拒絕服務(wù)攻擊,但是DDOS和DOS還是有所不同,DDOS的攻擊策略側(cè)重于通過很多“僵尸主機”(被攻擊者入侵過或可間接利用的主機)向受害主機發(fā)送大量看似合法的網(wǎng)絡(luò)包,從而造成網(wǎng)絡(luò)阻塞或服務(wù)器資源耗盡而導致拒絕服務(wù),分布式拒絕服務(wù)攻擊一旦被實施,攻擊網(wǎng)絡(luò)包就會猶如洪水般涌向受害主機,從而把合法用戶的網(wǎng)絡(luò)包淹沒,導致合法用戶無法正常訪問服務(wù)器的網(wǎng)絡(luò)資源,因此,拒絕服務(wù)攻擊又被稱之為“洪水式攻擊”,常見的DDOS攻擊手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等;而DOS則側(cè)重于通過對主機特定漏洞的利用攻擊導致網(wǎng)絡(luò)棧失效、系統(tǒng)崩潰、主機死機而無法提供正常的網(wǎng)絡(luò)服務(wù)功能,從而造成拒絕服務(wù),常見的DOS攻擊手段有TearDrop、Land、Jolt、IGMP Nuker、Boink、Smurf、Bonk、OOB等。就這兩種拒絕服務(wù)攻擊而言,危害較大的主要是DDOS攻擊,原因是很難防范,至于DOS攻擊,通過給主機服務(wù)器打補丁或安裝防火墻軟件就可以很好地防范,后文會詳細介紹怎么對付DDOS攻擊。
二、對DDOS攻擊的檢測
DDOS的表現(xiàn)形式主要有兩種,一種為流量攻擊,主要是針對網(wǎng)絡(luò)帶寬的攻擊,即大量攻擊包導致網(wǎng)絡(luò)帶寬被阻塞,合法網(wǎng)絡(luò)包被虛假的攻擊包淹沒而無法到達主機;另一種為資源耗盡攻擊,主要是針對服務(wù)器主機的攻擊,即通過大量攻擊包導致主機的內(nèi)存被耗盡或CPU被內(nèi)核及應(yīng)用程序占完而造成無法提供網(wǎng)絡(luò)服務(wù)。
如何判斷網(wǎng)站是否遭受了流量攻擊呢?可通過Ping命令來測試,若發(fā)現(xiàn)Ping超時或丟包嚴重(假定平時是正常的),則可能遭受了流量攻擊,此時若發(fā)現(xiàn)和你的主機接在同一交換機上的服務(wù)器也訪問不了了,基本可以確定是遭受了流量攻擊。當然,這樣測試的前提是你到服務(wù)器主機之間的ICMP協(xié)議沒有被路由器和防火墻等設(shè)備屏蔽,否則可采取Telnet主機服務(wù)器的網(wǎng)絡(luò)服務(wù)端口來測試,效果是一樣的。不過有一點可以肯定,假如平時Ping你的主機服務(wù)器和接在同一交換機上的主機服務(wù)器都是正常的,突然都Ping不通了或者是嚴重丟包,那么在排除網(wǎng)絡(luò)故障因素的情況下則肯定是遭受了流量攻擊。再一個流量攻擊的典型現(xiàn)象是,一旦遭受流量攻擊,會發(fā)現(xiàn)用遠程終端連接網(wǎng)站服務(wù)器會失敗。
相對于流量攻擊而言,資源耗盡攻擊要容易判斷一些,假如平時Ping網(wǎng)站主機和訪問網(wǎng)站都是正常的,發(fā)現(xiàn)突然網(wǎng)站訪問非常緩慢或無法訪問了,而Ping還可以Ping通,則很可能遭受了資源耗盡攻擊,此時若在服務(wù)器上用Netstat -na命令觀察到有大量的SYN_RECEIVED、TIME_WAIT、FIN_WAIT_1等狀態(tài)存在,而ESTABLISHED很少,則可判定肯定是遭受了資源耗盡攻擊。還有一種屬于資源耗盡攻擊的現(xiàn)象是,Ping自己的網(wǎng)站主機Ping不通或者是丟包嚴重,而Ping與自己的主機在同一交換機上的服務(wù)器則正常,造成這種原因是網(wǎng)站主機遭受攻擊后導致系統(tǒng)內(nèi)核或某些應(yīng)用程序CPU利用率達到100%無法回應(yīng)Ping命令,其實帶寬還是有的,否則就Ping不通接在同一交換機上的主機了。
三、流行的DDOS攻擊方式
1.SYN/ACK Flood攻擊
這種攻擊方法是經(jīng)典最有效的DDOS方法,可通殺各種系統(tǒng)的網(wǎng)絡(luò)服務(wù),主要是通過向受害主機發(fā)送大量偽造源IP和源端口的SYN或ACK包,導致主機的緩存資源被耗盡或忙于發(fā)送回應(yīng)包而造成拒絕服務(wù),由于源都是偽造的故追蹤起來比較困難,缺點是實施起來有一定難度,需要高帶寬的僵尸主機支持。少量的這種攻擊會導致主機服務(wù)器無法訪問,但卻可以Ping的通,在服務(wù)器上用Netstat -na命令會觀察到存在大量的SYN_RECEIVED狀態(tài),大量的這種攻擊會導致Ping失敗、TCP/IP棧失效,并會出現(xiàn)系統(tǒng)凝固現(xiàn)象,即不響應(yīng)鍵盤和鼠標。普通防火墻大多無法抵御此種攻擊。
2.TCP全連接攻擊
這種攻擊是為了繞過常規(guī)防火墻的檢查而設(shè)計的,一般情況下,常規(guī)防火墻大多具備過濾TearDrop、Land等DOS攻擊的能力,但對于正常的TCP連接是放過的,殊不知很多網(wǎng)絡(luò)服務(wù)程序(如:IIS、Apache等Web服務(wù)器)能接受的TCP連接數(shù)是有限的,一旦有大量的TCP連接,即便是正常的,也會導致網(wǎng)站訪問非常緩慢甚至無法訪問,TCP全連接攻擊就是通過許多僵尸主機不斷地與受害服務(wù)器建立大量的TCP連接,直到服務(wù)器的內(nèi)存等資源被耗盡而被拖跨,從而造成拒絕服務(wù),這種攻擊的特點是可繞過一般防火墻的防護而達到攻擊目的,缺點是需要找很多僵尸主機,并且由于僵尸主機的IP是暴露的,因此容易被追蹤。
3.刷Script腳本攻擊
這種攻擊主要是針對存在ASP、JSP、PHP、CGI等腳本程序,并調(diào)用MSSQLServer、MySQLServer、Oracle等數(shù)據(jù)庫的網(wǎng)站系統(tǒng)而設(shè)計的,特征是和服務(wù)器建立正常的TCP連接,并不斷的向腳本程序提交查詢、列表等大量耗費數(shù)據(jù)庫資源的調(diào)用,典型的以小博大的攻擊方法。一般來說,提交一個GET或POST指令對客戶端的耗費和帶寬的占用是幾乎可以忽略的,而服務(wù)器為處理此請求卻可能要從上萬條記錄中去查出某個記錄,這種處理過程對資源的耗費是很大的,常見的數(shù)據(jù)庫服務(wù)器很少能支持數(shù)百個查詢指令同時執(zhí)行,而這對于客戶端來說卻是輕而易舉的,因此攻擊者只需通過Proxy代理向主機服務(wù)器大量遞交查詢指令,只需數(shù)分鐘就會把服務(wù)器資源消耗掉而導致拒絕服務(wù),常見的現(xiàn)象就是網(wǎng)站慢如蝸牛、ASP程序失效、PHP連接數(shù)據(jù)庫失敗、數(shù)據(jù)庫主程序占用CPU偏高。這種攻擊的特點是可以完全繞過普通的防火墻防護,輕松找一些Proxy代理就可實施攻擊,缺點是對付只有靜態(tài)頁面的網(wǎng)站效果會大打折扣,并且有些Proxy會暴露攻擊者的IP地址。
四、如何抵御DDOS
對付DDOS是一個系統(tǒng)工程,想僅僅依靠某種系統(tǒng)或產(chǎn)品防住DDOS是不現(xiàn)實的,可以肯定的是,完全杜絕DDOS目前是不可能的,但通過適當?shù)拇胧┑钟?0%的DDOS攻擊是可以做到的,基于攻擊和防御都有成本開銷的緣故,若通過適當?shù)霓k法增強了抵御DDOS的能力,也就意味著加大了攻擊者的攻擊成本,那么絕大多數(shù)攻擊者將無法繼續(xù)下去而放棄,也就相當于成功的抵御了DDOS攻擊。以下筆者提供幾種較為有效的抵御DDOS的方法。
1.采用高性能的網(wǎng)絡(luò)設(shè)備
首先要保證網(wǎng)絡(luò)設(shè)備不能成為瓶頸,因此選擇路由器、交換機、硬件防火墻等設(shè)備的時候要盡量選用知名度高、口碑好的產(chǎn)品。再就是假如和網(wǎng)絡(luò)提供商有特殊關(guān)系或協(xié)議的話就更好了,當大量攻擊發(fā)生的時候請他們在網(wǎng)絡(luò)接點處做一下流量限制來對抗某些種類的DDOS攻擊是非常有效的。
2.盡量避免NAT的使用
無論是路由器還是硬件防護墻設(shè)備要盡量避免采用網(wǎng)絡(luò)地址轉(zhuǎn)換NAT的使用,因為采用此技術(shù)會較大降低網(wǎng)絡(luò)通信能力,其實原因很簡單,因為NAT需要對地址來回轉(zhuǎn)換,轉(zhuǎn)換過程中需要對網(wǎng)絡(luò)包的校驗和進行計算,因此浪費了很多CPU的時間,但有些時候必須使用NAT,那就沒有好辦法了。
3.充足的網(wǎng)絡(luò)帶寬保證
網(wǎng)絡(luò)帶寬直接決定了能抗受攻擊的能力,假若僅僅有10M帶寬的話,無論采取什么措施都很難對抗現(xiàn)在的SYNFlood攻擊,當前至少要選擇100M的共享帶寬,最好的當然是掛在1000M的主干上了。但需要注意的是,主機上的網(wǎng)卡是1000M的并不意味著它的網(wǎng)絡(luò)帶寬就是千兆的,若把它接在100M的交換機上,它的實際帶寬不會超過100M,再就是接在100M的帶寬上也不等于就有了百兆的帶寬,因為網(wǎng)絡(luò)服務(wù)商很可能會在交換機上限制實際帶寬為10M,這點一定要搞清楚。
4.升級主機服務(wù)器硬件
在有網(wǎng)絡(luò)帶寬保證的前提下,請盡量提升硬件配置,要有效對抗每秒10萬個SYN攻擊包,服務(wù)器的配置至少應(yīng)該為:P4 2.4G/DDR512M/SCSI-HD,起關(guān)鍵作用的主要是CPU和內(nèi)存,若有志強雙CPU的話就用它吧,內(nèi)存一定要選擇DDR的高速內(nèi)存,硬盤要盡量選擇SCSI的,別只貪IDE價格不貴量還足的便宜,否則會付出高昂的性能代價,再就是網(wǎng)卡一定要選用3COM或Intel等名牌的,若是Realtek的還是用在自己的PC上吧。
5.增強操作系統(tǒng)的TCP/IP棧
Win2000和Win2003作為服務(wù)器操作系統(tǒng),本身就具備一定的抵抗DDOS攻擊的能力,只是默認狀態(tài)下沒有開啟而已,若開啟的話可抵擋約10000個SYN攻擊包,若沒有開啟則僅能抵御數(shù)百個。
6.安裝專業(yè)抗DDOS防火墻
國內(nèi)有一款口碑很好的“金盾防火墻”,金盾防火墻是專門針對DDOS攻擊和黑客入侵而設(shè)計的專業(yè)級防火墻,該設(shè)備采用自主研發(fā)的新一代抗拒絕攻擊算法,可達到10萬-100萬個并發(fā)攻擊的防御能力,同時對正常用戶的連接和使用沒有影響。專用得體系結(jié)構(gòu)可改變TCP/IP的內(nèi)核,在系統(tǒng)核心實現(xiàn)防御拒絕攻擊的算法,并創(chuàng)造性的將算法實現(xiàn)在網(wǎng)絡(luò)驅(qū)動層,效率沒有受到限制。同時可防御多種拒絕服務(wù)攻擊及其變種,如:SYN Flood。TCP Flood、UDP Flood、ICMP Flood及其變種Land、Teardrop、Smurf、Ping of Death等等。
參考文獻:
[1]李 軍:DDoS攻擊全面解析.網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2007.9
[2]張明猛 趙天福:DDoS攻擊檢測技術(shù)研究.計算機與信息技術(shù),2007.4
[3]陳明奇:分布式拒絕服務(wù)攻擊處理實例分析.信息網(wǎng)絡(luò)安全,2007.6
[4]趙 恒 王寧寧 榮瑞峰:DDOS的攻擊與防御.信息技術(shù)與信息化,2007.3
[5]喬書建:DDoS攻擊的原理與防范.科教文匯(下旬刊),2007.5