黑客将后门放入Ruby密码强度检查库中

A Backdoor in a Ruby Password Checking Library

密码强度计是出于所有最佳原因而创建的。他们的想法是提醒人们注意弱密码的危险,并鼓励他们更好地保护他们的数据。不幸的是, 它们并不完美

本质上,密码强度计是计算机代码的集合,无论它多么聪明,它都不能考虑决定密码强度的每一个因素。密码强度计由计算机命令组成的事实产生了另一个问题 - 如果代码被篡改,仪表可能变得危险。上周,阿根廷开发商Tute Costa 向我们展示了这种情况的实际情况。

定期的安全审计揭示了一个被劫持的Ruby库

作为一名勤奋的开发人员,Costa正在审核他正在研究的Ruby应用程序。他最近应用了不少更新,他想确认一切都按预期工作。

这意味着要经历相当多的更改日志并扫描数百行代码。最后,他最终看到了strong_password--一个用于检查用户密码强度的Ruby库。他立刻被吸引了。

strong_password在RubyGems(Ruby库的官方存储库)和GitHub上都可用,但版本不同。 GitHub建议超过六个月没有更新,但RubyGems(0.0.7)上的版本不超过两天。 Costa找不到任何更改日志或其他官方文档,这意味着唯一的方法是从GitHub下载代码并将其与RubyGems托管的内容进行比较。

这两个库是相同的,只有几行代码从Pastebin中提取并执行了一些命令。科斯塔越来越怀疑,他决定与strong_password的开发人员Brian McManus取得联系,看看他会说些什么。十五分钟后回复了,这证实了哥斯达黎加最担心的事情 - 麦克马纳斯不知何故失去了对图书馆的控制权,0.0.7版本是流氓。

后门使用cookie来启用代码执行

恶意的strong_password版本将首先检查它正在运行的环境。如果应用程序仍处于测试阶段,则无效。但是,如果它正在生产中,它将触发最终允许远程代码执行的感染链。

后门库检查网站或Web应用程序的URL并将其发送到smiley.zzz.com [。] ua。然后,它等待以cookie文件形式出现的指令。恶意代码旨在解压缩并执行cookie中的任何内容,这意味着劫持strong_password库的犯罪分子的大门是敞开的。谢天谢地,他们不再是。

恶意库很快就被脱机了

后门的strong_password发布于6月25日,Tute Costa于6月28日发现它。在得到确认更新是恶意的后不久,他接到了Ruby的安全协调员RafaelFrança,并在不到半小时的时间里,图书馆被拉下线了. 布莱恩·麦克马纳斯似乎已经重新掌控, 版本0.0.8应该可以安全使用。启动感染链的Pastebin存储库现在也已关闭,这意味着后门已完全关闭。

虽然恶意图书馆在网上停留的时间不超过几天,但仍然设法下载了537的下载次数,这表明流氓软件可以快速影响毫无戒心的用户。

July 16, 2019

发表评论

重要!若要继续到下一步,请完成以下简单的数学问题。
Please leave these two fields as is:
2 + 7是什么?