2021 OWASP Top 10 A10伺服器請求偽造

2023/04/11

伺服器請求偽造(SSRF )的問題是什麼?主要是在說目前當今的網頁應用程式,在取得外部遠端資源時,網址是可以透過使用者做操作的。

預防伺服器請求偽造問題可分成兩個面向 

從網路層著手

- 將遠端功能切成不同子網路降低偽造伺服器請求的衝擊,也就是我們可以透過切割網路的部份去存取限制的一些作為。

- 在防火牆政策或是 ACL 的規則當中deny by default拒絕全部的外部的流量,的確是可以降低對外存取的狀況的流量。

從應用層

- 過濾、驗證使用者端所提供的輸入,可以透過程式去撰寫一個正向表列做過濾和驗證。

- 用正面表列的方式去列出 URL、 port 、目的地的清單。

- 不傳送原始的回應給使用者端,同時停用 HTTP 的重新導向。

- 留意網址的一致性,可以完全去防禦到 SSRF 的問題。

因為 SSRF 是一個相對空間很大的攻擊,攻擊者可以去修改 IP 之外,繞過防禦的方式也是相當多元,所以通常我們會希望不要透過黑名單或正規表示式去修好這個問題。

A10伺服器請求偽造攻擊情境的範例

情境一:對內部的伺服器做掃瞄連結埠的流程( port scan)

如果網路的架構沒有被切割,當內網是一個大內網的情況下,攻擊者可以透過這台主機的 SSRF 確認內部的主機到底有多少主機的埠號的開啟的情況。

情境二:機敏資料的洩漏

攻擊者可以透過相對應的 URL Schema存取本地端的檔案、內部服務的資料,也是說攻擊者透過 File的 Schema讀取主機上面的任意資料,同時SSRF 有一個回顯的動作,是可以直接讀取資料的。

情境三:讀取雲服務的 metadata storage

例如: 169.254.169.254的 metadata 的 URL  是可以直接被讀取的,通常發生於 AWS 或Google service 的情況,同時此情境也是多數目前 Bug Bounty 可能會發生的情況。

情境四:滲透內部服務

應用程式當中有 SSRF 的問題,攻擊者可以在裡面帶入攻擊參數,內部的弱點便會同步被曝露在外部的網路上,如 proxy 這樣子代理伺服器用途時,就可以對內部的主機做攻擊。

伺服器請求偽造弱點是非常新,相對是比較危險的攻擊,被OWASP作為十項當中的其中一項。

其他訊息