这几天连续收到阿里云发来的漏洞警告短信,提示我的服务器存在 WordPress 的 WP_Image_Editor_Imagick 漏洞。刚找了一下相关解决方法,找到一篇比较详细的文章,按照上面的办法做完,进阿里云控制台再看果然没有报警了。所以把文章转过来,希望能帮到还没修补漏洞的朋友。
以下是原文:
作为一名站长而言,其实早在几天之前就看到了相关资讯新闻:ImageMagick 被爆高危漏洞(CVE-2016-3714),黑客等攻击者通过此漏洞可执行任意命令,最终窃取重要信息取得服务器控制权。想来对服务器而言危害程度还是比较大的。
于此同时,今天下午档主收到来自阿里云服务器的安全提示,一个存放在阿里云主机上的 WordPress 网站程序存在 WP_Image_Editor_Imagick 漏洞问题,需要登入后台修复补丁。
当然,提供在线修复补丁功能的骑士专业版作为阿里云的收费服务,当然不是免费获取的,不过此服务收费并不贵,如果没有技术能力并且期待官方的安全服务保障的站长,缴费仍是最佳选择。对于档主而言,自然不会因为这个 WP_Image_Editor_Imagick 漏洞就轻易开通收费服务,因为这个漏洞本来就不是出自 WP 程序本身,而是服务器环境中安装有 ImageMagick 且没有升级修复补丁才有。
仔细检查了一遍,云主机系统并没有安装过 ImageMagick 组件,不过最后为了安全起见,尽管没有安装 ImageMagick,既然阿里云提示了漏洞还是应该及时修补一番。
临时解决 WP 漏洞的方法只需要修改一行代码就好,具体实现方法如下:
只需要打开 wp-includes/media.php,大概在第 2898 行找到以下代码;
- $implementations = apply_filters( ‘wp_image_editors’, array( ‘WP_Image_Editor_Imagick’ , ‘WP_Image_Editor_GD’ ) );
修改成
- $implementations = apply_filters( ‘wp_image_editors’, array( ‘WP_Image_Editor_GD’, ‘WP_Image_Editor_Imagick’ ) );
即可,意思就是把 2 个库优先级对调即可。
这个修复仅是临时解决方案,更可靠、最直接的方法还是请将 wordpress 程序升级到最新版本,如果服务器安装有 ImageMagick 组建同样需要升级至新版本。
最后顺便附上 ImageMagick 官方提供的临时解决措施:
通过配置策略文件暂时禁用 ImageMagick,可在“/etc/ImageMagick/policy.xml” 文件中添加如下代码:
- <policymap>
- <policy domain=”coder” rights=”none” pattern=”EPHEMERAL” />
- <policy domain=”coder” rights=”none” pattern=”URL” />
- <policy domain=”coder” rights=”none” pattern=”HTTPS” />
- <policy domain=”coder” rights=”none” pattern=”MVG” />
- <policy domain=”coder” rights=”none” pattern=”MSL” />
- </policymap>
补充内容:
看到应该有不少站长朋友关注这个问题,需要说明一下的是:该漏洞真正的原因与 WordPress 无关,是 ImageMagick 的漏洞,通过修改 GD 库顺序只能绕过阿里云的安全漏洞检测,如果系统安装有 ImageMagick 请首先解决其自身漏洞,如果服务器或者云主机本身并没有安装 ImageMagick 组件(检查/etc 下是否存在/ImageMagick 文件夹可知)那么问题并不大,因为 wordpress、discuz!等程序一般都是采用 GD 库来处理的,阿里云出现误报也不是什么稀奇事。
其次,只要安装了 ImageMagick 就会有 convert 程序。检查办法是执行 convert -v 看版本。如果返回 bash: convert: command not found 说明系统没有找到 convert 程序,表明并没有安装 ImageMagick ,同样无需担忧。
而若安装了 ImageMagick 程序,由于这个漏洞影响 ImageMagick 6.9.3-9 以前所有版本,包括 ubuntu 源中安装的 ImageMagick。而官方在 6.9.3-9 版本中对漏洞进行了不完全的修复。所以,我们不能仅通过更新 ImageMagick 的版本来杜绝这个漏洞。
可以通过如下两个方法来暂时规避漏洞:
第一、处理图片前,先检查图片的 “magic bytes”,也就是图片头,如果图片头不是你想要的格式,那么就不调用 ImageMagick 处理图片。如果你是 php 用户,可以使用 getimagesize 函数来检查图片格式,而如果你是 wordpress 等 web 应用的使用者,可以暂时卸载 ImageMagick,使用 php 自带的 gd 库来处理图片。
第二、使用 policy file 来防御这个漏洞,这个文件默认位置在 /etc/ImageMagick/policy.xml。具体修改内容参考前文提供的代码。
所以,ImageMagick 漏洞虽然在新闻报道中传言危害极大,但是也是针对大型网站或者广大虚拟主机商而言,一般个人网站的云主机配置并没有安装 ImageMagick 组件,至少来自军哥的 LNMP 一键安装包中并没有安装。所以,解决阿里云漏洞检测报告即可!
好消息:阿里云服务器2019Hi拼团优惠活动正在火热进行中,新老用户均可参与,T5云服务器1核1G低至190元/年,528元/3年!更多服务器配置及价格请关注:Hi拼团,或点此了解“云上爆款3折特惠活动”,或点此了解“8月ECS限量抢活动”。同时,建议在购买阿里云相关产品前先领取阿里云2000元代金券会更优惠哦。更多关于阿里云的文章请移步『阿里云专题』未经允许不得转载:杂烩网 » 阿里云提示的WP_Image_Editor_Imagick漏洞修复方案