前端攻擊和防御(四)DDos分布式拒絕服務

(一)DDos分布式拒絕服務

DDos是Distributed Denial of Service攻擊的簡稱朱嘴,即分布式拒絕服務碉纺。

借助于客戶/服務器技術,將多個計算機聯(lián)合起來作為攻擊平臺,對一個或多個目標發(fā)動DDoS攻擊诀蓉,從而成倍地提高拒絕服務攻擊的威力。通常暑脆,攻擊者使用一個偷竊帳號將DDoS主控程序安裝在一個計算機上渠啤,在一個設定的時間主控程序將與大量代理程序通訊,代理程序已經(jīng)被安裝在網(wǎng)絡上的許多計算機上添吗。代理程序收到指令時就發(fā)動攻擊沥曹。利用客戶/服務器技術,主控程序能在幾秒鐘內激活成百上千次代理程序的運行。

DDos攻擊主要是通過大量合法的請求占用大量網(wǎng)絡資源妓美,以達到癱瘓網(wǎng)絡的目的僵腺。

(二)DDos攻擊分類

依據(jù)消耗目標資源的不同,可分為
(1)攻擊網(wǎng)絡帶寬資源
(2)攻擊系統(tǒng)資源
(3)攻擊應用資源
依據(jù)攻擊數(shù)據(jù)包發(fā)送的頻率和速度來劃分
(1)洪水攻擊
(2)慢速攻擊

1. 攻擊網(wǎng)絡帶寬資源

無論是服務器的網(wǎng)絡接口帶寬壶栋,還是路由器辰如、交換機等互聯(lián)網(wǎng)基礎設施,其數(shù)據(jù)包處理能力都是存在著事實上的上限的贵试,當?shù)竭_或通過的網(wǎng)絡數(shù)據(jù)包數(shù)量超過了這個上限時琉兜,就會出現(xiàn)網(wǎng)絡擁堵、響應緩慢的情況锡移。
消耗網(wǎng)絡帶寬資源的DDos攻擊就是根據(jù)這個原理呕童,利用受控主機發(fā)送大量的網(wǎng)絡數(shù)據(jù)包,占滿被攻擊目標的全部帶寬淆珊,從而使正常的請求無法得到及時有效的響應夺饲,造成拒絕服務。

1.1 直接攻擊

1.1.1 ICMP/IGMP洪水攻擊
網(wǎng)絡控制消息協(xié)議ICMP用于在TCP/IP網(wǎng)絡中發(fā)送控制信息施符,因特網(wǎng)組管理協(xié)議IGMP用于管理因特網(wǎng)協(xié)議多播組成員往声。
攻擊者使用受控主機向被攻擊目標發(fā)送大量的ICMP/IGMP報文,進行洪水攻擊以消耗目標的帶寬資源戳吝。
這種類型的攻擊出現(xiàn)得很早浩销,但現(xiàn)在已不多見,被攻擊目標可以在其網(wǎng)絡邊界直接過濾并丟棄ICMP/IGMP數(shù)據(jù)包使攻擊無效听哭。

1.1.2 UDP洪水攻擊
用戶數(shù)據(jù)報協(xié)議UDP是一種面向無連接的傳輸層協(xié)議慢洋,主要用于不要求分組順序到達的傳輸目的。
利用UDP數(shù)據(jù)報文陆盘,攻擊者可以發(fā)動洪水攻擊普筹,通常會分為小包和大包兩種攻擊方式。
小包是指64字節(jié)大小的數(shù)據(jù)包隘马,這是以太網(wǎng)上傳輸數(shù)據(jù)幀的最小值太防。
在相同流量下,單包體積越小酸员,包數(shù)量就越多蜒车。
由于交換機、路由器等網(wǎng)絡設備需要對每一個數(shù)據(jù)包進行檢查和校驗幔嗦,因此使用UDP小包攻擊能夠最有效地增大網(wǎng)絡設備處理數(shù)據(jù)包的壓力酿愧,造成處理速度的緩慢和傳輸延遲等拒絕服務效果。
大包是指1500字節(jié)以上的數(shù)據(jù)包邀泉,其大小超過了以太網(wǎng)的MTU最大傳輸單元嬉挡,使用UDP大包攻擊叛氨,能夠有效地占用網(wǎng)絡接口的傳輸帶寬,并迫使被攻擊目標在接收到UDP數(shù)據(jù)時進行分片重組棘伴,造成網(wǎng)絡擁堵,服務響應緩慢屁置。
UDP洪水攻擊出現(xiàn)得很早焊夸,它完全依靠受控主機本身的網(wǎng)絡性能,通常對攻擊目標帶寬資源的消耗并不太大蓝角。

