dan-chui/AI-SOC-Analyst-Agent
GitHub: dan-chui/AI-SOC-Analyst-Agent
AI 辅助 SOC 分析师代理,用于威胁狩猎和安全调查。
Stars: 0 | Forks: 0
# AI SOC 分析师代理
使用 **Python**、**Azure 日志分析**、**Microsoft Defender for Endpoint (MDE**) 和 **OpenAI** 构建的 AI 辅助威胁狩猎平台。
该项目展示了大型语言模型 (LLM) 如何通过分析安全遥测数据、识别可疑活动、将发现映射到 **MITRE ATT&CK** 以及生成结构化威胁狩猎报告来协助安全运营中心 (SOC) 分析师。
## 项目概述
安全分析师经常需要调查多个系统和数据源中的大量遥测数据。
该项目探讨了 AI 驱动的 SOC 分析师如何协助:
- 解释自然语言调查请求
- 选择相关的遥测源
- 从 Azure 日志分析中检索数据
- 执行 AI 辅助威胁狩猎
- 将发现映射到 MITRE ATT&CK
- 生成结构化调查报告
- 支持可选的分析师批准的响应操作
目标是不要取代人类分析师,而是在保持人类监督和决策的同时加速调查。
## 架构
### 高级工作流程
```
SOC Analyst Request
│
▼
Determine Investigation Scope
│
▼
Apply Security Guardrails
│
▼
Query Azure Log Analytics
│
▼
Collect Security Telemetry
│
▼
Redact Sensitive Data
│
▼
OpenAI Threat Analysis
│
▼
MITRE ATT&CK Mapping
│
▼
Threat Findings
│
▼
Optional Human-Approved Remediation
```
有关其他架构和工作流程图,请参阅 `docs/` 目录。
## 功能
### AI 辅助威胁狩猎
代理可以:
- 解释分析师请求
- 选择适当的遥测源
- 从 Azure 日志分析中检索数据
- 使用 OpenAI 分析日志
- 识别可疑活动
- 提取入侵指标 (IOCs)
- 将发现映射到 MITRE ATT&CK
- 生成调查建议
### 支持的遥测源
- DeviceLogonEvents
- DeviceProcessEvents
- DeviceNetworkEvents
- DeviceFileEvents
- AzureActivity
- SigninLogs
- AzureNetworkAnalytics_CL
### 人工反馈循环响应操作
潜在的响应操作在执行之前需要分析师批准。
示例包括:
- 终端隔离
- 调查转向
- 事件升级建议
不会自动发生任何修复操作。
## 🛡️ 安全增强与重构
原始训练实现提供了一个工作的概念验证。
这个组合版本重构以提高安全性、可维护性、配置管理和操作安全性。
### 配置改进
#### 原始实现
- 直接凭据引用
- 有限的 GitHub 发布保护措施
#### 组合版本
- 支持环境变量
- `.env.example` 模板
- 安全存储库结构
- 改进的配置卫生
### 其他安全防护措施
#### 表允许列表
只能查询批准的遥测源。
#### 字段允许列表
只能返回每个遥测源中批准的字段。
#### 模型允许列表
只能使用批准的 OpenAI 模型。
#### 时间窗口限制
每个遥测源强制执行最大回溯期。
示例:
| 源 | 最大回溯期 |
| ------------------- | ---------------- |
| DeviceProcessEvents | 24 小时 |
| DeviceNetworkEvents | 24 小时 |
| DeviceLogonEvents | 96 小时 |
| AzureActivity | 168 小时 |
| SigninLogs | 168 小时 |
#### 行限制
在提交给 LLM 之前,自动截断大型查询结果。
当前限制:
```
500 rows
```
好处:
- 控制令牌消耗
- 提高响应性能
- 降低运营成本
- 防止提示过大
#### 敏感数据擦除
在将日志提交给 LLM 之前,对敏感信息进行清理。
当前擦除包括:
- IP 地址
- 电子邮件地址
- Azure GUID
#### 防护措施报告
平台显示在每次调查期间应用的主动安全控制,包括:
- 时间窗口强制执行
- 行截断状态
- PII 擦除状态
#### 人工批准要求
潜在的修复操作在执行之前需要分析师明确确认。
## 🚨 截图
### 调查初始化
显示调查范围选择、遥测源选择和 Azure 日志分析查询执行。

