在使用者圖像上使用 ImageMagick 安全嗎?

在使用者圖像上使用 ImageMagick 安全嗎?

我聽說在任意用戶提供的圖像上使用 ImageMagick 時可能存在安全問題。例如,下面的連結提供了過去存在一些緩衝區溢位漏洞的證據。有誰知道我現在是否可以安全地使用它作為處理用戶圖像的網路服務的一部分?

http://rhn.redhat.com/errata/RHSA-2006-0633.html

答案1

該安全公告是 2006 年發布的。說真的,如果您正在實現 Web 服務,那麼您透過 Apache 遭受駭客攻擊的可能性可能與透過 ImageMagick 遭受駭客攻擊的可能性一樣。

簡而言之,不用擔心,但請確保所有軟體保持最新。

編輯:順便說一句,我幫助客戶實作了使用 ImageMagick 的 Web 服務,但我從未聽說過它有任何問題。

答案2

是的,存在安全風險 - 軟體存在錯誤,其中一些錯誤可用於攻擊其運行的系統。

但您可以將風險降到最低:

  1. 建立一個具有最低權限的使用者帳戶,使其足以運行 ImageMagick。現在僅使用該帳戶來執行 ImageMagick

  2. 啟用自動安全性更新:可以將 Ubuntu 等 Linux 系統設定為自動安裝安全性修復。這可以減少系統易受攻擊的時間,以防發現漏洞。 Windows系統也有自動更新系統,但不包含ImageMagick等第三方軟體。

答案3

不。

ImageMagick 的設計著重彈性。它不像瀏覽器的圖像處理庫那樣針對精心設計的輸入進行了強化。大概會繼續更容易發現可利用的錯誤在像 ImageMagick 這樣的庫中而不是在瀏覽器中。

在 ImageMagick 中發現緩衝區溢位的攻擊者可以利用該漏洞以執行 ImageMagick 的程序的權限來執行任意程式碼。

這可以為攻擊者提供一個灘頭陣地,他們可以利用該灘頭陣地進一步提升權限;例如透過PATH和特洛伊木馬攻擊,透過混淆其他後端或利用生產環境中其他未打補丁的服務。

如果你絕對必須對第三方內容使用 ImageMagick,請參閱中的“其他安全注意事項”ImageMagick 的安全策略文檔:

除了安全策略之外,您還可以透過以下方式讓 ImageMagick 更安全...

  • 保持 ImageMagick 最新。最新版本修復了我們過去發現的任何安全漏洞。
  • 清理您傳遞給 ImageMagick 的任何檔案名稱或命令列選項。
  • 在經過清理的軟體容器(例如 Docker)中執行 ImageMagick。
  • 以最低權限的使用者身分執行 ImageMagick(例如“nobody”)。明確設定影像檔案類型。例如,使用檔案名稱 png:image.png 而不是 image.png。如果檔案名稱中沒有明確的圖片類型,ImageMagick 會猜測圖片類型。

相關內容