itsribbZ/Enigma

GitHub: itsribbZ/Enigma

Enigma 是一款后量子密码学静态扫描器,用于检测代码库中易受量子攻击的加密算法并提供自动迁移建议。

Stars: 0 | Forks: 0

# Enigma — 后量子密码学扫描器 **在为时已晚之前,检测代码库中易受量子攻击的密码学。** NIST 的最后期限是 2035 年。CNSA 2.0 的最后期限从 2025 年开始。你的代码中存在易受量子攻击的加密算法。Enigma 会将其找出、进行评分,并自动建议迁移路径。 ## 功能 - 通过 tree-sitter 进行 **7 种语言的深度分析** — Python, Java, Go, JavaScript/TypeScript, Rust, C/C++ - **50 多种密码学 API 模式**,支持提取密钥长度 - **CycloneDX CBOM 1.7** 输出 — 用于企业安全工具链的密码学物料清单 (Cryptographic Bill of Materials) - **SARIF 2.1.0** 输出 — 可直接接入 GitHub Code Scanning, GitLab Security, Azure DevOps - **CNSA 2.0 截止日期倒计时** — 精确显示每种算法变为不合规的具体天数 - **QARS 风险评分** — 具备 A-F 等级的多因子量子调整风险得分 (Quantum-Adjusted Risk Score) - **自动修复建议** — 确定性转换(MD5 → SHA-256)和模板迁移(RSA → ML-KEM-768) - **基线差异对比** — 比较扫描结果,在 CI/CD 中仅查看新发现的问题 - **依赖扫描** — 支持 6 个生态系统 + lock 文件及传递性解析 - **抑制规则** — `.pqcignore` 文件 + 内联 `# pqc-ignore[ALGO]` 注释 - **注释剥离** — 消除由注释掉的代码引起的误报 - **证书扫描** — PEM/DER 文件分析 + 实时 TLS endpoint 检查 - **GitHub Action** — 带有 SARIF 上传功能的即插即用 CI/CD 集成 - **VS Code 扩展** — 内联诊断 + 快速修复代码操作 ## 快速开始 ``` git clone https://github.com/itsribbZ/Enigma.git cd Enigma pip install -e . # 基础扫描 pqc-scanner scan /path/to/project # 完整的企业 pipeline pqc-scanner scan . --compliance --scan-deps --fix --format sarif -o results.sarif # 为您的安全 org 提供 CBOM pqc-scanner scan . --format cbom -o cbom.json # 风险加权扫描 pqc-scanner scan . --sensitivity confidential --exposure internet # CI baseline diff pqc-scanner scan . --baseline previous.json --format json -o current.json # 证书清单 pqc-scanner scan-certs /path/to/certs/ # 实时 TLS endpoint pqc-scanner scan-tls example.com:443 ``` ## 输出格式 | 格式 | 标志 | 用例 | |---|---|---| | Text | `--format text` | 人类可读的终端输出 | | JSON | `--format json` | 程序化处理 | | HTML | `--format html` | 可共享报告 | | SARIF | `--format sarif` | GitHub Code Scanning, Azure DevOps | | CBOM | `--format cbom` | CycloneDX 1.7 密码学物料清单 | ## 合规框架 使用 `--compliance` 将发现结果映射到三个框架: - **CNSA 2.0** (NSA) — 每种算法的截止日期倒计时 - **NIST IR 8547** — 联邦 PQC 过渡指南 - **PCI DSS 4.0** — 支付卡行业要求 ## QARS 评分 量子调整风险得分 (Quantum-Adjusted Risk Score) 综合考量以下因素: - 算法漏洞(Shor / Grover 攻击的易感性) - 密钥长度分析 - Mosca 不等式紧迫性 - 数据敏感性与暴露权重 评分为 0-100 分,并带有 A-F 字母等级。 ## 检测内容 | 算法 | 风险 | PQC 替代方案 | |---|---|---| | RSA | 严重 (Shor) | ML-KEM-768 / ML-DSA-65 | | ECDSA / ECDH | 严重 (Shor) | ML-DSA-65 / ML-KEM-768 | | Ed25519 | 高 (Shor) | ML-DSA-44 | | DH / DSA | 严重 (Shor) | ML-KEM-768 / ML-DSA-65 | | AES-128 | 中等 (Grover) | AES-256 | | SHA-1 | 中等 (已破解) | SHA-256 | | MD5 | 高 (已破解) | SHA-256 | | 3DES / DES | 高 (已弃用) | AES-256-GCM | | RC4 / Blowfish | 高 (已破解) | AES-256-GCM | ## GitHub Action ``` - uses: itsribbZ/Enigma/github-action@main with: path: '.' format: 'sarif' fail-on-critical: 'true' scan-dependencies: 'true' ``` ## 抑制规则 项目根目录下的 `.pqcignore` 文件: ``` # 忽略测试 tests/* # 忽略 vendored 代码 vendor/** ``` 或内联: ``` key = rsa.generate_private_key(...) # pqc-ignore hash = hashlib.md5(data) # pqc-ignore[MD5] ``` ## 仓库结构 | 路径 | 用途 | |---|---| | `phases/` | 分阶段 PQC 扫描器实现 (Phase 1–9) | | `demo/` | 用于端到端测试的示例漏洞项目 | | `github-action/` | 带 SARIF 上传功能的即插即用 CI/CD action | | `vscode-extension/` | VS Code 扩展源码 + .vsix 构建 | | `assets/` | 品牌资源 | | `*.spec` | PyInstaller 构建规格 (dev / release / scanner) | ## 依赖 基础扫描**零必需依赖**。可选依赖: - `cryptography` — 证书扫描 (`pip install -e ".[certs]"`) - `reportlab` — PDF 高管报告 (`pip install -e ".[reports]"`) - `tree-sitter` + 语法包 — 深度多语言分析 (`pip install -e ".[all]"`) ## 文档 仓库中内置的企业概述 PDF 文档: - `Enigma_PQC_Scanner_Corporate_Overview.pdf` — 执行摘要 - `PQC_Executive_Report.pdf` — 高管报告输出示例 - `PQC_Scanner_Test_Guide.pdf` — 测试指南 - `Quantum_Security_Expert_Roadmap.pdf` — 生态全景图 - `Enigma_Capstone.pdf` — 深度完整解析 ## 许可证 MIT ## 作者 Jacob Ribbe — [github.com/itsribbZ](https://github.com/itsribbZ)
标签:AST解析, DevSecOps, LNA, SBOM, 上游代理, 代码安全审计, 后量子密码学, 安全合规, 漏洞挖掘, 硬件无关, 网络代理, 逆向工具, 错误基检测, 静态代码分析