ImageMagick Security

支持 HackTricks

查看更多详细信息请访问 https://blog.doyensec.com/2023/01/10/imagemagick-security-policy-evaluator.html

ImageMagick 是一个多功能的图像处理库,由于其广泛的选项和缺乏详细的在线文档,配置其安全策略面临挑战。用户通常基于零散的互联网来源创建策略,这可能导致潜在的错误配置。该库支持超过 100 种图像格式,每种格式都增加了其复杂性和脆弱性,历史安全事件证明了这一点。

朝着更安全的政策

为了解决这些挑战,已经开发了一个 工具 来帮助设计和审计 ImageMagick 的安全政策。该工具基于广泛的研究,旨在确保政策不仅稳健,而且没有可能被利用的漏洞。

允许列表与拒绝列表方法

历史上,ImageMagick 政策依赖于拒绝列表方法,其中特定的编码器被拒绝访问。然而,ImageMagick 6.9.7-7 的变化改变了这一范式,使允许列表方法成为可能。该方法首先拒绝所有编码器,然后选择性地授予可信编码器访问权限,从而增强了安全态势。

...
<policy domain="coder" rights="none" pattern="*" />
<policy domain="coder" rights="read | write" pattern="{GIF,JPEG,PNG,WEBP}" />
...

策略中的大小写敏感性

需要注意的是,ImageMagick中的策略模式是区分大小写的。因此,确保在策略中正确使用大写字母的编码和模块对于防止意外权限至关重要。

资源限制

如果未正确配置,ImageMagick容易受到拒绝服务攻击。在策略中设置明确的资源限制对于防止此类漏洞至关重要。

策略碎片化

策略可能在不同的ImageMagick安装中碎片化,导致潜在的冲突或覆盖。建议使用以下命令定位并验证活动的策略文件:

$ find / -iname policy.xml

一个入门的限制性政策

一个限制性政策模板已被提出,专注于严格的资源限制和访问控制。该模板作为开发与特定应用需求相一致的定制政策的基础。

可以使用 identify -list policy 命令在 ImageMagick 中确认安全政策的有效性。此外,前面提到的 evaluator tool 可用于根据个人需求优化政策。

参考文献

Support HackTricks

Last updated