iT邦幫忙

0

Day 20:伺服器端請求偽造(SSRF):成因、危害與防禦機制

  • 分享至 

  • xImage
  •  

💡 什麼是伺服器端請求偽造(SSRF)?
隨著雲端服務與微服務架構的普及,許多 Web 應用程式都具備「從外部抓取資料」的功能(例如:輸入網址預覽網頁標題、從遠端下載頭像圖片、Webhook 通知等)。然而,如果應用程式在向外部發送請求時,沒有對使用者輸入的網址進行嚴格驗證與過濾,就可能導致 SSRF(Server-Side Request Forgery,伺服器端請求偽造) 漏洞。

在 SSRF 攻擊中,攻擊者無法直接從外網存取企業內網的資源,但他可以利用這台對外暴露的 Web 伺服器作為「跳板」或「代理人」,替攻擊者向內網或伺服器本地發送惡意請求,進而突破防火牆的防線!

⚠️ SSRF 的核心危害與經典情境
想像一下,某個網站有一個功能是「輸入圖片網址,系統幫你下載圖片」。

  1. 存取內部受保護的服務(Internal Service Access)
    攻擊者輸入的網址不是外部圖片,而是內部伺服器的管理介面或未公開的微服務 API:

Plaintext
http://localhost:8080/admin
因為這個請求是由 Web 伺服器自己發出的,內網防火牆通常會完全信任它,導致攻擊者透過 SSRF 成功繞過驗證,看光內網的機敏數據。

  1. 探測內網通訊埠與主機(Port Scanning)
    攻擊者可以透過修改 IP 與 Port(例如 http://192.168.1.5:3306、http://192.168.1.5:6379),藉由伺服器回應的時間差或錯誤訊息,探測內網有哪些機器活著、開了哪些服務。

  2. 雲端環境metadata 竊取(Cloud Metadata Service Abuse)
    在 AWS、GCP 或 Azure 等雲端環境中,虛擬機通常可以透過一個固定的本機 IP(如 http://169.254.169.254/)來獲取機器的設定與暫時性憑證(IAM Role)。若發生 SSRF,攻擊者就能直接把這些最高權限的雲端金鑰偷走,徹底接管整個雲端資產!

🛡️ 如何有效防禦 SSRF 攻擊?
統一過濾與白名單機制(Allowlist):
絕對不要使用黑名單(因為攻擊者可以透過 IP 變體、DNS 重新綁定等方式繞過)。應嚴格限制網址的 Scheme 只能是 http 或 https,並建立允許存取的外部網域白名單。

禁用不需要的通訊協定:
防範應用程式支援過多的協定(如 file://、gopher://、dict://),避免攻擊者利用其他協定去讀取本地檔案或攻擊內網 Redis。

網段與權限隔離:
確保 Web 伺服器所在的網路環境無法直接存取敏感的內網服務與雲端 Metadata 節點。


*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言