躺槍
對于一個數據中心來說,大流量DDoS攻擊常常帶來的一個額外的不良結果是“連帶效應” (collateral effect),即黑客對A用戶的攻擊會影響到B甚至更多用戶的業務,很多網站業務受到影響而無法提供正常業務;盡管黑客實際上攻擊的對象并非是這些網站。對于這種不幸遭到“連帶”的情況,有一種更為通俗的稱謂——“躺槍”。
“躺槍”在云數據中心環境下同樣可能發生,其發生的根本原因是資源的共享,即眾多網站共享數據中心的出口帶寬。如果攻擊者的攻擊流量很大,導致數據中心出口發生擁塞情況,那么數據中心的很多網站業務都會受到影響。
如何規避“躺槍“情況的發生呢?擴充出口帶寬固然是一種手段,但是擴帶寬不能完全規避”躺槍“情況的發生。黑客的大流量攻擊往往體現為突發,即在很短時間內達到一個相對峰值,給防護一方擴充帶寬的時間其實很少。即便防護一方實現帶寬快速擴充,黑客還可能提高攻擊流量,迅速吞噬掉擴充的帶寬。因此,簡單地擴充帶寬并非一種良策。
如何有效避免“躺槍“的情況
那么如何有效避免“躺槍“的情況呢?俗話說,天下武功,唯快不破。DDoS防護亦然。其實,手段非常“簡單”,就是迅速將被攻擊用戶的流量丟棄掉。到底多快好呢?答案是越快越好,如果能實現秒級,那么對其他用戶來說,幾乎是無感知的。
從技術實現上來說,就是“秒級”黑洞。
眾所周知,黑洞是一種常見的抗DDoS手段,將對目的IP的所有流量(包括攻擊流量)投入黑洞路由中全部丟棄。正是由于黑洞表面上的簡單暴力而備受爭議——畢竟被攻擊目標事實上無法訪問,攻擊者的目標實現了。
然而,從另一個角度上來說,黑洞的執行可以最大程度上保證其他用戶的業務正常使用。畢竟,一個用戶的業務損失不能拉上其他眾多用戶來一起買單。
我們來探討一個關鍵的問題——“秒級”黑洞是否可能實現?答案是肯定的。這里有兩個關鍵的技術點,即秒級檢測和秒級響應,一方面,要求對大流量攻擊的發現在秒級;另一方面,黑洞操作也需要在秒級。
如何實現秒級黑洞
接下來的問題更有趣,秒級是什么概念?幾十秒?還是幾秒?
回答這個問題需要站在業務角度上——哪個用戶可以忍受幾十秒甚至更長的業務延遲?因此,秒級的概念當然是個位數的,再進一步說,需要在5秒甚至更短的時間區間內。
5秒!這可能嗎?
我們看一個實際數據:阿里云云盾DDoS防護服務的黑洞時間是3秒——1秒完成攻擊檢測,2秒完成黑洞策略的下發和執行。
具體來說,首先,和大多數基于NetFlow的DDoS檢測手段不同,阿里云云盾流量采集基于分光的方式。分光可以實現近乎實時的流量采集,相對來說,基于NetFlow的采集需要十幾秒甚至幾十秒。其次,阿里云云盾的檢測與黑洞聯動是完全自動化的,即一旦發現有大規模DDoS情況的發生,系統將自動化完成黑洞策略的下發和執行。自動化保證了2秒的高效率。如果人工/手工的方式,延遲可能是分鐘級甚至更長。
對于絕大多數系統來說,實現3秒黑洞最為關鍵的技術瓶頸就是1秒檢測發現DDoS攻擊。除了分光完成流量采集之外,如何在1秒內完成對海量流量的分析是最大的挑戰。最為常規的手段是單臺服務器完成流量分析。極為個別的系統可以實現服務器集群處理;然而,集群化處理的服務器數量往往是雙機或極為有限的個位數。不管怎樣,對于一個幾十G甚至幾百G出口的數據中心來說,即便采用雙機或稍多一些服務器并行處理,也不可能實現1秒檢測。
阿里云云盾同樣采用了集群化處理,不過,阿里云云盾進行流量分析的一個服務器集群即為500臺服務器。500臺服務器單集群的并行處理是實現1秒檢測的關鍵。
因此,從技術角度上講,“分光采集+3秒黑洞”保證了用戶在阿里云環境下避免“躺槍”情況的發生。
如何避免被3秒黑洞情況的發生
最后的一個問題,可能也是被3秒黑洞用戶最為關心的——如何避免被3秒黑洞情況的發生呢?
對于采用阿里云云盾基本防護服務的用戶來說,如果攻擊流量在短時間內超過一定的數值,為了保護其他用戶業務不受連帶影響,阿里云云盾會執行黑洞的策略。對于業務連續性和可用性要求較高的用戶來說,阿里云云盾提供高防IP服務。采用高防IP服務的用戶服務器將部署在高防數據中心中,獲得較普通用戶更高的防護能力。當前,高防數據中心單點防護能力為300Gbps,同時可以實現多數據中心聯動防護以獲得更高的防護帶寬。