如何防止CDN防護被繞過

  • 2020 年 3 月 13 日
  • 筆記

當發現目標站點存在CDN防護的時候,我們會嘗試通過查找站點的真實IP,從而繞過CDN防護。

我們來看一個比較常見的基於公有雲的高可用架構,即:

域名-->CDN,CDN-->WAF,WAF-->SLB,SLB-->ECS。

我們重點來關注一下CDN-->WAF-->SLB-->ECS這幾層服務之間的關係吧。

假設,攻擊者知道SLB的真實IP地址,就可以直接訪問SLB的ip地址,從而輕易繞過CDN+WAF的安全防護。

如何防止CDN被繞過呢?

這裡分享一個CDN防護技巧,通過中間件配置只允許域名訪問,禁止ip訪問。

這樣處理的話,所有直接訪問站點真實IP的請求將會被拒絕,任何用戶只能通過域名訪問站點,通過預先設定的網路鏈路,從DNS→CDN→waf防護→源站,所有的域名訪問請求都必須經過WAF檢測。

Nginx參考配置:

#添加一個server,在原server里綁定域名server  {        listen 80 default;        server_name _;        return 403;    }server {        listen       80;        server_name  www.demo.com;        .........

Apache參考配置:

  • =#在httpd.conf最後面加上 <VirtualHost 此處填寫IP> ServerName 此處填寫IP <Location /> Order Allow,Deny Deny from all </Location></VirtualHost> <VirtualHost 此處填寫IP> DocumentRoot /var/www/html ServerName 此處填寫域名</VirtualHost>

我們再來思考一個問題?

如果攻擊者有了真實IP地址,修改本地hosts文件,強行將域名與IP解析,從而本地訪問請求是無需經過DNS解析,還是可以繞過CDN防護。

這個策略,本質上是一個減緩措施,增加了尋找真實IP的難度。

Tags: