hamishdean/Threat_hunting_SOC_agent
GitHub: hamishdean/Threat_hunting_SOC_agent
一款基于 AI 的 SOC 威胁狩猎工具,通过自然语言自动生成 KQL 查询并分析 Azure Log Analytics 日志,将检测结果映射到 MITRE ATT&CK 框架。
Stars: 0 | Forks: 0
# 代理式 SOC 分析师
一款基于 AI 的安全运营中心 (SOC) 工具,用于在 Azure Log Analytics 中进行自动化威胁搜寻。它使用 OpenAI 模型生成 KQL 查询,针对您的工作区执行查询,并分析结果以寻找安全威胁 —— 所有操作均通过深色主题的桌面 GUI 完成。
## 功能
- **AI 驱动的 KQL 生成** — 用通俗英语描述您正在调查的内容,AI 会为您编写查询。
- **自愈查询** — 如果 KQL 查询失败,AI 会自动诊断并修复它(最多重试 3 次)。
- **自动化威胁分析** — 检索到的日志将分批分析,以查找入侵指标,并映射到 MITRE ATT&CK 战术和技术。
- **手动 KQL 模式** — 直接编写并执行您自己的查询,以实现完全控制。
- **会话记忆** — AI 会记住您最近的 3 个查询,以提供更好的上下文结果。
- **导出所有内容** — 将发现结果导出为 JSON、格式化的 TXT 报告或 CSV(用于 Excel / SIEM 导入)。导出输出面板和会话日志到文本文件。
- **内置帮助** — 应用程序内的“如何使用”标签页包含完整指南。
## 前置条件
- Python 3.10+
- 一个 [OpenAI API key](https://platform.openai.com)
- 拥有 Log Analytics 工作区的 Azure 订阅
- 已登录 Azure CLI (`az login`),以便 `DefaultAzureCredential` 可以进行身份验证
## 安装
```
# 克隆 repository
git clone https://github.com/hamishdean/Threat_hunting_SOC_agent.git
cd Threat_hunting_SOC_agent
# 安装 dependencies
pip install openai azure-identity azure-monitor-query pandas tiktoken
```
## 使用方法
```
python soc_analyst_gui.py
```
### 快速开始
1. 打开 **Settings** 标签页。
2. 输入您的 **OpenAI API key** 和 **Azure Log Analytics Workspace ID**。
3. 选择一个模型(`gpt-5-mini` 用于节省成本,`gpt-5.2` 用于最强性能)。
4. 点击 **Connect**,然后点击 **Save Settings** 以在本地持久化您的凭据。
5. 切换到 **AI Investigation** 标签页,描述您想要搜寻的内容。
### 标签页指南
| 标签页 | 用途 |
|-----|---------|
| **Settings** | 配置 API key、Workspace ID 和模型。连接并保存。 |
| **AI Investigation** | 用通俗英语描述威胁。AI 生成、执行并分析 KQL 查询。 |
| **Manual KQL** | 直接针对您的工作区编写并运行您自己的 KQL 查询。 |
| **Findings** | 浏览检测到的威胁,包含 MITRE ATT&CK 映射、证据和建议。 |
| **Session Log** | 会话期间执行的每项操作的完整审计跟踪。 |
| **How to Use** | 包含提示、支持的表和键盘快捷键的内置指南。 |
### 支持的 Azure Log 表
| 表 | 覆盖范围 |
|-------|---------------|
| `DeviceProcessEvents` | 进程执行和命令行活动 |
| `DeviceLogonEvents` | 身份验证和登录事件 |
| `SigninLogs` | Azure AD 登录活动 |
| `SecurityAlert` | Microsoft Defender 安全警报 |
| `DeviceNetworkEvents` | 网络连接日志 |
其他表通过通用分析提示支持。
### MITRE ATT&CK 覆盖范围
威胁搜寻器专门检测:
- **T1059** — 命令和脚本解释器
- **T1003** — 操作系统凭据转储 (LSASS, Shadow Copy)
- **T1204** — 用户执行(可疑进程)
- **T1110** — 暴力破解(密码喷洒、撞库)
- **T1078** — 有效账户(合法凭据的异常使用)
- 以及跨所有战术和技术的一般异常检测。
### 导出结果
| 按钮 | 格式 | 位置 |
|--------|--------|----------|
| Export Findings (JSON) | 机器可读 JSON | Findings 标签页 |
| Export Findings (TXT) | 格式化文本报告 | Findings 标签页 |
| Export Findings (CSV) | 电子表格 / SIEM 导入 | Findings 标签页 |
| Export Output (TXT) | 原始输出面板文本 | AI / Manual 标签页 |
| Export Log | 会话日志 | Session Log 标签页 |
### 提示
- 在 AI Investigation 文本框中按 **Enter** 可快速生成查询。使用 **Shift+Enter** 换行。
- 使用右上角的 **STOP** 按钮取消任何长时间运行的操作。
- 每次分析后,发现结果会作为 `.jsonl` 文件自动保存在工作目录中。
## 项目结构
```
├── soc_analyst_gui.py # GUI application (main entry point)
├── agenticsocanalyst_py (7).py # Original CLI/Colab version
└── README.md
```
## CLI 版本
还包含一个命令行版本(`agenticsocanalyst_py (7).py`),用于终端或 Google Colab。它需要 `colorama` 作为额外依赖项:
```
pip install colorama requests
```
## 许可证
本项目按原样提供,用于安全研究和教育目的。
标签:AI 安全, AI 编程, Azure Monitor, Azure 日志分析, GPT 安全分析, KQL 查询, OpenAI, Petitpotam, Python GUI, SIEM 集成, SOC 工具, 不可变基础设施, 内存规避, 安全报告导出, 安全运营中心, 攻击分析, 网络映射, 自动化威胁检测, 逆向工具