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