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, 大语言模型, 威胁情报, 安全运营中心, 库, 应急响应, 开发者工具, 数据可视化, 网络信息收集, 网络映射, 自动化分析, 跨站脚本, 逆向工具