DDoS攻擊手段是在傳統(tǒng)的DoS攻擊基礎(chǔ)之上產(chǎn)生的一類攻擊方式。單一的DoS攻擊一般是采用一對一方式的,當(dāng)攻擊目標(biāo)CPU速度低、內(nèi)存小或者網(wǎng)絡(luò)帶寬小等等各項(xiàng)性能指標(biāo)不高它的效果是明顯的。隨著計算機(jī)與網(wǎng)絡(luò)技術(shù)的發(fā)展,計算機(jī)的處理能力迅速增長,內(nèi)存大大增加,同時也出現(xiàn)了千兆級別的網(wǎng)絡(luò),這使得DoS攻擊的困難程度加大了-目標(biāo)對惡意攻擊包的"消化能力"加強(qiáng)了不少,例如你的攻擊軟件每秒鐘可以發(fā)送3,000個攻擊包,但我的主機(jī)與網(wǎng)絡(luò)帶寬每秒鐘可以處理10,000個攻擊包,這樣一來攻擊就不會產(chǎn)生什么效果。
這時侯分布式的拒絕服務(wù)攻擊手段(DDoS)就應(yīng)運(yùn)而生了。你理解了DoS攻擊的話,它的原理就很簡單。如果說計算機(jī)與網(wǎng)絡(luò)的處理能力加大了10倍,用一臺攻擊機(jī)來攻擊不再能起作用的話,攻擊者使用10臺攻擊機(jī)同時攻擊呢?用100臺呢?DDoS就是利用更多的傀儡機(jī)來發(fā)起進(jìn)攻,以比從前更大的規(guī)模來進(jìn)攻受害者。
攻擊特性
對分布式攻擊進(jìn)行必要的分析,就可以得到這種攻擊的特性。分布式拒絕服務(wù)在進(jìn)行攻擊的時候,要對攻擊目標(biāo)的流量地址進(jìn)行集中,然后在攻擊的時候不會出現(xiàn)擁塞控制。在進(jìn)行攻擊的時候會選擇使用隨機(jī)的端口來進(jìn)行攻擊,會通過數(shù)千端口對攻擊的目標(biāo)發(fā)送大量的數(shù)據(jù)包,使用固定的端口進(jìn)行攻擊的時候,會向同一個端口發(fā)送大量的數(shù)據(jù)包。
ddos攻擊原理及防范方法
DDoS攻擊五花八門,防不勝防,當(dāng)你想建立一個防御系統(tǒng)對抗DDoS的時候,你需要掌握這些攻擊的變異形態(tài)。
最笨的防御方法,就是花大價錢買更大的帶寬。拒絕服務(wù)就像個游戲一樣。如果你使用10000個系統(tǒng)發(fā)送1Mbps的流量,那就意味著你輸送給你的服務(wù)器每秒鐘10Gb的數(shù)據(jù)流量。這就會造成擁堵。這種情況下,同樣的規(guī)則適用于正常的冗余。這時,你就需要更多的服務(wù)器,遍布各地的數(shù)據(jù)中心,和更好的負(fù)載均衡服務(wù)了。將流量分散到多個服務(wù)器上,幫助你進(jìn)行流量均衡,更大的帶寬能夠幫你應(yīng)對各種大流量的問題。但現(xiàn)代的DDoS攻擊越來越瘋狂,需要的帶寬越來越大,你的財政狀況根本不允許你投入更多的資金。另外,絕大多數(shù)的時候,你的網(wǎng)站并不是主要攻擊目標(biāo),很多管理員都忘了這一點(diǎn)。
1、Filter。對于特征明顯的DDoS攻擊包,在路由器或者防火墻就可以搞定。當(dāng)然,如果跟蹤技術(shù)能夠確定攻擊包的來源則可以設(shè)置路由器或防火墻過濾掉所有來自攻擊源的包,在攻擊源被偽造的情況下,是通過識別攻擊包的一些特征來實(shí)現(xiàn)的。然而有些攻擊包并不容易識別出來。
2、隨機(jī)丟包。如果不能非常有把握地識別攻擊包,但是能對攻擊包的做概率性的判斷,則可以用隨機(jī)丟包的方法來過濾一大部分的攻擊流量,然而使用這種方法就必須考慮如何能夠使合法用戶的流量被盡可能好的保留。可以加上一些限制條件,如果判定一個包“一定是”合法的,則不對它做丟包。
3、SYN Cookie等特定防御辦法。針對一些固定的攻擊手段來防御和過濾。這類方法主要是減少主機(jī)對一些可能的攻擊的容忍能力。比如為了減輕SYN Flood攻擊占用TCP半連接隊列,在SYN Cookie的執(zhí)行過程中,當(dāng)服務(wù)器接收到一個SYN包的時候,返回一個SYN-ACK包,這個數(shù)據(jù)包的ACK序列號是經(jīng)過加密的,也就是說,它由源地址,端口源次序,目標(biāo)地址,目標(biāo)端口和一個加密種子計算得出。然后SYN釋放所有的狀態(tài)。如果一個ACK包從客戶端返回,服務(wù)器將重新計算它來判斷它是不是上個SYN-ACK的返回包。如果這樣,服務(wù)器就可以直接進(jìn)入TCP連接狀態(tài)并打開連接。這樣,服務(wù)器就可以避免守侯半開放連接了。
分布式拒絕服務(wù)攻擊最大的一個特點(diǎn)就是它的攻擊手段,它的攻擊模式不再是傳統(tǒng)的點(diǎn)對點(diǎn)的攻擊模式,而是分布式的攻擊模式,所以它的攻擊是沒有規(guī)律可循的。而且這種DDoS在攻擊的時候,它發(fā)送的也都是合法的數(shù)據(jù)請求,使用的也都是常見的協(xié)議和服務(wù),所以對于這種攻擊的區(qū)分也是比較困難的。DDoS攻擊說白了,它的特點(diǎn)就是攻擊模式是分布式的,對攻擊的區(qū)分也很難,而且攻擊的數(shù)據(jù)包都是經(jīng)過偽裝的。
DDoS的檢測
DDoS的表現(xiàn)形式主要有兩種,一種為流量攻擊,主要是針對網(wǎng)絡(luò)帶寬的攻擊,即大量攻擊包導(dǎo)致網(wǎng)絡(luò)帶寬被耗盡,正常的網(wǎng)絡(luò)包無法到達(dá)主機(jī);另一種為資源耗盡攻擊,主要是針對服務(wù)器主機(jī)的攻擊,即通過大量攻擊包導(dǎo)致主機(jī)的內(nèi)存、CPU或某個緩沖區(qū)耗盡而無法提供正常的服務(wù)。
防范DDOS攻擊的方法:
一些常用的防DDOS攻擊的方法,羅列如下:
1.增加硬件防火墻和增加硬件設(shè)備來承載和抵御DDOS攻擊,最基本的方法,但成本比較高。
2.修改SYN設(shè)置抵御SYN攻擊:
SYN攻擊是利用TCP/IP協(xié)議3次握手的原理,發(fā)送大量的建立連接的網(wǎng)絡(luò)包,但不實(shí)際建立連接,最終導(dǎo)致被攻擊服務(wù)器的網(wǎng)絡(luò)隊列被占滿,無法被正常用戶訪問。
Linux內(nèi)核提供了若干SYN相關(guān)設(shè)置,使用命令:
sysctl -a | grep syn
看到:
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
將DNS解析器處于開放狀態(tài)這是絕對不可取的,你應(yīng)當(dāng)把它鎖定,從而減少一部分攻擊風(fēng)險。但這樣做了以后,我們的服務(wù)器就安全了嗎?答案當(dāng)然是否定的,即使你的網(wǎng)站,沒有一個可以鏈接到你的DNS服務(wù)器,幫你解析域名,這同樣是非常糟糕的事情。大多數(shù)完成注冊的域名需要兩個DNS服務(wù)器,但這遠(yuǎn)遠(yuǎn)不夠。你要確保你的DNS服務(wù)器以及你的網(wǎng)站和其他資源都處于負(fù)載均衡的保護(hù)狀態(tài)下。你也可以使用一些公司提供的冗余DNS。比如,有很多人使用內(nèi)容分發(fā)網(wǎng)絡(luò)(分布式的狀態(tài))給客戶發(fā)送文件,這是一種很好的抵御DDoS攻擊的方法。若你需要,也有很多公司提供了這種增強(qiáng)DNS的保護(hù)措施。
禁止使用網(wǎng)絡(luò)訪問程序如Telnet、Ftp、Rsh、Rlogin和Rcp,以基于PKI的訪問程序如SSH取代。SSH不會在網(wǎng)上以明文格式傳送口令,而Telnet和Rlogin則正好相反,黑客能搜尋到這些口令,從而立即訪問網(wǎng)絡(luò)上的重要服務(wù)器。此外,在Unix上應(yīng)該將.rhost和hosts.equiv文件刪除,因?yàn)椴挥貌驴诹睿@些文件就會提供登錄訪問!
數(shù)據(jù)線有這么多類型,掌握技巧就能長時間使用