摘要:DDoS攻擊利用TCP/IP協(xié)議本身的漏洞和缺陷。攻擊者利用成百上千個被“控制”節(jié)點向受害節(jié)點發(fā)動大規(guī)模的協(xié)同攻擊。通過消耗帶寬、CPU和內(nèi)存等資源,達(dá)到被攻擊者的性能下降甚至癱瘓和死機(jī),從而造成其他合法用戶無法正常訪問。如果通過適當(dāng)?shù)霓k法增強(qiáng)了抵御DDoS的能力,也就意味著加大了攻擊者的攻擊成本,那么絕大多數(shù)攻擊者將無法繼續(xù)下去而放棄,也就相當(dāng)于成功的抵御了DDoS攻擊。
關(guān)鍵詞:DDoS;攻擊;防御
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)22-659-02
1 DDoS的概念
分布式拒絕服務(wù)攻擊(Distributed Denial of Service)是一種比較新的黑客攻擊方法,最早出現(xiàn)于1999年夏天。從2000年2月開始,這種攻擊方法開始大行其道。2000年2月7日,在雅虎網(wǎng)站因遭到外來攻擊而癱瘓的第二天,美國另外幾家著名的因特網(wǎng)網(wǎng)站又接連遭到攻擊,并造成短時間癱瘓。分布式拒絕服務(wù)攻擊使用與普通的拒絕服務(wù)攻擊同樣的方法,但是發(fā)起攻擊的源是多個,通常來說,至少要有數(shù)百臺甚至上千臺主機(jī)才能達(dá)到滿意的效果。
2 DDoS攻擊的原理
DDoS的理論和技術(shù)很早就為網(wǎng)絡(luò)界所認(rèn)識,而近來分布式拒絕服務(wù)才開始被攻擊者采用并有泛濫趨勢。它利用了TCP/IP協(xié)議本身的漏洞和缺陷。攻擊者利用成百上千個被“控制”節(jié)點向受害節(jié)點發(fā)動大規(guī)模的協(xié)同攻擊。通過消耗帶寬、CPU和內(nèi)存等資源,達(dá)到被攻擊者的性能下降甚至癱瘓和死機(jī),從而造成其他合法用戶無法正常訪問。和DoS比較起來,其破壞性和危害程度更大,涉及范圍更廣,也更難發(fā)現(xiàn)攻擊者。
傳統(tǒng)的DoS攻擊利用了軟件漏洞或系統(tǒng)負(fù)荷過度從而使計算機(jī)系統(tǒng)無法被正常訪問,一般只是一臺機(jī)器向受害者發(fā)起攻擊。而DDoS是由攻擊者在多臺機(jī)器上或與其他人合作,同時向一個目標(biāo)主機(jī)或網(wǎng)絡(luò)發(fā)起攻擊,被攻擊者在同一時間內(nèi)收到大量數(shù)據(jù)包不是一臺主機(jī)發(fā)送來的,這使得防御變得非常困難。同時,因為攻擊來自廣泛的IP地址,而且來自每臺主機(jī)的少量數(shù)據(jù)包有可能從入侵檢測系統(tǒng)(Intrusion Detection Systems,IDS)眼皮下溜掉,所以探測和阻止也就變得更加困難。如是單一的IP地址攻擊,可以在防火墻封鎖該p。如果是很多臺主機(jī)的話,封鎖就變得極其困難。只要用戶連接到了Internet,攻擊者就有機(jī)會發(fā)送大量用戶根本處理不了的數(shù)據(jù),造成拒絕服務(wù)攻擊。
DDoS主要由兩部分組成:主控端主機(jī)上的客戶端和代理端主機(jī)上的守護(hù)進(jìn)程。主控端向代理端發(fā)送攻擊指定的目標(biāo)主機(jī)列表,代理端據(jù)此對目標(biāo)主機(jī)進(jìn)行拒絕服務(wù)攻擊。由一個主控端控制的多個代理端主機(jī),能夠在攻擊過程中相互協(xié)作,保證攻擊的連續(xù)性。主控端和代理端的網(wǎng)絡(luò)通訊往往是經(jīng)過加密的,還可能混雜了許多虛假數(shù)據(jù)包。整個攻擊可以使用不同的TCP、UDP或ICMP包進(jìn)行通訊。而且主控端還能偽造其IP地址。DDoS攻擊的這些特性使得防御其攻擊變得非常困難。
DDoS攻擊的原理如下圖所示。
■
攻擊者為了隱藏自己,以免被跟蹤和定位,以及加大攻擊力度,往往采用三層結(jié)構(gòu),包括攻擊者、中間層和受害者。而中間層包含受控者和受控攻擊者。DDoS攻擊過程如下:
攻擊者通過漏洞或木馬技術(shù)入侵受控者,在受控者的機(jī)器上移植木馬服務(wù)程序。由受控者通過掃描等技術(shù),查找有漏洞、適合的受控攻擊者,植入攻擊服務(wù)程序。當(dāng)攻擊者發(fā)起DDoS攻擊時,只需要確定目標(biāo)機(jī)器,通過木馬客戶端向受控者發(fā)出指令,受控者再向受控攻擊者發(fā)出指令。具體的DDoS攻擊由受控攻擊者完成。這樣做可以減少攻擊者的直接控制,以及攻擊者和受控攻擊者的信息交換,減少被發(fā)現(xiàn)和跟蹤的可能性,讓受害者更難確定攻擊者的位置。
為了提高DDoS攻擊的成功效率,攻擊者需要控制很多被入侵主機(jī)。這些主機(jī)通常是Linux和SUN機(jī)器,而且Unix、Solaris和Windows平臺的機(jī)器也能被用于DDoS攻擊,而且攻擊工具很容易被移植到其他平臺上運(yùn)行。這些攻擊工具入侵主機(jī)和安裝程序的過程都是自動化的。這個過程可以分為以下幾個步驟:①探測掃描大量主機(jī)來尋找可以入侵的目標(biāo)主機(jī);②入侵有安全漏洞的主機(jī)并且獲取控制權(quán);③在每臺入侵主機(jī)中安裝攻擊程序;④利用已經(jīng)入侵主機(jī)繼續(xù)進(jìn)行掃描和入侵。
攻擊者在攻擊取得成功后,為了能夠方便下次再輕易地返回系統(tǒng),專業(yè)黑客在退出系統(tǒng)之前,肯定要留下一些后門。對于后門,管理員比較難以察覺,因為在沒有發(fā)現(xiàn)攻擊者的情況下,很少管理員會主動去查找是否系統(tǒng)里留有攻擊者的后門。后門的類型五花八門,種類繁多,有些可以通過工具或自檢查到或處理掉,有些就比較麻煩,可能要花費(fèi)大量的人力和物力。高級復(fù)雜的后門如“內(nèi)核后門”是很難發(fā)覺到的,除非重裝系統(tǒng),否則不能保證沒有后門留在里面。攻擊者在攻擊取得成功后要做的另一件事就是攻擊痕跡清除或?qū)⒐粜袨檗D(zhuǎn)嫁。如果獲得了訪問系統(tǒng)的完全權(quán)限,攻擊者很容易修改系統(tǒng)上的事件日志來掩蓋留下的任何痕跡。
3 DDoS攻擊的防御
對付DDoS是一個系統(tǒng)工程,想僅僅依靠某種系統(tǒng)或產(chǎn)品防住DDoS是不現(xiàn)實的,可以肯定的是,完全杜絕DDoS目前是不可能的,但通過適當(dāng)?shù)拇胧┑钟?0%的DDoS攻擊是可以做到的,基于攻擊和防御都有成本開銷的緣故,若通過適當(dāng)?shù)霓k法增強(qiáng)了抵御DDoS的能力,也就意味著加大了攻擊者的攻擊成本,那么絕大多數(shù)攻擊者將無法繼續(xù)下去而放棄,也就相當(dāng)于成功的抵御了DDoS攻擊。
1)采用高性能的網(wǎng)絡(luò)設(shè)備
首先要保證網(wǎng)絡(luò)設(shè)備不能成為瓶頸,因此選擇路由器、交換機(jī)、硬件防火墻等設(shè)備的時候要盡量選用知名度高、口碑好的產(chǎn)品。再就是假如和網(wǎng)絡(luò)提供商有特殊關(guān)系或協(xié)議的話就更好了,當(dāng)大量攻擊發(fā)生的時候請他們在網(wǎng)絡(luò)接點處做一下流量限制來對抗某些種類的DDoS攻擊是非常有效的。
2)盡量避免NAT的使用
無論是路由器還是硬件防護(hù)墻設(shè)備要盡量避免采用網(wǎng)絡(luò)地址轉(zhuǎn)換NAT的使用,因為采用此技術(shù)會較大降低網(wǎng)絡(luò)通信能力,其實原因很簡單,因為NAT需要對地址來回轉(zhuǎn)換,轉(zhuǎn)換過程中需要對網(wǎng)絡(luò)包的校驗和進(jìn)行計算,因此浪費(fèi)了很多CPU的時間,但有些時候必須使用NAT,那就沒有好辦法了。
3)充足的網(wǎng)絡(luò)帶寬保證
網(wǎng)絡(luò)帶寬直接決定了能抗受攻擊的能力,假若僅僅有10M帶寬的話,無論采取什么措施都很難對抗現(xiàn)在的SYNFlood攻擊,當(dāng)前至少要選擇100M的共享帶寬,最好的當(dāng)然是掛在1000M的主干上了。但需要注意的是,主機(jī)上的網(wǎng)卡是1000M的并不意味著它的網(wǎng)絡(luò)帶寬就是千兆的,若把它接在100M的交換機(jī)上,它的實際帶寬不會超過100M,再就是接在100M的帶寬上也不等于就有了百兆的帶寬,因為網(wǎng)絡(luò)服務(wù)商很可能會在交換機(jī)上限制實際帶寬為10M,這點一定要搞清楚。
4)升級主機(jī)服務(wù)器硬件
在有網(wǎng)絡(luò)帶寬保證的前提下,請盡量提升硬件配置,要有效對抗每秒10萬個SYN攻擊包,服務(wù)器的配置至少應(yīng)該為:P4 2.4G/DDR512M/SCSI-HD,起關(guān)鍵作用的主要是CPU和內(nèi)存,若有志強(qiáng)雙CPU的話就用它吧,內(nèi)存一定要選擇DDR的高速內(nèi)存,硬盤要盡量選擇SCSI的,別只貪IDE價格不貴量還足的便宜,否則會付出高昂的性能代價,再就是網(wǎng)卡一定要選用3COM或Intel等名牌的,若是Realtek的還是用在自己的PC上吧。
5)把網(wǎng)站做成靜態(tài)頁面
大量事實證明,把網(wǎng)站盡可能做成靜態(tài)頁面,不僅能大大提高抗攻擊能力,而且還給黑客入侵帶來不少麻煩,至少到現(xiàn)在為止關(guān)于HTML的溢出還沒出現(xiàn),看看吧!新浪、搜狐、網(wǎng)易等門戶網(wǎng)站主要都是靜態(tài)頁面,若你非需要動態(tài)腳本調(diào)用,那就把它弄到另外一臺單獨(dú)主機(jī)去,免的遭受攻擊時連累主服務(wù)器,當(dāng)然,適當(dāng)放一些不做數(shù)據(jù)庫調(diào)用腳本還是可以的,此外,最好在需要調(diào)用數(shù)據(jù)庫的腳本中拒絕使用代理的訪問,因為經(jīng)驗表明使用代理訪問你網(wǎng)站的80%屬于惡意行為。
6)增強(qiáng)操作系統(tǒng)的TCP/IP棧
Win2000和Win2003作為服務(wù)器操作系統(tǒng),本身就具備一定的抵抗DDoS攻擊的能力,只是默認(rèn)狀態(tài)下沒有開啟而已,若開啟的話可抵擋約10000個SYN攻擊包,若沒有開啟則僅能抵御數(shù)百個。
7)安裝專業(yè)抗DDoS防火墻
4 結(jié)論
采用以上對抗DDoS的建議,絕大多數(shù)擁有自己主機(jī)的用戶可以避免DDoS攻擊,但假如采取以上措施后仍然不能解決DDoS問題,就有些麻煩了,可能需要更多投資,增加服務(wù)器數(shù)量并采用DNS輪巡或負(fù)載均衡技術(shù),甚至需要購買七層交換機(jī)設(shè)備,從而使得抗DDoS攻擊能力成倍提高,只要投資足夠深入,總有攻擊者會放棄的時候,那時候你就成功了!
參考文獻(xiàn):
[1] 周曉冬,黃永泰,等.DDoS攻擊原理及對策研究[J].計算機(jī)與現(xiàn)代化,2004(3):21.
[2] 陳莊.計算機(jī)網(wǎng)絡(luò)安全技術(shù)[M].重慶:重慶大學(xué)出飯社,2001.
[3] (美)史蒂文斯.TCP/IP詳解[M].北京:機(jī)械工業(yè)出版社,2000.
[4] 李濤.網(wǎng)絡(luò)安全概論[M].北京:電子工業(yè)出版社,2004.
[5] 楊義先.網(wǎng)絡(luò)安全理論與技術(shù)[M].北京:人民郵電出版社,2003.
[6] (美)福羅贊.TCP/IP協(xié)議族. 3版 [M]. 北京:清華大學(xué)出版社,2006.