SaiPranav1420/Mini-SOC-Lab

GitHub: SaiPranav1420/Mini-SOC-Lab

一个使用Splunk和VirtualBox构建隔离SOC实验室的项目,帮助用户实践SIEM部署、日志收集和安全事件分析。

Stars: 0 | Forks: 0

# 使用 Splunk、Windows、Kali Linux 和 VirtualBox 构建迷你 SOC 实验室 ## 项目概述 本项目展示了如何使用 VirtualBox、Splunk Enterprise、Ubuntu Server、Windows 和 Kali Linux 设计和实施一个完全隔离的安全运营中心 (SOC) 实验室环境。 该实验室的主要目标是模拟真实的蓝队监控环境,能够实现: * 集中日志收集 * SIEM 部署 * Windows 事件监控 * 安全事件分析 * SPL (搜索处理语言) 实践 * 威胁监控 * 基础攻击模拟准备 实验室被刻意配置在一个完全隔离的内部网络中,以确保安全实验,不会将流量暴露到互联网或宿主机。 # 架构 ## 使用的虚拟机 | 虚拟机 | 用途 | | --------------- | --------------------------- | | Ubuntu Server | Splunk Enterprise SIEM | | Windows 10/11 | 受攻击机器 + 日志源 | | Kali Linux | 攻击者机器 | # 网络设计 所有虚拟机通过隔离的 VirtualBox 内部网络连接。 ## 内部网络配置 ``` Network Name: lab-net Mode: Internal Network ``` ## 静态 IP 配置 | 机器 | IP 地址 | | ------------------- | ----------- | | Ubuntu Splunk 服务器 | 10.10.10.10 | | Kali Linux | 10.10.10.11 | | Windows 机器 | 10.10.10.20 | # 架构图 ``` [ Kali Linux ] Attacker | | Internal Network (lab-net) | ---------------------------------------- | | | | [ Ubuntu Server ] [ Windows 10/11 ] Splunk Enterprise Victim Machine 10.10.10.10 10.10.10.20 ``` # 目标 本项目的目标是: * 构建一个隔离的网络安全实验室 * 部署和配置 Splunk Enterprise * 配置集中式日志摄入 * 使用 Splunk 监控 Windows 事件日志 * 实践 Splunk 搜索处理语言 (SPL) * 了解 SOC 工作流和 SIEM 运作 * 为未来威胁狩猎和攻击模拟准备一个可扩展的环境 # 使用的技术 | 类别 | 技术 | | ------------- | ---------------------------------- | | 虚拟化 | VirtualBox | | SIEM 平台 | Splunk Enterprise | | 操作系统 | Ubuntu Server、Windows 10/11、Kali Linux | | 日志转发 | Splunk Universal Forwarder | | 查询语言 | SPL (搜索处理语言) | | 网络 | VirtualBox 内部网络 | | 脚本编写 | Bash、PowerShell | # 硬件规格 ## 宿主机 | 组件 | 规格 | | ------ | --------------- | | 内存 | 16 GB | | CPU | 10 核 | | 存储 | 推荐 SSD | ## 虚拟机资源分配 | 虚拟机 | CPU | 内存 | | ----------------- | --------- | ---- | | Ubuntu Splunk | 2–4 核 | 8 GB | | Windows | 2 核 | 4 GB | | Kali Linux | 2 核 | 4 GB | # 阶段 1 — 实验室设置 ## 步骤 1 — 安装 VirtualBox 在宿主机上安装了 Oracle VirtualBox,用于创建和管理虚拟实验室环境。 ## 步骤 2 — 创建虚拟机 创建了三个独立的虚拟机: * Ubuntu Server 虚拟机 * Windows 10/11 虚拟机 * Kali Linux 虚拟机 ![VirtualBox 概览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/3908d3b649072717.png) ## 步骤 3 — 配置内部网络 每个虚拟机均配置了: ``` Adapter 1 → Internal Network → lab-net ``` 这确保了: * 虚拟机之间的通信 * 无互联网访问 * 无法与宿主机通信 * 安全的攻击模拟环境 ![内部网络配置](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6d10038ef0072718.png) ## 步骤 4 — 配置静态 IP 地址 ### Ubuntu ``` sudo nano /etc/netplan/01-netcfg.yaml ``` 配置静态 IP: ``` network: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: - 10.10.10.10/24 ``` 应用配置: ``` sudo netplan apply ``` ### Kali Linux 配置静态 IP: ``` 10.10.10.11 ``` ### Windows 手动配置静态 IP: ``` 10.10.10.20 ``` ![静态 IP 配置](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/693269b909072719.png) ## 步骤 5 — 网络验证 进行了连接性测试。 ### 示例 ``` ping 10.10.10.10 ``` 结果确认: * 虚拟机间通信成功 * 内部隔离正常 * 无互联网连接 # 阶段 2 — Splunk 部署与日志摄入 ## 步骤 1 — 在 Ubuntu 上安装 Splunk Enterprise ### 更新 Ubuntu ``` sudo apt update && sudo apt upgrade -y ``` ### 下载 Splunk ``` wget -O splunk.deb 'https://download.splunk.com/products/splunk/releases/9.2.1/linux/splunk-9.2.1-94b76f0b8db1-linux-amd64.deb' ``` ### 安装 Splunk ``` sudo dpkg -i splunk.deb ``` ### 启用开机启动 ``` sudo /opt/splunk/bin/splunk enable boot-start ``` ### 启动 Splunk ``` sudo /opt/splunk/bin/splunk start ``` 在安装过程中配置了管理员用户名和密码。 # 步骤 2 — 访问 Splunk Web 从以下地址访问 Splunk Web: ``` http://10.10.10.10:8000 ``` ![Splunk 仪表板](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ca018646e5072720.png) # 步骤 3 — 配置 Splunk 接收端口 在 Splunk Web 中: ``` Settings → Forwarding and Receiving ``` 配置接收端口: ``` 9997 ``` 此端口用于从 Windows 机器转发日志。 ![Splunk 接收端口 9997](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/9260b41d6d072720.png) # 步骤 4 — 安装 Splunk Universal Forwarder 在 Windows 虚拟机上安装了 Splunk Universal Forwarder。 配置了 Splunk 服务器: ``` 10.10.10.10:9997 ``` # 步骤 5 — 配置 Windows 事件日志转发 配置了以下 Windows 事件日志进行转发: * 安全日志 * 系统日志 * 应用程序日志 ![Splunk 转发器配置](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5a6773dd83072721.png) ## PowerShell 命令 ### 安全日志 ``` & "C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" add monitor "WinEventLog://Security" ``` ### 系统日志 ``` & "C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" add monitor "WinEventLog://System" ``` ### 应用程序日志 ``` & "C:\Program Files\SplunkUniversalForwarder\bin\splunk.exe" add monitor "WinEventLog://Application" ``` ### 重启 Universal Forwarder ``` Restart-Service SplunkForwarder ``` # 步骤 6 — 验证日志摄入 使用 Splunk 搜索来验证成功摄入。 ## 安全日志 ``` index=* source="WinEventLog:Security" ``` ## 系统日志 ``` index=* source="WinEventLog:System" ``` ## 应用程序日志 ``` index=* source="WinEventLog:Application" ``` # SPL (搜索处理语言) 实践 练习了多个 SPL 查询用于事件分析和监控。 ![SPL 搜索结果](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/f9600213c0072722.png) ## 查看所有日志 ``` index=* ``` ## 按主机搜索 ``` index=* host="WINDOWS-VM" ``` ## 失败的登录尝试 ``` index=* EventCode=4625 ``` ## 成功的登录 ``` index=* EventCode=4624 ``` ## 搜索 PowerShell 活动 ``` index=* powershell ``` ## 按源计数事件 ``` index=* | stats count by source ``` ## 按主机计数事件 ``` index=* | stats count by host ``` ## 主要事件代码 ``` index=* | top EventCode ``` ## 随时间推移的事件 ``` index=* | timechart count ``` ## 显示选定字段 ``` index=* | table _time host source EventCode ``` # 展示的技能 ## SIEM 与 SOC 技能 * SIEM 部署 * 日志摄入 * 事件监控 * Windows 日志分析 * SPL 查询 * 威胁监控 * 蓝队基础 ## 基础设施技能 * 虚拟化 * 网络分段 * 静态 IP 配置 * Linux 管理 * Windows 管理 ## 安全技能 * Windows 事件监控 * 事件分析 * 日志关联 * 内部网络隔离 * 安全遥测收集 # 遇到的挑战 在实施过程中遇到并解决了几个技术挑战: * 内部网络配置问题 * Windows 防火墙限制 * Splunk 接收端口配置 * Universal Forwarder 配置问题 * Splunk 服务故障排除 * 事件转发验证 * 端口可访问性验证 # 未来改进 计划对本实验室进行的未来增强包括: * 集成 Sysmon * 威胁狩猎工作流 * 攻击模拟 * Splunk 仪表板 * 实施 Sigma 规则 * 集成 Suricata IDS * Zeek 网络监控 * 自动化警报 * 映射 MITRE ATT&CK # 截图 实施过程中的所有截图均已适当地嵌入到上文的相关部分中。原始文件存储在 `screenshots/` 目录中。 # GitHub 存储库结构 ``` Mini-SOC-Lab/ │ ├── README.md ├── screenshots/ ├── configs/ ├── scripts/ └── documentation/ ``` # 结论 本项目展示了以下方面的实际动手经验: * SIEM 部署 * Splunk 管理 * Windows 事件监控 * 日志摄入管道 * SPL 查询 * SOC 基础设施设置 * 安全监控工作流 该实验室为以下领域的未来工作奠定了坚实基础: * 威胁狩猎 * 检测工程 * 蓝队运营 * 安全分析 * 事件响应
标签:AI合规, meg, OISF, SIEM实践, SIEM部署, SOC实验室, SPL编程, Ubuntu Server, VirtualBox, 信息安全, 威胁监控, 安全事件分析, 安全实验室, 安全运营, 应用安全, 扫描框架, 攻击模拟, 日志管理, 网络安全, 网络隔离, 蓝队实践, 蓝队监控, 虚拟机环境, 隐私保护, 隔离网络, 集中日志收集, 驱动签名利用