ImageMagick漏洞分析与防护方案

Mail.Ru安全团队发现了几个关于ImageMagick软件的漏洞并提交给ImageMagick开发人员进行修复。ImageMagick官方在2016年4月30日发布了新版本(6.9.3-9)修复远程代码执行,但是修复不完整,经过二次修复,官方在2016年5月3日发布了最新版本(6.9.3-10)修复了存在的安全问题。
使用了ImageMagick软件的网站均会受到影响。

其中的漏洞信息列表如下:

漏洞信息表

]1 漏洞信息表

详情见如下地址:
http://www.openwall.com/lists/oss-security/2016/05/03/18

什么是ImageMagick?

ImageMagick软件是用C语言编写的免费开源软件,可用来显示、转换以及编辑图片文件,支持超过200中图像文件格式,并且可以跨平台运行。大多数功能的使用通过命令行进行。

ImageMagick软件被许多编程语言所支持,包括Perl,C++,PHP,Python和Ruby等,并被部署在数以百万计的网站,博客,社交媒体平台和流行的内容管理系统(CMS)。

影响的版本

ImageMagick < 6.9.3-10

不受影响的版本

ImageMagick 6.9.3-10

漏洞技术分析

在ImageMagick软件的图片解码器中,存在多个漏洞,具体分析如下:

  • CVE-2016-3714 Shell命令字符串过滤不严格导致(可能远程)代码执行。

在ImageMagick中,存在一个功能叫委托,代码位于 ImageMagick/MagickCore/delegate.c 中。此代码中有system(sanitize_command)操作,但是 sanitize_command可被用户直接控制,并且程序对输入的内容没有进行过滤,因此造成命令执行。
sanitize_command从command中取值,command的内容为:

代码

]2 代码

第99行的代码为:

<delegate decode=\"https\" command=\""wget" -q -O "%o" "https:%M"\"/>

而command命令为:

"wget" -q -O "%o" "https:%M"

而%M是从我们输入的内容获取的,因此我们只要构造一个https开头的链接,再拼上命令即可完成RCE(需要考虑双引号的闭合)。
POC如下:

convert 'https://test"|whoami"' 1.png

代码1

对于mvg图片的转化,我们生成一个mvg文件,如下所示:

代码2

执行convert后,如期产生echo内容。

代码3

对于svg图片的转化,我们生成一个svg文件,如下所示:

代码4

执行convert后,如期产生echo内容。

代码5

  • CVE-2016-3718 SSRF(服务器端请求伪造)

此漏洞属于SSRF,可以利用mvg语法的url函数,向服务器发起http请求,根据响应时间,判断服务器地址是否存在。

代码6

  • CVE-2016-3715 文件删除

此漏洞属于任意文件删除,可以利用mvg语法的ephemeral协议,删除当前权限下的服务器的任意文件。

代码7

  • CVE-2016-3716 文件存储更改

此漏洞属于任意文件更改,可以利用mvg语法的msl协议,使用效果类似于linux下的move命令。

在特定条件下,如对文件后缀进行了过滤,但是可以上传文件,并且知道文件的绝对路径,此时再使用ImageMagick库就会产生问题,有可能产生服务器被拿下的风险。

代码8

  • CVE-2016-3717 任意文件读取

此漏洞属于任意文件读取,可以利用mvg语法的label协议,读取当前权限下的服务器的任意文件。

代码9

防护方案

  • ImageMagick版本升级到6.9.3-10(请跟踪后续版本升级,会修复其他安全问题)。

目前厂商已经发布了升级补丁修复了安全问题,请到厂商主页下载:
http://legacy.ImageMagick.org/script/binary-releases.php

  • 验证文件的“magic bytes”,确定为期望的图片文件格式,具体文件格式的“magic bytes”参考如下网站:

https://en.wikipedia.org/wiki/List_of_file_signatures

  • 使用策略文件禁用存在漏洞的编码器,全局策略文件通常位于“/etc/ImageMagick”,增加如下内容:

