bladeski/scan-compromised

GitHub: bladeski/scan-compromised

一款专注于检测 npm 项目中已知受损依赖的轻量 CLI 工具,防范供应链攻击。

Stars: 0 | Forks: 0

# 扫描 compromised 🔍 用于检测项目中已知受损 npm 包的 CLI 工具。 **无需第三方依赖:**该工具完全自包含,不依赖任何外部 npm 包或库。您可以在敏感或受限环境中放心使用。 此扫描器会检查您的 `package.json`、`package-lock.json`、`yarn.lock` 和 `pnpm-lock.yaml` 文件,识别在最近供应链攻击(包括 2025 年 9 月的 Shai-Hulud 事件)中受损的包。 它会标记: - ❌ 已知恶意版本(扫描失败) - ⚠️ 已受损包的安全版本(发出警告但不失败) ## 🚀 安装 ### 推荐:使用 `npx` 直接运行(无需安装) ``` npx scan-compromised ``` 或全局安装 ``` npm install -g scan-compromised scan-compromised ``` ## 📦 用法 ### 基本扫描 ``` scan-compromised ``` ### 严格拦截:阻止安装存在已知安全建议的依赖 将此内容添加到项目 `package.json` 的 `preinstall` 脚本中: ``` "scripts": { "preinstall": "npx scan-compromised" } ``` 这将防止安装任何带有已知安全建议的依赖项,作为供应链中的严格拦截。 ### JSON 输出(用于 CI 集成) ``` scan-compromised --json ``` ## 📁 威胁列表与数据更新 该工具使用位于 CLI 包根目录的本地 `threats.json` 文件。该文件包含已知受损包及其恶意版本的列表。 **数据源:** - 已知漏洞列表每天自动从 GitHub Security Advisories 拉取。 - 这确保了扫描始终能及时获取 npm 生态系统中最新报告的威胁。 示例 `threats.json` ``` { "@ctrl/tinycolor": ["4.1.1", "4.1.2"], "ngx-toastr": ["19.0.1", "19.0.2"] } ``` 您可以在发现新威胁时手动更新此文件。可信来源包括: StepSecurity GitHub Security Advisories Snyk Vulnerability Database ## 🧪 GitHub Actions 集成 您可以在每次推送或拉取请求时自动运行此工具。 `.github/workflows/scan.yml` ``` name: Scan for Compromised Packages on: push: branches: [main] pull_request: jobs: scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3 with: node-version: '18' - name: Install scanner run: npm install scan-compromised - name: Run scan run: npx scan-compromised ``` ## 🛡️ 许可证 MIT © Jonathan Blades
标签:CI 集成, GitHub Security Advisories, JSON 输出, MITM代理, npm CLI 工具, Npx 运行, package.json, package-lock.json, pnpm-lock.yaml, Shai-Hulud 2025, Snyk, StepSecurity, yarn.lock, 全局安装, 威胁情报, 安全版本警告, 已知漏洞, 开发者工具, 恶意版本检测, 数据可视化, 文档结构分析, 无第三方依赖, 本地威胁列表, 硬性阻断, 自包含工具, 自定义脚本, 预安装脚本