精細化邊緣安全防護:如何防止CDN域名被惡意刷量?

越是數字化時代,越要做好基建「安全」的頂層設計

隨著消費及產業互聯網的不斷發展,數字化將實現全場景覆蓋,人類的生活和生產方式也隨之不斷改變。

內容分發網路CDN(Content Delivery Network)能分擔源站壓力,避免網路擁塞,確保在不同區域、不同場景下加速網站內容的分發,可以說,CDN已然成為互聯網的基礎設施。

在萬物互聯大背景下,網路安全問題的嚴峻性和重要性都遠超過去,一旦受到攻擊,便容易「牽一髮而動全身」。

因此,越是數字化時代,便越要做好基建「安全」的頂層設計。

如果沒有網路安全的保障,一切都將「裸奔」。

01 域名被惡意刷量,怎麼辦?

當前,眾多業務在CDN邊緣做加速,「邊緣安全」的本質是:面臨網路安全問題時的第一道防線

只要在邊緣發現並解決了各種安全問題和風險,就能保證客戶源站在遭受攻擊時,也可以穩定服務。

近年來,CDN域名被刷量的事情屢屢發生。

CDN域名被刷量(刷頻寬),本質是「以小搏大」。

由於CDN的存在是加速內容的分發,並不限速,攻擊者便可以通過極低的成本買大量「肉雞」(「肉雞」也稱傀儡機,是指可以被黑客遠程控制的機器),造成網站高額的CDN頻寬費用,所謂「一覺醒來,房子沒了」。

下圖是CDN監控到的某域名被刷量的情況:

QPS(Queries-per-second,即每秒查詢率)瞬間激增到 100,000 以上,頻寬突增超過64Gbps。這類情況會導致域名產生了非常多的流量和頻寬,最終導致高額賬單。

隨著運營商的提速,攻擊成本會越來越低。

那麼,如何防止被惡意刷量?

CDN 上提供了頻寬封頂的功能,超過配置頻寬便會停止域名CDN服務。雖然這個功能能夠及時抑制刷量,但是域名也無法正常服務了,可以作為快速止損使用。本文重點介紹能夠精細化應對惡意數量的方案:IP黑名單、UA黑名單、頻次控制等。

  • IP黑名單

通過拉黑攻擊請求的源IP實現精準攔截。

  • UA黑名單

通過拉黑攻擊請求的UA(User-Agnet)實現精準攔截。

  • 頻次控制

基於頻次特徵攔截訪問次數異常的請求,實現精細化防護。

02 多維度的特徵排查

頻寬監控建議通過雲監控配置,配置一個超過域名日常頻寬峰值一定比例的閾值作為告警的觸發條件。

雲監控請參考://help.aliyun.com/product/28572.html

收到告警並判斷頻寬突增很明顯,下一步就需要考慮採取處置策略。本文重點介紹精細化攔截的配置和防禦手段。

實現精細化攔截需要對訪問行為進行分析,因此建議開啟實時日誌功能。通過日誌的實時分析,可以及時分析最新的攻擊特徵,從而能配置相關的策略進行精準攔截。

實時日誌開通過程請參考://help.aliyun.com/document_detail/121168.html

在域名關聯之後,點擊 「日誌分析」,會出現日誌管理頁面。此時客戶端對域名進行訪問,這裡能實時展示域名的所有請求,以及每個請求記錄的日誌欄位,具體見下圖所示。

下面介紹攻擊場景中常用的日誌欄位:

uri:就是對應的HTTP請求的URL, 且不帶後面的query參數。對於刷量攻擊,uri是非常重要的分析參數。

uri_param:請求的參數。如果被刷量的請求一直很固定或者特徵很明顯,可以對其請求的IP或者匹配param的請求進行黑名單處理。

refer_uri:一般來說,請求來自網站的子鏈接或者搜索引擎,那麼值為「對應網站的網址」或者是「搜索引擎的網址」,而使用一些命令行工具比如curl的時候,就有可能偽造。如果被刷量的URL實際上不會被其他網站引用,那麼一旦出現類似refer的,就可以考慮判定為異常。這類特徵可以通過控制台中的Referer防盜鏈來實現。

return_code: 正常響應碼應該是2xx。如果其他響應碼比如3xx/4xx/5xx等佔比較高,可以分析該請求中其它欄位進行進一步分析。

remote_ip: 即請求的源IP。如果某個或者若干個Client IP訪問佔比很高,遠超其他訪問的IP,就可以考慮封禁這些IP。下文統一用IP代指源IP。