1.2 反射和放大攻擊

1.2.1 ACK反射攻擊
在傳輸控制協(xié)議TCP建立連接時阱穗,首先會進行TCP三次握手。
在此過程中使鹅,當服務器端接收到客戶端發(fā)來的SYN連接請求時揪阶,會對該請求進行ACK應答。
利用TCP握手的ACK應答患朱,即可進行ACK反射攻擊鲁僚。
如果攻擊者將SYN的源IP地址偽造成被攻擊目標的IP地址,服務器的應答也就會發(fā)送給被攻擊目標裁厅。
由于使用TCP協(xié)議的服務在互聯(lián)網(wǎng)上廣泛存在冰沙,攻擊者可以通過受控主機向大量不同的服務器發(fā)送偽造源IP地址的SYN請求,從而使服務器響應的大量ACK應答數(shù)據(jù)涌向被攻擊目標执虹,占用目標的網(wǎng)絡帶寬資源并造成拒絕服務拓挥。
在發(fā)動ACK反射攻擊時,首先需要進行掃描袋励,獲得大量的反射器地址侥啤,并分別向這些反射器發(fā)送偽造源地址的SYN請求數(shù)據(jù)。
ACK反射攻擊的優(yōu)點主要在于能夠比較有效地隱藏攻擊的來源茬故。

1.2.2 DNS放大攻擊
域名系統(tǒng)DNS是因特網(wǎng)的一項核心服務盖灸,它將域名和IP地址相互映射。DNS使用TCP/UDP 53端口通信均牢,主要使用UDP協(xié)議糠雨。
通常,DNS響應數(shù)據(jù)包會比查詢數(shù)據(jù)包大徘跪,因此攻擊者利用普通的DNS查詢請求就能夠發(fā)動放大攻擊甘邀。
在以前,對DNS查詢的響應數(shù)據(jù)包被限制在512字節(jié)以內垮庐,多余的字節(jié)根據(jù)實現(xiàn)的不同可能會被丟棄或使用TCP協(xié)議建立連接并重傳松邪。
后來出現(xiàn)了DNS擴展機制EDNS0擴展了DNS數(shù)據(jù)包的結構,增加了OPT RR字段哨查。
該字段包含了客戶端能夠處理的最大UDP報文大小的信息逗抑,服務端在響應DNS請求時,根據(jù)該字段的大小生成響應報文。
攻擊者發(fā)送的DNS查詢請求數(shù)據(jù)包大小一般為60字節(jié)左右邮府,而查詢返回結果的數(shù)據(jù)包大小通常在3000字節(jié)以上荧关。使用該方式進行放大攻擊能夠達到50倍以上的放大效果。
發(fā)動DNS放大攻擊需要先進行掃描褂傀,獲得
大量的開放DNS解析器地址忍啤,并向這些地址發(fā)送偽造源IP的查詢命令來放大攻擊流量。

1.2.3 NTP放大攻擊
網(wǎng)絡時間協(xié)議NTP用于使計算機與時鐘源進行同步和校正仙辟,它使用UDP 123端口通信同波。
NTP協(xié)議的monlist請求能夠獲取與目標NTP服務器進行同步的最近600個客戶端的IP地址等信息。
這意味著叠国,只需要發(fā)送一個很小的請求包未檩,就能夠觸發(fā)大量連續(xù)的UDP響應數(shù)據(jù)包。
使用該方式進行放大攻擊能夠達到700倍以上的放大效果粟焊。
發(fā)動NTP放大攻擊需要先進行掃描冤狡,獲得大量的NTP服務器,并向這些NTP服務器發(fā)送偽造源地址的請求來放大攻擊流量吆玖。

