恶意 NPM 包:盗取 SSH 密钥的新威胁

关键要点

  • 研究人员发现恶意 NPM 包,旨在盗取 SSH 密钥并上传至 GitHub。
  • GitHub 移除了两个受影响的包:warbeast2000 和 kodiak2k。
  • 这些包通过 postinstall 脚本获取额外的恶意 JavaScript 代码并在受害者机器上执行。
  • SSH 密钥泄露可能严重影响开发者和用户的安全。

本月,安全威胁研究人员发现了一些恶意 NPM 包,这些包旨在盗取 SSH 密钥并上传到 GitHub。GitHub 在一月初迅速移除了这两个包 ——
warbeast2000 和 kodiak2k,它们的设计目的是抓取安装在计算机上的私有 SSH 密钥,并将其存储于攻击者控制的 GitHub 仓库中。

这些 SSH 密钥盗取恶意工具首次被 ReversingLabs 研究人员发现,使用该公司的软件供应链安全平台。恶意包在 2024年一月的第一周被发现,并在报告后不久被 GitHub 拥有的 NPM 注册表移除。

关于 warbeast2000 和 kodiak2k 的详细信息最初于1月23日在 ReversingLabs的中披露。

“由于代码注释中包含说明,包的作者可能意图与其他恶意行为者分享恶意代码,”ReversingLabs 的软件威胁研究员 Lucija Valentić
在接受 SC Media 采访时表示。“他们可能还希望开发者和用户下载并安装 warbeast2000 和 kodiak2k。”

软件开发者面临来自恶意 NPM 包的风险

warbeast2000 和 kodiak2k 包都使用 postinstall 脚本从外部源检索附加的 JavaScript代码并在受害者的计算机上执行。其中,warbeast2000 包至少检索了一个来自 Pastebin 的恶意脚本。

warbeast2000 安装并执行的有效载荷会针对受害者主目录中的 /.ssh 位置的 id_rsa 文件,以抓取该文件中存储的私有 SSH密钥。“id_rsa”是通过 ssh-keygen 生成 SSH 密钥时的默认文件名,广泛应用于 Unix、Linux、macOS 系统及 WindowsGit。

在读取私有 SSH 密钥后,warbeast2000 的最终有效载荷复制了该密钥,并对其进行 Base64 编码,然后上传到攻击者控制的 GitHub仓库。Warbeast2000 没有其他功能,且并未伪装成其他合法包。

Kodiak2k 的有效载荷与 warbeast2000 类似,但它并不直接针对 id_rsa,而是在(主目录)/.ssh 中查找名为 “meow”
的文件,ReversingLabs 研究人员推测这只是一个占位符名称。与 warbeast2000 相似的是,如果找到 “meow” 密钥,恶意软件将在
Base64 格式下上传到攻击者控制的 GitHub 仓库。

此外,后续版本的 kodiak2k 还执行了来自 Empire 后期开发框架的归档 GitHub 仓库中的脚本,其中包含与 Mimikatz凭证盗取者相关的代码。观察到一些非恶意功能,例如运行 notepad.exe 的功能,研究人员表示 kodiak2k 在被移除时可能仍在开发中。

Valentić 对 SC Media 表示,目前尚不清楚 warbeast2000 和 kodiak2k 是否由同一威胁行为者创建。

如 warbeast2000 和 kodiak2k 等包可能造成的 SSH 密钥泄露,对使用同一开源代码库的开发者来说十分危险。

“SSH 密钥使持有者能够访问和向 GitHub 仓库提交内容,包括那些包含专有(非公开)代码的仓库,”Valentić 在 ReversingLabs博客上写道。“正如 SolarWinds 和 3CX的攻击所示,这种级别的访问权限可能会对软件生产者及其最终用户组织的安全产生严重负面影响,助长毁灭性的供应链攻击。”

根据 ReversingLabs 的数据,warbeast2000 共有八个版本,在被

Leave a Reply

Your email address will not be published. Required fields are marked *