aisecuritytools-ai/ai-powered-web-vulnerability-scanner
GitHub: aisecuritytools-ai/ai-powered-web-vulnerability-scanner
AI赋能的网站漏洞扫描器,提供智能修复建议。
Stars: 0 | Forks: 0
自动化网络安全扫描 — 由 Hurl + SSLyze 提供
架构 •
Hurl 测试 •
示例输出 •
企业版
## 什么是 AIWVS?
提供网站 URL,AIWVS 自动:
1. **检查安全头** — X-Frame-Options,X-Content-Type-Options,Referrer-Policy,CSP
2. **验证 Cookie** — Secure,HttpOnly,SameSite 标志
3. **测试 CORS 策略** — 拒绝恶意来源,允许合法来源
4. **验证 HSTS** — max-age ≥ 6 个月,includeSubDomains,preload
5. **扫描 TLS/SSL** — SSL 2.0/3.0 禁用,TLS 1.2/1.3 启用
6. **检查重定向** — HTTP → HTTPS 强制使用 301
7. **检测 CSRF 令牌** — 存在于 Cookie 或头部
8. **🤖 AI 补救** — LLM 为每个失败生成上下文特定的修复建议
9. **🤖 AI 姿态分析** — LLM 总结整体安全态势并制定优先行动计划
一键完成。JSON + HTML 报告。每个失败都提供可操作的补救措施。
## ⚡ 快速开始
```
# 安装
git clone https://github.com/aisecuritytools-ai/ai-web-vulnerability-scanner.git
cd ai-web-vulnerability-scanner
pip install -e .
# 运行基本扫描
web-vuln-scanner --domains example.com --reports-dir ./reports
# 带人工智能分析(需要本地运行 Ollama — 免费)
web-vuln-scanner --domains example.com --reports-dir ./reports \
--ai-analyze --ai-remediate --ai-provider ollama
# 带 OpenAI
export OPENAI_API_KEY="sk-..."
web-vuln-scanner --domains example.com --reports-dir ./reports \
--ai-analyze --ai-remediate --ai-provider openai
# 带 Amazon Bedrock
web-vuln-scanner --domains example.com --reports-dir ./reports \
--ai-analyze --ai-remediate --ai-provider bedrock
```
**不需要云账户?** 使用 Ollama — 100% 本地运行,完全免费:
```
brew install ollama && ollama pull llama3.1
web-vuln-scanner --domains example.com --reports-dir ./reports --ai-analyze --ai-provider ollama
```
## 🎯 功能
| 功能 | 描述 |
|---------|-------------|
| 🔒 **安全头** | X-Frame-Options,X-Content-Type-Options,Referrer-Policy,CSP,HSTS |
| 🍪 **Cookie 安全** | 验证 Set-Cookie 中的 Secure,HttpOnly,SameSite 标志 |
| 🌐 **CORS 验证** | 拒绝通配符来源,验证合法访问 |
| 🔐 **HSTS 强制** | max-age,includeSubDomains,preload 指令 |
| 🛡️ **CSP 分析** | default-src,script-src 限制检查 |
| 🎫 **CSRF 检测** | Token 存在于 Cookie/头部/体中 |
| ↪️ **重定向检查** | HTTP→HTTPS 301 强制 |
| 🔑 **TLS/SSL 扫描** | SSL2/3 禁用,TLS 1.0/1.1 禁用,TLS 1.2/1.3 启用 |
| 🤖 **AI 补救** | LLM 为每个失败生成上下文特定的修复 |
| 🧠 **AI 姿态分析** | LLM 总结安全态势并制定优先行动计划 |
| 🏠 **多提供商 AI** | Ollama(免费/本地),OpenAI,Amazon Bedrock |
| 📊 **双报告** | JSON(机器可读)+ HTML(可视化仪表板) |
| 🩺 **静态补救** | 每个失败都包括原因、修复和文档链接 |
| 🐳 **Docker 就绪** | 多架构容器(amd64/arm64) |
| ⚙️ **CI/CD 就绪** | GitHub Actions 工作流程包含 |
## 📋 使用方法
```
web-vuln-scanner [OPTIONS]
Options:
--domains TEXT Comma-separated list of domains to scan (required)
--reports-dir PATH Directory to store reports (required)
--auth-url TEXT OAuth2 token endpoint URL
--auth-type [Bearer|Basic|None] Authentication type (default: None)
--client-credentials TEXT Base64-encoded client credentials
--version-tag TEXT Version tag for reports
--override-tests-path PATH Custom path to .hurl test files
--skip-tls-scan Skip TLS version scanning
--html-report Generate HTML report
--ai-analyze Enable AI security posture analysis
--ai-remediate Enable AI-powered remediation for failures
--ai-provider [ollama|openai|bedrock] AI provider (default: ollama)
--ai-model TEXT AI model ID (auto-detected if not set)
```
## 📊 示例输出
点击查看终端输出
```
╔══════════════════════════════════════════════════════════════╗
║ 🛡️ AI Web Vulnerability Scanner v0.1.0-demo ║
║ ║
║ ⚠️ DEMO VERSION - For evaluation and educational use ║
║ 📧 Contact: ai.security.tools@gmail.com for Enterprise ║
╚══════════════════════════════════════════════════════════════╝
Using test files from: ./modules/tests
Authentication type: None
============================================================
Scanning domain: example.com
============================================================
Running: header_checks
❌ Passed: 0, Failed: 1
Running: cookie_checks
❌ Passed: 0, Failed: 1
Running: HSTS_checks
✅ Passed: 1, Failed: 0
Running: redirect_checks
✅ Passed: 1, Failed: 0
=== Running TLS scan for example.com ===
TLS scan complete - Passed: 5, Failed: 2
📄 Pass report: reports/consolidated_pass_example.com.json
📄 Fail report: reports/consolidated_fail_example.com.json
HTML report generated: reports/report_example.com.html
============================================================
Scan complete. Reports saved to: ./reports
============================================================
```
点击查看示例失败(来自 JSON 报告)
```
{
"ID": "HEADER.1",
"Test Case": "header_checks",
"Status": "fail",
"Test description": "Check for secure headers",
"URL": "https://example.com",
"Severity": "MEDIUM",
"Expected": "string ",
"Actual": "none",
"Reason": "Each missing security header is a different attack surface: clickjacking, MIME sniffing, XSS, referrer leakage",
"Fix": "Your responses should include Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, Content-Security-Policy and Referrer-Policy.",
"Documentation": "https://owasp.org/www-project-secure-headers/"
}
```
📁 完整示例报告:[`examples/output/`](examples/output/)
## 🏗️ 架构
```
web_vuln_scanner/
├── cli.py # CLI entry point & orchestrator
├── main.py # Hurl file preprocessing
├── utils.py # Output parser & remediation data
├── tls_scanner.py # SSLyze TLS/SSL scanner
├── ai_analyzer.py # 🤖 AI remediation & posture analysis
└── html_reporter.py # HTML report generator
modules/tests/ # Hurl security test files
├── header_checks.hurl
├── cookie_checks.hurl
├── cors_checks.hurl
├── HSTS_checks.hurl
├── csp_checks.hurl
├── content_checks.hurl
├── csrftoken_exist_check.hurl
├── redirect_checks.hurl
└── main_domain_redirect_checks.hurl
```
**工作原理:**
1. CLI 读取 `.hurl` 测试文件并替换 `{{DOMAIN}}` 占位符
2. Hurl 对目标执行 HTTP 断言
3. 解析器将 Hurl JSON 输出转换为结构化的通过/失败条目
4. SSLyze 扫描 TLS 协议版本
5. **🤖 AI 补救** — LLM 分析每个失败并生成特定修复
6. **🤖 AI 姿态分析** — LLM 总结整体安全等级 + 行动计划
7. 报告生成为 JSON + 可选 HTML + AI Markdown
## 🔐 安全检查
| 测试文件 | 验证内容 |
|-----------|-------------------|
| `header_checks.hurl` | X-Frame-Options,X-Content-Type-Options,Referrer-Policy,CSP,HSTS |
| `cookie_checks.hurl` | Set-Cookie 包含 Secure,HttpOnly,SameSite |
| `cors_checks.hurl` | CORS 拒绝恶意来源,允许合法来源 |
| `HSTS_checks.hurl` | Strict-Transport-Security 包含 max-age ≥ 6 个月,includeSubDomains,preload |
| `csp_checks.hurl` | Content-Security-Policy 包含 default-src 和 script-src |
| `content_checks.hurl` | X-Content-Type-Options: nosniff |
| `csrftoken_exist_check.hurl` | CSRF/XSRF 令牌在 Cookie 或头部中 |
| `redirect_checks.hurl` | HTTP → HTTPS 301 重定向 |
| `main_domain_redirect_checks.hurl` | 未使用子域重定向到规范域名 |
**TLS 扫描器**(通过 SSLyze):
| 检查 | 预期 |
|-------|----------|
| SSL 2.0 | ❌ 禁用 |
| SSL 3.0 | ❌ 禁用 |
| TLS 1.0 | ❌ 禁用 |
| TLS 1.1 | ❌ 禁用 |
| TLS 1.2 | ✅ 启用 |
| TLS 1.3 | ✅ 启用 |
## ⚙️ 支持的 AI 模型
| 提供商 | 模型 | 成本 | 设置 |
|----------|-------|------|-------|
| **Ollama** | llama3.1 | 免费 | `brew install ollama && ollama pull llama3.1` |
| **OpenAI** | gpt-4o | ~$0.01/scan | `export OPENAI_API_KEY="sk-..."` |
| **Bedrock** | Claude Sonnet 4 | ~$0.01/scan | AWS 凭据配置 |
## 📚 文档
| 文档 | 描述 |
|-----|-------------|
| [架构](docs/architecture.md) | 系统设计和数据流 |
| [Hurl 测试](docs/hurl-tests.md) | 安全测试的工作原理 + 编写自定义测试 |
| [示例输出](examples/output/) | 您可以浏览的示例报告 |
| [贡献](CONTRIBUTING.md) | 如何贡献 |
## 🗺️ 路线图
- [x] CLI 与 JSON/HTML 报告
- [x] 9 个 Hurl 安全测试文件
- [x] 通过 SSLyze 扫描 TLS/SSL
- [x] Docker 多架构支持
- [x] GitHub Actions CI/CD
- [x] 每个失败的补救指南
- [ ] PDF 导出
- [ ] OWASP ZAP 集成
- [ ] 定时扫描(cron)
- [ ] Slack/Teams 通知
- [ ] REST API 包装器
- [ ] Web 仪表板
## 💼 企业版
开源版本是一个 **完全功能** 的网络漏洞扫描器。企业版为安全团队添加了生产级功能:
| | 示例(开源) | 企业版 |
|---|:---:|:---:|
| 安全头扫描 | ✅ | ✅ |
| Cookie 安全验证 | ✅ | ✅ |
| CORS 策略验证 | ✅ | ✅ |
| TLS/SSL 版本分析 | ✅ | ✅ |
| HSTS 强制检查 | ✅ | ✅ |
| CSP 指令分析 | ✅ | ✅ |
| CSRF 令牌检测 | ✅ | ✅ |
| HTTP→HTTPS 重定向检查 | ✅ | ✅ |
| JSON + HTML 报告 | ✅ | ✅ |
| AI 补救(Ollama/OpenAI/Bedrock) | ✅ | ✅ |
| AI 安全态势分析 | ✅ | ✅ |
| Docker 多架构支持 | ✅ | ✅ |
| GitHub Actions CI/CD | ✅ | ✅ |
| 静态补救指南 | ✅ | ✅ |
| 自定义 Hurl 测试编写 | — | ✅ |
| 高级身份验证测试(OAuth2/OIDC/SAML) | — | ✅ |
| 速率限制 & 暴力检测 | — | ✅ |
| SQL 注入模式检测 | — | ✅ |
| 输入验证测试 | — | ✅ |
| 定时扫描(cron/webhook) | — | ✅ |
| Slack/Teams/PagerDuty 通知 | — | ✅ |
| JIRA/ServiceNow 票据创建 | — | ✅ |
| 合规性报告(SOC2,PCI-DSS,ISO27001) | — | ✅ |
| 多租户 Web 仪表板 | — | ✅ |
| OWASP ZAP 集成 | — | ✅ |
| 自定义补救剧本 | — | ✅ |
| SBOM & 依赖项扫描 | — | ✅ |
| 历史趋势分析 | — | ✅ |
| PDF 执行报告 | — | ✅ |
| REST API 用于程序性访问 | — | ✅ |
| SSO 集成(OIDC/SAML) | — | ✅ |
| 基于角色的访问控制 | — | ✅ |
| Webhook 触发的扫描 | — | ✅ |
| AWS 基础设施(Terraform) | — | ✅ |
| 原地部署 | — | ✅ |
| 优先支持 & SLA | — | ✅ |
📧 ai.security.tools@gmail.com
定制部署 • 原地部署 • 批量许可 • 集成支持
MIT 许可证 • 为安全工程师,由安全工程师构建
标签:AI辅助修复, AI风险缓解, Bedrock, Cookie安全, CORS策略, Docker容器, HSTS验证, Hurl工具, LLM评估, Ollama, OpenAI, Python开发, SSLyze工具, TLS/SSL扫描, Web安全, 内存规避, 安全头部验证, 开源许可, 攻击面发现, 智能推荐, 网络安全, 蓝队分析, 请求拦截, 逆向工具, 隐私保护