安全与人工智能新闻

开发者供应链 · 作者 FireAI Security & Research Team · 发布于

被攻陷的 MemTensor npm 和 PyPI 包向开发者电脑投放一个 Go 语言凭据窃取程序

Aikido、SafeDep、Socket 和 StepSecurity 报告称,被劫持的 MemTensor 包会安装 sckit,这是一个在 Windows、Linux 和 macOS 上窃取令牌和密钥的 Go 程序。

A stack of data disks and the FireAI firefighter mascot, next to the words “Hijacked npm and PyPI packages steal dev keys.”

据 The Hacker News 于 9 月 23 日报道,安全公司 Aikido、SafeDep、Socket 和 StepSecurity 报告称,攻击者在 npm 和 PyPI 上发布了被投毒的 MemTensor 包版本,这些版本会安装 sckit,一个基于 Go 的开发者凭据窃取程序。该窃取程序可在 Windows、Linux 和 macOS 上运行。

背景

软件包仓库让开发者只用一条命令就能安装他人的代码,而安装过程可以在开发者自己的电脑上运行代码。因此,获得维护者发布令牌的攻击者,可以触及每一台安装其版本的机器 [1]。

报道内容

受影响的包为 npm 上的 @memtensor/memos-cloud-openclaw-plugin 的 0.1.21、0.1.23 和 0.1.25 版本,以及 PyPI 上的 MemoryOS 2.0.34 版本。报道称,攻击者通过攻陷 MemTensor 的 GitHub Actions 发布流水线获得了发布令牌,并在干净版本之间推送了恶意版本 [1]。

在 npm 插件中,隐藏的载荷会在代理网关启动时或记忆召回事件期间启动;在 PyPI 包中,它会在模块被导入时启动。两者都会运行一个静态链接的 Go 程序,收集与 npm、PyPI、GitHub、GitLab、AWS 和 Vault 等服务相关的 API 令牌、SSH 密钥、云配置文件和环境变量,并将其发送到外部服务器。报道把这个植入程序描述为一种能够通过 GitHub 代码仓库和软件包仓库传播的蠕虫 [1]。

恶意版本已被移除。报道列出 npm 上的 0.1.24 和 PyPI 上的 2.0.33 为最新的干净版本,并建议在 npm 上固定为 0.1.20、在 PyPI 上固定为 2.0.33 [1]。

对 Mac 用户的影响

在 Mac 上安装了上述版本的开发者,面临存放在上述位置的任何密钥被盗的风险。按照报道,不使用这些包的人不受影响。任何安装过所列版本的人,都需要把该机器上的凭据视为已经暴露 [1]。

建议

  1. 检查锁定文件和已安装的包中是否有上述版本,并将其移除。
  2. 轮换该机器能够访问的每一项凭据:npm、PyPI 和 GitHub 的令牌,SSH 密钥,云密钥,以及环境变量中的密钥。
  3. 既要更改密码,也要撤销令牌,因为报道建议轮换已暴露的密钥。
  4. 按照报道的建议,把依赖固定在已知干净的版本上,并检查所维护的包的发布流水线权限。

与 FireAI 的关系

FireAI 不检查软件包,也不清除植入程序。被盗数据必须发送到一台服务器,而一个没有规则的新 Go 程序在提醒模式下会触发连接提示,目标地址会显示在实时世界地图上。按 App 设置规则可以把构建工具或解释器限制在它所需要的主机范围内。如果某个构建工具已经有一条宽泛的允许规则,FireAI 就不会询问,因此这类规则需要尽量收窄。

局限

报道没有说明有多少台机器安装了被投毒的版本、每个版本在线多长时间,也没有说明这场攻击活动的幕后者是谁。关于蠕虫行为的描述来自研究人员的分析。

免费试用 HisnLabs 的 FireAI 17 天。

来源

  1. The Hacker News, 23 September 2026: Compromised MemTensor packages deliver the sckit credential stealer