### 模型验证与成本估算
展示模型选择、令牌估算和验证控制。

### 威胁狩猎结果
#### 威胁 #1 – 凭据填充活动

#### 威胁 #2 – 可疑的根登录

#### 威胁 #3 – 服务帐户凭据探测

#### 威胁 #4 – SSH 枚举活动

#### 可选终端隔离
说明分析师批准的终端隔离。

## 仓库结构
```
ai-soc-analyst-agent/
│
├── data/
│ └── sample_device_logon_events.csv
│
├── docs/
│ ├── baseline_agent_workflow.jpg
│ ├── defining_guardrails.md
│ ├── network_guardrails.jpg
│ └── prompt_engineering_diagram.jpg
│
├── output/
│ └── .gitkeep
│
├── screenshots/
│
├── src/
│ ├── executor.py
│ ├── guardrails.py
│ ├── keys.py
│ ├── main.py
│ ├── model_management.py
│ ├── prompt_management.py
│ └── utilities.py
│
├── .env.example
├── .gitignore
├── README.md
└── requirements.txt
```
## 其他文档
`/docs` 文件夹包含开发期间和重构期间使用的支持材料:
| 文档 | 描述 |
| -------------------------- | ---------------------------------------------------------------------- |
| 定义防护措施 | 安全控制、验证机制和 AI 安全考虑 |
| 提示工程图 | 提示构建和工作流程可视化 |
| 网络防护措施 | 网络环境的高级概述 |
| 基线代理工作流程 | 作为项目基础使用的原始工作流程 |
## 配置
根据 `.env.example` 创建本地 `.env` 文件。
示例:
```
OPENAI_API_KEY=your_openai_api_key_here
AZURE_WORKSPACE_ID=your_workspace_id_here
AZURE_TENANT_ID=your_tenant_id_here
AZURE_CLIENT_ID=your_client_id_here
AZURE_CLIENT_SECRET=your_client_secret_here
```
`.env` 文件不包括在源控制中,不应提交到 Git。
## 使用的技术
- Python
- Azure 日志分析
- Microsoft Defender for Endpoint (MDE)
- Azure Identity
- Kusto 查询语言 (KQL)
- OpenAI API
- MITRE ATT&CK 框架
## 🎓 经验教训
该项目提供了以下方面的实践经验:
- 威胁狩猎工作流程
- Azure 安全遥测
- KQL 查询开发
- 提示工程
- AI 安全防护措施
- 安全自动化
- MITRE ATT&CK 映射
- 人工反馈循环响应工作流程
其中一个关键经验教训是,AI 辅助安全工具需要强大的防护措施、验证控制和分析师监督,才能保持有效和可信。
## 未来改进
潜在的未来改进包括:
- 威胁情报丰富
- IOC 声誉查找
- 调查时间线重建
- 多代理编排
## ⚠️ 声明
该项目旨在用于教育和组合目的。
截图是从受控的网络安全培训环境中捕获的。所有租户信息、基础设施标识符、凭据、IP 地址和敏感遥测数据都已清理或删除。
开发期间未访问任何生产系统。
## 📬 联系
我的博客文章:[Happy Bytes](https://happy-bytes.vercel.app/blogs/ai_soc_analyst_agent)
请随时在 [LinkedIn](https://www.linkedin.com/in/danchui/) 上与我联系或查看我的其他安全项目。
_欢迎反馈和讨论。感谢您审阅此项目。_
标签:逆向工具