一个安装量超过20万的WordPress插件中被曝存在后门
在过去的一段时间里,一个名为Display Widgets的WordPress插件被曝存在恶意后门。
后门代码在Display Widgets 2.6.1版本(6月30日发布)和2.6.3版本(9月2日发布)中存在。
http://WordPress.org官方团队已经关注该问题并且从官方的WordPress插件仓库中移除了这一存在后门的插件。当它被删除时,该恶意插件的安装量已经超过了20万,我们虽然无法确定有多少用户已经更新到存在后门的版本,但可想而知,影响范围还是很大的。
令人震惊的是,在正式移除该插件前,已经多次发生过类似的问题。
安全客小百科
Display Widgets是一个小工具任意显示插件,这个小工具安全增强插件,可以让网站的小工具在任意位置显示,操作便捷。
Display Widgets插件在今年5月份卖给新的开发商
Strategy11的Stephanie Wells开发了该插件,但在其将重点转移到插件的高级版本开发之后,她决定将开源版本卖给一位新的开发人员,这名开发者有更多的精力去维护插件,服务于用户群体。
新的开发者在购买该插件一个月后,于6月21日发布了v2.6.0版本。
第一次下架
一天之后,SEO顾问David Law和一个名为Display Widget SEO Plus的竞争插件的作者向http://WordPress.org小组发送了一封电子邮件,告知Display Widgets2.6.0版本没有遵守WordPress插件规则,该插件会从第三方服务器下载超过38M的代码。据调查显示,这38MB代码包含Display Widgets 2.6.0在网站上记录流量的跟踪功能。代码功能包含收集用户IP地址,user-agent信息,收集domain,以及用户正在查看的页面等数据。该插件会将此信息发送到第三方服务器。
其他用户也发现了这种行为,并通过插件的http://WordPress.org支持论坛报告了这个问题。
遵循WordPress的插件发布规则,http://WordPress.org小组第二天从WordPress插件仓库中将该插件下线。
第二次下架
一周之后,在7月1日,插件的新作者设法将该插件上线并发布新版本v2.6.1。该版本在插件中集成了一个38MB大小的文件(geolocation.php),以绕过http://WordPress.org的插件审核规则,插件不再从第三方服务器下载代码。
持续关注该插件的人,就该插件的问题又一次联系到了http://WordPress.org的工作人员。这一次,他报告说,该插件现在具有恶意后门,允许插件的作者访问到远端的站点添加新的页面或文章。并且仍然存在记录用户流量的恶意功能。
一天后,该插件再一次在WordPress插件仓库中移除。
第三次下架
插件连续两次下架后,作者仍然不气馁,存在侥幸心理再一次将该插件上传至官方仓库。根据插件更新日志,新作者在7月6日WordPress插件仓库中发布了2.6.2版本。几天后,插件似乎已经停止了所有的恶意行为。不幸的是,恶意行为并没有结束。
7月23日,一个名为Calvin Ngan的用户向WordPress官方工作人员提出了投诉,指责该插件创建了很多不可检测的垃圾链接。
就像是前两次下架的原因一样,Ngan表示他最终发现在geolocation.php文件中存在恶意行为,该文件由插件的新开发者在2.6.1版本中添加。分析人员发现,该版本插件会在网站中创建新的页面或文章
这些页面和博客文章并没有出现在后端管理面板中。
此外,该插件还会从登录用户(通常是站点管理员)中隐藏这些垃圾页面。只有已登出的用户(普通网站访问者)才显示这些新页面。要创建这些秘密帖子,该插件联系了一个远程域名,从其中检索应该在页面中插入的内容。
Wordfence已经跟踪到该插件会链接至一下域名,这些域名全都指向至52.173.202.113:
stopspam.io registered July 2, 2017
w-p.io registered July 11, 2017
geoip2.io registered July 24, 2017
maxmind.io registered July 24, 2017
在Ngan报告一天之后,WordPress官方团队第三次从官方网站上移除了Display Widgets插件。
第四次下架
第三次下架之后,作者仍然没有放弃,在9月2日之后作者将2.6.3版本的插件上传至WordPress的官方插件仓库。而且这个版本也是恶意的,因为在9月7日,另一个用户再次抱怨该插件插会在他的网站中插入垃圾链接。
在插件的支持主题中发表的两个回复中,两个插件官方账号试图淡化该事件,声称他们的网站被黑客入侵,因为当用户将geolocation.php代码与其他插件相结合时,他们的网站将会被利用。
在插件的支持主题中发表的两个回复中,两个插件官方账号试图淡化该事件,声称他们的网站被黑客入侵,因为当用户将geolocation.php代码与其他插件相结合时,他们的网站将会被恶意利用。
Hi,
The other admin here. Unfortunately the addition of the GEO Location made the software vulnerable to a exploit if used in conjunction with other popular plugins.
The latest update fixed and sanitised the vulnerability. A simple empty of the cache & clearing of the wp_options table (if affected) should remove that post.
Again i apologise. But this should fix it. We estimate only around 100 or so sites to be comprimised.
Thanks
DW
将该插件从官方仓库中删除是极好的
该插件在9月8日再次从http://WordPress.org插件仓库中第四次被删除。这一次,下架似乎是永久的。http://WordPress.org的工作人员似乎已经接管了该插件,并且发布了2.7.0版本,该版本包含与版本2.0.5(插件最后一个干净的版本)完全相同的代码,然后再发售给新用户。该插件不再从http://WordPress.org官方网站上提供,这意味着它不能新安装,但旧版本可以在网站后台升级为不存在后门的版本。
购买该插件的公司的主营业务就是收购各种旧插件
由CEO Mark Maunder领导的Wordfence团队也投入了一些时间来追踪该后门攻击背后的详情。Maunder表示,他把插件的新买家追踪到一个名为WP Devs的服务商。由于该公司的网站在其主页上表示,他们提供一种服务,收购旧的和被遗弃的插件,目前他们已经拥有34个插件。
据Maunder的调查显示,WP Devs团队似乎由两人组成,一个来自美国,一个有可能来自于俄罗斯。Maunder与WP Devs的以为成员联系,其表示他们之前花了15000刀购买了该插件。之后将其以两万刀的价格转售给了加利福尼亚州的一家公司,并签署了保密协议。
在撰写本文时,WP Devs的发言人所述的真实性尚不得而知。Maunder还指出,无论谁在四个Display Widget恶意版本中有意插入了后门代码,并不是偶然的情况下有人从另一个项目中复制了恶意代码。
他分析2.6.3版本(最后一个恶意版本)的代码,版本更新还包括一个后门代码中的bug修复,这以为着插件的作者知道他们在做什么。
后记
Wordfence CEO要求WordPress社区与WordPress的工作人员就这一最近的事件进行和解,虽然在一个插件中四次发现了恶意行为。Maunder表示,许多论坛版主和插件库维护者都是志愿者。请不要粗暴地对他们进行判断,通常来说,他们做的还是不错的,保持着世界上最受欢迎的CMS的存储库和论坛系统正常运行。
另一方面,White Fir Design和David Law并不这样认为。David Law强调,由于他被WordPress官方人员劝告,他撤回了他的一份分析报告,理由是“不要对支持论坛的开发者做没有根据的恶意推测”。
White Fir Design的团队表示:“这种情况的发生充分说明WordPress在插件审核方面存在问题,就拿这次的情况来说还是要加大针对插件内容的审核力度,避免日后再次发生同类情况。”