Beginn-coder/AI-assisted-Detection-Engineering-Incident-Response
GitHub: Beginn-coder/AI-assisted-Detection-Engineering-Incident-Response
一个模拟现代SOC运营的AI辅助检测工程与事件响应平台,通过Detection-as-Code、SOAR自动化和LLM驱动的调查辅助,实现从威胁检测到事件闭环的完整安全运营工作流。
Stars: 0 | Forks: 0
# 🛡️AI辅助的检测工程与事件响应
AI辅助的检测工程与事件响应平台,具备 Detection-as-Code、Sigma 规则、GitHub Actions CI/CD、Splunk、Wazuh、Microsoft Sentinel、SOAR 自动化、Jira 集成,以及由 LLM 驱动的分诊、调查、报告和检测调优功能。
## 📖 概述
本项目展示了一个AI辅助的检测工程与事件响应平台的设计与实现,该平台模拟了现代的安全运营中心 (SOC)。该平台将 Detection-as-Code 原则与自动化事件响应相结合,允许通过统一的工作流来开发、测试、版本控制、部署、调查安全检测,并进行持续改进。
该环境集成了 Windows 端点、Sysmon、Splunk 和 Atomic Red Team,以生成和收集安全遥测数据。Sigma 规则通过基于 Git 的 CI/CD pipeline 进行开发和管理,并自动验证和转换为特定于 SIEM 的检测逻辑。当检测到恶意活动时,SOAR 工作流将统筹进行证据收集,创建 Jira 事件工单,并启动自动响应操作。
集成的 LLM Security Copilot 通过执行告警分诊、ATT&CK 映射、时间线重建、调查辅助、playbook 生成、事件报告和检测调优建议,来增强分析师的工作流。AI 并非为了取代分析师,而是辅助决策并减少重复性任务,从而实现更快速、更一致的事件响应。
该项目旨在反映现代安全运营中心使用的工作流,展示在检测工程、事件响应、安全自动化、威胁检测和AI辅助安全运营方面的实用技能。
### 流程分解
1. **遥测数据摄取:** Windows 目标虚拟机通过 Microsoft Sysmon 记录进程执行遥测数据,并将其转发至 Splunk Enterprise。
2. **告警触发:** Splunk 检测到可疑的执行行为(例如 `whoami.exe` 或本地账户发现),并将 JSON payload 发送至 Tines Webhook Listener。
3. **自动化事件创建:** Tines 解析告警遥测数据,格式化 AI 分析师分诊报告,并使用 Jira 的 REST API 创建 Jira 任务工单。
4. **分析师批准循环:** SOC 分析师审查 Jira 工单。为了执行遏制操作,分析师只需将 `auto-isolate` 标签添加到 Jira 工单中。
5. **统筹编排的主机隔离:** Jira 将 webhook 发送回 Tines。Tines 通过条件规则验证事件,执行主机网络隔离操作,并自动将格式化的 Wiki Markdown 遏制审计评论发布回 Jira 工单。
## 🧰 技术栈
* **Hypervisor:** Oracle VM VirtualBox
* **目标端点:** Windows 10 虚拟机
* **SIEM:** Splunk Enterprise 和 Splunk Universal Forwarder
* **遥测代理:** Microsoft Sysmon (System Monitor)
* **SOAR 平台:** Tines (Cloud Edition)
* **工单与事件管理:** Jira Software Cloud
## 🛠️ 阶段 1:环境设置与虚拟机
## 第 1 部分:虚拟机设置
我们将创建 2 台虚拟机:Windows 10 和 Splunk(SIEM)。
## 🖥️ 虚拟机配置
| 虚拟机名称 | 角色 | 操作系统 | CPU | 内存 | 硬盘大小 |
|--------------------|------------------|----------------|------|-------|------------------|
| Windows-10 | 受害者/端点 | Windows 10 | 2 | 4 GB | 60 GB (默认) |
| Splunk | SIEM | Ubuntu Server | 2 | 8 GB | 100 GB |
## ⚙️ 虚拟机创建步骤
对于每台虚拟机:
1. 遵循您的 hypervisor 的**“新建虚拟机”向导**。
2. 将安装程序指向相应的 ISO 文件。
3. 按照 [虚拟机配置表](#🖥️-virtual-machine-configuration) 中的说明分配资源。
4. 将所有虚拟机的**网络适配器**设置为 **NAT** 和 **Host-Only Adapter**。
5. 打开虚拟机电源以开始安装操作系统。
### A. Windows 10 (Windows-10)
* **操作系统:** Windows 10 (64-bit)
* **内存:** 4096 MB
* **处理器:** 2 vCPUs
1. 遵循 Windows 设置向导。
2. 出现提示时,选择:
- **“我没有产品密钥。”**
- **Windows 10 Pro**
- **自定义:仅安装 Windows**
3. 在初始设置 (OOBE) 期间:
- 设置为个人使用 → 离线账户 → 有限的体验。
- 创建一个本地用户(例如 `mydfir`)并设置密码。
- 拒绝所有的隐私和遥测选项。
4. 进入桌面后,启用远程桌面:
- 开始 → *Remote desktop settings* → 将**启用远程桌面**切换为**开**。
- 禁用 Windows Defender 实时保护(仅用于实验室测试目的)。
5. 打开 `cmd` 并获取虚拟机的 IP 地址:ipconfig
### B. Ubuntu 服务器
* **操作系统:** Ubuntu (64-bit)
* **内存:** 8192 MB
* **处理器:** 4 vCPUs
1. 遵循 Ubuntu Server 设置向导。
2. 对于语言、键盘和网络保留默认设置 (DHCP)。
3. 对于存储,选择使用整个磁盘。
4. 设置您的用户(例如,姓名:,服务器名称:,用户名:)。
5. 关键步骤:出现提示时,勾选安装 OpenSSH server 的复选框。
6. 等待安装完成并重启。
7. 登录到控制台,获取 IP 地址:ip a,并运行系统更新:sudo apt-get update && sudo apt-get upgrade -y
注意:请记录所有虚拟机的 IP 地址。
## 🔬 第 2 部分:Splunk 安装与配置
### 1. 下载并安装 Splunk
1. 在您的主机上,转到 Splunk Enterprise 下载页面并复制该文件的链接。
2. 在您的 mydfir-splunk 虚拟机的 SSH 会话中,下载该文件:wget -O splunk.deb "https://download.splunk.com/..." (请记住您的链接会有所不同)
3. 安装软件包:sudo dpkg -i splunk.deb
4. 启动 Splunk 并接受许可协议:sudo /opt/splunk/bin/splunk start
5. 设置 Splunk 开机自启:sudo /opt/splunk/bin/splunk enable boot-start -user splunk
### 2. 配置 Splunk GUI
在您的主机浏览器上,访问 http://your-splunk-vm-ip:8000 并使用您刚刚创建的凭据登录。
### A. 启用数据接收
1. 转到 Settings > Forwarding & receiving。
2. 在“Receive data”下,点击 Configure receiving。
3. 点击 New Receiving Port,输入 9997,然后点击 Save。
## 第 3 部分:安装 Sysmon 和 Splunk Universal Forwarder
### 步骤 1. 安装 Microsoft Sysmon
在您的 Windows 虚拟机上,通过访问 https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon 安装 Sysmon。接下来,导航到 https://github.com/olafhartong/sysmon-modular 向下滚动并选择 sysmonconfig.xml。点击“raw”,并保存文件。解压 sysmon 文件,复制解压后目录的 URL,将 sysmonconfig.xml 文件放入解压后的 Sysmon 文件夹中。以管理员身份打开 Powershell,并导航到该目录。运行 .\Sysmon64.exe -i ..\sysmonconfig.xml,然后点击同意。
### 2. 安装 Splunk Universal Forwarder
1. 在 Windows 虚拟机上下载并安装 Splunk Universal Forwarder。
- 遵循设置向导:
- 接受许可协议。
- 选择 Splunk Enterprise (本地部署)。
- 用户名:(forwarder 的本地用户)。
- 设置密码。
- Deployment Server:留空。
- Receiving Indexer:
Host:您的 Splunk 虚拟机 IP
Port:9997
- 点击下一步并进行安装。
2. 创建新 Index
- 前往 Settings > Indexes。
- 点击 New Index。
- 将 Index Name 设置为 [project-name] 然后点击 Save。
3. 安装 Windows Add-on
- 前往 Apps > Find More Apps。
- 搜索 Windows event 并安装 Splunk Add-on for Microsoft Windows。
- 您需要输入您的 splunk.com 凭据(而非您的服务器凭据)才能进行安装。
最后,为 Splunk 虚拟机拍摄快照并将其命名为 Splunk-installed。
### ⚡ 阶段 2:Splunk 告警与 Webhook 摄取
## 第 1 部分:将 Windows 遥测数据发送至 Splunk
1. 在 Windows 10 虚拟机上,导航至 C:\Program Files\SplunkUniversalForwarder\etc\system\local
2. 打开记事本并创建一个新文件
3. 前往 [inputs.conf](https://drive.google.com/file/d/1-qYp4oCrT1BqhG1oaprQfkFhgFIHiWEm/view) 并复制所有文本,将其粘贴到记事本文件中,然后将其作为 inputs.conf 保存在 C:\Program Files\SplunkUniversalForwarder\etc\system\local 下
4. 以管理员身份运行服务应用。
5. 找到 SplunkForwarder 服务:
- 右键点击 > 属性 > 登录 选项卡。
- 选择本地系统账户并点击应用。
- 右键点击该服务并重启。
验证操作:
1. 返回您的 Splunk Web 界面并点击 Search & Reporting。
2. 在搜索栏中,输入 index="mydfir-project" 并将时间范围设置为过去 24 小时
您应该能够看到来自 Windows 10 虚拟机的事件
标签:DLL 劫持, 大语言模型, 安全运营, 库, 应急响应, 扫描框架