最近,Sonatype 安全研究团队发现了 250 多个有利可图且令人信服的漏洞 npm 包,因为它们的名称与来自 Amazon Web Services (AWS)、Microsoft、React、CKEditor 等流行名称的开源项目完全相同。
这些新生的软件包包含活跃的反向 shell 和远程代码执行 (RCE) 漏洞,使其所有者可以随意对其目标进行攻击。
它变得更加有趣。
我们进一步发现,这些软件包均由一名自称是漏洞赏金猎人的俄罗斯黑客创建,并通过 Telegram 向潜在买家“出售”。这有多不道德?
在最新版真实软件包发布后不久发布
上周,Sonatype 安全研究员Jeff Thornhill和我注意到了一些奇怪的事情。
在我们的自动恶意软件检测系统标记的数千个可疑软件包中,有 260 个 npm 软件包的名称与微软和亚马逊等知名公司创建的软件包完全相同。
例如,此集合中存在问题的 npm 包“api-extractor-model”以 Microsoft 的“ @microsoft/api-extractor-model ”命名,而后者是“@microsoft”范围内发布的合法 npm 库。类似地,“client-cloudwatch-logs”以名为“ @aws-sdk/client-cloudwatch-logs ”的 Amazon Web Services (AWS) SDK npm 包命名,还有一个例子是“react-native-community”,它模仿了真实的“ @react-native-community/cli ”。
这个案例之所以有趣,是因为这些软件包出现的时间——大多数软件包都是在合法项目发布最新版本后的 4-5 天内出现的。
这些可疑软件包被追踪为sonatype-2024-2066,其中都包含一条注释,上面写着“漏洞赏金测试。别担心。开心就好”,这表明这些软件包是为了概念验证 (PoC) 目的或授权渗透测试而创建的。但这只是故事的全部。
这些软件包包含现成的漏洞,任何人都可以使用它们对目标进行反向 shell 或依赖混淆攻击。
特价:预留 npm 软件包,漏洞工具包,售价 $$$
这些插件的作者是一名俄罗斯黑客,他活跃于漏洞赏金和夺旗 (CTF)道德黑客平台。我们的调查还发现 Mozilla Firefox 插件可能由同一用户创建。
虽然我们无法明确断定作者是道德研究人员还是灰帽研究人员,但我们的发现无疑令人们对他们的“道德”意图产生怀疑。
以“api-extractor-model”(模仿微软软件包)为例,我们看到它包含一个简单的代码,用于建立与作者域的连接,并以我们之前见过的依赖混淆漏洞的形式检索辅助有效负载(即任意代码) 。
然而,引起我们注意的是包裹里的一张纸条(第 33 行)“如果你想购买,可以联系我”,后面跟着作者的 Telegram 账户 URL。
问题出现了,这些漏洞是否可以在暗网上出售给任何人,或者被针对的公司?
这种购买软件包的呼吁违反了清单文件(package.json)中提到的“[潜在] RCE 的 PoC”免责声明,因为大多数有道德的研究人员和漏洞赏金猎人并不热衷于以这种方式出售主动漏洞:
在某种程度上,作者在 npmjs.com 注册表中“保留”(抢注)了数百个软件包,这些软件包的名称与真实软件包非常接近,但包含强大的有效负载,并附有出售说明。
一些软件包包含截图(proof.png),似乎表明对可能使用了作者的非法软件包(而非真实软件包)的组织(或开发人员)进行了成功攻击,如下例所示:
为了保护隐私,我们删除了目标方的 IP 地址以及软件包作者的主机名。
漏洞赏金与敲诈勒索
一般来说,有道德的研究人员和黑客会通过官方的漏洞赏金计划向组织展示成功的漏洞或安全漏洞,然后由公司酌情授予漏洞赏金,而不是自己向潜在买家或公司出售漏洞——这可能被视为敲诈勒索。
组织机构是否有时会拒绝为合法的安全报告提供漏洞赏金(这也许是不公平的)?绝对是的。
对于研究人员来说,这些看似微小但至关重要的细微差别,正是构成道德安全研究的行为与可能具有对抗性的行为之间的关键区别。
我们及时将这些软件包报告给 npmjs.com 注册表,不出所料,这些软件包因违反npm 注册表的开源条款而被迅速删除,该条款规定了安全研究工作与“使用 npm 注册表作为部署或交付载体的漏洞和恶意软件”之间的界限。
Sonatype 的最新发现紧随本月与俄罗斯有关的“Lumma”加密窃取程序通过 PyPI 注册表针对 Python 开发人员的攻击。这些反复发生的事件凸显了高级持续性威胁 (APT) 和外国对手将其恶意努力投入开源注册表以部署下一阶段攻击的实例,这些攻击针对的是小众开发人员(例如那些构建 AI/LLM 应用程序的开发人员)和公共部门,这些部门包括技术堆栈严重依赖 Microsoft 的组织,或所谓的“.NET 商店”。与传统手段相比,这种反复发生的攻击为威胁行为者提供了更广泛的目标基础。