開發與維運

CDN流量異常分析以及安全防護

問題分析

CDN流量出現突增時,先要檢查是否是有一些業務上的推廣導致的流量增加。如果不是業務推廣,卻突然產生了大量的異常流量,則很可能是被惡意攻擊或者刷流量導致,需要定位客戶端來源信息來加以防護。通常是藉助CDN提供的監控統計以及日誌來加以分析。

一.監控統計
CDN控制檯提供了監控統計分析,包含七個部分:PV/UV、Top客戶端IP、地區和運營商、域名排名、熱門Referer、熱門URL、熱門URLs(回源)、域名排行。用戶可以導出原始詳細數據,如網絡帶寬、流量、域名按流量佔比排名以及訪客區域、運營商分佈等。用戶可以通過這些監控統計分析客戶端的來源信息、請求URL、Top客戶端等信息。其中中等是分析Top客戶端IP以及Top Referer信息,具體可以看如下圖

image.png

image.png

注意:Referer為"-"則表示是空Referer的請求。


二.日誌分析
CDN控制檯的顯示統計分析報表數據會有延遲,對於正在發生的惡意刷流量或攻擊行為,往往無法獲取實時的信息,這種情況下需要藉助CDN提供的日誌來分析定位客戶端的來源信息。目前CDN提供的日誌分為兩種:離線日誌和實時日誌。
(1)離線日誌:默認開啟,日誌文件延遲一般情況下延遲在24小時之內,但是也有可能超過24小時。登錄CDN控制檯,下載日誌文件,日誌相關字段說明請參日誌下載。可以藉助Linux命令來分析日誌,例如執行如下命令,查詢訪問量前十的IP:

 
cat [$Log_Txt] | awk '{print $3}' |sort|uniq -c|sort -nr |head -10

用同樣的方法可以分析訪問量前10的Top Referer、URL信息,更多請參考日誌分析

(2)實時日誌:屬於計費服務,默認不開啟,需要手動開啟,日誌數據延遲不超過3分鐘。阿里雲CDN通過與日誌服務融合,將採集到的實時日誌實時推送至日誌服務,並進行日誌分析。通過日誌的實時分析,用戶可以快速發現和定位問題。除此之外,通過對日誌數據的挖掘,提高數據的決策能力,將您的業務推向一個新的高度,更多請參考實時日誌幫助文檔。


安全防護

通過分析出客戶端來源信息以後,可以按照以下處理流程圖來處理

p54340.png

(1)配置IP黑白名單:通過監控統計分析和日誌查看是否存在異常IP地址訪問資源。如果有短時間大量訪問的惡意IP地址,請將IP地址配置為黑名單。
(2)配置Referer防盜鏈:該功能是根據HTTP請求的Referer字段來對請求來源的域名進行篩選和鏈接。CDN支持三種防盜鏈設置:白名單、黑名單以及是否允許空refer。防盜鏈功能主要通過URL過濾的方法對來源Host的地址進行過濾,其中黑名單和白名單只能有一種生效,可以將惡意Referer加入黑名單或將正常業務Referer加入白名單,通過該功能可以對請求來源進行限制。
(3)配置頻次控制:如果惡意IP量比較大且不固定,不容易配置IP黑名單,可以考慮配置頻次控制。可以根據實際場景自定義配置頻次控制功能,設定單位時間內單IP訪問頻次超過設定的閾值則觸發阻斷,通過頻次控制功能,可以秒級阻斷訪問該網站的請求,提升網站的安全性。
(4)配置URL鑑權:URL鑑權功能主要用於保護用戶站點的資源不被非法站點下載盜用。通過防盜鏈方法添加Referer黑名單和白名單的方式可以解決一部分盜鏈問題,由於Referer內容可以偽造,所以Referer防盜鏈方式無法徹底保護站點資源。因此,可以採用URL鑑權方式保護源站資源更為安全有效。
(5)配置UA黑白名單:可以通過配置User-Agent黑名單和白名單來實現對訪客身份的識別和過濾,從而限制訪問CDN資源的用戶,提升CDN的安全性。


安全加速

阿里雲CDN是公共的加速服務,承載著成千上萬的域名加速,默認不提供抗攻擊能力。所以當用戶域名遭受大量攻擊時,CDN系統會自動將對應域名切入沙箱,防止影響其他正常用戶的加速服務,域名進入沙箱後,服務質量不再保證且無法恢復,因此做好防護工作十分重要。
(1)對於CC攻擊,可以考慮配置WAF防護功能,使用CDN WAF功能不能解決惡意刷流量問題,但是可以防數據洩密,避免因黑客的注入入侵攻擊,導致網站核心數據被拖庫洩露;阻止木馬上傳網頁篡改,保障網站的公信力;提供虛擬補丁,針對網站被曝光的最新漏洞,最大可能地提供快速修復規則。
(2)如果域名經常遭受攻擊,可以根據自身業務需求考慮使用SCDN來做安全加速。SCDN(Secure Content Delivery Network),即擁有安全防護能力的CDN服務,提供穩定加速的同時,深度集成抗DDoS、CC攻擊的防護功能。基於阿里雲飛天平臺的計算能力,使用深度學習的算法,智能預判攻擊行為,通過智能的調度系統將DDoS惡意請求平滑切換至高防IP完成清洗,保護源站。


系統監控

CDN被惡意刷流量導致流量異常時,會產生一定的經濟損失,因此建議提前做好監控和安全防護工作。通常我們可以通過CDN的帶寬封頂功能以及雲監控的閾值報警功能來做監控。

一.帶寬封頂
帶寬封頂功能是指當統計週期(5分鐘)產生的平均帶寬超出設置的帶寬最大值時,為了保護CDN域名安全,此時域名會自動下線,所有的請求會回到源站,CDN將停止加速服務,避免異常流量給用戶帶來的異常消費。域名下線後,可以在控制檯重新啟用該域名,具體請參考帶寬封頂

注:因為觸發帶寬封頂以後域名會停止CDN加速,域名會解析到源站,因此相當於會把源站地址暴露出去,這裡也帶寬安全隱患,因此建議根據實際情況考慮使用啟用該功能。

二. 雲監控報警規則
結合阿里雲的雲監控服務,通過設置雲監控的報警功能,可以設置帶寬峰值和下行流量的報警規則。當流量達到閾值時,系統自動通過電話、短信、郵件等方式通知用戶,請及時採取措施。登錄雲監控控制檯,依次選擇【報警服務】>【報警規則】>【閾值報警】>【創建報警規則】,選擇產品 CDN以後去設定規則。創建針對CDN的報警規則,詳情請參見創建閾值報警規則

p44266.png

Leave a Reply

Your email address will not be published. Required fields are marked *