Cameron-White99/autonomous-security-analyst

GitHub: Cameron-White99/autonomous-security-analyst

一个基于 asyncio 多 agent 架构的 AI 安全日志分析助手,能并行摄取并关联分析日志,自动生成带 MITRE ATT&CK 映射的事件报告。

Stars: 0 | Forks: 0

# 自主安全分析师 **在线演示:** https://autonomous-security-analyst.vercel.app/ 一个 AI 驱动的安全运营中心 (SOC) 助手,它可以摄取安全日志, 通过**并行的专家 Claude agent** 对其进行分析,跨来源关联事件, 并生成带有 MITRE ATT&CK 映射的可操作事件报告。 其核心的技术差异化优势在于,它是一个基于 Python `asyncio` 和 Anthropic Messages API 构建的**自协调 fan-out / fan-in 多 agent 架构** —— 无需托管的 agent 基础设施,即可对 agent 循环实现完全控制。 ## 架构 ``` ┌─────────────────────────────────────────────────────┐ │ COORDINATOR │ │ Receives raw log batch → splits by log type │ │ Fans out to specialists via asyncio.gather() │ │ Waits for all results → passes to correlation │ │ Synthesises final incident report │ └──────┬──────────┬──────────┬──────────┬─────────────┘ │ │ │ │ │ asyncio.gather() — all run in parallel │ │ │ │ ▼ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌──────────────┐ │ AUTH │ │NETWORK │ │MALWARE │ │ CORRELATION │ │ AGENT │ │ AGENT │ │ AGENT │ │ AGENT │ │ haiku │ │ haiku │ │ haiku │ │ sonnet │ └─────────┘ └─────────┘ └─────────┘ └──────────────┘ ``` - **Auth / Network / Malware agent** (`claude-haiku-4-5`) 并行分析其负责的日志切片, 并返回带有置信度评分的结构化 JSON 分析结果。 - **Correlation agent** (`claude-sonnet-4-6`) 跨来源重构攻击杀伤链,将其映射到 MITRE ATT&CK,并生成建议的响应措施。 - 每个 agent 的生命周期事件都会通过 **Server-Sent Events** 流式传输到前端,并写入**审计日志** —— 您可以观察到三个专家 agent 同时启动,并在不同时间完成。 ## 技术栈 | 层级 | 技术 | |---|---| | API | FastAPI + uvicorn | | 并行处理 | Python `asyncio` (`asyncio.gather`) | | AI | Anthropic Messages API (`AsyncAnthropic`) | | 数据库 | Neon PostgreSQL (asyncpg + SQLAlchemy async),为演示提供内存后备支持 | | 实时通信 | Server-Sent Events | | 前端 | React + Vite + Recharts | | 部署 | Docker → Google Cloud Run (后端),Vercel (前端) | ## 快速开始(无需 API key,无需数据库) 本系统自带**演示模式**:当未设置 `ANTHROPIC_API_KEY`(或设置了 `DEMO_MODE=true`)时,专家 agent 会根据实际摄取的日志返回真实的预设分析结果,并带有交错延迟,以便能够直观地观察到并行执行过程。 如果没有 `DATABASE_URL`,事件将存储在内存中。 ``` # Backend python -m venv .venv .venv\Scripts\activate # Windows (source .venv/bin/activate on mac/linux) pip install -r requirements.txt uvicorn app.main:app --reload # Frontend (第二个终端) cd frontend npm install npm run dev # http://localhost:5173 # 或者从 CLI 填充场景 python scripts/seed_logs.py ``` 打开仪表板,点击 **“Full Kill Chain”**,并观察 agent 活动流。 ### 使用真实的 Claude agent + PostgreSQL ``` cp .env.example .env # set ANTHROPIC_API_KEY and DATABASE_URL docker compose up --build # postgres + api + frontend ``` ## API | Endpoint | 描述 | |---|---| | `POST /ingest` | 接收一批日志,启动并行分析,返回 `job_id` | | `GET /stream/{job_id}` | 实时 agent 活动的 SSE 数据流(为延迟订阅者提供重播功能) | | `GET /incidents` | 列出事件报告 | | `GET /incidents/{id}` | 完整报告:攻击链、MITRE 映射、各 agent 分析结果 | | `GET /healthz` | 健康状态 + 演示模式状态 | SSE 数据流示例: ``` data: {"event": "agent_start", "agent": "auth-analyst", ...} data: {"event": "agent_start", "agent": "network-analyst", ...} data: {"event": "agent_start", "agent": "malware-analyst", ...} data: {"event": "agent_complete", "agent": "network-analyst", "findings_count": 2, ...} data: {"event": "agent_complete", "agent": "auth-analyst", "findings_count": 1, ...} data: {"event": "agent_complete", "agent": "malware-analyst", "findings_count": 2, ...} data: {"event": "correlation_start", "agent": "correlation-analyst", ...} data: {"event": "complete", "incident_id": "...", "severity": "Critical", ...} ``` ## 测试 ``` pytest tests/ -v ``` 包含一项测试,用于断言这三个专家 API 调用**在时间上重叠**(通过 `asyncio.gather` 实现真正的并行),外加涵盖 摄取 → SSE 数据流 → 事件检索的完整流水线 API 测试。 ## 部署 - **后端 → Cloud Run:** `./scripts/deploy.sh [region]` (需要在 Secret Manager 中配置 `anthropic-api-key` 和 `database-url`) - **前端 → Vercel:** 导入 `frontend/`,将 `VITE_API_URL` 设置为 Cloud Run URL - **CI:** GitHub Actions 会在每次 push 时运行后端测试、前端构建和 docker 构建 ## 项目结构 ``` app/ ├── main.py # FastAPI entrypoint ├── config.py # pydantic-settings (API key, DB, demo mode) ├── agents/ │ ├── orchestrator.py # asyncio fan-out/fan-in (the core) │ ├── prompts.py # all four agent system prompts │ └── demo.py # canned responses when no API key is set ├── api/ # /ingest, /incidents, /stream ├── background/ # event bus + analysis worker ├── db/ # async engine, migrations, repositories └── models/ # pydantic schemas frontend/ # React dashboard (Vite + Recharts) tests/ # orchestrator + API tests, sample log fixtures scripts/ # seed_logs.py, deploy.sh ```
标签:AI, asyncio, ATT&CK 框架, LLM, SOC助手, Unmanaged PE, 多智能体, 安全运营, 扫描框架, 测试用例, 自动化代码审查, 计算机取证, 请求拦截, 逆向工具