代码11

  • 使用绿盟科技防护类产品(WAF/IPS/NF)进行防护。

  • 已经购买了绿盟科技防护类产品服务的客户可以通过产品升级进行防护。

产品 版本 规则升级文件 规则文件路径 产品是否受影响
网络入侵检测系统(IDS) 5.6.10.13946 eoi.unify.allrulepatch.ips.5.6.10.13946.rule http://update.nsfocus.com/update/downloads/id/14073
网络入侵检测系统(IDS) 5.6.9.13946 eoi.unify.allrulepatch.ips.5.6.9.13946.rule http://update.nsfocus.com/update/downloads/id/14072
网络入侵检测系统(IDS) 5.6.8.572 eoi.unify.rulepatch.5.6.8.572.rule http://update.nsfocus.com/update/downloads/id/14104
网络入侵检测系统(IDS) 5.6.7.572 eoi.unify.rulepatch.5.6.7.572.rule http://update.nsfocus.com/update/downloads/id/14103
网络入侵检测系统(IDS) 5.6.0.479 eoi.unify.rulepatch.5.6.0.479.rule http://update.nsfocus.com/update/downloads/id/14074
网络入侵防护系统(IPS) 5.6.10.13946 eoi.unify.allrulepatch.ips.5.6.10.13946.rule http://update.nsfocus.com/update/downloads/id/14073
网络入侵防护系统(IPS) 5.6.9.13946 eoi.unify.allrulepatch.ips.5.6.9.13946.rule http://update.nsfocus.com/update/downloads/id/14072
网络入侵防护系统(IPS) 5.6.8.572 eoi.unify.rulepatch.5.6.8.572.rule http://update.nsfocus.com/update/downloads/id/14104
网络入侵防护系统(IPS) 5.6.7.572 eoi.unify.rulepatch.5.6.7.572.rule http://update.nsfocus.com/update/downloads/id/14103
网络入侵防护系统(IPS) 5.6.0.479 eoi.unify.rulepatch.5.6.0.479.rule http://update.nsfocus.com/update/downloads/id/14074
下一代防火墙 (NF/SG) 6.0.1.571 eoi.unify.rulepatch.6.0.1.571.rule http://update.nsfocus.com/update/downloads/id/14083
下一代防火墙 (NF/SG) 5.6.7.571 eoi.unify.rulepatch.5.6.7.571.rule http://update.nsfocus.com/update/downloads/id/14082
安全网关(SG) 5.6.0.479 eoi.unify.rulepatch.5.6.0.479.rule http://update.nsfocus.com/update/downloads/id/14098
WEB应用防护系统(WAF) 6.0.5.0.33255 update_rule.v6.0.5.0.33255.wcl http://update.nsfocus.com/update/downloads/id/14095
WEB应用防护系统(WAF) 6.0.4.1.33256 update_rule.p6.0.4.1.33256.wcl http://update.nsfocus.com/update/downloads/id/14128
  • 短期服务:绿盟科技工程师现场处理。确保第一时间消除网络内相关风险点,控制事件影响范围,提供事件分析报告。

  • 中期服务:提供 3-6个月的风险监控与巡检服务。根除风险,确保事件不复发。

  • 长期服务:基金行业业务风险解决方案(威胁情报+攻击溯源+专业安全服务)。

声 明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技

绿盟科技(NSFOCUS Co., Ltd.)是中国网络安全领域的领导企业,致力于网络和系统安全问题的研究、高端网络安全产品的研发、销售与网络安全服务,在入侵检测/保护、远程评估、DDoS攻击防护等方面提供具有国际竞争能力的先进产品,是国内最具安全服务经验的专业公司。有关绿盟科技的详情请参见: http://www.nsfocus.com

如果您需要了解更多内容,可以
加入QQ群:486207500
直接询问:010-68438880-8669

Spread the word. Share this post!

Meet The Author

Leave Comment