sreenidhi-n/socrates

GitHub: sreenidhi-n/socrates

SOCrates 是一个自主 SOC 分析师工具,通过多 Agent 协作自动将 CVE 转化为包含威胁情报、攻击路径模拟和 Sigma 检测规则的完整事件响应报告。

Stars: 0 | Forks: 0

## 标题: SOCrates emoji: 🏛️ colorFrom: blue colorTo: indigo sdk: docker app_file: app.py pinned: false license: mit short_description: 自主 SOC 分析师 — 输入 CVE,输出 IR 报告 # 🏛️ SOCrates **SOCrates** 是一位自主的安全运营中心 (SOC) 分析师。只需输入一个 CVE ID,它就会获取实时威胁情报,识别已知利用该供应商的 APT 组织,使用真实工具名称模拟完整的攻击杀伤链,将每个阶段映射到 MITRE ATT&CK v16,并生成一份可直接用于生产环境的事件响应报告——其中包含经过验证的 Sigma 检测规则和标记了工作量的补救步骤。 除了 CVE ID 之外无需任何人工输入。端到端全过程不到一分钟。 为 [AMD x LabLab.ai 开发者黑客松](https://lablab.ai/ai-hackathons/amd-developer)(2026 年 5 月)构建,由 **git happens** 团队出品。 ## 工作原理 ``` CVE ID → 🔍 Scout → ☠️ Adversary → 📋 Coroner → IR Report ``` 三个专用 Agent 按顺序运行,每个都有自己的上下文窗口和工具: | Agent | 模型 | 职责 | |-------|-------|-------------| | 🔍 **Scout** | Llama 3.3 70B | 从 NVD 拉取实时 CVE 数据,检查 CISA KEV 目录,获取供应商公告 | | ☠️ **Adversary** | Llama 3.3 70B | 分析威胁行为者画像,模拟完整的 6 阶段杀伤链,指出真实的攻击工具名称 | | 📋 **Coroner** | Qwen 2.5 72B | 将杀伤链映射到 MITRE ATT&CK v16,编写 IR 报告,生成有效的 Sigma 规则 | ## 你将得到什么 **Scout 输出:** - CVSS 评分 + 严重程度 (v4 → v3.1 → v3.0 → v2 优先级) - ⚠️ CISA KEV 标志 — 添加日期、勒索软件活动使用情况、要求采取的措施 - 供应商公告节选 (Fortinet、Palo Alto、Microsoft、Cisco、Red Hat、VMware) - 受影响的 CPE 配置,参考 URL **Adversary 输出:** - 威胁行为者背景 — 哪些 APT/犯罪组织以此供应商为目标,及其目的 - 6 阶段杀伤链:初始访问 → 执行 → 持久化 → 权限提升 → 横向移动 → 影响 - 每一步使用的真实攻击工具名称 (Sliver、Cobalt Strike、Mimikatz、CrackMapExec、Impacket、BloodHound 等) - 每个阶段的置信度评分 (高/中/低) - CVE 链式攻击 — 攻击者接下来会链接利用哪些次要漏洞 **Coroner 输出:** - 执行摘要 (面向管理层的 2-3 句话描述) - 映射到特定 MITRE ATT&CK v16 技术 ID 的攻击路径 (697 项技术,全部 15 个战术) - 一条有效的 Sigma 检测规则 (UUID,正确的标签,使用 sigma-cli 验证 — 零错误) - 标记了工作量的补救措施:🟢 轻松取胜 / 🟡 中等投入 / 🔴 重度消耗 **前端:** - 实时流式输出 — 每个 Agent 的工作在完成后立即呈现 - 流水线状态栏 + 运行指标 (时间,Token,$0.00) - 🧠 Agent 跟踪标签页 — 实时工具调用,推理过程,Agent 间的交接 - 📥 下载报告按钮 — 将完整的 IR 报告导出为 `.md` 文件 ## 技术栈 | 层级 | 技术 | |-------|-----------| | 编排 | [CrewAI](https://github.com/crewAIInc/crewAI) — 顺序多 Agent 流水线 | | Scout + Adversary | 通过 Ollama 运行的 Llama 3.3 70B (q8_0) | | Coroner | 通过 Ollama 运行的 Qwen 2.5 72B (q4_K_M) | | 计算 | AMD Instinct MI300X — 192GB VRAM,两个模型同时驻留内存 | | 威胁情报 | [NVD REST API v2.0](https://nvd.nist.gov/) (实时) + [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) (实时,1小时缓存) | | MITRE 数据 | ATT&CK v16 STIX 数据包 — 本地解析了 697 项技术 | | 威胁行为者 | 20 个组织的精选数据库 (MITRE ATT&CK 组织档案 + CISA 公告) | | 前端 | [Gradio](https://gradio.app/) — 4 个标签页,流式输出 | ## 快速开始 ### 前置条件 - Python 3.11+ - 已拉取 `llama3.3:70b-instruct-q8_0` 和 `qwen2.5:72b-instruct-q4_K_M` 模型的 Ollama - 或:兼容 OpenAI 的 vLLM 端点 (参见 [AMD 云设置](#amd-cloud-setup)) ``` git clone https://github.com/sreenidhi-n/socrates.git cd socrates # 安装 pip install -e . # 配置 cp .env.example .env # 编辑 .env — 设置 LLAMA_BASE_URL, QWEN_BASE_URL, VLLM_API_KEY # NVD_API_KEY 是可选的,但推荐设置(拥有更高的 rate limits) # 启动 python app.py # → http://localhost:7860 ``` ### 命令行使用 ``` # 直接运行 pipeline(打印最终 IR 报告) python -m socrates.crew CVE-2024-21762 ``` ## AMD 云设置 SOCrates 通过 Ollama 运行在 AMD Instinct MI300X 上。MI300X 的 192GB VRAM 可以将两个 70B 级别的模型同时保留在内存中——Agent 之间没有模型切换延迟。 ``` # 1. 配置一个 AMD Developer Cloud droplet # 镜像: ROCm 7.2 | 规格: gpu-mi300x-192gb # 2. 通过 SSH 登录并运行安装脚本 bash scripts/setup_cloud.sh # installs Ollama + ROCm deps # 3. 拉取模型 ollama pull llama3.3:70b-instruct-q8_0 ollama pull qwen2.5:72b-instruct-q4_K_M # 4. 从本地计算机打开一个隧道 ssh -NT -L 11435:localhost:11434 root@ # 5. 设置你的 .env LLAMA_BASE_URL=http://localhost:11435/v1 QWEN_BASE_URL=http://localhost:11435/v1 VLLM_API_KEY=ollama ``` 如果您更倾向于使用 vLLM 而不是 Ollama,`scripts/` 目录还包含了 `serve_llama.sh` 和 `serve_qwen.sh` 脚本供部署使用。 ## 项目结构 ``` socrates/ ├── app.py # Gradio frontend — run this ├── pyproject.toml ├── .env.example # Copy to .env and configure │ ├── src/socrates/ │ ├── config.py # All settings — endpoints, keys, paths │ ├── crew.py # CrewAI pipeline — Scout → Adversary → Coroner │ │ │ ├── agents/ │ │ ├── scout.py # Threat intel collector │ │ ├── adversary.py # Attack path simulator │ │ └── coroner.py # IR report generator │ │ │ ├── tools/ │ │ ├── nvd_tool.py # NVD API + CISA KEV + vendor advisory enrichment │ │ ├── mitre_tool.py # ATT&CK v16 scored relevance search │ │ ├── threat_actor_tool.py # 20-group threat actor DB lookup │ │ └── cve_parser.py # CVE ID validation helpers │ │ │ └── data/ │ ├── attack.json # MITRE ATT&CK v16 — 697 techniques (local) │ └── threat_actors.json # 20 APT/criminal groups with targeting profiles │ └── scripts/ ├── setup_cloud.sh # AMD cloud node provisioning ├── serve_llama.sh # vLLM serving script for Llama ├── serve_qwen.sh # vLLM serving script for Qwen ├── build_attack_json.py # One-time: downloads + parses MITRE STIX bundle └── test_pipeline.py # End-to-end smoke test ``` ## 情报来源 所有内容均有来源——绝不会凭空捏造: | 来源 | 数据 | 新鲜度 | |--------|------|-----------| | [NVD REST API v2.0](https://nvd.nist.gov/developers/api-dashboard) | CVSS 分数,受影响的 CPE,参考链接 | 实时 | | [CISA KEV 目录](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | 在野利用状态,勒索软件标志 | 实时,1小时缓存 | | 供应商安全公告 | Fortinet PSIRT, Palo Alto Unit42, Microsoft MSRC, Cisco, Red Hat, VMware | 实时 (从 NVD 参考 URL 获取) | | [MITRE ATT&CK v16](https://attack.mitre.org/) | 15 个战术下的 697 项技术 | 本地 STIX 数据包 | | MITRE ATT&CK 组织档案 + CISA 公告 | 20 个威胁行为者组织,目标模式 | 精选 | ## 威胁行为者覆盖范围 来源于 MITRE ATT&CK 组织档案和 CISA 公告的 20 个组织: APT1, APT28 (Fancy Bear), APT29 (Cozy Bear), APT32 (OceanLotus), APT33 (Refined Kitten), APT38, APT41 (Winnti), FIN7, Gamaredon, HAFNIUM, INDRIK SPIDER (Evil Corp), Lazarus Group, Rocke Group, Sandworm Team, Scattered Spider, TeamTNT, Tortoiseshell, Turla, Volt Typhoon, Wizard Spider 归因措辞为“与...有关联”——而非“已确认利用”。生产版本将解析完整的 STIX 组织关系包,以实现经过机器验证的映射。 ## CVE 示例 | CVE | 漏洞 | CVSS | 备注 | |-----|--------------|------|-------| | CVE-2024-21762 | Fortinet FortiOS/FortiProxy — 未经身份验证的 RCE | 9.8 | 在 CISA KEV 中,带有勒索软件标志,归因为 Sandworm/Volt Typhoon/Wizard Spider | | CVE-2024-3400 | Palo Alto PAN-OS GlobalProtect — 未经身份验证的 RCE | 10.0 | 在 CISA KEV 中,已验证完整流水线 | ## 为什么使用 Agent? **上下文窗口隔离** — Scout 不会用原始的 NVD JSON 干扰 Adversary 的推理,而 Adversary 的对抗性模拟也不会渗入 Coroner 的结构化报告编写中。 **模型专业化** — 使用 Llama 3.3 70B 进行横向对抗性推理;使用 Qwen 2.5 72B 进行结构化文档合成。为正确的任务选择正确的模型。 **独立的故障隔离** — 一次充满干扰的 Scout 运行不会破坏 IR 报告。任何单独的 Agent 都可以在不影响其他 Agent 的情况下进行升级、微调或替换。 **可审计性** — Agent 跟踪标签页显示了每一次工具调用、中间思考和 Agent 间的交接。“这只是个花哨的提示词吗?”——不,向他们展示跟踪记录。 ## 为什么选择 AMD? MI300X 的 192GB VRAM 可以将两个 70B 级别的模型同时保留在内存中。Agent 之间没有模型切换的开销。无需 OpenAI API 密钥。无需按 Token 计费。可本地部署——您的威胁情报永远不会离开您的网络。每次运行成本:**$0.00**。 ## 许可证 MIT *由 **git happens** 为 AMD x LabLab.ai 开发者黑客松构建,2026 年 5 月。* *"每一个 CVE 都值得被严密审问。"*
标签:AI安全智能体, AI风险缓解, APT攻击组织, CISA KEV, Cloudflare, CPE分析, CVE漏洞分析, CVSS评分, GPT, Llama 3, LLM大模型, MITRE ATT&CK, NVD, Qwen 2.5, Sigma规则, SOC分析师, URL发现, 事件响应报告, 威胁情报, 安全检测, 库, 应急响应, 开发者工具, 攻击杀伤链, 深度防御, 漏洞管理, 目标导入, 红队模拟, 网络安全, 自主安全运营中心, 请求拦截, 逆向工具, 隐私保护