上一篇我們介紹了SYN Flood攻擊的原理和防御方式,,除了SYN報(bào)文之外,TCP交互過程中還存在SYN-ACK,、ACK,、FIN和RST報(bào)文,這幾類報(bào)文也可能會(huì)被攻擊者利用,,海量的攻擊報(bào)文會(huì)導(dǎo)致被攻擊目標(biāo)系統(tǒng)資源耗盡,、網(wǎng)絡(luò)擁塞,無法正常提供服務(wù),。本篇就來介紹這幾種Flood攻擊的原理和防御方式,。 0x01 SYN-ACK Flood攻擊與防御 通信雙方通過三次握手建立一個(gè)TCP連接的過程中,SYN-ACK報(bào)文出現(xiàn)在第二次握手中,,是用來確認(rèn)第一次握手的,。一方收到SYN-ACK報(bào)文后,首先會(huì)判斷該報(bào)文是不是屬于三次握手范疇之內(nèi)的報(bào)文,。如果都沒有進(jìn)行第一次握手就直接收到了第二次握手的報(bào)文,,那么就會(huì)向?qū)Ψ桨l(fā)送RST報(bào)文,告知對(duì)方其發(fā)來報(bào)文有誤,,不能建立連接,。 SYN-ACK Flood攻擊正是利用了這一點(diǎn),攻擊者利用工具或者操縱僵尸主機(jī),,向目標(biāo)服務(wù)器發(fā)送大量的SYN-ACK報(bào)文,,這些報(bào)文都屬于憑空出現(xiàn)的第二次握手報(bào)文,服務(wù)器忙于回復(fù)RST報(bào)文,,導(dǎo)致資源耗盡,,無法響應(yīng)正常的請(qǐng)求。 華為Anti-DDoS解決方案使用源認(rèn)證方式防御SYN-ACK Flood攻擊,其原理是Anti-DDoS系統(tǒng)向發(fā)送SYN-ACK報(bào)文的源地址發(fā)送SYN報(bào)文,,相當(dāng)于發(fā)起了第一次握手,,探測(cè)該地址是否真實(shí)存在。真實(shí)的源會(huì)向Anti-DDoS系統(tǒng)響應(yīng)正確的SYN-ACK報(bào)文,,也就是第二次握手的報(bào)文,;而虛假的源則不會(huì)響應(yīng)正確的SYN-ACK報(bào)文。 1,、當(dāng)連續(xù)一段時(shí)間內(nèi)去往目標(biāo)服務(wù)器的SYN-ACK報(bào)文超過告警閾值后,,Anti-DDoS系統(tǒng)啟動(dòng)源認(rèn)證機(jī)制。源認(rèn)證機(jī)制啟動(dòng)后,,Anti-DDoS系統(tǒng)向發(fā)送SYN-ACK報(bào)文的源地址發(fā)送SYN報(bào)文,。 2、如果這個(gè)源是虛假源,,不會(huì)向Anti-DDoS系統(tǒng)響應(yīng)正確的SYN-ACK報(bào)文,。 3、如果這個(gè)源是真實(shí)源,,會(huì)向Anti-DDoS系統(tǒng)響應(yīng)正確的SYN-ACK報(bào)文,。Anti-DDoS系統(tǒng)收到該SYN-ACK報(bào)文后,將該源IP地址加入白名單,,同時(shí)會(huì)向源地址發(fā)送RST報(bào)文,,斷開自己和這個(gè)源地址的連接。 4,、后續(xù)這個(gè)源發(fā)出的SYN-ACK報(bào)文命中白名單直接通過,,而對(duì)于那些未匹配白名單的SYN-ACK報(bào)文則繼續(xù)進(jìn)行源認(rèn)證。 Anti-DDoS系統(tǒng)防御SYN-ACK Flood攻擊與防御SYN Flood攻擊采用的方式類似,,也是采用源認(rèn)證的方式,。區(qū)別是防御SYN-ACK Flood攻擊時(shí),通過發(fā)送中TCP第一次握手中的SYN報(bào)文來探測(cè)源是否真實(shí)存在,,防止虛假源攻擊??梢?,對(duì)于這兩種基于TCP的面向連接的DDoS攻擊,最有效的防御方式就是源認(rèn)證,。 0x02 ACK Flood攻擊與防御 在TCP三次握手的過程中,,ACK報(bào)文出現(xiàn)在第三次握手中,用來確認(rèn)第二次握手中的SYN-ACK報(bào)文,。ACK Flood攻擊指的是攻擊者利用工具或者操縱僵尸主機(jī),,向目標(biāo)服務(wù)器發(fā)送大量的ACK報(bào)文,服務(wù)器忙于回復(fù)這些憑空出現(xiàn)的第三次握手報(bào)文,導(dǎo)致資源耗盡,,無法響應(yīng)正常的請(qǐng)求,。 華為Anti-DDoS解決方案使用會(huì)話檢查的方式防御ACK Flood攻擊,這與防御SYN Flood和SYN-ACK Flood時(shí)采用的方式有所不同,。提到會(huì)話,,大家應(yīng)該不會(huì)陌生,它是狀態(tài)檢測(cè)防火墻的一個(gè)機(jī)制,,是防火墻最基本的功能,,也是實(shí)現(xiàn)安全防護(hù)的基礎(chǔ)技術(shù)。 Anti-DDoS系統(tǒng)借鑒了防火墻的會(huì)話機(jī)制,,通過檢查會(huì)話來確定ACK報(bào)文的真實(shí)性,。我們可以把Anti-DDoS系統(tǒng)看成是關(guān)閉了鏈路狀態(tài)檢查功能的防火墻,SYN,、SYN-ACK,、ACK等報(bào)文都會(huì)創(chuàng)建會(huì)話。對(duì)于一次正常的TCP連接建立過程來說,,必須先有SYN報(bào)文,,接著是SYN-ACK報(bào)文,然后才是ACK報(bào)文,,所謂有“因”才有“果”,。只有ACK報(bào)文命中了會(huì)話這個(gè)“因”,才能說明該報(bào)文是正常交互過程中的報(bào)文,,是真實(shí)的,。 Anti-DDoS系統(tǒng)對(duì)ACK報(bào)文進(jìn)行會(huì)話檢查時(shí),支持基本和嚴(yán)格兩種模式,,我們先來看基本模式,。 基本模式 使用基本模式時(shí),Anti-DDoS系統(tǒng)對(duì)ACK報(bào)文進(jìn)行會(huì)話檢查,,如果ACK報(bào)文沒有命中會(huì)話,,Anti-DDoS系統(tǒng)會(huì)允許第一個(gè)ACK報(bào)文通過,并建立會(huì)話,,以此來對(duì)后續(xù)ACK報(bào)文進(jìn)行會(huì)話檢查,;如果ACK報(bào)文命中了會(huì)話,則繼續(xù)檢查報(bào)文的序號(hào),,序號(hào)正確的報(bào)文允許通過,,序號(hào)不正確的報(bào)文則被丟棄。 基本模式允許第一個(gè)ACK報(bào)文通過,,檢查條件比較寬松,。如果攻擊者發(fā)送變?cè)椿蜃兌丝诘腁CK報(bào)文,基本模式會(huì)允許報(bào)文通過并建立會(huì)話,這樣就會(huì)導(dǎo)致攻擊報(bào)文被放過,,影響防御效果,。為此,Anti-DDoS系統(tǒng)提供了嚴(yán)格模式,,檢查條件更加嚴(yán)格,,防御效果也會(huì)更好一些。 嚴(yán)格模式 嚴(yán)格模式指的是Anti-DDoS系統(tǒng)對(duì)ACK報(bào)文進(jìn)行會(huì)話檢查時(shí),,如果ACK報(bào)文沒有命中會(huì)話,,直接丟棄報(bào)文;如果ACK報(bào)文命中會(huì)話,,并且序號(hào)正確,,允許報(bào)文通過。 嚴(yán)格模式的檢查條件比較苛刻,,沒有命中會(huì)話的ACK報(bào)文都會(huì)被丟棄,。在旁路部署動(dòng)態(tài)引流的場(chǎng)景,由于報(bào)文來回路徑不一致,,正常業(yè)務(wù)的ACK報(bào)文會(huì)因?yàn)闆]有命中會(huì)話而被丟棄,,因此對(duì)正常業(yè)務(wù)有一定的影響。 0x03 FIN/RST Flood攻擊與防御 TCP交互過程中還存在FIN和RST報(bào)文,,F(xiàn)IN報(bào)文用來關(guān)閉TCP連接,,RST報(bào)文用來斷開TCP連接。這兩種報(bào)文也可能會(huì)被攻擊者利用來發(fā)起DDoS攻擊,,導(dǎo)致目標(biāo)服務(wù)器資源耗盡,,無法響應(yīng)正常的請(qǐng)求。 華為Anti-DDoS解決方案也是使用會(huì)話檢查的方式防御FIN/RST Flood攻擊,,如果FIN/RST報(bào)文沒有命中會(huì)話,,直接丟棄報(bào)文;如果FIN/RST報(bào)文命中會(huì)話,,則根據(jù)會(huì)話創(chuàng)建原因和會(huì)話檢查結(jié)果來判斷該報(bào)文是否通過: l 如果會(huì)話是由SYN或SYN-ACK報(bào)文創(chuàng)建的,,則允許該FIN/RST報(bào)文通過。 l 如果會(huì)話是由其他報(bào)文創(chuàng)建的(例如ACK報(bào)文),,則進(jìn)一步檢查報(bào)文序號(hào)是否正確,,序號(hào)正確的報(bào)文允許通過,序號(hào)不正確的報(bào)文則被丟棄,。 SYN-ACK Flood,、ACK Flood和FIN/RST Flood攻擊的原理和防御方式就介紹到這里,,下一篇我們將介紹另外幾種TCP類的DDoS攻擊,包括連接耗盡類攻擊、異常報(bào)文類攻擊,,請(qǐng)大家繼續(xù)關(guān)注。 |
|