response_size:惡意刷量一般都會找大文件的URL進行反覆下載。從response的統計結果分析是刷量分析的關鍵一步。

user_agent: 發起請求的UA,大部分簡單的刷量工具可能會有相同的UA。如果看到某個UA訪問特別集中,而且是不常見的UA,可以直接封禁這些UA。

03 精細化的安全防護體系

在新基建浪潮之下,對於關鍵基礎設施的網路攻擊必定只增不減。

應對未來網路安全問題,需摒棄碎片化或單點防禦的思路,構建持續進化的安全能力體系。

對於刷量攻擊,每個防禦手段都可以產生一定的攔截效果。然而,在實際業務中,需要依據實際情況選擇最適合的方式,甚至需要組合多個防禦手段實現最大化的攔截效果。

本文以DCDN控制台的WAF防護功能為例,介紹相關的安全實踐。

❖ IP黑名單演示

先運行工具模擬刷量,訪問的URL為/test/app5m.apk ,確保域名的頻寬明顯突增。下文所有實踐中的模擬刷量都會採用相同的方式。

查看實時日誌,看下response_size的統計結果,有個5.244MB的文件訪問比例很高,其uri 為/test/app5m.apk。當然,還可以再觀察uri維度的統計分析做最終的確認。

分析該URL的來源IP,發現都來自*.11.32.x 這個網段(本次演示使用的網段),如下圖所示:

創建IP黑名單的策略,攔截上面分析到的網段。

監控頁面看頻寬明顯的降下來了。

❖ UA黑名單攔截演示

同樣先運行工具模擬刷量,使域名的頻寬明顯突增。

由於模擬刷量的工具使用的Python腳本,通過實時日誌分析可以發現請求的UA比較集中,如下圖所示:

分析UA,確認訪問次數最高的是python-requests/2.22.0,而且還有要其他UA前綴是python-requests/的,均屬於python腳本發起的請求,非常規瀏覽器的UA,判定屬於惡意行為。配置自定義策略,規則設置為User-Agent包含python-requests/的進行攔截。

配置規則之後,域名的頻寬明顯下降。

❖ 頻次控制演示

上文演示的攔截,不管是IP還是UA,都是精準攔截。實際攻擊場景中,對應的特徵集中程度未必會很明顯,尤其請求的源IP可能達到成千上萬甚至幾十萬的規模。

因此,防禦的策略就需要使用基於訪問頻次的限制策略。提到訪問頻次,那麼請先評估一下自己業務,正常用戶是多久間隔訪問一次。這裡以某APP下載或者升級的場景為例,大部分IP可能只下載一兩次,少部分有可能下載遇到失敗,會有若干次重試,基本上都在一個合理的頻次範圍內。如果發生了攻擊或者惡意刷量,則會出現單IP一段時間內訪問頻次較多的情況。因此,可以採用頻次控制類型的策略對高頻訪問進行攔截。

同樣先運行工具模擬刷量,使域名的頻寬明顯突增。

通過自定義策略配置頻次控制功能。一般頻次控制主要針對IP進行攔截。閾值的確定,可以依據網站日常訪問的IP頻次,也可以通過實時日誌查看訪問IP的分布情況。

通過監控頁面查看域名的頻寬,如下圖所示明顯降下來了。

下圖是頻次控制策略攔截的IP統計:

這裡提醒一下:配置頻次控制策略需要結合防禦效果動態調整

在一開始為了快速實現防禦,可以基於經驗值進行配置頻次閾值。如果配置之後發現刷量抑制效果不好,可以收緊策略。反之如果發現影響到正常業務,就需要適當放寬鬆策略。

安全能力不是天然長在邊緣的,今年7月,阿里雲對全站加速DCDN產品進行了全面升級,針對邊緣安全防護與數據運維能力進行了全方位優化。

升級後DCDN產品,在更靠近客戶端的DCDN邊緣節點上集成了WAF防護能力,可應對OWASP威脅、有效管理爬蟲流量保障業務安全、防止源站入侵

所有客戶端請求到達DCDN邊緣節點後都將經過清洗過濾,正常請求被放行後加速回源或返回快取,惡意請求被攔截,有效實現爬蟲甄別並阻斷攻擊流量

同時,基於運維便捷、配置高效的需求,我們也提供了智慧防護的功能,實現大流量CC防禦下無人值守

阿里雲全站加速DCDN致力於打造領先的全球邊緣安全加速平台,以自身卓越的產品特性為用戶提供高效安全、穩定流暢的內容分發服務。

Tags: