DLYZZT/axios-version-scanner

GitHub: DLYZZT/axios-version-scanner

针对 axios npm 供应链投毒事件的磁盘级版本扫描工具,帮助快速定位受感染项目并提供应急响应指引。

Stars: 0 | Forks: 0

# axios-version-scanner [中文](README_zh.md) 一个用于检测涉及 **2026 年 3 月 axios 供应链攻击事件** 的恶意 npm 包的安全工具。 ## 背景 2026 年 3 月,有三个 npm 包被确认为恶意软件: | 包名 | 恶意版本 | 安全版本 | |---|---|---| | `axios` | `1.14.1` | `1.14.0` | | `axios` | `0.30.4` | `0.30.3` | | `plain-crypto-js` | `4.2.1` | — | 这些包包含一个后门,会与 C2 域名 `sfrclak.com`(IP `142.11.206.73`)进行通信。如果您的项目中存在这些版本中的任何一个,请将其视为已被入侵。 ## 环境要求 - Python 3.10+ - 无外部依赖 — 仅使用标准库 ## 用法 ``` # 扫描当前目录 ./scan_axios_versions.py . # 扫描主目录 ./scan_axios_versions.py ~ # 扫描多个根目录 ./scan_axios_versions.py /Users /Volumes/work # JSON 输出(用于编程用途) ./scan_axios_versions.py . --json # 隐藏摘要 ./scan_axios_versions.py . --no-summary # 跳过特定目录 ./scan_axios_versions.py . --skip-dir node_modules ./scan_axios_versions.py . --skip-dir node_modules --skip-dir vendor ``` 如果未指定根目录,扫描器将默认使用 `/`(扫描整个文件系统)。 ## 输出 默认输出为制表符分隔格式,并包含表头行: ``` risk package version source path MALICIOUS axios 1.14.1 package-lock:packages /app/package-lock.json SAFE_REF axios 1.14.0 package.json:dependencies /app/package.json ``` **风险值:** | 值 | 含义 | |---|---| | `MALICIOUS` | 已知被入侵版本 — 需立即调查 | | `SAFE_REF` | 已知安全版本 — 无需处理 | | `UNKNOWN` | 版本不在已知恶意/已知安全列表中 | 摘要信息(输出到 stderr)会显示总命中数、恶意命中数,以及每个包检测到的所有版本。 ## 扫描的文件类型 扫描器在遍历目录时会读取以下文件: - `package.json` - `package-lock.json` - `npm-shrinkwrap.json` - `pnpm-lock.yaml` - `yarn.lock` - `node_modules//package.json` ## 事件响应 如果发现 `MALICIOUS` 命中: 1. **切勿**在生产环境中运行受影响的应用程序。 2. 立即移除或降级恶意包(执行 `npm install axios@1.14.0` 或类似命令)。 3. 审计您的系统中是否存在 C2 活动迹象: - 指向 `sfrclak.com` 或 `142.11.206.73` 的出站连接 - 被异常释放到临时目录或用户主目录的文件 4. 轮换受影响进程有权访问的所有密钥(API 密钥、令牌、凭据)。 5. 检查您的 CI/CD 流水线,查找是否已被入侵的痕迹。 ## 许可证 MIT
标签:axios, DNS 解析, GPT, Node.js安全, npm安全, plain-crypto-js, Python, 依赖项检查, 动态分析, 后门检测, 命令与控制(C2), 库, 应急响应, 恶意软件扫描, 无后门, 漏洞管理, 磁盘扫描, 网络信息收集, 网络安全, 隐私保护