1.2.4 SNMP放大攻擊
簡單網(wǎng)絡管理協(xié)議SNMP是目前網(wǎng)絡中應用最為廣泛的網(wǎng)絡管理協(xié)議筒溃,它使用UDP 161端口通信。
攻擊者向廣泛存在并開啟了SNMP服務的網(wǎng)絡設備發(fā)送GetBulk請求沾乘,使用默認通信字符串作為認證憑據(jù)怜奖,并將源IP地址偽造成攻擊目標的IP地址。
設備收到GetBulk請求后翅阵,會將響應結果發(fā)送給攻擊目標歪玲。當大量的響應結果涌向攻擊目標時,就會導致攻擊目標網(wǎng)絡擁堵和緩慢掷匠,造成拒絕服務滥崩。
使用該方式進行放大攻擊能夠達到25倍以上的放大效果。
在發(fā)動SNMP放大攻擊時讹语,需要先進行掃描钙皮,獲得開放SNMP協(xié)議的網(wǎng)絡設備,雖然開放SNMP協(xié)議的網(wǎng)絡設備很多顽决,但是還需要猜測它們使用的默認通信字符串短条,因此該方式更復雜一些。

2.攻擊系統(tǒng)資源

終端設備在與服務器進行通信時才菠,經(jīng)常需要創(chuàng)建會話連接茸时,在此過程中通常會使用TCP和SSL等協(xié)議。
會話連接一旦被占滿赋访,新進入的會話請求就必須等待前面的會話完成可都。
消耗系統(tǒng)資源的DDoS攻擊的主要目的就是對系統(tǒng)維護的連接資源進行消耗和占用缓待,阻止正常連接的建立,從而達到拒絕服務的目的渠牲。

2.1 攻擊TCP連接
2.1.1 TCP連接洪水攻擊

在TCP三次握手的過程中旋炒,服務器會創(chuàng)建并保存TCP連接的信息到連接表中。連接表的大小是有限的签杈,一旦服務器接收到的連接數(shù)量超過了連接表能存儲的數(shù)量国葬,服務器就無法創(chuàng)建新的TCP連接了。
攻擊者可以利用大量受控主機芹壕,通過快速建立大量惡意的TCP連接占滿被攻擊目標的連接表,使目標無法接受新的TCP連接請求接奈,從而達到拒絕服務攻擊的目的踢涌。

2.1.2 SYN洪水攻擊

在建立TCP連接的過程中,如果在服務器返回SYN+ACK報文后序宦,客戶端沒有對其進行確認睁壁,服務器就需要重傳SYN+ACK報文,并等待客戶端的確認報文直到TCP連接超時互捌。
這種等待客戶端確認的連接狀態(tài)通常被稱為半開連接潘明。在連接超時之前,半開連接會一直保存在服務器的連接表中秕噪。
由于連接表的大小是有限的钳降,如果在短時間內產(chǎn)生大量的半開連接,而這些連接又無法很快地結束腌巾,連接表就會迅速被占滿遂填,導致新的TCP連接無法建立。
SYN洪水攻擊就是攻擊者利用受控主機發(fā)送大量的SYN報文澈蝙,使服務器打開大量的半開連接吓坚,占滿服務器的連接表,從而影響正常用戶與服務器建立會話灯荧,造成拒絕服務礁击。
這種攻擊方式會很明顯地暴露出攻擊者的IP地址,同時響應報文會作為反射流量占用攻擊者的帶寬資源逗载。
更好的方式是將SYN報文的源IP地址隨機偽造成其他地址哆窿,這樣攻擊目標會將應答發(fā)送給偽造地址,從而占用連接資源并隱藏攻擊來源撕贞。

2.1.3 PSH+ACK洪水攻擊

