dbanegasl/web-security-suite-main

GitHub: dbanegasl/web-security-suite-main

一款零外部依赖的 Bash HTTP 安全测试套件,通过 5 大模块 20 项检测快速审计 Web 域名的安全配置状况,同时提供 CLI、批量扫描和 Docker Web 界面三种运行方式。

Stars: 1 | Forks: 0

# web-security-suite HTTP 安全测试套件,用于 Web 域名审计。执行按 5 个模块组织的 **20 项测试**,检测影响安全评分卡的最常见漏洞(OWASP Top 10 基础,安全头)。 **版本:** 3.1 · **作者:** Daniel Banegas · **组织:** UNAE TICS ## 特性 - 无外部依赖 — 仅需 `curl`、`openssl` 和 `dig`/`getent`(Ubuntu/Debian 默认提供) - **交互式菜单**提供 3 个选项:单次分析、自动批量分析和退出 - 执行前进行**域名验证**:DNS、私有 IP(警告)、HTTPS 可访问性以及自动分离 host/path - 通过 CSV 文件的**批处理模式**:按顺序分析多个域名并展示对比结果表 - 通过环境变量实现的**非交互模式**:适用于 CI/CD 和定时任务 - 结果按级别显示:`PASS` / `FAIL` / `WARN` / `SKIP` - 通过 IP 强制解析 DNS(适用于内部或 staging 环境) - 结构中包含 `reports/` 文件夹(通过 `.gitkeep` 进行跟踪,内容由 git 忽略) - 通过 Docker 提供 **Web 界面**:支持单次分析、CSV 批量分析、会话历史和报告下载的 SPA ## 系统要求 - Bash ≥ 4.0 - 支持 TLS 的 `curl` - `openssl`(用于 TEST-09 — SSL 证书验证) - 运行脚本的主机对域名的网络访问权限 ## 快速开始 ``` # 交互模式 — 主菜单 bash web-security-scan.sh # 直接模式 — 域名 + 已识别的会话 cookie DOMAIN=ssoserver.unae.edu.ec \ SESSION_COOKIE_NAME=ssoserver_unae_session \ bash web-security-scan.sh # 强制 IP (内部环境 / staging) DOMAIN=ssoserver.unae.edu.ec \ SESSION_COOKIE_NAME=ssoserver_unae_session \ IP=192.168.3.203 \ bash web-security-scan.sh # 从 CSV 批量运行 (非交互模式) bash web-security-scan.sh # → opción [2] en el menú ``` ### 环境变量 | 变量 | 描述 | |---|---| | `DOMAIN` | 要分析的域名(不带 `https://`) | | `SESSION_COOKIE_NAME` | 主会话 cookie 的名称 | | `IP` | 用于强制 DNS 解析的服务器 IP(可选) | ## Web 界面 (Docker) 该套件包含一个完整的 Web 界面,通过 Docker 栈(FastAPI + nginx + SPA)在浏览器中公开相同的 20 项测试。 ### 快速开始 ``` cd web cp .env.example .env # ajusta FRONTEND_PORT si es necesario docker compose up -d # → http://localhost:8778 ``` 在代码更改后重新构建: ``` cd web && docker compose up --build ``` ### 环境变量 (`web/.env`) | 变量 | 描述 | 默认值 | |---|---|---| | `FRONTEND_PORT` | 访问界面的主机端口 | `8778` | | `FRONTEND_ORIGIN` | API 允许的来源 (CORS) | `http://localhost:8778` | | `SCAN_TIMEOUT_SECONDS` | 每个域名的超时时间(秒) | `120` | ### 架构 ``` navegador → nginx :FRONTEND_PORT ─┬─ /api/ → FastAPI :8000 (interno) └─ / → SPA (HTML/JS/CSS) ``` - **nginx** 提供前端服务,并将 `/api/` 反向代理到后端 — 仅向主机公开一个端口。 - **FastAPI** (`web/api/main.py`) 以 `OUTPUT_FORMAT=json` 作为子进程执行 `scan.sh`,并返回结构化的 JSON。 - **scan.sh** 是 `web-security-scan.sh` 的核心引擎,支持 JSON 输出和静默批处理模式。 ### 界面功能 - 通过表单进行单次分析(域名、会话 cookie、可选的强制 IP) - 通过拖拽或选择上传 `domains.csv` 进行批量分析 - 带有每个测试徽章和可展开详情的结果表 - 当前会话的扫描历史记录 - 以 Markdown 格式下载报告 ### 系统要求 - Docker ≥ 24 及 Compose 插件 - 运行 Docker 的主机对被审计域名的网络访问权限 ## 结果 | 符号 | 含义 | |---|---| | `✅ PASS` | 配置正确 | | `❌ FAIL` | 检测到漏洞 — 需要修复 | | `⚠️ WARN` | 非关键警告 — 建议检查 | | `⏭ SKIP` | 测试跳过(缺少上下文或工具) | **输出示例:** ``` RESUMEN: 19 PASS 0 FAIL 1 WARN 0 SKIP / 20 tests ⚠️ SECURITY SCAN: SIN FALLOS CRÍTICOS, 1 advertencia(s) — ssoserver.unae.edu.ec ``` ## 包含的测试 | 模块 | 测试 | 检测内容 | |---|---|---| | **1 — Cookies** | TEST-01 到 TEST-04 | Secure, HttpOnly, SameSite, Path | | **2 — 传输 / TLS** | TEST-05 到 TEST-09 | HTTP→HTTPS, HSTS, TLS 1.0/1.1, 证书过期 | | **3 — HTTP 头** | TEST-10 到 TEST-14 | X-Frame-Options, XCTO, CSP, Referrer-Policy, Permissions-Policy | | **4 — 信息泄露** | TEST-15 到 TEST-17 | Server 版本, X-Powered-By, X-AspNet 头 | | **5 — 服务器配置** | TEST-18 到 TEST-20 | CORS 通配符, HTTP TRACE, Cache-Control | ## 各域名会话 Cookie (UNAE 参考) | 域名 | `SESSION_COOKIE_NAME` | Stack | |---|---|---| | `ssoserver.unae.edu.ec` | `ssoserver_unae_session` | Laravel / PHP-FPM | | `admisiones.unae.edu.ec` | `sessionid` | Django / Python | | `soporte.unae.edu.ec` | `sessionid` | Django / Python | | `cas.unae.edu.ec` | `JSESSIONID` | Java / Tomcat | | `servicios.unae.edu.ec` | `PHPSESSID` | PHP (用 curl 确认) | ## 仓库结构 ``` web-security-suite/ ├── README.md # Este archivo ├── web-security-scan.sh # Script principal (v3.1) ├── scan.sh # Motor de escaneo con salida JSON (usado por la API) ├── domains.csv.example # Plantilla de dominios para análisis batch ├── domains.csv # Tu lista de dominios (gitignored — copiar del .example) ├── .gitignore ├── reports/ # Reportes generados (gitignored, carpeta trackeada) │ └── .gitkeep ├── web/ # Stack de la interfaz web │ ├── .env.example # Variables de entorno (copiar como .env) │ ├── docker-compose.yml # Orquestación: API (FastAPI) + Frontend (nginx) │ ├── api/ │ │ ├── Dockerfile │ │ ├── main.py # API FastAPI — endpoints /api/scan y /api/batch │ │ └── requirements.txt │ └── frontend/ │ ├── Dockerfile │ ├── nginx.conf # Proxy reverso /api/ → API interna │ ├── index.html │ ├── app.js │ └── styles.css └── docs/ ├── usage-guide.md # Guía detallada de uso, modos, ejemplos y correcciones ├── tests-reference.md # Especificación técnica (PRD) de cada test con snippets bash └── planificacion-interfaz-web.md # Análisis y planificación de la interfaz web ``` ## 文档 - [使用指南](docs/usage-guide.md) — 执行模式 (CLI、非交互、Docker)、各域名示例、结果解读、常见修复、CI/CD - [测试参考](docs/tests-reference.md) — 20 项测试的技术规范,包含单独的 bash 代码片段和验收标准 - [Web 界面 — 规划与实现](docs/planificacion-interfaz-web.md) — 可行性分析、Docker 栈架构和各阶段状态 *由 GitHub Copilot 辅助生成 — UNAE TICS 2026。*
标签:AV绕过, CI/CD安全, Cookie安全, DevSecOps, Docker, FastAPI, HTTP安全测试, Llama, Nginx, OWASP Top 10, SPA, SSL/TLS检测, Web安全, 上游代理, 多模态安全, 安全响应头, 安全基线检查, 安全报告生成, 安全防御评估, 密码管理, 应用安全, 开源安全工具, 数据可视化, 数据泄露, 网络安全, 蓝队分析, 请求拦截, 逆向工程平台, 隐私保护