kkang0302/Enterprise-SOC-Lab
GitHub: kkang0302/Enterprise-SOC-Lab
一个企业级 SOC 家庭实验室项目,通过虚拟化环境模拟集中式安全监控、入侵检测与事件响应的完整流程。
Stars: 0 | Forks: 0
# 企业 SOC 实验室:集中式监控与事件检测
一个企业级的安全运营中心(SOC)家庭实验室环境,旨在模拟真实的企业基础设施。本项目重点关注配置集中式日志收集、设置入侵检测系统(IDS),以及针对模拟网络攻击(例如,SSH 暴力破解、恶意 PowerShell 执行和网络侦察)进行检测工程和事件响应实践。
## 📌 项目概述与价值主张
在现代企业环境中,可见性是防御的核心。此实验室演示了如何从零开始架构一个完整的安全监控 pipeline:
* **集中式日志管理**:使用 Splunk Universal Forwarder 从各种终端节点(Windows 和 Linux)聚合日志。
* **网络安全监控**:使用 Suricata IDS 规则监控环境内的网络流量。
* **终端检测**:部署 Microsoft Sysmon 并通过量身定制的配置来捕获深度遥测数据。
* **事件检测与分析**:编写 Splunk 搜索处理语言(SPL)关联规则,检测映射到 **MITRE ATT&CK** 框架的威胁行为者活动。
## 🌐 实验室架构
以下是虚拟化环境的逻辑布局图。所有节点都位于专用的虚拟主机网络(`SOC-Network`:`192.168.10.0/24`)中,以安全地隔离威胁活动。
```
graph TD
subgraph SOC-Network [Internal Lab Network: 192.168.10.0/24]
Kali["Kali Linux (Attacker)
IP: 192.168.10.30"] WinTarget["Windows 10 Enterprise (Victim)
IP: 192.168.10.20
Logs: Sysmon & Event Logs"] SplunkServer["Ubuntu Server (SIEM & IDS)
IP: 192.168.10.10
Splunk Enterprise & Suricata"] end Kali -->|"1. SSH Brute Force / Port Scan"| SplunkServer Kali -->|"2. Exploitation / Scans"| WinTarget WinTarget -->|"3. Forward Logs (Port 9997)"| SplunkServer SplunkServer -->|"4. Monitor Network Traffic"| SplunkServer ``` ## 🛠️ 技术栈与角色 | 工具 | 类别 | 在实验室中的角色 | | :--- | :--- | :--- | | **Splunk Enterprise** | SIEM / 集中式日志 | 日志聚合器、搜索界面、关联引擎和 SOC 仪表板。 | | **Suricata** | 网络 IDS | 监控网络接口,以发现扫描、漏洞利用和异常行为的签名。 | | **Microsoft Sysmon** | 终端检测与响应 | 记录细粒度的终端活动(进程创建、网络连接、注册表更改)。 | | **Splunk Universal Forwarder**| 日志传输 | 安装在终端节点上,通过 `9997` 端口安全地将事件日志发送至 Splunk。 | | **Kali Linux** | 攻击模拟 | 模拟对手行为(Hydra 暴力破解、Nmap 网络扫描、命令执行)。 | | **VirtualBox** | 虚拟化 Hypervisor | 在隔离的 NAT 网络沙箱中托管所有实验室机器。 | ## ⚙️ 关键配置详情 ### 1. 终端监控(Windows Sysmon 与 Forwarder) * 使用 SwiftOnSecurity 的配置安装了 **Sysmon64**,以过滤掉嘈杂的 Windows 默认事件: .\Sysmon64.exe -accepteula -i sysmonconfig-export.xml * 配置 `C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.conf` 以监控 Security、System 和 Sysmon 事件日志: [WinEventLog://Microsoft-Windows-Sysmon/Operational] disabled = 0 index = wineventlog sourcetype = XmlWinEventLog:Microsoft-Windows-Sysmon/Operational ### 2. 网络入侵检测(Suricata) * 部署在 `Splunk-Server`(Ubuntu)上,监听实验室网络接口。 * 量身定制 `/etc/suricata/suricata.yaml` 配置,将目标设置为 `HOME_NET: "[192.168.10.0/24]"`。 * 配置 Suricata 的 JSON 输出(`eve.json`)日志传输至 Splunk 的 `security_network` 索引中。 ## 🚨 威胁模拟与检测场景 ### 场景 1:SSH 暴力破解攻击检测(Linux) * **对手活动**:模拟从 Kali 机器使用 `Hydra` 对 Ubuntu 服务器的 SSH 端口发起身份验证攻击: hydra -l root -P /usr/share/wordlists/fasttrack.txt ssh://192.168.10.10 -t 4 * **SOC 检测 SPL 查询**: index=main "failed password" | stats count by src_ip, user | where count > 10 * **招聘者备注**:此搜索查询 Linux 身份验证日志(`/var/log/auth.log`),关联来自单一来源的高频密码失败事件,表明存在活跃的暴力破解威胁。 ### 场景 2:可疑的 PowerShell 执行(Windows) * **对手活动**:模拟执行恶意脚本,试图绕过本地执行策略并隐藏控制台窗口: powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command "Write-Host 'Malicious Activity'" * **SOC 检测 SPL 查询**: index=wineventlog EventCode=1 Image="*powershell.exe" (CommandLine="*-ExecutionPolicy Bypass*" OR CommandLine="*-WindowStyle Hidden*") | table _time, host, ParentImage, CommandLine * **招聘者备注**:关联 Sysmon 事件 ID 1(进程创建)以查找命令行规避参数的模式,从而暴露试图绕过策略限制的攻击者。 ### 场景 3:主机网络发现(网络扫描) * **对手活动**:使用 `Nmap` 执行 ping 扫描和端口扫描,以定位范围内的活跃机器: nmap -sn 192.168.10.0/24 * **SOC 检测 SPL 查询**: index=security_network src_ip=192.168.10.30 | table _time, src_ip, dest_ip, event_type, proto, alert.signature * **招聘者备注**:将网络级别的安全告警与主机告警相结合,以便在攻击周期的早期发现侦察阶段。 ## 📊 Splunk SOC 仪表板与可视化 *(在这里,您可以添加有关 Splunk 搜索结果、显示日志频率的仪表板可视化,或在 Splunk 中解析的 Suricata 告警的截图)* ## 📈 主要成就 * 从零开始成功构建了一个功能完备且完全隔离的安全实验室。 * 掌握了终端日志分析(Sysmon 配置、事件 ID 映射)。 * 基于 **MITRE ATT&CK** 矩阵(T1110 - 暴力破解,T1059.001 - PowerShell)编写了高保真的 Splunk SPL 查询。 * 制作了专业的事件报告,梳理了完整的攻击时间线并提供了修复建议。
IP: 192.168.10.30"] WinTarget["Windows 10 Enterprise (Victim)
IP: 192.168.10.20
Logs: Sysmon & Event Logs"] SplunkServer["Ubuntu Server (SIEM & IDS)
IP: 192.168.10.10
Splunk Enterprise & Suricata"] end Kali -->|"1. SSH Brute Force / Port Scan"| SplunkServer Kali -->|"2. Exploitation / Scans"| WinTarget WinTarget -->|"3. Forward Logs (Port 9997)"| SplunkServer SplunkServer -->|"4. Monitor Network Traffic"| SplunkServer ``` ## 🛠️ 技术栈与角色 | 工具 | 类别 | 在实验室中的角色 | | :--- | :--- | :--- | | **Splunk Enterprise** | SIEM / 集中式日志 | 日志聚合器、搜索界面、关联引擎和 SOC 仪表板。 | | **Suricata** | 网络 IDS | 监控网络接口,以发现扫描、漏洞利用和异常行为的签名。 | | **Microsoft Sysmon** | 终端检测与响应 | 记录细粒度的终端活动(进程创建、网络连接、注册表更改)。 | | **Splunk Universal Forwarder**| 日志传输 | 安装在终端节点上,通过 `9997` 端口安全地将事件日志发送至 Splunk。 | | **Kali Linux** | 攻击模拟 | 模拟对手行为(Hydra 暴力破解、Nmap 网络扫描、命令执行)。 | | **VirtualBox** | 虚拟化 Hypervisor | 在隔离的 NAT 网络沙箱中托管所有实验室机器。 | ## ⚙️ 关键配置详情 ### 1. 终端监控(Windows Sysmon 与 Forwarder) * 使用 SwiftOnSecurity 的配置安装了 **Sysmon64**,以过滤掉嘈杂的 Windows 默认事件: .\Sysmon64.exe -accepteula -i sysmonconfig-export.xml * 配置 `C:\Program Files\SplunkUniversalForwarder\etc\system\local\inputs.conf` 以监控 Security、System 和 Sysmon 事件日志: [WinEventLog://Microsoft-Windows-Sysmon/Operational] disabled = 0 index = wineventlog sourcetype = XmlWinEventLog:Microsoft-Windows-Sysmon/Operational ### 2. 网络入侵检测(Suricata) * 部署在 `Splunk-Server`(Ubuntu)上,监听实验室网络接口。 * 量身定制 `/etc/suricata/suricata.yaml` 配置,将目标设置为 `HOME_NET: "[192.168.10.0/24]"`。 * 配置 Suricata 的 JSON 输出(`eve.json`)日志传输至 Splunk 的 `security_network` 索引中。 ## 🚨 威胁模拟与检测场景 ### 场景 1:SSH 暴力破解攻击检测(Linux) * **对手活动**:模拟从 Kali 机器使用 `Hydra` 对 Ubuntu 服务器的 SSH 端口发起身份验证攻击: hydra -l root -P /usr/share/wordlists/fasttrack.txt ssh://192.168.10.10 -t 4 * **SOC 检测 SPL 查询**: index=main "failed password" | stats count by src_ip, user | where count > 10 * **招聘者备注**:此搜索查询 Linux 身份验证日志(`/var/log/auth.log`),关联来自单一来源的高频密码失败事件,表明存在活跃的暴力破解威胁。 ### 场景 2:可疑的 PowerShell 执行(Windows) * **对手活动**:模拟执行恶意脚本,试图绕过本地执行策略并隐藏控制台窗口: powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command "Write-Host 'Malicious Activity'" * **SOC 检测 SPL 查询**: index=wineventlog EventCode=1 Image="*powershell.exe" (CommandLine="*-ExecutionPolicy Bypass*" OR CommandLine="*-WindowStyle Hidden*") | table _time, host, ParentImage, CommandLine * **招聘者备注**:关联 Sysmon 事件 ID 1(进程创建)以查找命令行规避参数的模式,从而暴露试图绕过策略限制的攻击者。 ### 场景 3:主机网络发现(网络扫描) * **对手活动**:使用 `Nmap` 执行 ping 扫描和端口扫描,以定位范围内的活跃机器: nmap -sn 192.168.10.0/24 * **SOC 检测 SPL 查询**: index=security_network src_ip=192.168.10.30 | table _time, src_ip, dest_ip, event_type, proto, alert.signature * **招聘者备注**:将网络级别的安全告警与主机告警相结合,以便在攻击周期的早期发现侦察阶段。 ## 📊 Splunk SOC 仪表板与可视化 *(在这里,您可以添加有关 Splunk 搜索结果、显示日志频率的仪表板可视化,或在 Splunk 中解析的 Suricata 告警的截图)* ## 📈 主要成就 * 从零开始成功构建了一个功能完备且完全隔离的安全实验室。 * 掌握了终端日志分析(Sysmon 配置、事件 ID 映射)。 * 基于 **MITRE ATT&CK** 矩阵(T1110 - 暴力破解,T1059.001 - PowerShell)编写了高保真的 Splunk SPL 查询。 * 制作了专业的事件报告,梳理了完整的攻击时间线并提供了修复建议。
标签:Metaprompt