由于帶有PSH標志位的TCP數(shù)據(jù)包會強制要求接收端將接收緩沖區(qū)清空并將數(shù)據(jù)提交給應用服務進行處理更耻,因此當攻擊者利用受控主機向攻擊目標發(fā)送大量的PSH+ACK數(shù)據(jù)包時,被攻擊目標就會消耗大量的系統(tǒng)資源不斷地進行接收緩沖區(qū)的清空處理捏膨,導致無法正常處理數(shù)據(jù)秧均,從而造成拒絕服務食侮。
單獨使用PSH+ACK洪水攻擊對服務器產(chǎn)生的影響并不十分明顯,更有效的方式是SYN洪水攻擊與ACK洪水攻擊相結合目胡,這樣能夠繞過一部分防護設備锯七,增強攻擊效果。

2.1.4 Sockstress慢速攻擊

在TCP傳輸數(shù)據(jù)時誉己,會將數(shù)據(jù)臨時存儲在接收緩沖區(qū)中眉尸,該接收緩沖區(qū)的大小是由TCP窗口表示的。
如果TCP窗口大小為0則表示接收緩沖區(qū)已滿巨双,發(fā)送端應該停止發(fā)送數(shù)據(jù)噪猾,直到接收端窗口更新。
Sockstress慢速攻擊就是利用該原理長時間地維持TCP連接筑累,以達到拒絕服務的目的袱蜡。
Sockstress慢速攻擊首先會完成TCP三次握手以建立TCP連接,在最后的ACK應答中慢宗,攻擊者將其TCP窗口設置為0后再進行一次數(shù)據(jù)請求坪蚁。
攻擊目標在傳輸數(shù)據(jù)時,發(fā)現(xiàn)接收端的TCP窗口大小為0就會停止傳輸數(shù)據(jù)镜沽,并發(fā)出TCP窗口探測包敏晤,詢問攻擊者其TCP窗口是否更新。
由于攻擊者沒有更新TCP窗口大小缅茉,攻擊目標會一直維持TCP連接等待數(shù)據(jù)發(fā)送嘴脾,并不斷進行窗口更新探測。
攻擊目標的TCP連接表將逐漸耗盡蔬墩,無法接受新的連接而導致拒絕服務统阿。
Sockstress慢速攻擊的另一種方式是將TCP窗口設置為一個非常小的值,這樣攻擊目標將不得不把需要發(fā)送的數(shù)據(jù)切分成大量很小的分片筹我,這會極大地消耗目標的內存和處理器資源扶平,造成系統(tǒng)響應緩慢和拒絕服務。

2.2 攻擊SSL連接

2.2.1 THC SSL DoS攻擊
在進行SSL數(shù)據(jù)傳輸之前蔬蕊,通信雙方首先要進行SSL握手结澄,以協(xié)商加密算法交換加密密鑰,進行身份認證岸夯。
通常情況下麻献,這樣的SSL握手過程只需要進行一次即可,但是在SSL協(xié)議中有一個Renegotiation選項猜扮,通過它可以進行密鑰的重新協(xié)商以建立新的密鑰勉吻。
THC SSL DoS攻擊就是這樣反復不斷地進行密鑰重新協(xié)商過程,該過程需要服務器投入比客戶端多15倍的CPU計算資源旅赢。
攻擊者只需要一臺普通PC就能夠拖慢一臺高性能服務器齿桃,如果有大量主機同時進行攻擊惑惶,就會使服務器忙于協(xié)商密鑰而完全停止響應。

2.2.2 SSL洪水攻擊

在SSL握手的過程中短纵,服務器會消耗較多的CPU計算資源對數(shù)據(jù)先進行解密再進行有效性檢驗带污。
攻擊者可以利用這個特性進行SSL洪水攻擊。

3.攻擊應用資源

網(wǎng)絡應用和服務在處理數(shù)據(jù)時香到,通常需要消耗一定的網(wǎng)絡連接鱼冀、計算和存儲資源,這些資源是由應用程序向系統(tǒng)進行申請并自行管理和維護的悠就。
消耗應用資源的DDoS攻擊就是通過向應用提交大量消耗資源的請求千绪,從而達到拒絕服務的目的。

3.1 攻擊DNS服務
3.1.1 DNS QUERY洪水攻擊

