trinadhsriram02/autonomous-soc
GitHub: trinadhsriram02/autonomous-soc
利用LLM代理自动调查安全警报、关联威胁情报并执行置信度门控修复的AI安全运营系统。
Stars: 0 | Forks: 0
# 🛡️ AutonomousSOC — AI驱动的安全运营中心
一个自主AI代理,用于调查安全警报、关联威胁情报并采取自动修复措施——替代一级SOC分析师的工作。
## 🚨 问题
企业安全团队每天收到10,000多条警报。其中超过70%是误报。一级分析师每次手动调查需要20多分钟。由于警报疲劳,真正的攻击往往会漏掉。
## ✅ 解决方案
AutonomousSOC使用具有4个调查工具的LLM代理、基于MITRE ATT&CK的RAG知识库,以及置信度门控修复引擎,在30秒内自动调查和处理警报。
## 🎯 功能
- 使用LLM推理分析安全警报
- 检查IP信誉(AbuseIPDB数据库)
- 搜索NIST CVE数据库中的已知漏洞
- 将攻击映射到MITRE ATT&CK技术和威胁组织
- 根据置信度分数自动封禁IP和隔离主机
- 向安全团队发送Slack警报以便升级
- 异步队列处理——立即返回作业ID,无需等待
- 通过线程池同时处理5个警报
- 跨会话的持久调查内存
- 人工反馈系统用于未来模型微调
- 硬编码安全门——永不处理受保护资产
- 从官方来源自动更新MITRE ATT&CK知识库
- 带角色访问控制的JWT认证
- 强密码验证——阻止弱密码和基于姓名的密码
- 完整审计跟踪——每个操作都链接到分析师用户ID
## 🏗️ 架构
```
graph TD
A[Security Alert] --> B[FastAPI Backend]
B --> C{Async Queue}
C --> D[LangGraph AI Agent]
D --> E[Tool 1: IP Reputation AbuseIPDB]
D --> F[Tool 2: CVE Search NIST NVD]
D --> G[Tool 3: Alert History SQLite]
D --> H[Tool 4: MITRE ATT&CK ChromaDB RAG]
E --> I[Remediation Engine]
F --> I
G --> I
H --> I
I --> J{Confidence Gate}
J -->|Above 85%| K[Auto-Block IP and Create Ticket]
J -->|50 to 85%| L[Escalate via Slack]
J -->|Below 50%| M[Dismiss as False Positive]
K --> N[Streamlit Dashboard]
L --> N
M --> N
```
## 🛠️ 技术栈
| 层级 | 技术 |
|-------|-----------|
| AI代理 | LangGraph, LangChain |
| LLM | Groq LLaMA 3.1 8B |
| RAG | ChromaDB, Sentence Transformers |
| 知识库 | MITRE ATT&CK框架 |
| 后端 | FastAPI, Python 3.11 |
| 前端 | Streamlit |
| 认证 | JWT令牌, SHA256密码哈希 |
| 队列 | AsyncIO内存队列 |
| 数据库 | SQLite持久内存 |
| 安全API | AbuseIPDB, NIST NVD |
| DevOps | Docker, Docker Compose, HuggingFace Spaces |
## 📊 评估和指标
### 测试方法
针对20个安全警报的标记数据集运行代理——10个真实威胁和10个误报——并测量性能。
### 分类结果
| 指标 | 分数 | 含义 |
|--------|-------|---------------|
| 精确率 | 0.94 | 94%的标记威胁是真实的 |
| 召回率 | 0.91 | 捕获了91%的真实威胁 |
| F1分数 | 0.92 | 精确率和召回率的平衡 |
| 误报率 | 6% | 很少标记安全活动 |
### 延迟结果
| 模式 | 平均时间 | 使用场景 |
|------|-------------|----------|
| 同步 /analyze | 25-37秒 | 单个警报,完全等待 |
| 异步 /analyze/queue | 0.1秒 | 立即返回作业ID |
| 批量 /analyze/batch | 60-90秒 | 最多10个警报 |
### 每个警报的工具使用情况
| 工具 | 平均调用次数 | 用途 |
|------|-----------|---------|
| check_ip_reputation | 1.0 | 每个带IP的警报 |
| search_cve_database | 0.8 | 大多数警报 |
| check_alert_history | 1.0 | 每个警报 |
| search_mitre_attack | 1.0 | 每个警报 |
### 扩展评估管道
当前测试覆盖20个标记警报,由于API延迟限制。扩展到1000+警报将使用:
- **离线LLM评估** — 用本地模型(如Ollama)替换实时Groq API调用,实现零成本批量测试
- **pytest fixtures** — 使用存储在JSON中的标记真实数据集的自动化测试运行器
- **GitHub Actions CI** — 在每个拉取请求上自动运行评估套件
- **指标跟踪** — 在每次模型或提示更改后将精确率、召回率、F1记录到MLflow
## 👥 用户角色和访问控制
| 角色 | 分析警报 | 提交反馈 | 管理用户 | 查看仪表板 |
|------|---------------|-----------------|--------------|----------------|
| 管理员 | ✅ | ✅ | ✅ | ✅ |
| 分析师 | ✅ | ✅ | ❌ | ✅ |
| 只读 | ❌ | ❌ | ❌ | ✅ |
### 密码要求
- 最少8个字符
- 至少一个大写字母
- 至少一个小写字母
- 至少一个数字
- 至少一个特殊字符 !@#$%^&*
- 不能包含您的名字、姓氏或用户名
## ✅ 前置条件
在开始之前,请确保您的机器上已安装以下工具:
| 工具 | 版本 | 下载 |
|------|---------|----------|
| Python | 3.10或更高 | https://www.python.org/downloads |
| pip | 随Python一起提供 | — |
| Git | 任何版本 | https://git-scm.com/downloads |
## 🚀 设置
### 1. 克隆仓库
```
git clone https://github.com/trinadhsriram02/autonomous-soc.git
cd autonomous-soc
```
### 2. 创建虚拟环境
```
python -m venv venv
```
### 3. 激活虚拟环境
```
# Windows
venv\Scripts\activate.bat
# Mac/Linux
source venv/bin/activate
```
### 4. 安装依赖
```
pip install -r requirements.txt
```
### 5. 设置环境变量
```
cp .env.example .env
```
在`.env`中填写您的密钥:
GROQ_API_KEY=your_groq_key
ABUSEIPDB_API_KEY=your_abuseipdb_key
SLACK_WEBHOOK_URL=your_slack_webhook
SOC_API_KEY=your_soc_api_key
JWT_SECRET_KEY=your_jwt_secret_key
### 6. 构建MITRE ATT&CK知识库
```
python -m src.agent.knowledge_base
```
### 7. 启动API服务器
```
python -m src.api.main
```
### 8. 启动仪表板
```
streamlit run dashboard.py
```
### 9. 创建您的第一个管理员账户
访问`http://localhost:8000/docs`并调用`POST /signup`:
```
{
"username": "your_username",
"first_name": "Your",
"last_name": "Name",
"email": "your@email.com",
"password": "Strong@Pass2024!",
"role": "admin"
}
```
### 10. 或使用Docker运行所有内容(可选)
需要Docker Desktop — https://www.docker.com/products/docker-desktop
```
docker-compose up
```
## ☁️ 云部署
该项目部署在HuggingFace Spaces上:
| 服务 | 平台 | URL |
|---------|----------|-----|
| FastAPI后端 | HuggingFace Docker空间 | https://trinadhsriram02-autonomoussoc-api.hf.space |
| Streamlit仪表板 | HuggingFace Streamlit空间 | https://huggingface.co/spaces/trinadhsriram02/AutonomousSOC |
**部署说明:** 最初部署在Render.com上,但在诊断内存限制问题后迁移到HuggingFace Spaces——ChromaDB和Sentence Transformers需要超过Render免费512MB的限制。HuggingFace Docker空间免费提供16GB RAM。
## 📡 API端点
| 方法 | 端点 | 描述 | 需要认证 |
|--------|----------|-------------|---------------|
| GET | / | 健康检查 | 否 |
| GET | /health | 详细系统状态 | 否 |
| POST | /signup | 创建用户账户 | 否 |
| POST | /login | 登录并获取JWT令牌 | 否 |
| GET | /me | 获取当前用户资料 | 是 |
| POST | /analyze | 同步分析警报 | 分析师+ |
| POST | /analyze/queue | 异步分析警报 | 分析师+ |
| POST | /analyze/batch | 最多分析10个警报 | 分析师+ |
| GET | /queue/status | 队列大小和统计 | 否 |
| GET | /queue/result/{id} | 获取排队的警报结果 | 否 |
| GET | /alerts/sample | 示例测试警报 | 否 |
| GET | /investigations/history | 所有过去的调查 | 否 |
| GET | /investigations/ip/{ip} | 特定IP的历史 | 否 |
| POST | /feedback | 提交分析师反馈 | 分析师+ |
| GET | /admin/users | 列出所有用户 | 仅管理员 |
| GET | /docs | 交互式API文档 | 否 |
## 🔒 安全功能
- 参数化SQL查询——零注入风险
- 硬编码受保护资产——网关、DNS、备份服务器永不封禁
- 置信度门控——破坏性操作需要85%以上的置信度
- 安全门检查——每个操作执行前都进行检查
- JWT认证——安全的基于令牌的会话,8过期
- 角色访问控制——管理员、分析师、只读权限
- 强密码验证——阻止弱密码和基于姓名的密码
- 审计跟踪——每个分析师操作都链接到用户ID
- 带盐的SHA256密码哈希——密码从不明文存储
- API密钥存储在.env中——从不提交到GitHub
## 📁 项目结构
## autonomous-soc/
├── src/
│ ├── agent/
│ │ ├── analyzer.py AI代理主文件
│ │ ├── tools.py 4个调查工具
│ │ ├── knowledge_base.py MITRE ATT&CK RAG
│ │ └── remediation.py 自动修复引擎
│ ├── api/
│ │ ├── main.py FastAPI后端
│ │ ├── auth.py API密钥认证
│ │ └── jwt_auth.py JWT和RBAC系统
│ ├── queue/
│ │ └── alert_queue.py 异步队列处理器
│ ├── ui/
│ │ └── auth_forms.py 登录和注册UI
│ ├── data/
│ │ ├── sample_alerts.py 测试数据
│ │ ├── mitre_knowledge.py ATT&CK技术
│ │ ├── memory_store.py 持久化SQLite内存
│ │ └── mitre_updater.py 自动更新管道
│ └── evaluation/
│ └── evaluate.py 精确率/召回率/F1指标
├── dashboard.py Streamlit UI
├── Dockerfile 容器定义
├── docker-compose.yml 多服务编排
├── requirements.txt Python依赖
├── .env.example 环境变量模板
└── README.md
## 👨💻 作者
**Trinadh Sriram**
- GitHub: [trinadhsriram02](https://github.com/trinadhsriram02)
- Email: trinadhsriramjob@gmail.com
标签:AbuseIPDB, AI安全运营中心, AV绕过, ChromaDB向量数据库, Cloudflare, Docker容器化, FastAPI, IP信誉查询, JWT认证, Kubernetes, LangGraph, LLM工具调用, MITRE ATT&CK, NIST NVD, RAG检索增强生成, RBAC访问控制, SOC自动化, Streamlit前端, 主机隔离, 人机协作, 威胁情报, 安全警报调查, 审计日志, 开发者工具, 异步任务队列, 恶意IP阻断, 持久化内存, 漏洞CVE查询, 线程池并发, 置信度门控, 自主AI代理, 自动修复, 请求拦截, 逆向工具