Capstone-AI-Research-Project/pts-agent-kyle
GitHub: Capstone-AI-Research-Project/pts-agent-kyle
基于多智能体架构的本地化网络安全调查系统,通过六个专业化 AI 代理协同分析九类安全事件,并自动映射 MITRE ATT&CK、NIST CSF、CIS Controls 等四大框架生成标准化调查报告。
Stars: 0 | Forks: 0
# PTS-CASA:基于结构化代理的网络分析
一个专为本地或云端部署构建的多代理网络安全调查系统。六名专业 AI 代理跨越 9 种调查类型分析安全事件,将发现与四个真实的安全框架数据集进行匹配,并生成符合 NIST SP 800-92 标准的调查报告——所有这些都通过 n8n 工作流进行编排,并由一个 Overseer 将各项发现交叉关联成一份统一的分析师就绪报告。
## 架构
**主工作流 (v2 — 9 个节点,单一路径流水线):**
```
Analyst Query
|
v
Webhook Trigger
|
v
Router (casa-router) ──> Parse Router Output
|
v
Investigation Scanner ─── identifies 1+ investigation paths from Router + keyword analysis
|
v (one item per matched type — executes sequentially)
Dynamic Sub-Workflow Router ──> calls the matching sub-workflow(s)
|
v
Results Collector ─── deduplicates MITRE / NIST / CIS across all sub-reports
|
v
Overseer (casa-overseer) ─── cross-correlates, builds attack narrative, prioritizes
|
v
Final Report Formatter ──> Respond to Webhook ──> Open WebUI
```
**各个子工作流 (11 个节点) — 完整分析流水线:**
```
Log Analyst ─┐
├─> Merge ─> MITRE ATT&CK Lookup ─> CAR Coverage Lookup
Net Analyst ─┘ ─> NIST CSF Mapper ─> CIS Controls Mapper
─> PurpleTeamMapper ─> Synthesizer ─> Report Formatter
```
## 技术栈
| 服务 | 镜像 | 用途 |
|---------|-------|---------|
| Ollama | `ollama/ollama:latest` | 本地 LLM 推理 (CPU 或 GPU) |
| Open WebUI | `ghcr.io/open-webui/open-webui:main` | 分析师的聊天界面 |
| n8n | `n8nio/n8n:latest` | 工作流编排 |
| PostgreSQL | `pgvector/pgvector:pg16` | n8n 数据库 |
| Redis | `redis:7-alpine` | n8n 队列 |
## 代理模型
| 代理 | Ollama 模型 | 基础模型 | 角色 |
|-------|-------------|------|------|
| Router | `casa-router` | phi3:3.8b | 快速查询分类至调查类型 |
| Log Analyst | `casa-log-analyst` | qwen2.5:14b | Morgan Chen — NIST SP 800-92 日志分析 |
| Network Analyst | `casa-network-analyst` | qwen2.5:14b | Jordan Rivers — 流量与信标检测 |
| PurpleTeamMapper | `casa-purple-mapper` | phi3:3.8b | Alex Reyes — 使用证据验证框架映射 |
| Synthesizer | `casa-synthesizer` | qwen2.5:7b | 将单一路径的发现组合成结构化报告 |
| **Overseer** | **`casa-overseer`** | **qwen2.5:14b** | **最终综合 — 将所有子报告交叉关联为统一的分析师报告** |
## 调查类型
| 类型 | 触发条件 | 使用的代理 |
|------|----------|-------------|
| Auth Anomaly | 登录失败、撞库、暴力破解 | Log + Network |
| Beaconing | 周期性连接、C2 回调、DNS 隧道 | Network |
| Exfiltration | 大规模传输、数据暂存、非工作时间访问 | Log + Network |
| Lateral Movement | 东西向流量、哈希传递、凭据重用 | Log + Network |
| Privilege Escalation | Token 篡改、UAC 绕过、sudo 滥用 | Log + Network |
| Persistence | 注册表项、计划任务、服务、cron 作业 | Log + Network |
| Ransomware | 文件加密、卷影副本删除、勒索赎金 | Log + Network |
| Insider Threat | 违反策略、数据囤积、非工作时间访问 | Log + Network |
| Vulnerability Exploitation | CVE 利用、Web Shell、注入攻击 | Log + Network |
当查询匹配多种类型时(例如,日志同时显示横向移动和权限提升),Investigation Scanner 会识别所有相关路径,并由 Overseer 合并结果。
## 框架集成
该流水线对真实框架数据使用**确定性查找**——LLM 提供推理,结构化数据提供事实:
| 框架 | 资产 | 覆盖范围 |
|-----------|-------|----------|
| **MITRE ATT&CK** | `mitre-attack-techniques.json` | 160 项企业技术,附带关键词与检测指南 |
| **MITRE CAR Coverage** | `car-analytic-coverage.json` | 588 项技术,附带 CAR / Sigma / ES SIEM / Splunk 检测计数 |
| **NIST CSF 2.0** | `nist-csf-2.0.json` | 6 项功能,22 个类别,106 个子类别 |
| **CIS Controls v8.1.2** | `cis-controls-v8.1.2.json` | 18 项控制,153 项带有 IG1/IG2/IG3 分类的保障措施 |
| **技术到控制措施映射** | `mitre-to-controls-map.json` | 160 项技术映射到特定 CIS 保障措施 + NIST CSF 类别 |
### 每个框架对报告的贡献
- **MITRE ATT&CK** — 识别观察到的特定对手技术(T 编号)
- **MITRE CAR Coverage** — 对于每项匹配的技术,展示存在多少社区检测;将零覆盖技术标记为最高优先级的检测工程缺口
- **NIST CSF 2.0** — 将发现映射到安全功能区域(Govern、Identify、Protect、Detect、Respond、Recover),以便进行管理层级别的分类
- **CIS Controls v8.1.2** — 生成有优先级、可操作的保障措施建议;IG1 保障措施作为“快速收益”被呈现
- **技术到控制措施映射** — 从识别出的 MITRE 技术到解决这些技术的特定 CIS 保障措施和 NIST 类别的确定性映射(取代仅基于关键字的匹配)
## 报告输出
每次调查都会生成一份包含 Overseer 综合分析的结构化报告:
```
1. Executive Summary — query, analysis mode, risk level, framework counts
2. Overseer Analysis — cross-correlated findings, attack narrative, top 5 recommendations
3. MITRE ATT&CK Mapping — combined techniques from all analysis paths with detection coverage
4. NIST CSF 2.0 — incident classification by security function
5. CIS Controls v8.1.2 — technique-mapped safeguard recommendations with IG1 quick wins
6. Evidence Chain — investigation flow from query to report
```
## 快速开始
### 前置条件
- Docker 和 Docker Compose
- 16GB+ RAM(推荐 64GB — 参见[内存要求](#memory-requirements))
- 4+ CPU 核心(推荐 16)
- 100GB 存储空间
### 第一步:克隆并配置
```
git clone https://github.com/ktalons/pts-casa.git
cd pts-casa
cp .env.example .env
# 编辑 .env — 设置密码、时区,针对您的硬件调整 Ollama
```
### 第二步:启动技术栈
```
docker compose up --build -d
# 等待 2-3 分钟以启动所有服务
docker compose ps # All services should show "running" or "healthy"
```
### 第三步:构建 CASA 代理模型
```
bash scripts/build-models.sh
```
此脚本:
1. 拉取 3 个基础模型(phi3:3.8b, qwen2.5:7b, qwen2.5:14b)
2. 根据 Modelfiles 创建所有 6 个 CASA 代理模型
3. 验证框架数据资产是否可在 n8n 容器中访问
### 第四步:验证模型(可选但推荐)
```
bash scripts/test-models.sh
```
对所有 6 个模型运行快速冒烟测试,以确认它们响应正常。
### 第五步:导入工作流至 n8n
在 `http://localhost:5678` 打开 n8n(凭据来自您的 `.env` 文件)。
**首先导入 9 个子工作流:**
1. 进入 **Workflows > Import from File**
2. 导入每个 `workflows/casa-*.json` 文件,**除了** `casa-master.json`
3. 对于每个导入的子工作流:
- 打开 **Execute Workflow Trigger** 节点,并确保 **Input data mode** 设置为 **Accept all data**
- 如果子工作流包含 **Merge** 节点,请确保其模式设置为 **Append**
- **发布** 工作流并继续添加所有子工作流
4. 记录每个工作流的 ID(可在 URL 中查看:`http://localhost:5678/workflow/XXXXXX`)
**导入主工作流:**
5. 导入 `workflows/casa-master.json`
6. 打开 **Dynamic Sub-Workflow Router** 节点
7. 在 `workflowId` 表达式中,将每个 `REPLACE_WITH_ACTUAL_ID` 替换为您记录的实际工作流 ID:
auth_anomaly: "your-auth-anomaly-id"
beaconing: "your-beaconing-id"
exfiltration: "your-exfiltration-id"
lateral_movement: "your-lateral-movement-id"
privilege_escalation: "your-privesc-id"
persistence: "your-persistence-id"
ransomware: "your-ransomware-id"
insider_threat: "your-insider-threat-id"
vulnerability_exploitation: "your-vuln-exploit-id"
8. **激活** 主工作流
### 第六步:安装 Open WebUI 函数
1. 在 `http://localhost:3000` 打开 Open WebUI
2. 进入 **Workspace > Functions > "+" (Create)**
3. 粘贴 `functions/casa_pipe.py` 的内容
4. 保存并启用
5. 进入 **Settings > Documents** > 将 **Top K** 更改为 **0**(默认为 3);默认的 RAG 模板即可
### 第七步:测试流水线
```
# 通过 curl 快速测试
curl -X POST http://localhost:5678/webhook/casa-investigate \
-H "Content-Type: application/json" \
-d '{"query": "500 failed SSH logins from 192.168.1.100 targeting root in 5 minutes"}'
```
或者在 Open WebUI 中,从模型下拉菜单中选择 **"CASA CyberAnalysis"**,并输入查询。
## 使用方法
### 通过 Open WebUI
1. 从模型下拉菜单中选择 **"CASA CyberAnalysis"**
2. 输入安全调查查询或上传日志文件
3. 等待流水线完成(在 AWS 上约 2 分钟,在家庭实验室 CPU 上约 10-30 分钟)
4. 接收一份格式化的调查报告,其中包含框架映射和优先级建议
### 通过 curl
```
curl -X POST http://localhost:5678/webhook/casa-investigate \
-H "Content-Type: application/json" \
-d '{"query": "YOUR SECURITY INVESTIGATION QUERY HERE"}'
```
### 示例查询
示例查询和日志文件位于 `logs/` 目录中。请参阅 `logs/SAMPLE-QUERIES.md`,获取 14 个现成可用的测试场景,涵盖所有 9 种调查类型以及 5 项全面的多种类型测试。
```
# Auth Anomaly
"500 failed SSH logins from 192.168.1.100 targeting root in 5 minutes,
followed by successful login and new user creation"
# Beaconing / C2
"Workstation at 10.0.5.42 making HTTPS connections every 60 seconds
to a domain registered 3 days ago"
# Lateral Movement
"After phishing compromise on WORKSTATION-12, same credentials
authenticating to 6 servers via SMB in 20 minutes"
# Ransomware
"Shadow copies deleted, boot recovery disabled, files renamed with
.encrypted extension across network shares, README_TO_DECRYPT.txt appearing"
```
## 文件结构
```
pts-casa/
├── assets/ # Framework data (auto-mounted into n8n)
│ ├── mitre-attack-techniques.json # 160 MITRE ATT&CK Enterprise techniques
│ ├── mitre-to-controls-map.json # Technique → CIS + NIST deterministic mappings
│ ├── car-analytic-coverage.json # 588 techniques with detection counts
│ ├── nist-csf-2.0.json # NIST CSF 2.0 complete framework
│ ├── cis-controls-v8.1.2.json # CIS Controls v8.1.2 — 153 safeguards
│ └── report-template.json # Report section definitions
├── functions/
│ └── casa_pipe.py # Open WebUI Pipe function
├── modelfiles/ # Ollama Modelfiles (6 agents)
│ ├── casa-router.Modelfile # phi3:3.8b — query classifier
│ ├── casa-log-analyst.Modelfile # qwen2.5:14b — log analysis
│ ├── casa-network-analyst.Modelfile # qwen2.5:14b — network analysis
│ ├── casa-purple-mapper.Modelfile # phi3:3.8b — framework validation
│ ├── casa-synthesizer.Modelfile # qwen2.5:7b — single-path report synthesis
│ └── casa-overseer.Modelfile # qwen2.5:14b — final cross-report synthesis
├── logs/ # Sample log files for testing
│ ├── SAMPLE-QUERIES.md # 14 ready-to-use test scenarios
│ ├── auth-anomaly-host.log # Sample logs for each investigation type
│ ├── auth-anomaly-network.log
│ └── ... # (18 log files total)
├── scripts/
│ ├── build-models.sh # Pull base models + create all 6 CASA agents
│ ├── test-models.sh # Smoke test all agents
│ ├── build-technique-controls-map.py # Regenerate technique-to-controls mapping
│ ├── convert-car-coverage.js # Regenerate CAR coverage from source CSV
│ └── convert-cis-controls.py # Regenerate CIS controls from source Excel
├── workflows/ # n8n workflow definitions
│ ├── casa-master.json # Master v2 (9 nodes — single-path with Overseer)
│ ├── casa-auth-anomaly.json # Sub-workflow (11 nodes each)
│ ├── casa-beaconing.json
│ ├── casa-exfiltration.json
│ ├── casa-lateral-movement.json
│ ├── casa-privilege-escalation.json
│ ├── casa-persistence.json
│ ├── casa-ransomware.json
│ ├── casa-insider-threat.json
│ └── casa-vulnerability-exploitation.json
├── docs/
│ ├── PTS-CASA-AWS-Provisioning-Guide.md # AWS EC2 deployment guide
│ └── n8n-CyberAnalysis-Architecture.md # Original design spec (historical)
├── docker-compose.yml # Full stack (Ollama, Open WebUI, n8n, PostgreSQL, Redis)
├── Dockerfile.runners # n8n task runners
├── .env.example # Environment configuration template
└── CHANGELOG.md # Version history
```
## 部署选项
| 环境 | 规格 | 流水线耗时 | 备注 |
|-------------|-------|---------------|-------|
| **AWS EC2 m7i.4xlarge** | 16 vCPU, 64GB RAM | 约 2-5 分钟 | 推荐 — 所有模型已预加载 |
| Homelab / Proxmox | 4-8 CPU, 16-32GB RAM | 约 10-30 分钟 | 可用 — 模型交换会增加延迟 |
有关完整的 AWS 设置说明,请参阅 [docs/PTS-CASA-AWS-Provisioning-Guide.md](docs/PTS-CASA-AWS-Provisioning-Guide.md)。
### 内存要求
| 组件 | RAM |
|-----------|-----|
| Docker + services | 约 3GB |
| phi3:3.8b (Router + PurpleMapper) | 各约 2.5GB |
| qwen2.5:14b (Log Analyst + Network Analyst + Overseer) | 各约 9GB |
| qwen2.5:7b (Synthesizer) | 约 5GB |
| **最低要求 (模型交换)** | **16GB** |
| **推荐配置 (全部加载)** | **64GB** |
## 标准合规性
| 标准 | 用途 |
|----------|-------|
| **NIST SP 800-92** | 报告格式和日志分析方法 |
| **NIST CSF 2.0** | 发现映射到 Govern、Identify、Protect、Detect、Respond、Recover |
| **MITRE ATT&CK** | 通过针对企业框架的确定性查找进行技术识别 |
| **MITRE CAR** | 来自社区分析存储库的检测覆盖率 |
| **CIS Controls v8.1.2** | 带有 Implementation Group 优先级排序的、映射到技术的保障措施建议 |
标签:AI安全, AI智能体, AI风险缓解, ATT&CK框架, BurpSuite集成, Chat Copilot, CIS Controls, Cloudflare, Docker容器化, LLM评估, MITRE ATT&CK, MITRE CAR, n8n, NIST CSF, NIST SP 800-92, Ollama, Open WebUI, pgvector, PostgreSQL, PyRIT, Python, Redis, SecOps, 云安全架构, 云部署, 企业安全, 多智能体系统, 威胁情报, 子域名变形, 安全事件分析, 安全事件响应, 安全分析师, 安全合规, 安全报告生成, 安全编排自动化与响应(SOAR), 工作流编排, 开发者工具, 插件系统, 搜索引擎查询, 攻击模拟, 无后门, 无线安全, 本地大语言模型, 本地部署, 测试用例, 版权保护, 系统分析, 紫队评估, 网络代理, 网络分析, 网络安全, 网络安全审计, 网络资产管理, 自动化安全分析, 请求拦截, 隐私保护, 驱动签名利用