SuperAPI AI 工具集

detecting-malicious-npm-packages

安全与审计

查看项目

更新于 10-16 01:30

技能介绍

用途:在隔离环境中排查 npm 包是否含恶意代码,可在引入依赖前分诊,也可在供应链事件响应中核对锁文件是否拉入已知恶意版本,或排查疑似被投毒的 CI 节点。核心风险在于 npm install 会自动以开发者权限执行 preinstall、install、postinstall 生命周期脚本,安装即可能被入侵。

主要能力:用 GuardDog 做静态启发式扫描(支持单包、指定版本、本地 tarball 和整棵依赖树 verify);关注 npm-install-script、npm-serialize-environment、npm-exec-base64、npm-silent-process-execution、npm-obfuscation、shady-links、typosquatting 等高信号规则;用 jq 检查 scripts,用 grep 搜索 child_process、eval、base64、process.env、外联 URL 等;用 OSV-Scanner 和已知恶意版本清单比对锁文件;在受控沙箱内引爆并监控网络与文件系统;提取 URL、IP、哈希等 IOC。

使用方式:先关闭脚本下载,例如 npm pack express@4.18.2 或 npm view some-pkg@1.2.3 dist.tarball 后 curl 获取并 tar -xzf 解包。安装 GuardDog 可 pip install guarddog,或用 docker pull ghcr.io/datadog/guarddog 并设置别名 guarddog='docker run --rm ghcr.io/datadog/guarddog'。扫描命令如 guarddog npm scan some-pkg --version 1.2.3、guarddog npm scan ./some-pkg.tgz、guarddog npm verify /path/to/repo/package.json;可用 --rules 过滤规则,用 --output-format=json 或 sarif 输出。锁文件比对可提取 name@version 后运行 osv-scanner --lockfile=package-lock.json。scripts/agent.py 可编排扫描、脚本检查与 IOC 提取,参数为 --package、--version、--tarball、--output。

适用场景:新依赖引入前审查、代码评审时核查 package.json/package-lock.json、供应链通告响应、端点或 CI 取证、在 CI/CD 中构建安装前拦截门禁。

限制与注意:必须在无生产凭据、可回滚的隔离 VM 或一次性容器中操作,禁止在含 SSH 密钥、云令牌或生产网络的工作站上分析可疑包;动态引爆仅在静态分析不确定时进行。仅用于防御性分析与授权的事件响应。涉及 MITRE ATT&CK 的 T1195.002、T1059.007、T1552.001、T1041、T1027。具体收费、价格与平台支持情况暂未提供。