安全更新和升级是常见的确保安全的方式,但是供应链攻击也瞄准了这个方向。最近,研究人员发现新版本的strong_password中存在漏洞,Rubygems.org网站统计显示0.0.7恶意版本下载量共为537次。研究人员建议使用0.0.7版本的用户尽快回滚到之前版本。
漏洞分析
该漏洞是withatwist.dev博客作者安全研究人员Tute Costa发现的,Tute Costa在手动查看更新后的依赖关系时发现了该问题。
通过比较发布版本和源代码的变更日志,研究人员发现新发布的0.0.7版本与GitHub上发布的上一版本源代码并没有进行改变。
在分析0.0.7版本的commit时研究人员注意到了strong_password的代码:
首先解释一下恶意版本的Ruby strong_password库使用的pastebin.com payload:
1. 攻击者其实是黑掉了原来strong_password维护人员的账号来获取发布访问的权限。
2. 恶意版本0.0.7发布在Rubygems.org上,其中含有第一个payload。
3. 只有当应用被检测到在生产环境中运行,并且运行了特定时间后,才会触发恶意版本,向pastebin.com发送一个请求来取回payload并进行评估。
4. 来自pastebin.com的第二个payload会修改 Sendfile 方法来获取HTTP_COOKIE(即___id)的值,并进行评估。因此允许任意远程攻击者来进行远程命令执行。
5. 恶意代码会ping 服务器来提供运行应用的URL。
研究人员将该漏洞报告给了维护人员,此时维护人员发现竟然没有删除发布的权限了,随后该漏洞被分配CVE编号CVE-2019-13354。
恶意代码漏洞和供应链攻击
三个月前,攻击者就攻击了Ruby gems package bootstrap-sass,攻击者入侵了Rubygems.org的维护账号发布了恶意版本来引入远程代码执行后门。
除了Rubygems.org外,还有很多企业都被面临着供应链攻击的威胁。两周前,研究人员还发现了npm中存在针对加密货币挖矿钱包的恶意包。好的一点是,npm和rubygems的安全人员响应速度都很快。
本文翻译自:https://snyk.io/blog/ruby-gem-strong_password-found-to-contain-remote-code-execution-code-in-a-malicious-version-further-strengthening-worries-of-growth-in-supply-chain-attacks/如若转载,请注明原文地址: https://www.4hou.com/info/news/19117.html