hamishdean/CTF_threat_hunting_aid

GitHub: hamishdean/CTF_threat_hunting_aid

一款面向SOC分析师和CTF参赛者的AI驱动桌面应用,整合了自然语言转KQL查询、Azure日志分析、本地文件威胁搜寻和自动化事件报告生成功能。

Stars: 0 | Forks: 0

# 统一 SOC 分析师与威胁猎手 (CTF 版) 一款面向安全运营中心 (SOC) 分析师和 CTF 参赛者的桌面 GUI 应用程序。它将 AI 驱动的 KQL 查询生成、Azure Sentinel 日志分析、基于文件的威胁搜寻以及自动化事件报告整合到一个统一的界面中。 ## 概述 该工具弥合了 CTF Flag 寻找与真实 SOC 调查工作流之间的差距。它使用 OpenAI GPT 模型从自然语言生成 KQL 查询,分析日志数据以查找入侵指标,并生成专业的事件报告——所有这些都可以通过标签页式的 tkinter 界面完成。 ### 主要功能 - **自然语言到 KQL 翻译** —— 描述您要寻找的内容,AI 会针对 30 多个 Azure Sentinel / Defender 表生成有效的 Kusto 查询。 - **实时 Azure Log Analytics 执行** —— 直接在应用程序中针对您的工作区运行生成的(或手写的)KQL 并获取结果。 - **基于文件的威胁搜寻** —— 加载 PDF、DOCX、TXT 或 JSONL 日志导出文件,让 AI 逐页扫描其中的 Flag 和 IOC。 - **AI 辅助发现验证** —— 每个候选发现都会呈现给人工审查,然后才会提升为已验证的 Flag。 - **Flag 库与叙述构建器** —— 积累已验证的发现,并让 AI 将其综合成连贯的事件叙述。 - **DOCX 报告生成** —— 将单个发现的详细描述(包含截图、KQL 查询和证据)导出为格式化的 Word 文档。 - **事件报告生成器** —— 将所有发现、提示和上下文输入到模板驱动的 AI 报告编写器中。 - **完整会话保存/加载** —— 将您的整个调查状态(配置、提示、Flag、查询、报告)持久化到 JSON 文件中。 ## 截图 *该应用程序使用包含以下标签页的标签式界面:* | 标签页 | 用途 | |-----|---------| | ⚙️ Configuration | API 密钥和工作区 ID 设置 | | 🧩 Flag Hints | 添加 CTF 提示;AI 会建议寻找目标并生成入门 KQL | | 🕵️ Threat Hunter | 加载日志文件,运行 AI 驱动的逐页分析,验证/丢弃发现 | | 🛡️ Azure SOC Agent | 针对实时 Azure 的自然语言 → KQL → 执行 → AI 分析流水线 | | 🏦 Flag Bank | 连接所有已验证发现的 AI 生成叙述 | | 🏆 Flag Summary | 所有已验证 Flag 的概览 | | 📝 Report Editor | 构建包含截图的逐条发现条目,用于 Word 导出 | | 📑 Incident Report Generator | 涵盖完整调查的模板驱动 AI 报告 | | 💾 Session Manager | 保存和恢复完整的调查状态 | | 📖 How-To Guide | 内置使用指南 | ## 需求 ### Python 版本 - Python 3.9+ ### 依赖项 ``` pip install openai pypdf azure-identity azure-monitor-query pandas colorama python-docx ``` ### 外部服务 | 服务 | 用途 | 配置方法 | |---------|-------------|-----------------| | **OpenAI API key** | 所有 AI 功能(KQL 生成、日志分析、报告编写) | 在 Configuration 标签页中输入或设置 `OPENAI_API_KEY` 环境变量 | | **Azure Log Analytics Workspace ID** | SOC Agent 标签页(实时 KQL 执行) | 在 Configuration 标签页中输入 | | **Azure credentials** | SOC Agent 标签页 | 运行 `az login` 或设置 Azure 凭证环境变量 (`DefaultAzureCredential`) | ## 安装 ``` # Clone 仓库 git clone https://gitlab.com//unifiedsoctool.git cd unifiedsoctool # 安装依赖 pip install openai pypdf azure-identity azure-monitor-query pandas colorama python-docx # 运行 python unifiedsoctool.py ``` ## 使用 ### 快速入门工作流 1. **配置** —— 打开 ⚙️ Configuration 标签页并输入您的 OpenAI API 密钥(以及可选的 Azure Workspace ID)。 2. **添加提示** —— 在 🧩 Flag Hints 中,粘贴 CTF 挑战提示。AI 将建议寻找哪些工件并生成入门 KQL 查询。 3. **设定调查重点** —— 使用顶部栏的 flag 选择器告诉 AI 您当前正在处理哪个提示/flag。 4. **搜寻** —— 选择以下方式之一: - 将日志文件加载到 🕵️ Threat Hunter 并点击 **Start Hunt** 进行基于文件的分析,或 - 使用 🛡️ Azure SOC Agent 通过自然语言查询实时 Azure Sentinel 数据。 5. **验证发现** —— 审查每个 AI 候选项。点击 ✅ Verify 将其提升,或点击 ❌ Discard 跳过。 6. **构建上下文** —— 前往 🏦 Flag Bank 并点击 **Update Understanding with AI**,将所有发现综合成叙述。 7. **生成报告** —— 使用 📝 Report Editor 编写包含截图的详细逐项发现描述,或使用 📑 Incident Report Generator 生成完整的调查摘要。 8. **保存会话** —— 使用 💾 Session Manager 将所有内容持久化到 JSON 文件。 ### SOC Agent —— 自然语言查询 在 🛡️ Azure SOC Agent 标签页中,输入如下查询: - `"Show failed logins for admin accounts in the last 7 days"` (显示过去 7 天内管理员帐户的失败登录) - `"Find devices with suspicious PowerShell execution"` (查找具有可疑 PowerShell 执行的设备) - `"Search for lateral movement activity"` (搜索横向移动活动) - `"Any emails with malicious attachments this week"` (本周是否有包含恶意附件的电子邮件) AI 将您的请求翻译为 KQL,针对 Azure Log Analytics 执行,并分析结果以查找发现。 **自愈查询:** 如果查询失败,点击 **Self-Heal Last KQL**,AI 将自动诊断并修复语法错误。 ### 支持的 Azure 表 KQL 生成器开箱即支持 30 多个表,包括: `DeviceProcessEvents`、`DeviceNetworkEvents`、`DeviceLogonEvents`、`DeviceFileEvents`、`DeviceRegistryEvents`、`EmailEvents`、`EmailAttachmentInfo`、`SigninLogs`、`AuditLogs`、`SecurityAlert`、`SecurityIncident`、`SecurityEvent`、`Syslog`、`CommonSecurityLog`、`CloudAppEvents`、`IdentityLogonEvents`、`BehaviorAnalytics`、`Anomalies`、`ThreatIntelligenceIndicator` 等。 您工作区中的任何有效表名也将起作用 —— AI 不限于内置列表。 ### 支持的 AI 模型 - `gpt-4o` (默认) - `gpt-4o-mini` - `gpt-5.2` - `gpt-5-mini` 每个标签页都有自己的模型选择器,因此您可以将更快的模型用于简单任务,将更强大的模型用于复杂分析。 ## 项目结构 ``` unifiedsoctool.py # Single-file application — all logic, UI, and prompts ``` ### 架构 该应用程序在单个文件内分为四层: 1. **共享配置与工具** —— 文件提取 (PDF/DOCX/TXT)、会话日志记录、输出格式化 2. **提示词与 AI 工具** —— 用于 KQL 生成、威胁搜寻和事件报告的系统提示词;Azure Log Analytics 执行;AI 分析功能 3. **报告生成器逻辑** —— 用于构建和导出 DOCX 报告的 `ThreatHuntReporterTab` 类 4. **GUI 应用程序** —— 包含所有标签页和应用程序状态的 `UnifiedSOCTool` 类 ## 故障排除 | 问题 | 解决方案 | |-------|----------| | `"No results found"` | 尝试更宽的时间范围或更广泛的搜索词。默认为最长 1 年。 | | `"Query failed"` | 点击 **Self-Heal Last KQL** —— AI 将诊断并修复语法。 | | `"API key error"` | 验证您的 OpenAI 密钥是否有效且有额度。 | | `"Azure auth error"` | 在终端中运行 `az login`,或设置 Azure 凭证环境变量。 | | `"Missing library"` | 运行 [依赖项](#dependencies) 下列出的 `pip install` 命令。 | ## 许可证 *GNU General Public License v3 (GPLv3)* ## 贡献 1. Fork 本仓库 2. 创建一个功能分支 (`git checkout -b feature/my-feature`) 3. 提交您的更改 (`git commit -m 'Add my feature'`) 4. 推送到分支 (`git push origin feature/my-feature`) 5. 打开一个 Merge Request
标签:Azure Defender, Azure Sentinel, DAST, EDR, GPT, GUI, IOC, KQL, Kusto查询语言, OpenAI, Petitpotam, Python, Tkinter, 人工智能, 入侵指标, 内存规避, 取证, 安全运营中心, 库, 应急响应, 恶意软件分析, 攻击分析, 数字取证, 无后门, 桌面应用, 流量嗅探, 漏洞管理, 用户模式Hook绕过, 网络安全, 网络安全审计, 网络映射, 网络调试, 脆弱性评估, 自动化, 自动化脚本, 逆向工具, 隐私保护