本議題是我們在OWASP杭州區(qū)2013年歲末年初安全沙龍中進行分享的內(nèi)容,在此我們對這個議題的整體內(nèi)容進行了重新歸納梳理,,形成了文字版,。
在本文中,DDoS的案例與應對經(jīng)驗均來自于某市場占有率很高的客服系統(tǒng)所遇到的實際場景,,分別從成本,、效率和具體架構(gòu)設(shè)計(選型、配置,、優(yōu)化等)角度來分析通過自建CDN來應對不同類型的DDoS攻擊,。
背景介紹
我們的客服系統(tǒng)主要應用在各類網(wǎng)絡商品銷售、網(wǎng)站在線客服等領(lǐng)域,,主要業(yè)務是提供基于網(wǎng)頁的實時動態(tài)的文字聊天,,總用戶數(shù)58萬,同時在線活躍的用戶~12萬,。
在此類應用領(lǐng)域,通常行業(yè)之間的競爭比較激烈,,其中包括在線下無法名正言順的灰色+暴利產(chǎn)業(yè),,導致競爭對手之間經(jīng)常發(fā)動DDoS惡意攻擊。營銷網(wǎng)站往往是單面加速,,很難徹底打擊,,于是一些黑客通過攻擊網(wǎng)站的在線客服系統(tǒng),導致網(wǎng)站無法跟訪客溝通,,無法交易,,從而達到惡意攻擊的目的。結(jié)果,客服系統(tǒng)這個原本有助于網(wǎng)站營銷的工具反而成了被攻擊的主要對象,。
我們遭遇的DDoS攻擊類型包括:延緩性的CC攻擊和致命的大流量攻擊,。下面將對兩種攻擊方式的攻擊特點、防御思路和我們用過的一些防御方案進行簡單的介紹,。
延緩性的CC攻擊
攻擊特點
攻擊者借助網(wǎng)絡上提供的大量代理服務器IP,,利用軟件,生成指向受害主機的合法請求,。
這類攻擊對攻擊者來說成本低,,而且網(wǎng)上現(xiàn)成的軟件多,攻擊的風格相對比較”溫柔謹慎”,,其目的是通過逐漸消耗服務器的應用開銷,,網(wǎng)絡擁堵,最后導致網(wǎng)站變慢,,請求無響應,,達到網(wǎng)站無法訪問的目的。
防御思路
對于這類攻擊,,有兩個漏洞特點可以被我們利用,,從而阻止這類惡意的CC攻擊。
第一個特征是由于人為生成了大量的非法請求,,導致網(wǎng)絡的incoming流量會異常增大(正常情況下,,incoming流量小,outgoing流量大),;第二個特征是攻擊力度有一個漸增過程,,形成一個緩沖期。
我們要充分利用這個寶貴的時間,,讓機器第一時間智能的做出反應,,調(diào)用日志分析腳本做決策并加以防御。腳本實現(xiàn)原理就是在服務器上啟動日志分析機制,,在第一時間找出異常的IP,、URL、特征碼,,從內(nèi)核層利用iptables對惡意IP進行過濾,,在應用層上利用nginx的http關(guān)鍵詞進行過濾,直接返回badcode 444進行攔截,。
具體實現(xiàn)觸發(fā)腳本的方法有多種,,這里只列舉我們所使用的兩種:
-
使用Zabbix的流量監(jiān)控圖來觸發(fā)日志分析腳本,如圖所示:
- 利用bash腳本來統(tǒng)計incoming流量,,發(fā)現(xiàn)異常時,,調(diào)用相應日志分析腳本,,實現(xiàn)阻擊。
方案缺點
無論是從內(nèi)核級別還是應用級別,,對服務器本身的CPU和內(nèi)存的依賴度高,。隨著流量的不斷增大和攻擊時間的持續(xù),資源最終被耗盡,,所以,,治標不治本。
致命的大流量攻擊
攻擊特點
這種攻擊通常以tcp syn,,icmp和UDP(尤其是UDP,,單UDP的數(shù)據(jù)包可以很大)方式為主??头到y(tǒng)遭遇到的最大的一次為16G的攻擊流量,,整個機房都被影響到。攻擊者通??刂拼罅咳怆u或者直接勾結(jié)IDC里的服務器和帶寬資源,,對目標進行流量打擊。此時流量會快速占滿服務器的網(wǎng)絡帶寬,,導致無法響應任何用戶請求,。
這類攻擊需要購買大量帶寬資源,對于攻擊方來說,,成本挺高,,但是下手“快狠準”,目的是讓網(wǎng)站在短時間內(nèi)徹底無響應,。
由于這類攻擊會引起流量陡增,,IDC里的流量監(jiān)控設(shè)備也會很明顯的察覺到這個現(xiàn)象。IDC通常采取的措施一般是丟車保帥,,直接將這個被攻擊的IP拉黑名單甚至直接拔線,,讓攻擊對象自殺。這對本應該需要幫助的客戶無疑是落井下石,,雪上加霜,。
防御思路
應付大流量的攻擊,目前可以選擇的防御方式無非幾種:
- 架設(shè)硬防火墻
- 租用高防節(jié)點
- 租用CDN分散目標流量
方案缺點
- 架設(shè)硬防火墻:市面上2G硬防單價在10W左右,,集群防御代價更大,,雖然硬件級的防御性能高,但面對流量洪水也是愛莫能助,。
- 租用高防節(jié)點:高防節(jié)點有共享獨享區(qū)分,價格相差很大,,分流策略也不同,,但都有性能損耗和副作用,。
- 租用CDN分散目標流量:市面上的CDN提供商都是以流量為收費標準,這對于經(jīng)常遭受流量攻擊的網(wǎng)站來說,,反而要為攻擊流量買單,,這著實讓人哭笑不得。
無論是采購的硬件成本和高防資源還是CDN加速,,都成本昂貴,,閑時資源利用率低,攻擊高峰時面對有組織有規(guī)模的流量時又捉襟見肘,,還伴有副作用,,并非長久之計。
處于弱勢的被打擊方
綜上所述,,無論是使用腳本抗擊延緩性CC攻擊,,還是通過堆積流量應付大流量攻擊,都不是長久之計,。隨著業(yè)務規(guī)模的擴大,,我們在這方面投入的成本和精力會越來越多。
我們也曾跟發(fā)起攻擊的人有過交流,,因此也大致了解攻擊者手上掌握的資源規(guī)模:
這是非常完整的產(chǎn)業(yè)鏈(上游人員早已身在海外,,根本無法查處),攻擊者手上控制了大量的攻擊資源,,并且攻擊資源本身就來自于IDC,。在發(fā)動攻擊時,他們能夠調(diào)集到多個IDC的帶寬資源來對目標打擊(這一現(xiàn)象也折射出了當前國內(nèi)不規(guī)范的IDC管理),。
從這一角度來看,,被打擊方永遠都處于弱勢地位,以勢單力薄的架構(gòu)和極其有限的資源,,根本無法抵抗強大的集群資源攻擊,。
因此,我們跳出了單節(jié)點防御和租用CDN的思路,,轉(zhuǎn)而考慮自建CDN的方案,。
長久之計:自建CDN
自建CDN的好處有幾個方面:
- 旁路做流量清洗(痘痘長在別人臉上最好)
- 資源充分利用:無攻擊的時候,做路由加速,,有攻擊的時候,,做節(jié)點切換(一物多用)
- 隨著投入的資金增加,防御DDoS攻擊的能力增強(長遠規(guī)劃,,資金回報率高)
有關(guān)自建CDN具體建設(shè)的思路如何,,成本多少,我們會在系列的下一篇文章中進行介紹,。
作者簡介
邵海楊,,來自杭州Linux用戶組,。網(wǎng)名“海洋之心”,系統(tǒng)架構(gòu)師,,業(yè)余撰稿人,,致力于開源軟件及前沿科技的研究和探索。
張磊,,來自杭州谷歌開發(fā)者社區(qū),。專注于信息安全技術(shù)領(lǐng)域,曾主導多項銀行/證券行業(yè)網(wǎng)站安全測試和入侵取證分析項目,,為四大銀行提供安全防護技術(shù)支持,。目前創(chuàng)業(yè)做互聯(lián)網(wǎng)安全防護。