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代理, 自动修复, 请求拦截, 逆向工具