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, 多智能体, 安全运营, 扫描框架, 测试用例, 自动化代码审查, 计算机取证, 请求拦截, 逆向工具