DNS QUERY洪水攻擊是指向DNS服務器發(fā)送大量查詢請求以達到拒絕服務效果的一種攻擊方法梗脾。
在DNS解析的過程中翘紊,客戶端發(fā)起一次查詢請求,DNS服務器可能需要進行額外的多次查詢才能完成解析的過程并給出應答藐唠,在這個過程中會消耗一定的計算和網(wǎng)絡資源。
如果攻擊者利用大量受控主機不斷發(fā)送不同域名的解析請求鹉究,那么DNS服務器的緩存會被不斷刷新宇立,而大量解析請求不能命中緩存又導致DNS服務器必須消耗額外的資源進行迭代查詢,這會極大地增加DNS服務器的資源消耗自赔,導致DNS響應緩慢甚至完全拒絕服務妈嘹。
進行DNS QUERY洪水攻擊的要點在于每一個DNS解析請求所查詢的域名應是不同的,這樣可以比較有效地避開DNS服務器緩存中的解析記錄绍妨,達到更好的資源消耗效果润脸。

3.1.2 DNS NXDOMAIN洪水攻擊

DNS NXDOMAIN洪水攻擊是DNS QUERY洪水攻擊的一個變種,它向DNS服務器查詢不存在的域名他去。
在進行DNS NXDOMAIN洪水攻擊時毙驯,DNS服務器會進行多次域名查詢,其緩存會被大量NXDOMAIN記錄所填滿灾测,導致響應正常用戶的DNS解析請求的速度變慢爆价。
與DNS QUERY洪水攻擊所達到的效果類似。

3.2 攻擊Web服務
3.2.1 HTTP洪水攻擊

在處理HTTP請求的過程中媳搪,Web服務器通常需要解析請求铭段、處理和執(zhí)行服務端腳本、驗證用戶權限并多次訪問數(shù)據(jù)庫秦爆,這會消耗大量的計算資源和I/O訪問資源序愚。
如果攻擊者利用大量受控主機不斷地向Web服務器惡意發(fā)送大量HTTP請求,要求Web服務器處理等限,就會完全占用服務器的資源爸吮,造成其他正常用戶的Web訪問請求處理緩慢甚至得不到處理芬膝,造成拒絕服務。
由于HTTP協(xié)議是基于TCP協(xié)議的拗胜,需要完成三次握手建立TCP連接才能開始HTTP通信蔗候,因此進行HTTP洪水攻擊時無法使用偽造源IP地址的方式發(fā)動攻擊。
這時埂软,攻擊者通常會使用HTTP代理服務器锈遥,這樣不僅可以隱藏來源以避免被追查,還能夠提高攻擊的效率勘畔,攻擊者連接代理服務器并發(fā)送完請求后所灸,可以直接切斷與該代理服務器的連接并開始連接下一個代理服務器。
這時代理服務器與目標Web服務器的HTTP連接依然保持炫七,Web服務器需要繼續(xù)接收數(shù)據(jù)并處理HTTP請求爬立。
Web服務也存在緩存機制,如果攻擊者的大量請求都命中了服務器緩存万哪,那么這種攻擊的主要作用僅體現(xiàn)在消耗網(wǎng)絡帶寬資源上侠驯,對于計算和I/O資源的消耗是非常有限的。
因此奕巍,高效的HTTP洪水攻擊應不斷發(fā)出針對不同資源和頁面的HTTP請求吟策,并盡可能請求無法被緩存的資源,從而加重服務器的負擔的止,增強攻擊效果檩坚。

3.2.2 Slowloris慢速攻擊

HTTP首部以連續(xù)的"\r\n\r\n"作為結束標志。許多Web服務器在處理HTTP請求的首部信息時诅福,會等待首部傳輸結束后再進行處理匾委。
如果Web服務器沒有接收到連續(xù)的"\r\n\r\n"標志,就會一直接收數(shù)據(jù)并保持與客戶端的連接氓润。
利用這個特性赂乐,攻擊者能夠長時間與Web服務器保持連接,并逐漸耗盡Web服務器的連接資源咖气,導致其他用戶的HTTP請求無法被處理沪猴,造成拒絕服務魏蔗。

3.2.3 POST慢速攻擊

