dawidmarch/soc-lab-splunk
GitHub: dawidmarch/soc-lab-splunk
基于 Splunk Enterprise 的 SIEM 实验环境,在 VirtualBox 隔离网络中实现 Windows 终端日志的集中采集、索引与安全分析。
Stars: 0 | Forks: 0
# SOC-LAB-SPLUNK
本项目展示了基于 Splunk Enterprise 解决方案的 SIEM 系统的部署与配置过程。该实验室的目标是在 Windows 10 上的代理(Universal Forwarder)与 Kali Linux 上的索引服务器之间建立稳定的通信,以实现日志的集中收集和数据流的验证。
## 硬件与宿主机操作系统
* **宿主机操作系统:** Windows 10 Pro (64-bit)
* **处理器 (CPU):** Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
* **内存 (RAM):** 32.0 GB
* **硬盘:** SSD Patriot P210 512GB
## 软件栈
* **Hypervisor:** Oracle VirtualBox (版本 7.2.10) – 用于创建隔离网络,虚拟机在 `192.168.0.0/24` 子网内进行通信,从而提供稳定的实验室环境。
* **Splunk Indexer (服务器):** Kali Linux – `192.168.0.105`(主 Splunk Enterprise 实例,通过端口 9997 接收日志)。
* **Endpoint (受害者):** Windows 10 Pro – `192.168.0.110`(已安装 Splunk Universal Forwarder)。
* **攻击者系统:** Kali Linux – `192.168.0.107`(用于生成模拟攻击流量的平台)。
## 1. 技术实现
部署过程需要对数据管线进行精确配置,并排除网络障碍。
### 连接配置
* **Splunk Receiver:** 在 Linux 服务器 (`192.168.0.105`) 上配置了端口 `9997`,作为接收代理日志的主要入口。
* **Universal Forwarder:** 在 Windows 主机 (`192.168.0.110`) 上部署了 `outputs.conf` 和 `inputs.conf` 配置,指定索引服务器为数据传输的目标。
**Windows 上的 `outputs.conf` 配置:**
```
[tcpout]
defaultGroup = default-autolb-group
[tcpout:default-autolb-group]
server = 192.168.0.105:9997
```
故障排除:关键阶段是网络诊断,包括在 Linux 系统中开放 9997 端口(管理 iptables 及 nftables 规则)以及解决 Windows 系统中的权限问题。在 .md 中
## 2. 数据流验证("Oneshot" 测试)
为了确认管线是否正常工作,使用 `.\splunk add oneshot` 命令执行了从 Windows 系统向 Splunk 传输测试文件 `hosts` 的测试。测试的成功结果(`Added the following monitor...`)证实了工作站与 SIEM 服务器之间通信的畅通。
**验证命令:**
```
.\splunk add oneshot "C:\Windows\System32\drivers\etc\hosts" -index main -sourcetype test_data
```
## 3. 运营分析
Splunk 系统中的 Dashboard 已配置为显示来自 Windows 代理的事件。由于数据已被正确索引至 `index=main`,现在可以进行“Threat Hunting”活动以及分析系统日志(`WinEventLog`)。
## 4. 未来发展
* **自动化:** 利用关联规则实现事件的自动检测。
* **Threat Hunting:** 配置 SPL (Splunk Processing Language) 查询,以检测 **MITRE ATT&CK** 技术。
* **扩展:** 添加更多代理,并与外部威胁情报库进行集成。
* **Splunk Receiver:** 在 Linux 服务器 (`192.168.0.105`) 上配置了端口 `9997`,作为接收代理日志的主要入口。
* **Universal Forwarder:** 在 Windows 主机 (`192.168.0.110`) 上部署了 `outputs.conf` 和 `inputs.conf` 配置,指定索引服务器为数据传输的目标。
**Windows 上的 `outputs.conf` 配置:**
```
[tcpout]
defaultGroup = default-autolb-group
[tcpout:default-autolb-group]
server = 192.168.0.105:9997
```
故障排除:关键阶段是网络诊断,包括在 Linux 系统中开放 9997 端口(管理 iptables 及 nftables 规则)以及解决 Windows 系统中的权限问题。在 .md 中
## 2. 数据流验证("Oneshot" 测试)
为了确认管线是否正常工作,使用 `.\splunk add oneshot` 命令执行了从 Windows 系统向 Splunk 传输测试文件 `hosts` 的测试。测试的成功结果(`Added the following monitor...`)证实了工作站与 SIEM 服务器之间通信的畅通。
**验证命令:**
```
.\splunk add oneshot "C:\Windows\System32\drivers\etc\hosts" -index main -sourcetype test_data
```
## 3. 运营分析
Splunk 系统中的 Dashboard 已配置为显示来自 Windows 代理的事件。由于数据已被正确索引至 `index=main`,现在可以进行“Threat Hunting”活动以及分析系统日志(`WinEventLog`)。
## 4. 未来发展
* **自动化:** 利用关联规则实现事件的自动检测。
* **Threat Hunting:** 配置 SPL (Splunk Processing Language) 查询,以检测 **MITRE ATT&CK** 技术。
* **扩展:** 添加更多代理,并与外部威胁情报库进行集成。标签:子域名变形, 安全实验室, 安全运营中心, 日志收集, 网络映射, 虚拟化环境