Rarebuffalo/securelens-backend
GitHub: Rarebuffalo/securelens-backend
SecureLens 是一个自托管的 AI 原生应用安全审计平台,通过多智能体流水线对代码库和 Web 基础设施进行自动化安全分析与漏洞修复指导。
Stars: 2 | Forks: 0
██████╗███████╗ ██████╗██╗ ██╗██████╗ ███████╗██╗ ███████╗███╗ ██╗███████╗ ██╔════╝██╔════╝██╔════╝██║ ██║██╔══██╗██╔════╝██║ ██╔════╝████╗ ██║██╔════╝ ╚█████╗ █████╗ ██║ ██║ ██║██████╔╝█████╗ ██║ █████╗ ██╔██╗ ██║███████╗ ╚═══██╗██╔══╝ ██║ ██║ ██║██╔══██╗██╔══╝ ██║ ██╔══╝ ██║╚██╗██║╚════██║ ██████╔╝███████╗╚██████╗╚██████╔╝██║ ██║███████╗███████╗███████╗██║ ╚████║███████║ ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═══╝╚══════╝一个 AI 原生的 AppSec 智能体和本地安全审计工具。能够自主分诊并针对 OWASP Top 10 扫描代码库,探测在线 Web 基础设施,生成威胁说明,并直接从您的终端或 CI/CD 流水线中进行交互式分诊聊天会话。
## 目录 - [核心功能](#core-capabilities) - [工作原理(Multi-Agent Pipeline)](#how-it-works-multi-agent-pipeline) - [快速开始](#quick-start) - [1. 部署后端服务器](#1-deploy-backend-server) - [2. 安装本地 CLI](#2-install-local-cli) - [3. 配置 CLI](#3-configure-cli) - [CLI 命令指南](#cli-command-guide) - [扫描代码库](#scan-codebases) - [审计 Web 基础设施](#audit-web-infrastructure) - [交互式分诊 REPL](#interactive-triage-repl) - [支持的提供商](#supported-providers) - [API 端点摘要](#api-endpoints-summary) - [架构与技术栈](#architecture--tech-stack) - [路线图](#roadmap) - [许可证](#license) ## 核心功能 SecureLens 提供了一个双组件安全环境,用于在代码层面和基础设施层面验证应用安全性: * **自主代码审计器:** SecureLens 的表现如同一位 AppSec 工程师,而不是盲目地扫描。它会对代码库进行分诊,以定位高风险文件(如 auth 处理器、DB 层、config 配置),执行并发的 OWASP Top 10 分析,并将发现的结果综合为可操作的修复指南。 * **Web 基础设施探测器:** 对在线 URL 运行深度探测,检查涵盖 SSL/TLS 强度、Cookie 标志、传输策略和暴露向量等在内的 30 多项参数。它会计算出一个总体安全评分,并利用 AI 撰写威胁链说明,展示攻击者可能会如何组合利用这些弱点。 * **交互式 CLI 助手:** 支持在本地使用自定义忽略过滤器、离线签名检查、本地 PDF 报告编译,并直接将分析结果同步回服务器控制台。 ## 工作原理(Multi-Agent Pipeline) SecureLens 运行一个分解式的三阶段编排器,以确保实现高度针对性和具备上下文感知的分析: ``` flowchart TD A([Target Codebase]) --> B[Phase 1: Triage] subgraph B ["Phase 1: Triage"] B1["Fetch file tree / list local paths"] B2["LLM isolates high-risk files\n(auth, db, configurations)"] B1 --> B2 end B --> C[Phase 2: Concurrent Analysis] subgraph C ["Phase 2: Concurrent Analysis"] C1["Decompose tasks into individual jobs"] C2["Run asyncio.gather() throttled\nvia rate-limiting Semaphores"] C3["Perform OWASP Top 10 auditing\nand return structured Pydantic schema"] C1 --> C2 --> C3 end C --> D[Phase 3: Synthesis & REPL] subgraph D ["Phase 3: Synthesis & REPL"] D1["Aggregate multi-agent findings"] D2["Compile overall security score\nand exportable PDF report"] D3["Launch interactive Q&A REPL\nfor follow-up patches"] D1 --> D2 --> D3 end D --> E([Final Verified Audit]) ``` ## 快速开始 SecureLens 由一个**中央后端服务器**(负责管理扫描、JWT 身份验证和历史记录追踪)和一个**交互式 CLI 工具**组成。 ### 1. 部署后端服务器 #### 标准 Docker Compose(推荐) 立即启动服务器以及 PostgreSQL: ``` cp .env.example .env docker compose up --build ``` #### 手动开发设置(SQLite) ``` git clone https://github.com/Rarebuffalo/securelens-backend.git cd securelens-backend python -m venv venv source venv/bin/activate pip install -r requirements.txt cp .env.example .env uvicorn app.main:app --reload ``` *开发服务器默认使用 `http://127.0.0.1:8000`。数据库将自动初始化。* ### 2. 安装本地 CLI 根据您的平台和偏好,选择以下安装方法之一: #### 方法 A:一键全局安装(跨平台) 推荐常规使用。无需手动克隆,即可直接从仓库将 CLI 全局安装到 Windows、macOS 或 Linux 上: ``` pip install git+https://github.com/Rarebuffalo/securelens-backend.git#subdirectory=cli ``` *(或者使用 `pipx install git+...` 自动将该工具隔离在独立的环境中)。* #### 方法 B:本地源码安装(开发模式) 如果您已在本地克隆了此代码库: ``` # 在 Linux/macOS 上 chmod +x cli/install.sh ./cli/install.sh source venv/bin/activate # 在 Windows 上或手动设置 pip install -e cli/ ``` ### 3. 配置 CLI 通过交互式向导启动配置,以设置 API 密钥并指向您的服务器: ``` securelens configure ``` 这会将凭据、首选模型和设置保存到您本地的 `~/.securelens/config.yaml` 配置文件中。 ## CLI 命令指南 ### 扫描代码库 分析本地代码库。SecureLens 会自动对您的文件树进行分诊,忽略构建产物/artifacts,运行所选的模型,并带您进入一个聊天界面。 ``` securelens scan . # Scan current folder securelens scan ./project # Scan specific directory securelens scan . --model gpt-4o # Specify model override securelens scan . --no-ai # Run lightning-fast offline regex pattern scan securelens scan . --sync # Upload scan results automatically to backend securelens scan . --ci --fail-on high # CI pipeline mode: exits with non-zero on High vulnerabilities ``` ### 审计 Web 基础设施 探测在线目标网站的传输层安全性、配置以及头部暴露情况。 ``` securelens web https://example.com # Scan target URL securelens web https://my-app.com --no-ai # Raw scanner check without AI summary securelens web https://my-app.com --output md # Save results to markdown file ``` ### 交互式分诊 REPL 在运行代码扫描时,SecureLens 会启动一个交互式终端 shell (REPL),允许您查询漏洞详情并导出分析结果。 ``` Ask a follow-up (or press Ctrl+C to exit) Type /help for available commands > Explain the SQL injection found in db.py and write a patch > Which files have critical severity issues? > /files > /export pdf > /exit ``` #### 支持的 REPL 斜杠命令 * `/help` — 显示 CLI 命令帮助信息 * `/files` — 列出选定用于 AI 分诊的文件 * `/score` — 打印当前代码库的安全等级(A-F) * `/export markdown` — 将审计结果保存为 markdown 报告 * `/export pdf` — 在本地编译带样式的 PDF 审计文档 * `/model` — 在会话中切换 AI 模型 * `/exit` — 终止交互式 REPL ## 支持的提供商 SecureLens 底层采用了 [LiteLLM](https://github.com/BerriAI/litellm)。您可以配置任何与您的凭据标志相匹配的模型: | 提供商 | 模型标识符 | 所需配置 | |---|---|---| | **Google Gemini(默认)** | `gemini/gemini-2.0-flash` | `GEMINI_API_KEY` | | **OpenAI** | `gpt-4o`, `gpt-4o-mini` | `OPENAI_API_KEY` | | **Anthropic** | `claude-3-5-sonnet-latest`, `claude-3-5-haiku-20241022` | `ANTHROPIC_API_KEY` | | **Ollama** | `ollama/llama3.1` | 运行本地 Ollama 服务器 | ## API 端点摘要 通过标准的 REST 端点与服务器交互,或使用位于 `/docs` 的交互式文档: | 领域 | 方法 | 路由 | 描述 | 认证 | |---|---|---|---|---| | **系统** | `GET` | `/health` | 验证服务器状态 | 否 | | **认证** | `POST` | `/auth/register` | 注册新配置文件 | 否 | | **认证** | `POST` | `/auth/login` | 获取访问令牌 | 否 | | **代码扫描** | `POST` | `/code-scan/analyze` | 触发 Git 仓库分诊和审计 | 是 | | **代码扫描** | `POST` | `/code-scan/sync` | 将本地扫描器结果同步到数据库 | 是 | | **代码扫描** | `POST` | `/code-scan/chat` | 继续关于代码扫描的聊天讨论 | 是 | | **Web 扫描** | `POST` | `/scan` | 审计 URL 的网络安全性 | 可选 | | **历史记录** | `GET` | `/scans` | 列出历史扫描记录 | 是 | | **历史记录** | `DELETE` | `/scans/{id}` | 从数据库中清除扫描记录 | 是 | ## 架构与技术栈 SecureLens 使用了现代、轻量级的异步技术栈: * **后端引擎:** Python 3.12+、FastAPI、SQLAlchemy 2.0(支持异步 DB)、Pydantic v2。 * **数据库层:** PostgreSQL(用于 Docker 生产环境部署)/ SQLite(通过 Aiosqlite 用于本地开发)。 * **AI 适配器:** LiteLLM 提供商客户端,带有结构化的 JSON 解析约束。 * **CLI 实用程序:** Click(CLI 解析器)、Rich(终端样式/颜色引擎)、PyYAML。 * **本地导出工具:** FPDF2(用于生成 PDF)。 ## 路线图 * [x] **本地离线扫描器** — 在离线环境中执行基于 regex 的模式扫描。 * [x] **终端 PDF 生成** — 通过 CLI 实现原生的本地 PDF 输出。 * [x] **服务器同步** — 将本地 CLI 的分析结果推送到中央 PostgreSQL 仪表板。 * [ ] **CI/CD 集成包** — 专用的 GitHub Actions 和 GitLab Runner 包装器。 * [ ] **依赖审计 (`securelens audit`)** — 针对 OSV DB 检查软件包。 * [ ] **自动化补丁 (Git MRs)** — 直接根据 CLI 的修复生成 Git PR。 本代码库基于 **MIT License** 授权。详情请参阅 [LICENSE](LICENSE)。 *祝您编码愉快!保持您的代码库安全。*
标签:AI驱动, Web基础设施扫描, 代码安全审计, 安全审计工具, 插件系统, 测试用例, 请求拦截, 逆向工具, 错误基检测, 静态代码分析