在HTTP首部信息中焕参,可以使用Content-Length字段來指定HTTP消息實體的傳輸長度。
當Web服務器接收到的請求首部中含有Content-Length字段時痹扇,服務器會將該字段的值作為POST實體的長度悯舟,持續(xù)接收數(shù)據(jù)并在到達Content-Length值時對POST實體的數(shù)據(jù)內容進行處理担租。
攻擊者在發(fā)送HTTP POST請求時,在請求首部中將Content-Length設置為一個很大的值抵怎,并將POST實體以非常緩慢的速度一個字節(jié)一個字節(jié)的向Web服務器發(fā)送奋救。
通過間隔性地發(fā)送單字節(jié)的POST實體內容岭参,攻擊者能夠確保連接不因超時而中斷。
利用這個特性尝艘,攻擊者能夠長時間與Web服務器保持連接演侯,并逐漸耗盡Web服務器的連接資源,導致其他用戶的HTTP請求無法被處理背亥,造成拒絕服務秒际。

(三)攻擊現(xiàn)象

(1)被攻擊主機上有大量等待的TCP連接;
(2)網(wǎng)絡中充斥著大量的無用的數(shù)據(jù)包狡汉;
(3)源地址為假 制造高流量無用數(shù)據(jù)娄徊,造成網(wǎng)絡擁塞,使受害主機無法正常和外界通訊盾戴;
(4)利用受害主機提供的傳輸協(xié)議上的缺陷反復高速的發(fā)出特定的服務請求寄锐,使主機無法處理所有正常請求;
(5)嚴重時會造成系統(tǒng)死機尖啡。

(四)防御方法

在發(fā)生DDoS攻擊的情況下橄仆,可以通過一些緩解技術來減少攻擊對自身業(yè)務和服務的影響,從而在一定程度上保障業(yè)務正常運行衅斩。
緩解DDoS攻擊的主要方法是對網(wǎng)絡流量先進行稀釋再進行清洗盆顾。

4.1 攻擊流量的稀釋
4.1.1 內容分發(fā)網(wǎng)絡 CDN

CDN技術的初衷是提高互聯(lián)網(wǎng)用戶對網(wǎng)站靜態(tài)資源的訪問速度,由于分布式多節(jié)點的特點矛渴,它也能夠對DDoS攻擊的流量產(chǎn)生稀釋的效果。
CDN在互聯(lián)網(wǎng)范圍內廣泛設置多個節(jié)點作為代理緩存惫搏,并將用戶的訪問請求導向最近的緩存節(jié)點具温,以加快訪問速度。
CDN使用智能DNS系統(tǒng)筐赔,一個域名對應一張IP地址表铣猩,當收到域名解析請求時,智能DNS會查看解析請求的來源茴丰,并給出地址表中距離請求來源最近的IP地址达皿。
用戶收到域名解析應答時,認為該CDN節(jié)點就是他請求的域名所對應的IP地址贿肩,并向該節(jié)點發(fā)起服務或資源請求峦椰。
CDN節(jié)點在收到用戶的請求時,會在其存儲的緩存內容中尋找用戶請求的資源汰规,如果找到汤功,就直接將資源響應給用戶,如果找不到溜哮,則作為代理服務器向源站請求資源并將結果緩存并返回給用戶滔金。
對于有大量靜態(tài)資源的網(wǎng)站色解,使用CDN進行代理緩存能夠大大減少源站的訪問流量。
在發(fā)生DDoS攻擊時餐茵,智能DNS會將來自不同位置的攻擊流量分散到對應位置的CDN節(jié)點上科阎,從而達到流量稀釋的效果。
利用CDN技術只能稀釋通過域名發(fā)起的DDoS攻擊的流量忿族,如果攻擊者直接通過IP地址進行攻擊锣笨,就不會經(jīng)過智能DNS解析,也就無法稀釋流量了肠阱。

4.1.2 任播 Anycast

Anycast技術是一種網(wǎng)絡尋址和路由方法票唆。通過使用它,多臺提供特定服務的服務器可以使用相同的IP地址屹徘,客戶端訪問請求報文將會被IP網(wǎng)絡路由到這一組服務器中最近的一臺之上走趋。
Anycast技術通常是通過在不同的節(jié)點處同時使用BGP協(xié)議向外聲明同樣的目的IP地址的方式實現(xiàn)的。
使用Anycast技術能夠稀釋DDoS攻擊流量噪伊,在Anycast尋址過程中簿煌,流量會被導向最近的節(jié)點,攻擊者不能對流量路徑進行操控鉴吹。
由于Anycast技術的高度可靠性姨伟,即使少數(shù)節(jié)點被DDoS攻擊打垮,其周圍客戶端的請求也能夠被快速地引導向其他可用的服務器豆励,從而保證服務的高可用性夺荒。

