mosawalhi7/webarmor-audit
GitHub: mosawalhi7/webarmor-audit
WebArmor-Audit:专业网站安全审计工具,快速检测HTTP安全头、SSL/TLS漏洞和敏感文件。
Stars: 0 | Forks: 0
# WebArmor-Audit
### 生产级 HTTP 安全标头审计器与 SSL/TLS 检查器
[](https://python.org)
[](LICENSE)
[](https://owasp.org)
**一款专业的、核心零依赖的 CLI 安全扫描器,专为现代 DevSecOps 设计。它审计网站的 HTTP 安全标头、CORS 漏洞合规性、security.txt 配置、SSL/TLS 证书有效性及活跃协议/密码套件漏洞、CSP 绕过风险、重定向降级、Cookie 安全性以及技术信息泄露。支持美观的暗色模式 HTML、JSON、SARIF 和 Markdown 报告,并具备并发批量扫描和线程安全缓存功能。**
### 🖥️ 仪表板与报告预览
#### 🌐 交互式 HTML 仪表板报告

#### 💻 丰富的 CLI 终端界面
## 🎯 核心功能
| 功能 | 能力描述 |
| :--- | :--- |
| **🔍 安全标头审计** | 检查 6 个关键标头(`CSP`、`HSTS`、`X-Frame-Options`、`X-Content-Type-Options`、`Referrer-Policy`、`Permissions-Policy`),配备智能评分系统(A+ → F)。 |
| **🔒 CORS 合规性** | 扫描来源配置错误、带凭据的通配符绑定、不安全协议以及来源反射。 |
| **🛡️ CSP 绕过评估器** | 解析复杂的内容安全策略,检查通配符、不安全的 CDN(如 `unpkg.com` 或 `cdnjs.cloudflare.com`)、缺乏标准回退指令(`default-src`、`object-src`)以及不安全的评估器(`unsafe-inline`、`unsafe-eval`)。 |
| **📂 security.txt 验证** | 验证 `.well-known/security.txt` 的 RFC 9116 合规性,检查过期时间戳、必填字段、联系方式和签名验证。 |
| **🌐 协议审计** | 通过 socket 级别的 ALPN 验证 **HTTP/2**,以及解析响应标头以识别 **HTTP/3 (Alt-Svc)**,从而发现高级服务器能力。 |
| **🔒 SSL/TLS 主动扫描** | 检查证书元数据,并主动探测支持的协议版本(TLS 1.0 - 1.3、SSLv3)及传统的弱密码套件(RC4、3DES、NULL/anonymous、EXPORT),以防止 BEAST/SWEET32 攻击。 |
| **💥 智能路径模糊测试** | 并发主动模糊测试 20 多个高价值路径(例如 `.env`、`.git/HEAD`、备份文件),并通过正文关键词验证以避免误报。 |
| **🎯 CWE / OWASP 映射** | 将所有发现的漏洞和建议映射到 CWE ID 和 OWASP Top 10 分类。 |
| **🛡️ WAF 指纹识别** | 通过 cookie 和标头特征对 Web Application Firewall(Cloudflare、AWS WAF、Akamai、Imperva 等)进行指纹识别。 |
| **🔗 重定向链跟踪器** | 追踪多跳重定向,在安全协议降级(HTTPS 降级为 HTTP)时发出警报,并检测引荐路径中的凭据泄露。 |
| **🍪 Cookie 与泄露扫描** | 检查 cookie 的 `Secure`、`HttpOnly` 和 `SameSite` 标志。检测框架/Web 服务器信息泄露(例如 `Server`、`X-Powered-By`、`X-AspNet-Version`)。 |
| **⚡ 线程安全缓存** | 在 `.webarmor_cache.json` 中本地缓存审计报告,支持自定义 TTL。使用锁定原语实现完全线程安全,适合并行执行。 |
| **🚀 并发批量扫描** | 使用 python `ThreadPoolExecutor` 并发扫描多个目标 URL,并生成一个汇总的交互式 HTML 仪表板。 |
| **🎨 多格式报告** | 导出为对控制台友好的 **Markdown**、用于编程的 **JSON**、高级交互式 **暗色霓虹 HTML** 以及 **SARIF**(完全兼容 GitHub Security Alerts)。 |
| **⚙️ 配置文件** | 通过简单的 **TOML** 配置自定义评分等级阈值和评分权重,或追踪自定义的专有标头。 |
| **🤖 CI/CD 故障保护** | 使用 `--fail-under` 或 `--fail-score` 返回非零退出码,当目标未达到合规阈值时中断 CI 流水线。 |
## ⚖️ WebArmor-Audit 功能对比
| 功能 / 能力 | WebArmor-Audit | Mozilla Observatory | OWASP ZAP | Nikto |
| :--- | :---: | :---: | :---: | :---: |
| **零依赖(纯 Python)** | ✅ **是** | ❌ 否 | ❌ 否 (Java) | ❌ 否 (Perl) |
| **主动 SSL/TLS 密码探测** | ✅ **是** | ❌ 否 (仅被动) | ⚠️ 部分 | ⚠️ 有限 |
| **智能模糊测试(无 404 误报)** | ✅ **是** | ❌ 否 | ⚠️ 通用 | ⚠️ 高噪点 |
| **自动化 WAF 指纹识别** | ✅ **是** | ❌ 否 | ❌ 否 | ⚠️ 有限 |
| **原生 SARIF 导出 (CI/CD)** | ✅ **是** | ❌ 否 | ✅ 是 | ❌ 否 |
| **执行速度** | ⚡ **极快** | ⚠️ 依赖网络 | 🐢 笨重/缓慢 | 🐢 非常缓慢 |
| **高级暗色霓虹 HTML UI** | ✅ **是** | ✅ 是 (仅限网页) | ❌ 否 | ❌ 否 |
## 📋 安全检查概览
### 1. HTTP 安全标头
* **Content-Security-Policy (CSP):** 缓解 XSS、frame 注入和点击劫持。评估指令强度。
* **Strict-Transport-Security (HSTS):** 强制使用 HTTPS,验证 `max-age` 和 `includeSubDomains`。
* **X-Frame-Options (XFO):** 通过限制 frame 嵌入(`DENY` 或 `SAMEORIGIN`)来防止点击劫持。
* **X-Content-Type-Options (XCTO):** 通过强制执行 `nosniff` 来阻止 MIME 类型嗅探。
* **Referrer-Policy:** 控制跨域 HTTP 请求中的信息泄露。
* **Permissions-Policy:** 限制浏览器上下文中可访问的硬件 API 和功能。
### 2. CORS (跨域资源共享)
* 验证 `Access-Control-Allow-Origin` 是否配置安全。
* 针对危险配置发出警报,例如通配符来源与 `Access-Control-Allow-Credentials: true` 结合使用。
* 检测允许来源中定义的不安全 HTTP 协议。
### 3. security.txt (RFC 9116)
* 检查 `.well-known/security.txt` 下的文件可用性。
* 解析必填字段:`Contact`、`Expires`、`Preferred-Languages`。
* 验证过期时间戳,针对过期的配置发出警告。
### 4. SSL/TLS 主动扫描器与证书分析
* 提取 SSL 颁发者名称、有效期起始时间、有效期截止时间以及剩余寿命。
* **主动协议探测:** 发现支持及拒绝的协议版本(TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3、SSLv3)。
* **弱密码扫描:** 检测服务器是否接受危险/传统的密码套件(RC4、3DES、NULL/anonymous、EXPORT)。
* 如果证书无效、即将过期,或者服务器支持传统的 SSL/TLS 版本或弱密码,则生成安全警报。
### 5. 智能路径模糊测试(敏感文件扫描)
* **并发探测:** 并行评估 20 多个敏感目标目录和配置备份的暴露情况。
* **关键词响应匹配:** 检查下载的文件缓冲区中是否包含特定标记(例如 `DB_PASSWORD`、`ref:`、`
**用 ❤️ 为 AppSec 与 DevSecOps 社区构建**
🛡️ *保护 Web,从每一个标头做起。* 🛡️