aisecuritytools-ai/ai-powered-web-vulnerability-scanner

GitHub: aisecuritytools-ai/ai-powered-web-vulnerability-scanner

AI赋能的网站漏洞扫描器,提供智能修复建议。

Stars: 0 | Forks: 0

AI Web Vulnerability Scanner

自动化网络安全扫描 — 由 Hurl + SSLyze 提供

Python Hurl SSLyze Ollama OpenAI Bedrock Docker License

架构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安全, 内存规避, 安全头部验证, 开源许可, 攻击面发现, 智能推荐, 网络安全, 蓝队分析, 请求拦截, 逆向工具, 隐私保护