4.2.攻擊流量的清洗
4.2.1 IP信譽檢查

IP信譽機制是指為互聯(lián)網(wǎng)上的IP地址賦予一定的信譽值,那些過去或現(xiàn)在經(jīng)常被作為僵尸主機發(fā)動DDoS攻擊的IP地址會被賦予較低的信譽值良蒸。
當發(fā)生DDoS攻擊時技扼,流量清洗設備會對通過的網(wǎng)絡流量進行IP信譽檢查,優(yōu)先丟棄信譽值低的IP地址所發(fā)來的數(shù)據(jù)包或建立的會話連接嫩痰。
IP信譽檢查的極端情況就是IP黑名單機制剿吻,如果數(shù)據(jù)包的來源存在于黑名單之中,則直接丟棄串纺。
這種方式一般會造成較多的誤報丽旅。

4.2.2 攻擊特征匹配

多數(shù)情況下,發(fā)動DDoS攻擊需要借助工具纺棺,為了提高發(fā)送請求的效率榄笙,攻擊工具發(fā)出的數(shù)據(jù)包通常是由編寫者偽造并固化到工具中的,因此一種攻擊工具所發(fā)出的數(shù)據(jù)包載荷會具有一定的特征祷蝌。
流量清洗設備可以將這些數(shù)據(jù)包載荷中的特征作為指紋办斑,來識別工具所發(fā)出的攻擊流量。
命中指紋特征的數(shù)據(jù)包會被丟棄。

4.2.3 速度檢查與限制

一些攻擊方法在數(shù)據(jù)包載荷上可能并不存在明顯的特征乡翅,沒有辦法進行攻擊特征匹配鳞疲,但卻在請求數(shù)據(jù)包發(fā)送的頻率和速度上有著明顯的異常。
這些攻擊方法可以通過速度與限制來進行清洗蠕蚜。
例如在受到THC SSL DoS攻擊時尚洽,會在同一個SSL會話中多次進行密鑰協(xié)商,而正常情況下是不會這樣的靶累,因此當流量清洗設備發(fā)現(xiàn)SSL會話中密鑰協(xié)商的次數(shù)超過了特定的值腺毫,就可以中斷這個會話并將來源IP加入黑名單中。
再如受到Slowloris和POST慢速攻擊時挣柬,客戶端和服務器之間會以非常低的速率進行交互和數(shù)據(jù)傳輸潮酒,流量清洗設備在發(fā)現(xiàn)HTTP請求長時間沒有完成傳輸時,就可以將會話中斷邪蛔。

4.2.4 TCP代理和驗證

在一個TCP SYN請求到達流量清洗設備后急黎,設備并不將它交給服務器,而是回復一個SYN+ACK響應侧到,并等待客戶端回復勃教。
如果SYN請求來自合法用戶,那么它會對SYN+ACK進行響應匠抗,這時流量清洗設備會代替用戶與服務器建立TCP連接故源,之后合法用戶和服務器之間就通過流量清洗設備進行通信。
而如果SYN請求來自攻擊者汞贸,它通常不會對SYN+ACK進行響應绳军,從而形成半開連接。流量清洗設備會暫時保留半開連接矢腻,在經(jīng)過短暫超時后丟棄它门驾。
相比于服務器,流量清洗設備對連接表進行了優(yōu)化踏堡,能夠處理極其龐大的連接請求猎唁,因此即使有非常多的SYN請求同時涌向清洗設備咒劲,它也能夠處理顷蟆。
在此過程中,服務器并沒有消耗任何連接資源腐魂,因此保證了服務器的性能不受影響帐偎。

4.2.5 協(xié)議完整性驗證

