Meluukoi/soc-incident-response-lab
GitHub: Meluukoi/soc-incident-response-lab
基于 Splunk、Sysmon 和 Windows 遥测数据的 SOC 事件响应实验项目,通过多个真实安全场景演示告警分析和攻击时间线重建的完整调查流程。
Stars: 0 | Forks: 0
# SOC 事件响应实验
使用 Splunk、Sysmon 和 Windows 遥测数据进行事件响应调查,以分析安全警报、重建攻击时间线并记录调查结果。
## 概述
本项目主要关注使用 Splunk Enterprise、Sysmon 和 Windows 事件日志进行事件响应调查。
目标是在家庭实验环境中收集的真实遥测数据的基础上,分析安全警报、调查可疑活动、重建攻击时间线并记录调查结果。
## 实验环境
### 使用工具
- Splunk Enterprise
- Splunk Universal Forwarder
- Sysmon
- Windows Event Viewer
- PowerShell
- Wireshark
### 数据来源
- Microsoft-Windows-Sysmon/Operational
- Windows 安全日志
- Windows 系统日志
## 事件响应场景
### 事件 1:可疑的 PowerShell 活动
**状态:** 已完成
### 事件 2:身份验证调查
**状态:** 已完成
### 事件 3:未经授权的账户创建
**状态:** 已完成
### 事件 4:特权组成员身份更改
**状态:** 已完成
### 事件 5:账户删除活动
## **状态:** 已完成
## 调查方法论
每个事件都遵循结构化的工作流程:
```
Alert
↓
Investigation
↓
Timeline Reconstruction
↓
Findings
↓
Impact Assessment
↓
MITRE ATT&CK Mapping
↓
Recommendations
```
# 事件 1:可疑的 PowerShell 活动
## 警报
观察到 PowerShell 进程生成了 `whoami.exe`,这是一个通常用于识别系统上当前用户上下文的命令。
此行为可能表明攻击者在获得主机访问权限后进行了侦察活动。
## 调查目标
确定是否使用 PowerShell 执行了侦察命令,并识别相关的用户账户、进程活动和执行时间线。
## 警报查询
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"WindowsPowerShell" "whoami"
```
## 调查
使用 Sysmon 事件 ID 1 成功收集并分析了进程创建事件。
调查确认了以下信息:
- 父进程:powershell.exe
- 子进程:whoami.exe
- 执行用户账户
- 进程命令行
- 执行时间戳
分析表明,PowerShell 生成了 whoami.exe,该命令通常用于识别系统上的当前用户上下文。
虽然此行为可能是合法的管理操作,但在攻击者初始访问后的侦察阶段也经常观察到此类行为。
## 时间线重建
| 时间 | 活动 |
|--------|--------|
| T0 | powershell.exe 执行 |
| T1 | PowerShell 生成 whoami.exe |
| T2 | 获取用户上下文信息 |
## 调查结果
调查确认了在该端点上 PowerShell 执行了 whoami.exe。
在调查期间未观察到其他可疑的子进程。
此活动演示了攻击者或管理员如何使用内置的 Windows 实用程序来收集有关当前用户上下文的信息。
## 影响评估
- 未观察到持久化的证据
- 未观察到权限提升的证据
- 未观察到执行恶意 payload 的证据
风险等级:低
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| System Owner/User Discovery | T1033 |
| PowerShell | T1059.001 |
## 建议
- 监控 PowerShell 进程活动。
- 调查涉及 PowerShell 的异常父子进程关系。
- 将 PowerShell 执行与其他侦察活动进行关联。
- 尽可能启用 PowerShell 日志记录。
## 截图
### PowerShell 侦察活动
通过 Sysmon 事件 ID 1 进程创建遥测识别到的 PowerShell 生成 whoami.exe 的活动。

# 事件 2:失败的身份验证调查
## 警报
通过 Windows 安全事件 ID 4625 识别到多次失败的身份验证尝试。
失败的登录活动可能表明存在密码猜测、暴力破解尝试、配置错误的服务或未经授权的访问尝试。
## 调查目标
确定失败的身份验证尝试的来源,识别目标账户,分析登录类型,并评估该活动是否表明存在恶意行为。
## 警报查询
```
source="WinEventLog:Security"
EventCode=4625
```
## 调查
使用 Windows 安全事件 ID 4625 成功收集并分析了失败的身份验证事件。
调查确认了以下信息:
- 目标用户账户
- 登录类型
- 身份验证包
- 失败原因
- 源工作站信息
- 关联的状态码
对事件 ID 4625 遥测数据的分析提供了对端点上发生的未成功身份验证活动的可见性。
## 时间线重建
| 时间 | 活动 |
|--------|--------|
| T0 | 发起身份验证请求 |
| T1 | Windows 拒绝身份验证请求 |
| T2 | 生成事件 ID 4625 |
| T3 | 失败登录记录在 Splunk 中 |
## 调查结果
调查识别到了针对本地用户账户的失败身份验证尝试。
分析表明:
- 用户身份验证失败
- 审核失败事件
- 登录类型信息
- 失败状态码
此活动演示了 Windows 如何记录未成功的身份验证尝试,并为识别密码攻击和未经授权的访问尝试提供了有价值的上下文。
## 影响评估
- 未观察到成功的身份验证
- 未观察到权限提升
- 未观察到持久化
风险等级:中
重复的失败登录可能表明存在密码喷射或暴力破解活动,应进行监控以防升级。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| Brute Force | T1110 |
## 建议
- 监控重复的身份验证失败尝试。
- 调查出现过多失败尝试的账户。
- 审查源工作站信息。
- 将失败登录与成功登录事件进行关联。
- 在适当情况下实施账户锁定策略。
## 截图
### 失败的身份验证调查
Windows 安全事件 ID 4625 显示了通过 Splunk 收集的失败身份验证活动、登录详细信息和失败信息。

# 事件 3:未经授权的账户创建调查
## 警报
在端点上创建了一个新的本地用户账户。
账户创建活动可能表明是合法的管理操作,或者是攻击者建立的未经授权的持久化机制。
## 调查目标
确定创建了哪个账户,识别负责该操作的用户,并评估账户创建活动是代表合法管理还是潜在的恶意行为。
## 警报查询
```
source="WinEventLog:Security"
EventCode=4720
```
## 调查
使用 Windows 安全事件 ID 4720 成功收集并分析了用户账户创建事件。
调查确认了以下信息:
- 新建的用户账户
- 负责创建账户的用户
- 安全标识符 (SID)
- 账户创建时间戳
- 系统信息
对事件 ID 4720 遥测数据的分析提供了对端点上发生的账户生命周期活动的可见性。
调查确认创建了一个名为 `labuser` 的新本地账户。
## 时间线重建
| 时间 | 活动 |
|--------|--------|
| T0 | 发起账户创建 |
| T1 | 创建新的本地用户账户 |
| T2 | Windows 生成事件 ID 4720 |
| T3 | 事件被索引到 Splunk 中 |
## 调查结果
调查确认了本地账户 `labuser` 的创建。
分析表明:
- 账户名称:labuser
- 事件 ID:4720
- 审核结果:成功
- 执行操作的用户:milad
此活动演示了 Windows 如何记录账户创建事件,并为管理员的账户管理操作提供了可见性。
## 影响评估
- 成功创建了新的本地账户
- 如果未经授权,则为潜在的持久化机制
- 在此次调查中未观察到权限提升的证据
风险等级:中
应始终审查账户创建活动,以确保其授权性和合法性。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| Create Account | T1136 |
| Local Account | T1136.001 |
## 建议
- 监控用户账户创建活动。
- 调查新建的账户。
- 验证账户所有权和授权。
- 将账户创建活动与权限更改和身份验证事件进行关联。
## 截图
### 账户创建调查
Windows 安全事件 ID 4720 显示了新本地用户账户的创建及相关审核详细信息。

# 事件 4:特权组成员身份更改调查
## 警报
一个用户账户被添加到特权本地安全组中。
特权组成员身份的更改可能表明是合法的管理活动,或者是试图在系统上提升权限的行为。
## 调查目标
确定哪个账户被添加到了特权组,识别负责该更改的用户,并评估该修改的安全影响。
## 警报查询
```
source="WinEventLog:Security"
EventCode=4732
```
## 调查
使用 Windows 安全事件 ID 4732 成功收集并分析了安全组成员身份修改事件。
调查确认了以下信息:
- 被添加到特权组的用户账户
- 组名及相关权限
- 安全标识符 (SID)
- 账户修改活动
- 负责该更改的用户
对事件 ID 4732 遥测数据的分析提供了对端点上发生的权限修改活动的可见性。
调查确认了账户 `labuser` 被添加到了本地 `Administrators` 组中。
## 时间线重建
| 时间 | 活动 |
|--------|--------|
| T0 | 发起组成员身份修改 |
| T1 | 用户账户被添加到 Administrators 组 |
| T2 | Windows 生成事件 ID 4732 |
| T3 | 事件被索引到 Splunk 中 |
## 调查结果
调查确认了账户 `labuser` 被添加到了本地 `Administrators` 组中。
分析表明:
- 添加的账户:labuser
- 组名:Administrators
- 事件 ID:4732
- 审核结果:成功
- 执行操作的用户:milad
此活动演示了 Windows 如何记录特权组成员身份的更改,并为权限提升的可能性提供了可见性。
## 影响评估
- 用户账户获得了管理权限
- 增加了对系统资源的访问权限
- 如果未经授权,则为潜在的权限提升途径
风险等级:高
应审查特权组成员身份的更改,以确保其授权性和合法性。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| Account Manipulation | T1098 |
## 建议
- 监控特权组成员身份的更改。
- 验证管理员权限分配的授权情况。
- 审查新的特权账户。
- 将权限更改与账户创建和身份验证活动进行关联。
## 截图
### 特权组成员身份调查
Windows 安全事件 ID 4732 显示了用户账户被添加到本地 Administrators 组及相关审核详细信息。

# 事件 5:账户删除调查
## 警报
从端点上删除了一个本地用户账户。
账户删除活动可能代表是合法的管理操作,或者是试图删除先前账户使用情况的证据。
## 调查目标
确定删除了哪个账户,识别负责该操作的用户,并评估删除活动是代表合法管理还是潜在的恶意行为。
## 警报查询
```
source="WinEventLog:Security"
EventCode=4726
```
## 调查
使用 Windows 安全事件 ID 4726 成功收集并分析了用户账户删除事件。
调查确认了以下信息:
- 被删除的用户账户
- 负责删除操作的用户
- 安全标识符 (SID)
- 账户生命周期活动
- 相关的系统信息
对事件 ID 4726 遥测数据的分析提供了对端点上发生的账户移除活动的可见性。
调查确认了账户 `labuser` 已从本地系统中删除。
## 时间线重建
| 时间 | 活动 |
|--------|--------|
| T0 | 发起账户删除 |
| T1 | 移除用户账户 |
| T2 | Windows 生成事件 ID 4726 |
| T3 | 事件被索引到 Splunk 中 |
## 调查结果
调查确认了本地账户 `labuser` 的删除。
分析表明:
- 删除的账户:labuser
- 事件 ID:4726
- 审核结果:成功
- 执行操作的用户:milad
此活动演示了 Windows 如何记录账户删除事件,并为账户生命周期管理提供了可见性。
## 影响评估
- 成功移除了用户账户
- 撤销了与该账户关联的访问权限
- 在调查期间未发现恶意活动的证据
风险等级:中
应审查账户删除活动,以确保其授权性和合法性。
## MITRE ATT&CK 映射
| 技术 | ID |
|------------|------------|
| Create Account | T1136 |
| Local Account | T1136.001 |
## 建议
- 监控账户删除活动。
- 验证账户移除操作的授权情况。
- 审查账户生命周期事件是否存在异常模式。
- 将账户删除与账户创建和权限修改活动进行关联。
## 截图
### 账户删除调查
Windows 安全事件 ID 4726 显示了本地用户账户的删除及相关审核详细信息。

# 仪表板 1:身份验证监控
## 目标
使用 Windows 安全事件日志监控成功和失败的身份验证活动,以识别身份验证趋势、失败登录尝试和账户使用模式。
## 数据来源- Windows 安全日志
- 事件 ID 4624(成功登录)
- 事件 ID 4625(失败登录)
## 仪表板组件
### 随时间变化的成功登录
使用 Windows 安全事件 ID 4624 显示成功的身份验证活动。
**搜索:**
```
source="WinEventLog:Security"
EventCode=4624
| timechart count
```
### 随时间变化的失败登录
使用 Windows 安全事件 ID 4625 显示失败的身份验证尝试。
**搜索:**
```
source="WinEventLog:Security"
EventCode=4625
| timechart count
```
### 各账户的身份验证活动
按用户账户分组显示身份验证活动。
**搜索:**
```
source="WinEventLog:Security"
(EventCode=4624 OR EventCode=4625)
| stats count by Account_Name
| sort - count
```
### 身份验证次数最多的账户
显示在身份验证事件中最常观察到的账户。
**搜索:**
```
source="WinEventLog:Security"
(EventCode=4624 OR EventCode=4625)
| top Account_Name
```
## 调查结果
该仪表板提供了以下方面的可见性:
- 成功的身份验证活动
- 失败的身份验证尝试
- 常用账户
- 随时间变化的身份验证趋势
- 用户账户活动模式
该仪表板可以帮助分析师识别异常的身份验证行为、暴力破解尝试、未经授权的账户使用以及可疑的登录活动。
## 截图
### 身份验证监控仪表板
显示成功登录、失败登录、账户活动和身份验证次数最多账户的身份验证监控仪表板。

# 仪表板 2:进程活动监控
## 目标
使用 Sysmon 事件 ID 1 监控进程创建活动,以识别进程执行趋势、PowerShell 使用情况、管理命令执行以及频繁执行的进程。
## 数据来源
- Microsoft-Windows-Sysmon/Operational
- Sysmon 事件 ID 1(进程创建)
## 仪表板组件
### 随时间变化的进程执行
随时间显示 Sysmon 进程创建活动。
**搜索:**
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"1 "
| timechart count
```
### 执行次数最多的进程
显示在 Sysmon 进程创建事件中最常执行的进程。
**搜索:**
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"1 "
| rex field=_raw "Name='Image'>(?[^<]+)"
| top Image
```
### 随时间变化的 PowerShell 活动
显示通过 Sysmon 进程创建事件观察到的 PowerShell 执行活动。
**搜索:**
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"1 "
powershell.exe
| timechart count
```
### 管理命令活动
显示常见管理和命令行工具的执行活动。
**搜索:**
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"1 "
(whoami.exe OR powershell.exe OR cmd.exe)
| stats count by host
```
## 调查结果
该仪表板提供了以下方面的可见性:
- 进程创建活动
- 频繁执行的进程
- PowerShell 执行趋势
- 管理命令使用情况
- 端点进程行为
该仪表板可以帮助分析师在调查和威胁狩猎活动中识别可疑的进程执行、PowerShell 滥用、命令行活动以及异常的端点行为。
## 截图
### 进程活动监控仪表板
显示进程创建活动、执行次数最多的进程、PowerShell 活动以及管理命令执行的进程活动监控仪表板。

# 仪表板 3:网络活动监控
## 目标
使用 Sysmon 事件 ID 3 监控网络连接活动,以识别通信模式、最常连接的目标、常用端口以及生成网络流量的进程。
## 数据来源
- Microsoft-Windows-Sysmon/Operational
- Sysmon 事件 ID 3(网络连接)
## 仪表板组件
### 随时间变化的网络连接
随时间显示 Sysmon 网络连接活动。
**搜索:**
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"3 "
| timechart count
```
### 目标 IP 地址排行
显示在 Sysmon 事件 ID 3 网络连接事件中最常连接的目标 IP 地址。
**搜索:**
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"3 "
| rex field=_raw "Name='DestinationIp'>(?[^<]+)"
| top DestinationIp
```
### 目标端口排行
显示在 Sysmon 事件 ID 3 网络连接事件中最常观察到的目标端口。
**搜索:**
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"3 "
| rex field=_raw "Name='DestinationPort'>(?[^<]+)"
| top DestinationPort
```
### 各进程的网络活动
显示通过 Sysmon 事件 ID 3 遥测观察到的负责生成网络连接的进程。
**搜索:**
```
source="WinEventLog:Microsoft-Windows-Sysmon/Operational"
"3 "
| rex field=_raw "Name='Image'>(?[^<]+)"
| stats count by Image
| sort - count
```
## 调查结果
该仪表板提供了以下方面的可见性:
- 随时间变化的网络连接活动
- 频繁连接的目标 IP 地址
- 常用网络端口
- 生成网络流量的进程
- 端点通信行为
该仪表板可以帮助分析师在威胁狩猎和事件响应活动中识别可疑的出站连接、异常的网络目标、不正常的端口使用情况以及负责网络通信的进程。
## 截图
### 网络活动监控仪表板
显示网络连接、目标 IP 地址、目标端口和进程生成的网络活动的网络活动监控仪表板。

## 注意
一些 Sysmon 字段存储在原始 XML 事件数据中。我们使用 Splunk `rex` 实施了自定义字段提取,以提取与网络相关的字段用于仪表板可视化和分析。
标签:AI合规, 安全运营, 库, 应急响应, 扫描框架, 数字取证, 自动化脚本