伺服器端請求偽造(SSRF)簡介

zktq2021發表於2022-08-10

成功的網路攻擊最重要的因素之一是足夠的訪問許可權。在安全得到充分考慮的應用程式中,外部使用者通常沒有足夠的訪問許可權來造成傷害。在這種情況下,攻擊者可以嘗試不同的方法。與其嘗試獲得足夠的訪問並嘗試獲得足夠的許可權,他們可以嘗試操作已經擁有足夠訪問和授權的應用程式實體(如伺服器)。

伺服器端請求偽造(SSRF)就是這樣一種攻擊,攻擊者欺騙伺服器發出意外請求。

什麼是伺服器端請求偽造?

現代應用程式本質上通常是分散式的,並且已經開始更多地依賴雲服務。儘管這使得應用程式的開發、測試和故障排除很方便,但它增加了體系結構的複雜性並增加了挑戰。其中一個挑戰是確保應用程式的不同元件有足夠的訪問許可權,以順利地執行它們的功能。但是當我們不考慮這種訪問的範圍和可能的威脅時,它可能會導致伺服器端請求偽造漏洞。

伺服器端請求偽造是一種web應用程式漏洞,它允許攻擊者嚮應用程式元件傳送格式錯誤的請求,或與外部任意系統通訊。

通常,應用程式的內部元件的配置方式是外界無法訪問的。例如,防火牆後的伺服器或只能從堡壘主機訪問的伺服器。因此,攻擊者可以濫用SSRF漏洞來攻擊應用程式的內部元件。

伺服器端請求偽造有什麼影響?

SSRF 攻擊的一些常見影響是:

  • 敏感資料洩露或加密失敗。

  • 任意程式碼執行 ( ACE )。

  • 誘導不存在的漏洞在以後利用。

  • 獲取有關應用程式內部架構的資訊。

在某些情況下,SSRF漏洞還可能導致應用程式被完全接管。一次成功的SSRF攻擊可能導致業務上的影響、面臨訴訟、聲譽損害等。

伺服器端請求偽造示例

人們可以利用SSRF漏洞做什麼取決於應用程式的體系結構和攻擊者的創造力。然而,有一些方法是攻擊者最常用的。

  • 伺服器 SSRF

  • 後端 SSRF

  • SSRF 透過檔案上傳

伺服器 SSRF 攻擊

這是一種 SSRF 攻擊,表示 SSRF 攻擊是針對伺服器本身的。

後端 SSRF 攻擊

後端SSRF攻擊與伺服器SSRF類似,不同之處在於目標元件是後端系統。因此,攻擊者不是將請求傳送到同一伺服器,而是將請求傳送到另一個後端系統。

SSRF 透過檔案上傳

這種型別的 SSRF 是透過易受攻擊的應用程式的檔案上傳功能發生的。將惡意程式碼嵌入檔案(例如:HTML 或 SVG)中,將檔案上傳到應用程式,然後誘使應用程式執行程式碼。

如何防止伺服器端請求偽造?

有多種方法可以防止伺服器端請求偽造。存在一些通用措施,也需要結合自身實際需求採取措施。

白名單和 DNS 解析

如果有預定義的請求列表,則可以使用白名單僅允許執行這些請求。如果很難將請求列入白名單,則可以對端點使用白名單。例如,僅允許從伺服器向以下端點發出請求:

還可以為應用程式需要訪問的主機名和 IP 使用白名單,或使用訪問控制列表 ( ACL )。儘管您可以使用 DNS 解析來驗證域,但仍然可以被利用。

或者,可以使用黑名單來阻止潛在的惡意請求。

內部服務認證

根據架構,可能已經將內部系統置於防火牆之後,併為公共伺服器新增了更多的安全性。但是由於SSRF利用了應用程式元件之間的信任,所以在元件之間新增安全層也很重要。這不僅會給攻擊者帶來困難,還會減慢程式,有足夠的時間採取行動。因此,建議使用身份驗證進行內部系統之間的通訊。

安全編碼

這是在開始構建應用程式時需要實現的一種安全實踐。預防性安全編碼的思想將在開發應用程式時採用靜態程式碼檢測等方式提高程式碼安全性並減少軟體中的缺陷。將安全措施放在應用程式的各個位置,為攻擊者增加更多的阻力。

SSRF攻擊的一個常見原因是在不驗證使用者提供的URL的情況下獲取連結。因此,清理和驗證使用者可控資料可能是作為安全措施首先要注意的事情之一。

滲透測試

滲透測試可用來對應用程式的安全性進行評估,並填補之前可能未發現的安全空白。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2909893/,如需轉載,請註明出處,否則將追究法律責任。

相關文章