為了提高發(fā)送攻擊請求的效率,大多數(shù)的攻擊方法都只會發(fā)送攻擊請求蛔屹,而不接收和處理服務器的響應數(shù)據(jù)削樊。
因此,如果能夠對請求來源進行交互式驗證,就可以檢查請求來源協(xié)議實現(xiàn)的完整性漫贞。對于協(xié)議實現(xiàn)不完整的請求來源甸箱,通常可以丟棄其數(shù)據(jù)包迅脐。
例如對于提供HTTP服務的Web服務器芍殖,可以使用302重定向來驗證請求來源是否完整實現(xiàn)了HTTP協(xié)議。
HTTP狀態(tài)碼302表示請求的資源被臨時轉移谴蔑,并會給出一個轉移后的地址豌骏。合法用戶在接收到302重定向響應碼后會順著跳轉地址尋找對應的資源,而攻擊工具則不會進行跳轉隐锭。
因此窃躲,攻擊請求將會被流量清洗設備攔截并丟棄,Web服務器不會受到影響钦睡。

4.2.6 客戶端真實性驗證

一些攻擊工具在開發(fā)過程中使用了第三方庫蒂窒,完整實現(xiàn)了協(xié)議交互功能。對于這些攻擊工具赎婚,需要使用客戶端真實性驗證技術進行攻擊流量清洗刘绣。
例如對于Web服務,可以通過檢查客戶端是否支持JavaScript來驗證請求是否來自合法用戶挣输。
對于加入了JavaScript解析和執(zhí)行功能的攻擊工具纬凤,則需要使用驗證碼來進行識別。
對于無法解析JavaScript或無法識別驗證碼的請求撩嚼,流量清洗設備可以丟棄它停士,從而保護Web服務器不受影響。
總而言之完丽,DDos防御的主要方法
(1)盡可能對系統(tǒng)加載最新補丁恋技,并采取有效的合規(guī)性配置,降低漏洞利用風險逻族;
(2)采取合適的安全域劃分蜻底,配置防火墻、入侵檢測和防范系統(tǒng)聘鳞,減緩攻擊薄辅。
(3)采用分布式組網(wǎng)、負載均衡抠璃、提升系統(tǒng)容量等可靠性措施站楚,增強總體服務能力。
(4)隱藏服務器的真實IP地址

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末搏嗡,一起剝皮案震驚了整個濱河市窿春,隨后出現(xiàn)的幾起案子拉一,更是在濱河造成了極大的恐慌,老刑警劉巖旧乞,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蔚润,死亡現(xiàn)場離奇詭異,居然都是意外死亡尺栖,警方通過查閱死者的電腦和手機抽碌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來决瞳,“玉大人货徙,你說我怎么就攤上這事∑ず” “怎么了痴颊?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屡贺。 經(jīng)常有香客問我蠢棱,道長,這世上最難降的妖魔是什么甩栈? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任泻仙,我火速辦了婚禮,結果婚禮上量没,老公的妹妹穿的比我還像新娘玉转。我一直安慰自己,他們只是感情好殴蹄,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布究抓。 她就那樣靜靜地躺著,像睡著了一般袭灯。 火紅的嫁衣襯著肌膚如雪刺下。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天稽荧,我揣著相機與錄音橘茉,去河邊找鬼。 笑死姨丈,一個胖子當著我的面吹牛畅卓,可吹牛的內容都是我干的。 我是一名探鬼主播构挤,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼髓介,長吁一口氣:“原來是場噩夢啊……” “哼惕鼓!你這毒婦竟也來了筋现?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎矾飞,沒想到半個月后一膨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡洒沦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年豹绪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片申眼。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞒津,死狀恐怖,靈堂內的尸體忽然破棺而出括尸,到底是詐尸還是另有隱情巷蚪,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布濒翻,位于F島的核電站屁柏,受9級特大地震影響,放射性物質發(fā)生泄漏有送。R本人自食惡果不足惜淌喻,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雀摘。 院中可真熱鬧裸删,春花似錦、人聲如沸阵赠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豌注。三九已至伤塌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轧铁,已是汗流浹背每聪。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留齿风,地道東北人药薯。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像救斑,于是被迫代替她去往敵國和親童本。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內容