9月18日,針對(duì)目前備受關(guān)注的互聯(lián)網(wǎng)云安全問題,“騰訊云會(huì)客廳 技術(shù)專家面對(duì)面”首次活動(dòng)在京舉辦。騰訊云安全總監(jiān)周斌攜技術(shù)專家團(tuán)隊(duì),與到場(chǎng)朋友一起共話云時(shí)代的安全問題。
如下為周斌先生本次技術(shù)分享的部分精彩內(nèi)容。請(qǐng)您欣賞。
這是一個(gè)最好的時(shí)代、也是一個(gè)糟糕的時(shí)代
當(dāng)下是一個(gè)什么樣的時(shí)代?這個(gè)是我們看到的數(shù)據(jù),這是一個(gè)最好的時(shí)代,中國(guó)的網(wǎng)民數(shù)和互聯(lián)網(wǎng)普及率一直在上升。根據(jù)這個(gè)數(shù)據(jù),2010年到2015年整個(gè)全球云市場(chǎng)也是在飛速的成長(zhǎng)過程當(dāng)中。
當(dāng)下也是一個(gè)糟糕的時(shí)代,DDoS肆虐、黑產(chǎn)橫行、阻礙互聯(lián)網(wǎng)的發(fā)展。在2014年12月,某國(guó)外知名廠商遭受到了DDoS攻擊,服務(wù)中斷12個(gè)小時(shí)。今年上半年,國(guó)內(nèi)發(fā)生流量超過100G以上的攻擊次數(shù)有33起。
2015年7月,騰訊云防護(hù)的最大一次攻擊的流量已經(jīng)接近300G。這個(gè)流量是指“到達(dá)流量”,即從機(jī)房看到的實(shí)際收到的流量帶寬。了解互聯(lián)網(wǎng)黑產(chǎn)的同學(xué),都知道一個(gè)名詞,叫“打出流量”:
打出流量VS到達(dá)流量
這兩個(gè)本身是有一個(gè)距離的。運(yùn)營(yíng)商骨干網(wǎng)在中間做了大量的清洗工作。在流量經(jīng)過所在城市的城域網(wǎng),上到骨干網(wǎng),再到對(duì)端城市的城域網(wǎng)時(shí),流量會(huì)丟失掉絕大部分。中間運(yùn)營(yíng)商的路由器和防護(hù)設(shè)備會(huì)把大部分的惡意流量都丟棄。
換句話說,你在互聯(lián)網(wǎng)上買1個(gè)G的打出流量,實(shí)際上到達(dá)受攻擊方的時(shí)候,可能就是100兆。也就是說90%都會(huì)在途中丟失。
所以,我們?cè)?015年7月防護(hù)的這次攻擊,攻擊流量(到達(dá)流量)是297G,按照這種比例來算,攻擊方打出的流量是一個(gè)非常非常恐怖的數(shù)字。所以說,從DDoS和黑產(chǎn)角度來看,這真的是個(gè)很糟糕的時(shí)代。
錘子科技抵御DDos攻擊的全過程
錘子官網(wǎng)的原始訪問架構(gòu)很簡(jiǎn)單:用戶通過瀏覽器直接訪問到IDC機(jī)房的服務(wù)器上,但這也是標(biāo)準(zhǔn)的情況。錘子官網(wǎng)服務(wù)器所在的IDC,具備一定的DDoS防護(hù)能力,約幾個(gè)G的級(jí)別。當(dāng)天發(fā)布會(huì),訪問官網(wǎng)的流量很快沖到上限。在這里需要說明的是:
除非是海量服務(wù)的網(wǎng)站,正常情況下,一個(gè)普通網(wǎng)站業(yè)務(wù)的流量不太可能有幾個(gè)G(大量圖片和視頻資源除外)。特別是對(duì)于官網(wǎng)而言,更加不可能。
這種情況出現(xiàn)以后,整個(gè)IDC機(jī)房的入口就被堵塞了,錘子科技官網(wǎng)已經(jīng)無法正常服務(wù)了。錘子科技于是派人來對(duì)接大禹。
對(duì)接的過程很簡(jiǎn)單:在錘子官網(wǎng)域名的DNS配置里面加一條CNAME,將相應(yīng)域名解析到大禹即可。
這是”大禹”令人欣賞之處:不管用戶的實(shí)際機(jī)房是否在騰訊云,只需要把它的域名解析到大禹系統(tǒng),就可以為他提供防護(hù),能很方便地為非騰訊云的客戶提供服務(wù)。
這個(gè)過程中使用到了DNS協(xié)議的CNAME功能。它會(huì)把用戶流量的請(qǐng)求先路由到大禹的加速點(diǎn),然后由大禹的加速點(diǎn)清洗、過濾,再吐回到原站。也就是說只要在域名解析的時(shí)候,把域名指向大禹系統(tǒng)即可,不需要將用戶的服務(wù)器從自己機(jī)房搬遷到騰訊云機(jī)房。
這樣設(shè)置后,客戶端發(fā)送過來的數(shù)據(jù)(流量),不管是攻擊請(qǐng)求,還是正常請(qǐng)求,流量會(huì)先走到大禹系統(tǒng)的防護(hù)節(jié)點(diǎn)(這個(gè)節(jié)點(diǎn)內(nèi)部叫做OC點(diǎn))上做流量清洗。清洗完以后,把剩余流量回注到用戶的IDC(本例中是錘子服務(wù)器)。
這種情況下,可能攻擊過來的是10個(gè)G(打到了大禹所在機(jī)房),但在經(jīng)過清洗后,用戶IDC僅接收到了500M的正常訪問流量。
這樣處理完后,用戶IDC就可以正常提供服務(wù)。同時(shí),對(duì)于大禹而言,每一個(gè)OC點(diǎn)上分擔(dān)了只是10個(gè)G的幾十分之一。
危情13分鐘
當(dāng)時(shí)的情況是,錘子科技的技術(shù)人員在發(fā)現(xiàn)了被DDoS攻擊后,立刻把DNS解析到“大禹”系統(tǒng)。
而DNS的配置從配完到生效,需要一段時(shí)間,雖然從理論上來講,可以修改到一秒、兩秒,但實(shí)際上今天的中國(guó)環(huán)境做不到,最快的話,也是在分鐘的級(jí)別:
因?yàn)镈NS有一個(gè)root(一般在美國(guó)),下面還有一個(gè)Local DNS,所有的用戶生效要依賴于Local DNS都刷新生效。中國(guó)很多運(yùn)營(yíng)商在Local DNS緩存時(shí)間設(shè)置的不一樣,所以如果要看到所有DNS全部更新,大概是在分鐘的級(jí)別。
雖然單一的、個(gè)別地方也許有秒級(jí)。但是,國(guó)內(nèi)如果所有的用戶全部刷新,大概要幾分鐘才能完成。所以整個(gè)過程耗時(shí)13分鐘,中間有一部分時(shí)間是花在Local DNS生效。這個(gè)是所有的廠商都無法控制的,因?yàn)長(zhǎng)ocal DNS生效時(shí)間只有運(yùn)營(yíng)商才可以控制。
解讀DDoS防護(hù)
DDoS在行業(yè)內(nèi)有一個(gè)不成文的說法,所謂流量型攻擊的防護(hù),就是拼帶寬。理論上來講,防護(hù)帶寬越大,就越能夠?yàn)橛脩籼峁└鼜?qiáng)的防護(hù)能力。
騰訊之所以能夠提供幾個(gè)T的防護(hù)能力,是因?yàn)槟壳耙呀?jīng)在全國(guó)各地部署了400多個(gè)防護(hù)節(jié)點(diǎn),平均每個(gè)點(diǎn)可以提供10個(gè)G的防護(hù)能力,400個(gè)點(diǎn),就能夠提供4個(gè)T的防護(hù)能力,未來會(huì)更多。
而且這個(gè)架構(gòu)有一個(gè)好處,他本身是一個(gè)平行擴(kuò)展,這意味著今天投入了400個(gè)點(diǎn),如果說真的攻擊流量上來的話,可以很容易再投入進(jìn)去100個(gè)點(diǎn),變成5個(gè)T。
帶寬就是成本,如果空閑帶寬只是為DDoS服務(wù),這會(huì)是一個(gè)巨大的成本。但是,因?yàn)轵v訊有這么大的體量,已經(jīng)布局了非常多的機(jī)房,因此有條件聯(lián)合起來把空閑帶寬做防護(hù)。
普通IDC能用作流量清洗的OC點(diǎn)么?
假設(shè)普通IDC有10G帶寬,但肯定抗不了10G的攻擊流量,為什么?
因?yàn)楹芏嗲闆r下,服務(wù)的可用性會(huì)被海量連接數(shù)給擊潰,在機(jī)器網(wǎng)卡還沒到峰值時(shí),機(jī)器的CPU可能已經(jīng)扛不住了。這時(shí)甚至可能只能扛到1個(gè)G(雖然帶寬還有9個(gè)G),這個(gè)點(diǎn)就已經(jīng)宕掉。
但是大禹所有的OC點(diǎn)部署了一個(gè)流量檢測(cè)的防御系統(tǒng),外面都有三個(gè)防護(hù)中心,會(huì)檢測(cè)攻擊流量,做流量清洗。換句話說,在10個(gè)G的帶寬之內(nèi),不會(huì)斷掉,還可以提供服務(wù),直到整個(gè)點(diǎn)流量被打滿。
三個(gè)防護(hù)中心包括有:管理中心、攻擊的清洗中心和攻擊檢測(cè)中心。通過三個(gè)中心之間的數(shù)據(jù)交換,來防護(hù)DDoS和CC攻擊。
CC攻擊
攻擊者借助代理服務(wù)器生成指向受害主機(jī)的合法請(qǐng)求,實(shí)現(xiàn)DDOS和偽裝就叫:CC,Challenge Collapsar,HTTP里針對(duì)應(yīng)用型攻擊的方式。
傳統(tǒng)的DDoS攻擊,主要是通過大流量發(fā)起的攻擊,比如說你的帶寬只有1個(gè)G,那拿100個(gè)G把你的機(jī)房帶寬塞滿。這樣的話,你的網(wǎng)絡(luò)就癱瘓了。
其實(shí)現(xiàn)在很多時(shí)候,黑產(chǎn)一般會(huì)采用CC來對(duì)付一個(gè)網(wǎng)站,怎么做?
去耗盡你的CPU資源,把你機(jī)器網(wǎng)卡的連接數(shù)全部掛滿,這樣即使你的帶寬仍然有很多很多,只需要20兆的流量就可以把你打趴下。
這個(gè)是在DDoS之后的另外一個(gè)很大的威脅點(diǎn)。大禹現(xiàn)在這套系統(tǒng)對(duì)CC也是有一個(gè)很好的防御機(jī)制。
整個(gè)防御機(jī)制,從攻擊檢測(cè)到管理中心,然后再到整個(gè)攻擊的清洗完成,可以在5秒鐘之內(nèi)完成。當(dāng)一個(gè)海量的流量沖過來,會(huì)在5秒鐘之內(nèi)完成清洗。
為什么可以5秒鐘完成流量清洗?
其實(shí),很多時(shí)候攻擊有兩種情況:
一種是像洪峰一樣,一浪一浪的方式,會(huì)以一個(gè)波浪型逐步上升的趨勢(shì)。
這個(gè)比較好解決,設(shè)一個(gè)延遲反應(yīng)時(shí)間就行了,是一分鐘還是十分鐘。
第二種是上來直接就是洪峰谷底的方式,這種方式如果防御系統(tǒng)反應(yīng)太慢,很多云機(jī)房都響應(yīng)不了了,很多IDC其實(shí)就是因?yàn)檫@種瞬時(shí)損失的峰值,把整個(gè)IDC的帶寬全部撐滿。
但是,因?yàn)樵隍v訊云上部署了這樣DDoS的統(tǒng)一防護(hù)系統(tǒng),所以可以在很短的時(shí)間之內(nèi)響應(yīng)秒級(jí)的事件時(shí)間,響應(yīng)這種防護(hù)需求,從而保證服務(wù)正常。