# AigcDesign **Repository Path**: Yan_zer/aigc-design ## Basic Information - **Project Name**: AigcDesign - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-10 - **Last Updated**: 2026-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Dawn Scanner Dawn Scanner 是一个本地漏洞扫描系统,由 Go 后端、Python 扫描 Worker 和 LLM 报告服务组成(通义千问 + LangChain)。系统采用模块化设计,支持一键扫描、基线对比和智能报告生成。 ## 核心特性 - **模块化架构**:Go 后端负责任务调度,Python Worker 执行安全检测,LLM 服务生成详细报告 - **智能检测引擎**:内置多种安全检测规则,支持启发式漏洞发现 - **基线对比**:支持与 OWASP Juice Shop 等基线进行覆盖率对比 - **LLM 报告**:利用大语言模型生成可读性强、修复建议明确的漏洞报告 - **容器化部署**:通过 Docker Compose 实现快速部署 ## 项目结构 ``` . ├── go-backend/ # Go 后端服务 │ ├── handlers.go # HTTP 处理器 │ ├── middleware.go # 认证中间件 │ ├── task_store.go # 任务存储实现 │ ├── scanner_flow.go # 扫描流程编排 │ └── report_client.go # LLM 报告客户端 ├── python-worker/ # Python 扫描 Worker │ ├── worker.py # 漏洞扫描器核心 │ └── app.py # FastAPI 服务入口 ├── llm-service/ # LLM 报告生成服务 │ └── app.py # 报告生成逻辑 ├── baselines/ # 扫描基线配置 │ └── juice_shop_*.yml # Juice Shop 基线 ├── scripts/ # 工具脚本 │ └── juice_shop_targeted_checks.py ├── reports/ # 扫描报告输出 ├── docker-compose.yml # 容器编排配置 └── run_juice_shop_test.sh # 一键扫描脚本 ``` ## 快速开始 ### 环境准备 确保已安装 Docker 和 Docker Compose,并配置通义千问 API Key: ```bash export DASHSCOPE_API_KEY=your_api_key_here ``` ### 启动服务 ```bash # 构建并启动所有服务 docker-compose up --build -d # 验证服务状态 python3 test_system.py ``` ### 一键 Juice Shop 扫描 ```bash bash run_juice_shop_test.sh ``` 该脚本将: 1. 启动扫描器服务与本地 OWASP Juice Shop 2. 针对 `http://host.docker.internal:3000` 进行扫描 3. 拉取官方 Juice Shop 基线(challenges.yml) 4. 生成包含「基线覆盖率」的 Markdown 报告 5. 等待 LLM 报告生成完成后写入最终结果 报告输出目录:`reports/` ## API 参考 Go 后端提供以下 RESTful API 接口: | 方法 | 端点 | 说明 | |------|------|------| | GET | `/health` | 系统健康检查 | | POST | `/api/tasks` | 提交扫描任务 | | GET | `/api/tasks` | 列出所有任务 | | GET | `/api/tasks/:id` | 查询任务状态与结果 | | DELETE | `/api/tasks/:id` | 删除指定任务 | ### 认证方式 所有 API 需在 Header 中携带 Bearer Token: ``` Authorization: Bearer dawn_scanner_dev_token ``` ### 使用示例 ```bash # 提交扫描任务 curl -X POST http://localhost:8080/api/tasks \ -H "Authorization: Bearer dawn_scanner_dev_token" \ -H "Content-Type: application/json" \ -d '{"url": "http://example.com"}' # 查询任务状态 curl http://localhost:8080/api/tasks/{task_id} \ -H "Authorization: Bearer dawn_scanner_dev_token" ``` ## 扫描能力 Python Worker 实现的安全检测包括: - **SSL/TLS 安全检查**:证书验证、协议版本检测 - **HTTP 安全头检测**:X-Frame-Options、CSP、XSS 保护等 - **Cookie 安全**:HttpOnly、Secure、SameSite 属性 - **CORS 配置**:宽松跨域策略检测 - **SQL 注入**:错误回显、盲注、堆叠注入检测 - **XSS 漏洞**:反射型、存储型 XSS 检测 - **开放重定向**:URL 重定向风险检测 - **路径遍历**:文件路径遍历检测 - **访问控制**:管理接口暴露检测 - **服务器信息泄露**:Banner 信息隐藏检测 ## 环境变量 ### 通用配置 | 变量 | 说明 | 默认值 | |------|------|--------| | `DASHSCOPE_API_KEY` | 通义千问 API Key | 必填 | ### Go 后端配置 | 变量 | 说明 | 默认值 | |------|------|--------| | `GO_ENV` | 运行环境 | `development` | | `PORT` | 服务端口 | `8080` | | `LLM_SERVICE_URL` | LLM 服务地址 | `http://llm-service:8000` | | `PYTHON_WORKER_URL` | Worker 服务地址 | `http://python-worker:9000` | | `TASK_STORE_PATH` | 任务存储路径 | `/app/data/tasks/tasks.json` | | `DEFAULT_AUTH_TOKEN` | 默认认证 Token | `dawn_scanner_dev_token` | ### Python Worker 配置 | 变量 | 说明 | 默认值 | |------|------|--------| | `SCAN_TIMEOUT` | 扫描超时时间(秒) | `300` | | `MAX_CRAWL_PAGES` | 最大爬取页面数 | `30` | | `MAX_PARAM_TESTS` | 最大参数测试数 | `50` | ### LLM Service 配置 | 变量 | 说明 | 默认值 | |------|------|--------| | `PORT` | 服务端口 | `8000` | | `LLM_MODEL_NAME` | 使用的模型 | `qwen-max` | ## 数据目录 | 目录 | 用途 | |------|------| | `data/tasks/` | 任务状态存储 | | `data/results/` | 扫描原始结果 | | `data/reports/` | LLM 生成的报告 | | `reports/` | Markdown 格式报告 | ## 开发指南 ### 本地运行 Go 后端 ```bash cd go-backend go run main.go ``` ### 本地运行 Python Worker ```bash cd python-worker pip install -r requirements.txt uvicorn app:app --host 0.0.0.0 --port 9000 ``` ### 本地运行 LLM Service ```bash cd llm-service pip install -r requirements.txt uvicorn app:app --host 0.0.0.0 --port 8000 ``` ## 扫描报告示例 扫描完成后,报告将包含以下内容: 1. **执行摘要**:扫描概况与风险评级 2. **基线覆盖情况**:已覆盖与缺失的检测类别 3. **漏洞详情**:每项漏洞的描述、严重程度、风险评估 4. **修复建议**:针对性的修复步骤与预防措施 ## 局限性说明 - 当前扫描采用启发式检测,无法保证覆盖所有已知漏洞 - 建议仅在授权环境或本地测试环境中使用 - 检测结果可能存在误报,需人工验证 ## 技术栈 - **后端框架**:Gin (Go) - **扫描引擎**:FastAPI + asyncio (Python) - **AI 能力**:通义千问 (Qwen) + LangChain - **容器化**:Docker / Docker Compose - **异步处理**:goroutine / asyncio