在 Rest-client 和其他 10 个 Ruby 包中检测到恶意代码

采用流行的宝石包 休息客户端,总下载量为 113 亿次, 已确定 替换下载可执行命令并向外部主机发送信息的恶意代码 (CVE-2019-15224)。 这次攻击是通过 妥协 rubygems.org 存储库中的开发者帐户rest-client,之后攻击者于 13 月 14 日和 1.6.10 日发布了版本 1.6.13-XNUMX,其中包含恶意更改。 在恶意版本被阻止之前,大约有一千名用户成功下载了它们(攻击者发布了旧版本的更新,以免引起注意)。

恶意更改会覆盖类中的“#authenticate”方法
身份,之后每个方法调用都会将身份验证尝试期间发送的电子邮件和密码发送到攻击者的主机。 这样,使用Identity类并安装有漏洞版本的rest-client库的服务用户的登录参数就会被拦截,从而 精选 作为许多流行 Ruby 软件包的依赖项,包括 ast(64 万次下载)、oauth(32 万次)、fastlane(18 万次)和 kubeclient(3.7 万次)。

此外,代码中还添加了后门,允许通过 eval 函数执行任意 Ruby 代码。 该代码通过攻击者密钥认证的 Cookie 进行传输。 为了通知攻击者在外部主机上安装了恶意软件包,系统会发送受害者系统的 URL 以及有关环境的一系列信息,例如 DBMS 和云服务的保存密码。 记录了使用上述恶意代码下载加密货币挖掘脚本的尝试。

研究恶意代码后发现 显露类似的变化也存在于 10包 在 Ruby Gems 中,它们没有被捕获,而是由攻击者基于其他具有相似名称的流行库专门准备的,其中破折号被替换为下划线,反之亦然(例如,基于 cron解析器 创建了一个恶意包 cron_parser,并基于 狗狗币 doge-coin 恶意包)。 问题包:

该列表中的第一个恶意软件包于 12 月 2500 日发布,但大多数出现在 XNUMX 月。 这些软件包总共被下载了大约 XNUMX 次。

来源: opennet.ru

添加评论