Amit-netizen/CryptoComm-Auditor

GitHub: Amit-netizen/CryptoComm-Auditor

面向 IoT 与嵌入式设备的命令行加密安全审计工具,覆盖 TLS 端点探测、固件机密扫描和 MQTT 中间人防御模拟。

Stars: 0 | Forks: 0

# CryptoComm-Auditor **嵌入式固件 / IoT 的加密完整性与鲁棒性验证器** 一个使用 **Go** 和 **Bash** 编写的命令行安全审计工具,用于检查 IoT 和嵌入式设备部署的加密安全态势——包括 TLS 端点配置、设备文件系统机密信息扫描以及 MQTT 中间人防御模拟。 ``` ╔═══════════════════════════════════════════════════════╗ ║ CryptoComm-Auditor v1.0.0 ║ ║ Cryptographic Integrity & Robustness Verifier ║ ║ IoT / Embedded Device TLS Security Auditor ║ ╚═══════════════════════════════════════════════════════╝ ``` ## 功能特性 ### 1. TLS / SSL 端点审计器 (`tls-audit`) 直接使用 Go 的 `crypto/tls` 连接到任何 HTTPS/TLS 端点,并执行全面的加密安全态势审计: | 检查项 | 检测内容 | |---|---| | **协议版本** | 接受 TLS 1.0/1.1(已弃用),首选 TLS 1.3 | | **密码套件** | RC4、DES、3DES、NULL、EXPORT 密码;缺乏前向保密性 | | **证书过期** | 已过期、≤14 天、≤30 天警告 | | **PKI 链** | 主机名/SAN 不匹配、颁发者链、CA 有效性 | | **OCSP 装订** | 缺失警告(强制客户端进行实时吊销检查) | | **完全前向保密性** | 检测协商密码中是否存在 ECDHE/DHE | 严重性级别:`CRITICAL` → `HIGH` → `MEDIUM` → `INFO` → `PASS` ### 2. 固件 / 配置安全扫描器 (`firmware-scan`) 一个 Bash 脚本,遍历设备文件系统并标记 8 类漏洞: - **硬编码私钥** — 配置文件中的 PEM `BEGIN PRIVATE KEY` 块 - **明文凭据** — `.conf`、`.env`、`.yaml`、`.sh` 中的 password/secret/token/api_key - **弱密码/默认密码** — admin、password、1234、changeme、root - **全局可读的敏感文件** — `.key`、`.pem`、`.crt`、`.p12`、`shadow` - **不安全的协议** — telnet、FTP、纯 HTTP、未加密的 MQTT (端口 1883) - **SSH 配置错误** — `PermitRootLogin yes`、`Protocol 1` - **已弃用的 TLS 配置** — SSLv3、TLSv1.0/1.1、RC4、3DES、NULL cipher 引用 - **禁用证书验证** — `InsecureSkipVerify = true`、`verify_peer = false` 输出 JSON 供 Go 报告引擎使用,以实现统一报告。 ### 3. MQTT-over-TLS 中间人防御模拟器 (`mqtt-sim`) 跨三种安全场景模拟设备到云的 MQTT 会话: | 场景 | 演示内容 | |---|---| | `valid` | 带 CA 验证的安全 TLS 1.2+ — 消息已传递 | | `mitm_simulation` | 设置了 `InsecureSkipVerify=true` 的设备 — 暴露攻击面 | | `cert_pinning` | 通过 `VerifyConnection` 进行 SHA-256 指纹固定 — 阻止了流氓证书 | ### 4. 模拟 HTTPS 服务器 (`mock-server`) 启动本地 TLS 服务器以进行离线测试——将 `tls-audit` 指向 `localhost:8443`。 ## 截图 ### TLS 1.3 — 实时端点上完全通过 (PASS) ``` ./auditor tls-audit -host google.com ``` ![TLS 1.3 完全通过](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a1c89696aa051959.png) ### 过期证书 — CRITICAL 发现 ``` ./auditor tls-audit -host expired.badssl.com -insecure ``` ![过期证书 CRITICAL](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0e10265082052004.png) ### 弃用协议 — 检测到 TLS 1.0 (HIGH) ``` ./auditor tls-audit -host tls-v1-0.badssl.com -port 1010 -insecure ``` ![弃用 TLS HIGH](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f41bbf3dde052010.png) ### 固件扫描 — 18 个发现 (7 个 CRITICAL,7 个 HIGH) ``` ./auditor firmware-scan -path ./testdata/device-fs ``` ![固件扫描发现](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/4822d00ec0052019.png) ### MQTT-over-TLS — 证书固定 (SECURE + 2× BLOCKED) ``` ./auditor mqtt-sim -broker test.mosquitto.org -port 8883 ``` ![MQTT 证书固定模拟](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/edf2d14e75052025.png) ### 完整审计 — 综合报告 ``` ./auditor full -host google.com -fsroot ./testdata/device-fs -json audit-report.json ``` ![完整审计运行 1](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/7e74a6233c052031.png) ### 完整审计 — JSON 导出 ``` cat audit-report.json | python3 -m json.tool | head -60 ``` ![完整审计 JSON 输出](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/41206cfc42052037.png) ## 项目结构 ``` cryptocomm-auditor/ ├── cmd/auditor/main.go # CLI entry point — tls-audit, firmware-scan, mqtt-sim, mock-server, full ├── internal/ │ ├── tls/auditor.go # TLS/PKI audit engine (two-phase probe + cert chain inspection) │ ├── mqtt/simulator.go # MQTT-over-TLS simulator with SHA-256 cert pinning │ └── report/report.go # ANSI terminal renderer + JSON report exporter ├── scripts/ │ ├── firmware_audit.sh # Bash device filesystem scanner (8 vuln categories) │ └── gen_certs.sh # Self-signed CA + server cert generator ├── screenshots/ # Evidence from live runs ├── go.mod └── README.md ``` ## 构建与运行 (Windows 11 / WSL2) ### 前置条件 ``` sudo apt update && sudo apt install -y golang-go openssl ``` ### 构建 ``` git clone https://github.com/Amit-netizen/cryptocomm-auditor cd cryptocomm-auditor go build -o auditor ./cmd/auditor/ ``` ### 命令 ``` # 对任意 endpoint 执行 TLS 审计 ./auditor tls-audit -host google.com ./auditor tls-audit -host expired.badssl.com -insecure ./auditor tls-audit -host tls-v1-0.badssl.com -port 1010 -insecure # Firmware/config filesystem 扫描 ./auditor firmware-scan -path ./testdata/device-fs # MQTT TLS cert-pinning 模拟 ./auditor mqtt-sim -broker test.mosquitto.org -port 8883 # Local mock server(离线测试) bash scripts/gen_certs.sh ./auditor mock-server & ./auditor tls-audit -host localhost -port 8443 -insecure # 包含 JSON 导出的完整审计 ./auditor full -host google.com -fsroot ./testdata/device-fs -json audit-report.json ``` ## 技术设计 ### TLS 审计引擎 直接使用 Go 的 `crypto/tls`——无第三方库。两阶段扫描:协议探测(通过 `MinVersion`/`MaxVersion` 测试是否接受 TLS 1.0/1.1),然后通过 `ConnectionState` 进行完整的握手检查(协商的密码套件、`PeerCertificates` 链、OCSP 装订)。 ### 固件扫描器 纯 Bash——仅使用 `grep`、`find`、`stat`、`openssl`。使用以 Null 分隔的 `find -print0` 遍历,实现二进制安全的操作。输出的 JSON 供 Go 报告引擎使用。 ### MQTT 模拟器 带有可配置 CA 池的真实 TLS 连接(支持 mTLS)。通过 `tls.Config.VerifyConnection` 钩子实现证书固定——SHA-256 公钥指纹比较甚至能在 CA 链有效的情况下阻止流氓证书。 ### JSON 报告 聚合 TLS、固件和 MQTT 发现,并给出整体的 PASS/FAIL 结果——支持为嵌入式设备安全网关集成 CI/CD 流水线。 ## CI 集成 ``` # 发现 CRITICAL 结果时以非零状态退出 ./auditor firmware-scan -path ./device-fs -json report.json CRITICALS=$(jq '.firmware_audit.findings | map(select(.severity=="CRITICAL")) | length' report.json) [ "$CRITICALS" -eq 0 ] || exit 1 ```
标签:Bash, EVTX分析, Go语言, HTTPS扫描, IoT, MitM, TLS安全, 中间人攻击, 加密流量分析, 固件安全, 安全助手, 安全测试工具, 密码学, 嵌入式设备, 应用安全, 开源安全工具, 手动系统调用, 插件系统, 日志审计, 物联网安全, 程序破解, 网络安全, 证书固定, 逆向工程平台, 隐私保护