Finnete-20/sentinelai-soc-application

GitHub: Finnete-20/sentinelai-soc-application

SentinelAI 是一款基于 LLM 的自主安全事件调查系统,模拟 SOC 分析师工作流程对钓鱼邮件、可疑 URL 和漏洞进行自动化分析和报告生成。

Stars: 1 | Forks: 0

# SentinelAI ## AI 驱动的 SOC 分析师 SentinelAI 是一个由 AI 驱动的安全运营中心 (SOC) 分析师,它使用基于 LLM 的推理、MCP 工具、VirusTotal 威胁情报、实时 NVD CVE 查询、MITRE ATT&CK 知识、记忆关联以及执行报告,自主调查网络安全事件。 该系统旨在模拟 Tier 2 / Tier 3 SOC 分析师的工作流程,允许模型做出调查决策、自主调用工具、收集证据、关联发现结果并生成执行级报告。 # 在线应用 ## 前端 https://sentinelai-soc-application.vercel.app ## 后端 https://sentinelai-backend-w5bu.onrender.com # 问题描述 安全分析师花费大量时间调查警报、钓鱼邮件、可疑 URL、漏洞和威胁情报指标。 许多组织缺乏对每个警报进行一致调查的资源。 SentinelAI 通过以下方式帮助实现此过程的自动化: - 调查安全事件 - 关联证据 - 查询威胁情报 - 查找漏洞 - 映射 MITRE ATT&CK 技术 - 生成执行报告 目标是减少分析师的工作量,同时提高调查的一致性。 # 目标用户 - 安全运营中心 (SOC) - 安全分析师 - 网络安全学生 - 事件响应团队 - 威胁情报分析师 # 系统架构 ``` User Input │ ▼ GPT-4.1-mini │ ▼ MCP Tool Selection │ ▼ ┌───────────────────────┐ │ analyze_email │ │ url_reputation_check │ │ cve_lookup │ │ memory_lookup │ │ memory_store │ │ mitre_mapper │ │ generate_report │ └───────────────────────┘ │ ▼ Grounded Evidence │ ▼ GPT-4.1-mini Reasoning │ ▼ Executive Report │ ▼ Final Investigation ``` # 使用的技术 ## 前端 - React - Vite - JavaScript - Vercel ## 后端 - FastAPI - Python - OpenAI API ## 威胁情报 - VirusTotal API - NVD API ## 安全知识 - MITRE ATT&CK # MCP 工具 ## analyze_email 用途: 从邮件内容中提取指标。 返回: - 电子邮件地址 - URL - 域名 - CVE - IP 地址 ## url_reputation_check 用途: 向 VirusTotal 查询 URL 信誉。 返回: - 信誉信息 - 分析统计 - 分类 - 威胁情报 ## cve_lookup 用途: 从国家漏洞数据库 (NVD) 获取实时漏洞情报。 返回: - CVSS 评分 - 严重程度 - 描述 - 漏洞详情 ## memory_lookup 用途: 搜索以前的调查。 返回: - 历史发现结果 - 以前的调查 ## memory_store 用途: 保存调查发现结果以供将来关联。 返回: - 存储记录确认 ## mitre_mapper 用途: 提供 MITRE ATT&CK 参考知识。 返回: - 技术 - 战术 - 检测建议 ## generate_executive_report 用途: 生成执行级摘要。 返回: - 执行摘要 - 分析师备注 # 是什么让 SentinelAI 具有 Agentic 特性? 模型负责调查决策。 Python 应用程序不会决定: - 调用哪些工具 - 是否应该调用某个工具 - 分配什么结论 - 分配什么风险评分 - 遵循什么调查路径 而是: 1. 模型接收事件。 2. 模型决定需要哪些 MCP 工具。 3. 模型调用工具。 4. 模型接收工具结果。 5. 模型决定是否需要更多工具。 6. 模型生成最终调查结果。 这符合项目对 agentic 行为的定义,因为是模型而不是 Python 驱动决策制定。 # 接地 SentinelAI 通过多个外部来源进行接地。 ## VirusTotal 提供 URL 的实时威胁情报。 ## NVD 提供实时的 CVE 情报和漏洞数据。 ## MITRE ATT&CK 提供攻击者技术知识。 ## 记忆 提供历史调查上下文。 这些来源使模型能够访问仅通过预训练无法获得的信息。 # 调查示例 输入: ``` GVSU Enrollment Form! Michael Brown https://forms.gle/r1yZEXiJ1ms6Rsw58 ``` 调查过程: 1. 模型接收邮件。 2. 模型调用 analyze_email。 3. 模型发现 URL 和发件人。 4. 模型调用 url_reputation_check。 5. 模型调用 memory_lookup。 6. 模型调用 mitre_mapper。 7. 模型生成最终评估。 输出: ``` { "verdict": "malicious", "confidence": 0.85, "incident_type": "Phishing Attempt" } ``` # 评估 评估 评估是使用位于以下位置的 55 个网络安全调查样本的数据集进行的: evaluation/eval_dataset.json 可以通过运行以下命令来重现评估: python evaluation/eval.py 指标: { "accuracy": 0.764, "precision": 0.929, "recall": 0.520, "f1": 0.667 } 结果: - 准确率:76.4% - 精确率:92.9% - 召回率:52.0% - F1 分数:66.7% 解释: - 高精确率表明被归类为恶意的事件通常是正确的。 - 较低的误报率有助于减少分析师疲劳。 - 召回率仍然是未来需要改进的领域。 如何测试 SentinelAI 1. 打开部署的应用程序。 2. 提交钓鱼邮件、可疑 URL 或 CVE 标识符。 3. 观察调查时间线和工具调用。 4. 验证模型是否自主选择 MCP 工具并生成最终调查报告。 测试输入示例: GVSU 注册表! Michael Brown https://forms.gle/r1yZEXiJ1ms6Rsw58 预期行为: - 模型调用 analyze_email - 模型调用 url_reputation_check - 模型可能调用 memory_lookup - 模型可能调用 mitre_mapper - 模型生成执行报告 - 模型根据收集到的证据得出最终结论 完整的评估框架、数据集和生成的结果包含在存储库的 evaluation 文件夹下。 # 已知限制 - 在某些钓鱼场景下的召回率有待提高 - 记忆存储是本地的 - 企业集成有限 - MITRE 知识基于参考 # 未来工作 - Splunk 集成 - CrowdStrike 集成 - Microsoft Defender 集成 - 企业级记忆存储 - 扩展评估数据集 - 更多威胁情报来源 - 分析师反馈学习循环 # 仓库结构 ``` backend/ ├── app/ │ ├── api/ │ ├── core/ │ ├── tools/ │ ├── prompts/ │ └── reports/ │ ├── evaluation/ │ ├── eval.py │ ├── eval_dataset.json │ └── report.json │ └── requirements.txt frontend/ ├── src/ ├── public/ └── package.json ``` # 构建日志 可以在以下位置找到详细的开发历史、迭代、评估过程和架构更改: ``` BUILD_LOG.md ``` # 作者 **Finnete George** 网络安全硕士研究生 大峡谷州立大学 # 许可证 教育毕业设计项目 AI 驱动的安全运营中心分析师
标签:AI智能体, CISA项目, DLL 劫持, MCP工具, Petitpotam, 大语言模型, 威胁情报, 安全运营中心, 库, 应急响应, 开发者工具, 数据可视化, 网络信息收集, 网络映射, 自动化分析, 跨站脚本, 逆向工具