qubitac/AC-Scanner

GitHub: qubitac/AC-Scanner

开源后量子密码学扫描器,评估 TLS 和 SSH 服务的量子漏洞风险并生成符合 NIST IR 8547 标准的密码学物料清单。

Stars: 0 | Forks: 0

``` ╔════════════════════════════════════════════════════════════╗ ║ ║ ║ ██████ ██ ██ ██████ ██ ████████ █████ ██████ ║ ║ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ║ ║ ██ ██ ██ ██ ██████ ██ ██ ███████ ██ ║ ║ ██ ▄▄ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ║ ║ ██████ ██████ ██████ ██ ██ ██ ██ ██████ ║ ║ ▀▀ ║ ║ ║ ║ Post-Quantum Cryptography Scanner ║ ║ https://qubitac.com ║ ║ ║ ╚════════════════════════════════════════════════════════════╝ ``` # AC Scanner — 后量子密码学暴露评估 **扫描。发现。加固。** ![Version](https://img.shields.io/badge/version-1.0.0-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Python](https://img.shields.io/badge/python-3.8+-blue) ![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20WSL-lightgrey) ![NIST](https://img.shields.io/badge/NIST-IR%208547%20Aligned-orange) AC Scanner 是一个开源流水线,可跨 TLS 端点和 SSH 服务映射您的完整密码学攻击面,根据 NIST 后量子标准评估每项资产,并通过单个命令生成结构化的 **密码学物料清单 (CBOM)**。 🔗 **Dashboard:** [qubitac.com/dashboard](https://qubitac.com/dashboard) ## 功能概述 ``` bash scan.sh example.com --all ``` 一条命令。四个阶段: | 阶段 | 执行内容 | |-------|-------------| | **Discovery (发现)** | 子域名枚举、DNS 解析、Web 和 SSH 服务检测 | | **Scanning (扫描)** | OpenSSL TLS 握手分析 + 每台主机的 SSH 审计 | | **Analysis (分析)** | PQC 漏洞评分、NIST 截止日期映射、CBOM 生成 | | **Reporting (报告)** | JSONL + JSON + Markdown 输出,可直接上传至 Dashboard | ## 主要特性 - **TLS 扫描** — 采集 TLS 版本、密码套件、证书链、EC 曲线、密钥交换组以及 PQC 混合检测 (X25519MLKEM768, SecP256r1MLKEM768 等) - **SSH 审计** — 根据 PQC 安全模式 (sntrup761, mlkem, kyber, ntru, frodokem) 对 KEX 算法进行分类,标记弱加密算法 (3DES, DES, RC4, arcfour, Blowfish) 和弱 MAC (SHA-1, MD5, RIPEMD),检测易受量子攻击的主机密钥 (RSA, ECDSA, Ed25519, Ed448, DSA) 并提供针对每种算法的 ML-DSA 替换指导,同时将 OpenSSH 版本纳入迁移优先级考量 (7.x = CRITICAL, 8.x = HIGH, 9.x = MEDIUM) - **PQC 评分** — 基于三个组件对每个端点进行量子漏洞评分:密钥交换 (70%)、证书签名 (30%) 和对称加密 (Grover 算法影响) - **迁移优先级** — CRITICAL / HIGH / MEDIUM / LOW 四个层级,与 NIST IR 8547 截止日期对齐 (2030 年弃用,2035 年禁用) - **CBOM 输出** — JSON 格式的结构化密码学物料清单,适用于审计员、CISO 和合规框架 (NIST, PCI-DSS) - **CDN 绕过** — SSH 扫描器探测子域名记录、MX 和 SPF ip4: 指令,以查找 CDN 后的真实 IP - **HTTP 回退** — 当 TLS 失败时,回退到 HTTP 探测以进行服务器指纹识别和 OS 检测 - **遗留算法检测** — 无论密钥交换方式如何,均将 RC4、3DES、NULL、出口级以及 CBC+SHA1 密码标记为非 PQC 就绪 - **数据质量标记** — 每个结果包含探测状态和数据质量标记,明确指出已采集和未采集的内容,使 CBOM 引擎仅对数据充足的端点进行准确评分 - **无云依赖** — 完全在您自己的基础设施上运行;适用于物理隔离环境 - **带时间戳的扫描历史** — 比较不同时间的扫描结果,以追踪 PQC 迁移进度 ## 支持的算法 ### 易受量子攻击(检测并标记) | 算法 | 类型 | 破解方式 | NIST 替代方案 | |-----------|------|-----------|-----------------| | X25519, P-256, P-384, P-521 | TLS Key Exchange | Shor's Algorithm | ML-KEM (FIPS 203) | | RSA, ECDSA, DSA, Ed25519, Ed448 | SSH Host Keys / Signatures | Shor's Algorithm | ML-DSA (FIPS 204) | | 3DES, DES, RC4, arcfour, Blowfish | SSH Ciphers | 经典弱点 | AES-256-GCM | | SHA-1, MD5, RIPEMD | SSH MACs | 经典弱点 | SHA-256 / Poly1305 | | AES-128 | Symmetric | Grover's Algorithm | AES-256 | ### PQC 安全(检测为合规) | Group | Classical Component | PQC Component | Security Level | |-------|-------------------|---------------|---------------| | X25519MLKEM768 | X25519 | ML-KEM-768 | 128-bit quantum-safe | | SecP256r1MLKEM768 | P-256 | ML-KEM-768 | 128-bit quantum-safe | | X25519Kyber768 | X25519 | Kyber-768 | 128-bit quantum-safe | | SecP384r1MLKEM1024 | P-384 | ML-KEM-1024 | 192-bit quantum-safe | ## 安装说明 ### 前置条件 - Linux 或 macOS (Windows 通过 WSL) - Python 3.8+ - OpenSSL 3.x (用于 PQC 混合组检测) ### 安装依赖 ``` # macOS brew install subfinder dnsx httpx jq openssl pip3 install ssh-audit # Ubuntu / Debian sudo apt install jq openssl dnsutils pip3 install ssh-audit # subfinder, dnsx, httpx (基于 Go 的工具) go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest ``` ## 快速开始 ``` # 克隆 repo https://github.com/qubitac/AC-Scanner.git chmod +x scan.sh # 扫描域名 (仅 web 端口) bash scan.sh example.com # 扫描 web + SSH bash scan.sh example.com --web --ssh # 扫描所有内容 bash scan.sh example.com --all # 自定义端口 bash scan.sh example.com -p 443,8443 # 带详细输出 bash scan.sh example.com --all -v ``` ## 端口预设 | Flag | Ports | |------|-------| | `--web` | 80, 443, 8080, 8443 | | `--ssh` | 22, 2222 | | `--all` | 上述所有 | | `-p` | 自定义逗号分隔端口 | ## 输出 每次扫描会在 `//` 下生成三个输出文件: ``` example.com/ └── 2026-03-13T120000/ ├── cbom/ │ ├── crypto-bom.json ← CBOM for dashboard upload │ └── summary.md ← Human-readable scan summary └── reports/ └── scan_stats.json ← Machine-readable scan statistics ``` ### CBOM JSON (节选) ``` { "host": "api.example.com", "port": 443, "tls_version": "tls13", "cipher": "TLS_AES_256_GCM_SHA384", "pqc_hybrid": false, "pqc_ready": false, "migration_priority": "CRITICAL", "vulnerabilities": [ { "component": "Key Exchange", "algorithm": "X25519", "quantum_vulnerable": true, "broken_by": "Shor's Algorithm", "replacement": "ML-KEM (FIPS 203) via X25519MLKEM768" } ] } ``` ### Dashboard 将 `crypto-bom.json` 上传至 [qubitac.com/dashboard](https://qubitac.com/dashboard),即可可视化您的 PQC 就绪评分,按 TLS 版本、密码套件和迁移优先级筛选,并为审计员导出发现结果。 ## 迁移优先级评分 每个端点根据 NIST IR 8547 获得一个评分 (0–100): | Priority | Score | Target Timeline | NIST Deadline | |----------|-------|-----------------|---------------| | **CRITICAL** | 80–100 | 2026–2027 | 2030 年后弃用 | | **HIGH** | 60–79 | 2026–2028 | 2030 年后弃用 | | **MEDIUM** | 20–59 | 2028–2030 | 必须在 2030 年前完成 | | **LOW** | 0–19 | 2030–2032 | 必须在 2035 年前完成 | ## 架构 ``` scan.sh (orchestrator) ├── Discovery │ ├── subfinder → subdomain enumeration │ ├── dnsx → DNS resolution │ └── httpx → live host detection │ ├── TLS Scanner (openssl_scanner.py) │ ├── openssl s_client per host │ ├── Certificate parsing (x509) │ ├── PQC hybrid group detection │ └── HTTP fallback probing │ ├── SSH Scanner (ssh_scanner.py) │ ├── TCP pre-check │ ├── ssh-audit per host │ ├── CDN bypass (DNS/MX/SPF) │ ├── PQC KEX classification (sntrup761, mlkem, kyber, ntru, frodokem) │ ├── Weak cipher/MAC detection (3DES, RC4, SHA-1, MD5, RIPEMD) │ ├── Host key vulnerability mapping (RSA/ECDSA/Ed25519 → ML-DSA) │ └── OpenSSH version-based priority scoring │ └── CBOM Engine (pqc_cbom.py) ├── Vulnerability scoring ├── Migration priority mapping ├── CBOM JSON generation └── Markdown summary + migration roadmap ``` ## NIST PQC 标准参考 | Standard | Algorithm | Status | Role | |----------|-----------|--------|------| | FIPS 203 | ML-KEM (Kyber) | ✅ 2024 年 8 月定稿 | Key Encapsulation | | FIPS 204 | ML-DSA (Dilithium) | ✅ 2024 年 8 月定稿 | Digital Signatures | | FIPS 205 | SLH-DSA (SPHINCS+) | ✅ 2024 年 8 月定稿 | Hash-based Signatures | | FIPS 206 | FN-DSA (Falcon) | 🔄 草案 | Digital Signatures | | — | HQC | 🔄 2025 年 3 月入选 | Key Encapsulation (备份) | **NIST IR 8547 时间表:** - **2030** — 弃用量子易受攻击算法 - **2035** — 全面禁用 ## 使用场景 - **Blue teams** — 在 2030 年 NIST 截止日期前盘点密码学资产 - **Security architects** — 识别哪些端点需要在部署 PQC 之前进行 TLS 1.3 升级 - **Compliance engineers** — 为对齐 NIST 和 PCI-DSS 的审计师生成 CBOM 证据 - **Pentesters** — 识别范围内的弱密码套件、即将过期的证书和旧版 TLS - **Air-gapped environments** — 无需 API 密钥或云服务 ## 环境变量 | Variable | Default | Description | |----------|---------|-------------| | `SCAN_TIMEOUT` | `10` | 连接超时(秒) | | `VERBOSE` | `0` | 设置为 `1` 以显示详细输出 | | `DEBUG` | `0` | 设置为 `1` 以显示原始 OpenSSL 输出 | ``` SCAN_TIMEOUT=30 VERBOSE=1 bash scan.sh example.com --all ``` ## 平台支持 | Platform | Support | |----------|---------| | Linux | ✅ 完全支持 | | macOS | ✅ 完全支持 | | Windows (WSL) | ✅ 支持 | | Windows (Git Bash) | ✅ `bash scan.sh` | | Windows (native) | ❌ 不支持 | ## 许可证 MIT License — 详见 [LICENSE](LICENSE) ## 致谢 AC Scanner 基于以下优秀的开源工具构建: - [OpenSSL](https://www.openssl.org/) — TLS handshake and certificate parsing - [ssh-audit](https://github.com/jtesta/ssh-audit) — SSH configuration auditing - [subfinder](https://github.com/projectdiscovery/subfinder) — Subdomain enumeration - [dnsx](https://github.com/projectdiscovery/dnsx) — DNS resolution - [httpx](https://github.com/projectdiscovery/httpx) — HTTP probing *由 [QubitAC](https://qubitac.com) 构建 · [Dashboard](https://qubitac.com/dashboard) · [X](https://x.com/qubitac)*
标签:CBOM, NIST IR 8547, PQC, Python, SSH审计, TLS扫描, 加密敏捷性, 加密资产发现, 协议分析, 后量子密码学, 安全测试, 安全测试工具, 密码学扫描器, 密码物料清单, 应用安全, 开源安全工具, 攻击性安全, 无后门, 权限提升, 网络安全, 证书分析, 运行时操纵, 逆向工具, 逆向工程平台, 量子安全, 量子计算威胁, 防御绕过, 隐私保护