Ddos攻擊是香港服務器托管用戶難處理的攻擊,事實上ddos攻擊其種類其實也有多種,需要具體情況具體處理,不同的情況的DDOS需要用到不同的處理解決方法,并不是靠單純的增加帶寬就能解決的。那么這些攻擊的類型和不同分別是什么呢?對此應該要怎么處理呢?
◆網絡層攻擊
Syn-flood
利用TCP建立連接時3次握手的“漏洞”,通過原始套接字發(fā)送源地址虛假的SYN報文,使目標主機永遠無法完成3次握手,占滿了系統(tǒng)的協(xié)議棧隊列,資源得不到釋放,進而拒絕服務,是互聯(lián)網中主要的DDOS攻擊形式之一。網上有一些加固的方法,例如調整內核參數的方法,可以減少等待及重試,加速資源釋放,在小流量syn-flood的情況下可以緩解,但流量稍大時完全不抵用。防御syn-flood的常見方法有:syn proxy、syn cookies、首包(次請求的syn包)丟棄等。
ACK-flood
對于虛假的ACK包,目標設備會直接回復RST包丟棄連接,所以傷害值遠不如syn-flood。DDOS的一種原始方式。
UDP-flood
使用原始套接字偽造大量虛假源地址的UDP包,目前以DNS協(xié)議為主。
ICMP-flood
Ping洪水,比較古老的方式。
◆應用層攻擊
CC
ChallengeCollapsar的名字源于挑戰(zhàn)國內知名廠商綠盟的抗DDOS設備-“黑洞”,通過botnet的傀儡主機或尋找匿名代理服務器,向目標發(fā)起大量真實的http請求,終消耗掉大量的并發(fā)資源,拖慢整個網站甚至徹底拒絕服務。
互聯(lián)網的架構追求擴展性本質上是為了提高并發(fā)能力,各種SQL性能優(yōu)化措施:消除慢查詢、分表分庫、索引、優(yōu)化數據結構、限制搜索頻率等本質都是為了解決資源消耗,而CC大有反其道而行之的意味,占滿服務器并發(fā)連接數,盡可能使請求避開緩存而直接讀數據庫,讀數據庫要找消耗資源的查詢,無法利用索引,每個查詢都全表掃描,這樣就能用小的攻擊資源起到的拒絕服務效果。
互聯(lián)網產品和服務依靠數據分析來驅動改進和持續(xù)運營,所以除了前端的APP、中間件和數據庫這類OLTP系統(tǒng),后面還有OLAP,從日志收集,存儲到數據處理和分析的大數據平臺,當CC攻擊發(fā)生時,不僅OLTP的部分受到了影響,實際上CC會產生大量日志,直接會對后面的OLAP產生影響,影響包括兩個層面,一個當日的數據統(tǒng)計完全是錯誤的。第二個層面因CC期間訪問日志劇增也會加大后端數據處理的負擔。
CC是目前應用層攻擊的主要手段之一,在防御上有一些方法,但不能完美解決這個問題。
DNS flood
偽造源地址的海量DNS請求,用于是淹沒目標的DNS服務器。對于攻擊特定企業(yè)DNS的場景,可以將源地址設置為各大ISP DNS服務器的ip地址以突破白名單限制,將查詢的內容改為針對目標企業(yè)的域名做隨機化處理,當查詢無法命中緩存時,服務器負載會進一步增大。
DNS不只在UDP-53提供服務,同樣在TCP協(xié)議提供服務,所以防御的一種思路就是將UDP的查詢強制轉為TCP,要求溯源,如果是假的源地址,就不再回應。對于企業(yè)自有DNS服務器而言,正常請求多來自于ISP的域名遞歸解析,所以將白名單設置為ISP的DNS server列表。對于源地址偽造成ISP DNS的請求,可以通過TTL值進一步判斷。
?慢速連接攻擊
針對http協(xié)議,以知名的slowloris攻擊為起源:先建立http連接,設置一個較大的content-length,每次只發(fā)送很少的字節(jié),讓服務器一直以為http頭部沒有傳輸完成,這樣的連接一多很快就會出現(xiàn)連接耗盡。
目前出現(xiàn)了一些變種,http慢速的post請求和慢速的read請求都是基于相同的原理。
DOS攻擊
有些服務器程序存在bug、漏洞,或架構性缺陷,攻擊者可以通過構造的畸形請求發(fā)送給服務器,服務器因不能正確處理惡意請求而陷入僵死狀態(tài),導致拒絕服務。例如某些版本的app服務器程序存在緩沖區(qū)溢出,漏洞可以觸發(fā)但無法得到shell,攻擊者可以改變程序執(zhí)行流程使其跳轉到空指針或無法處理的地址,用戶態(tài)的錯誤會導致進程掛起,如果錯誤不能被內核回收則可能使系統(tǒng)當掉。這類問題效果也表現(xiàn)為拒絕服務,但本質上屬于漏洞,可以通過patch程序的版本解決,香港服務器托管小編認為不屬于DDOS的范疇。