manulakeshawa/soc-home-lab

GitHub: manulakeshawa/soc-home-lab

该项目是一个新手友好的 SOC 家庭实验室,使用 Wazuh、Suricata 等开源工具在虚拟环境中练习威胁检测、日志分析和事件响应。

Stars: 0 | Forks: 0

# SOC 家庭实验室:威胁检测与事件响应 ## 概述 本项目是一个对新手友好的 SOC 家庭实验室,旨在使用开源工具练习安全监控、日志分析、威胁检测和事件响应。 该实验室专注于从 Linux/Windows 终端收集日志、检测可疑活动、分析警报,以及通过事件报告记录发现的结果。 ## 目标 * 构建一个小型 SOC 风格的实验室环境。 * 从终端收集日志。 * 检测可疑活动,如端口扫描和登录失败尝试。 * 使用 SIEM/XDR 平台分析警报。 * 通过事件报告记录发现的结果。 * 提升实用网络安全技能,为实习做准备。 ## 使用的工具 | 工具 | 用途 | 状态 | |----------------------------|------------------------------------------------|---------------------| | Oracle VirtualBox | 虚拟实验室环境 | 使用中 | | Ubuntu Desktop 24.04.4 LTS | Ubuntu 测试机 | 已完成 | | Ubuntu Scanner VM | 用于安全 Nmap 测试的专用扫描机 | 已完成 | | Ubuntu Server 24.04.4 LTS | Wazuh 服务器基础操作系统 | 已完成 | | Wazuh SIEM/XDR | 日志收集、警报分析和安全监控 | 已安装 | | Nmap | 安全扫描活动和网络测试 | 已安装 | | OpenSSH Server | SSH 访问和登录失败检测练习 | 已安装 | | Wireshark | 手动数据包分析 | 已安装在宿主机 | | Suricata IDS | 网络入侵检测 | 已安装 / 已测试 | | Windows Endpoint | Windows 事件日志收集和登录失败检测 | 已安装 / 已测试 | ## 实验室架构 | 机器 | IP 地址 | 用途 | 状态 | |---------------------|-----------------------|--------------------------------------------|----------------| | Wazuh Server | 192.168.56.10 | SIEM/XDR 仪表板和日志分析 | 已安装 | | Ubuntu Test Machine | 192.168.56.20 | 受监控的 Ubuntu 终端和扫描目标 | 已注册代理 | | Ubuntu Scanner | 192.168.56.40 | 用于 Nmap 测试的专用扫描机 | 已配置 | | Windows Endpoint | 192.168.56.30 | Windows 事件日志收集 | 已注册代理 | SOC Home Lab Architecture ## 已测试的检测场景 | 场景 | 状态 | |------------------------------------------|------------------------| | Wazuh 服务器设置 | 已完成 | | Ubuntu 终端代理注册 | 已完成 | | Nmap 端口扫描检测 | 已完成 | | SSH 登录失败 / 暴力破解检测 | 已完成 | | 可疑命令执行 | 已完成 | | 使用 EICAR 进行安全恶意软件测试 | 已完成 / 已记录 | | Suricata 网络警报分析 | 已完成 | | Windows 登录失败检测 | 已完成 | ## 检测总结 | 检测场景 | MITRE ATT&CK 映射 | 日志来源 / 证据来源 | 使用的工具 | 文档 | |---------------------------|----------------------------------------------------------------------------|----------------------------------|---------------------------|-----------------------------------------------------------------------------------------------------------| | Nmap 扫描活动 | T1046 – Network Service Discovery | UFW 防火墙日志 | Nmap, UFW, Wazuh 审查 | [Nmap 扫描事件报告](incident-reports/nmap-scan-incident.md) | | SSH 登录失败 | T1110.001 – Password Guessing | Linux 认证日志 | OpenSSH, Wazuh | [SSH 登录失败事件报告](incident-reports/failed-ssh-login-incident.md) | | 可疑的 sudo 命令 | T1003.008 – /etc/passwd 和 /etc/shadow; T1548.003 – Sudo 和 Sudo Caching | Linux sudo/认证日志 | Wazuh | [可疑命令事件报告](incident-reports/suspicious-command-incident.md) | | EICAR 安全恶意软件测试 | N/A – 安全检测验证测试 | ClamAV 扫描输出 | ClamAV, Wazuh 审查 | [EICAR 测试笔记](sample-alerts/eicar-test-notes.md) | | 网络流量检测 | T1046 – Network Service Discovery | Suricata `fast.log` | Suricata, Nmap, Ping | [Suricata 和 Wireshark 网络事件报告](incident-reports/suricata-wireshark-network-incident.md) | | Windows 登录失败 | T1110.001 – Password Guessing | Windows Security Event ID `4625` | Windows Event Logs, Wazuh | [Windows 登录失败事件报告](incident-reports/windows-failed-login-incident.md) | ## 展示的技能 - 使用 Oracle VirtualBox 进行虚拟实验室设置 - Linux 和 Windows 终端监控 - Wazuh SIEM/XDR 部署和代理注册 - Linux 认证日志分析 - Windows Security Event Log 分析 - 在私有实验室中进行 Nmap 扫描测试 - UFW 防火墙日志审查 - Suricata IDS 规则测试 - Wireshark 数据包捕获 - 使用 EICAR 和 ClamAV 进行安全的恶意软件测试 - 事件报告编写 - GitHub 文档和证据收集 ## 实验室进度 ### 第 02 天 – Ubuntu 虚拟机设置 使用 Oracle VirtualBox 完成了 Ubuntu 测试机的设置。 已配置并验证: * Ubuntu 24.04.4 LTS 虚拟机 * 4096 MB 内存和 2 个处理器 * NAT 网络 * 基础网络安全工具:`nmap`, `git`, `curl`, `net-tools` * OpenSSH 服务器套接字监听 22 端口 * 用于恢复的 VirtualBox 快照 文档:[第 02 天 – Ubuntu 虚拟机设置](docs/day-02-ubuntu-vm-setup.md) ### 第 03 天 – Wazuh 服务器设置 使用 Ubuntu Server 24.04.4 LTS 完成了 Wazuh 服务器安装。 已配置并验证: * 在 Oracle VirtualBox 中的 Wazuh Server 虚拟机 * 8192 MB 内存和 4 个处理器 * 50 GB 虚拟磁盘 * 用于互联网访问的 NAT 网络 * Host-only IP 地址:`192.168.56.10` * Wazuh 安装成功完成 * Wazuh 服务已验证: * `wazuh-manager.service` * `wazuh-indexer.service` * `wazuh-dashboard.service` * `filebeat.service` * 从 Windows 宿主机浏览器访问 Wazuh 仪表板 * 管理员密码已私下保存,未上传至 GitHub * Wazuh 安装成功后创建了 VirtualBox 快照 文档:[第 03 天 – Wazuh 服务器设置](docs/day-03-wazuh-server-setup.md) ### 第 04 天 – Ubuntu 代理注册 完成了 Ubuntu 测试机作为 Wazuh 代理的注册。 已配置并验证: - 在 Ubuntu 测试机上配置了 Host-only 网络 - Ubuntu 测试机分配了静态 IP 地址:`192.168.56.20` - 可访问位于 `192.168.56.10` 的 Wazuh 服务器 - 在 Ubuntu 测试机上安装了 Wazuh 代理 - Wazuh 代理服务验证为 `active (running)` - Ubuntu 终端在 Wazuh 仪表板中显示为活动代理 - 代理详情已验证: - 代理名称:`ubuntu-test-machine` - 代理 ID:`001` - IP 地址:`192.168.56.20` - 操作系统:Ubuntu 24.04.4 LTS - Wazuh 代理版本:4.14.5 文档:[第 04 天 – Ubuntu 代理注册](docs/day-04-ubuntu-agent-enrollment.md) ### 第 05 天 – Nmap 扫描检测 在私有实验室网络内完成了安全的 Nmap 扫描检测场景。 已配置并验证: - 创建了 Ubuntu 扫描机虚拟机作为专用扫描机 - Ubuntu 扫描机分配了 Host-only IP 地址:`192.168.56.40` - Ubuntu 扫描机成功连接至: - Wazuh 服务器:`192.168.56.10` - Ubuntu 测试机:`192.168.56.20` - 对 Ubuntu 测试机执行了 Nmap 服务检测扫描 - 在 Ubuntu 测试机上启用了 UFW 防火墙 - 在 Ubuntu 测试机上启用了 UFW 日志记录 - 从 Ubuntu 扫描机对 Ubuntu 测试机执行了 SYN 扫描 - UFW 日志确认拦截了来自 `192.168.56.40` 的扫描数据包 - 审查了 Wazuh 仪表板中的扫描相关事件 - 记录的限制:在本次测试中,Wazuh 未能将该活动明确分类为 Nmap 扫描 事件报告:[Nmap 扫描事件报告](incident-reports/nmap-scan-incident.md) ### 第 06 天 – SSH 登录失败检测 在私有实验室网络内完成了 SSH 登录失败检测场景。 已配置并验证: - 允许从 Ubuntu 扫描机到 Ubuntu 测试机的 SSH 访问 - 验证 Ubuntu 测试机上的 SSH 服务正在运行 - 从 Ubuntu 扫描机手动生成了 SSH 登录失败尝试 - 使用的无效用户名:`wronguser` - 源 IP 地址:`192.168.56.40` - 目标 IP 地址:`192.168.56.20` - Ubuntu 认证日志确认了 SSH 尝试失败 - Wazuh 仪表板显示了与 SSH 相关的登录失败事件 - Wazuh 检测到: - `sshd: Attempt to login using a non-existent user` - `syslog: User missed the password more than one time` - Wazuh 事件确认了无效的用户名和源 IP 地址 事件报告:[SSH 登录失败事件报告](incident-reports/failed-ssh-login-incident.md) ### 第 07 天 – 可疑命令活动和 EICAR 测试 在私有实验室环境内完成了可疑命令活动测试和安全的 EICAR 反恶意软件测试。 已配置并验证: - 在 Ubuntu 测试机上执行了无害的枚举命令 - 使用 `/etc/shadow` 安全地执行了敏感文件访问尝试 - `/etc/shadow` 的内容未上传至 GitHub - Wazuh 记录了 sudo 命令活动 - Wazuh 事件详情显示: - 源用户:`manula` - 目标用户:`root` - 命令:`/usr/bin/head -n 5 /etc/shadow` - 代理:`ubuntu-test-machine` - 在 Ubuntu 测试机上安装了 ClamAV - 在本地创建了 EICAR 测试文件,用于安全的反恶意软件测试 - ClamAV 检测到 EICAR 测试文件为 `Eicar-Signature FOUND` - 审查了 Wazuh 中与 EICAR 相关的事件 - 记录的限制:在本次测试中,Wazuh 未能清楚显示 EICAR 恶意软件检测事件 - 测试后删除了 EICAR 测试文件 - 真实的 EICAR 测试文件未上传至 GitHub 事件报告:[可疑命令事件报告](incident-reports/suspicious-command-incident.md) 笔记:[EICAR 测试笔记](sample-alerts/eicar-test-notes.md) ### 第 08 天 – Suricata 网络检测和 Wireshark 证据 在私有实验室环境内完成了使用 Suricata 和 Wireshark 的基于网络的检测测试。 已配置并验证: - 在 Ubuntu 测试机上安装了 Suricata - 验证了 Suricata 版本 - 更新了 Suricata 规则并测试了配置 - 确认了 Host-only 实验室接口: - 接口:`enp0s8` - IP 地址:`192.168.56.20` - 在 Host-only 实验室接口上启动了 Suricata - 为来自 Ubuntu 扫描机的流量创建了自定义 Suricata 实验室规则 - Ubuntu 扫描机针对 Ubuntu 测试机生成了 ICMP 和 TCP 流量 - Suricata `fast.log` 显示了针对以下内容的警报: - `LAB ICMP ping from Ubuntu Scanner` - `LAB TCP traffic from Ubuntu Scanner` - Suricata 确认了扫描机到目标的流量: - 源:`192.168.56.40` - 目标:`192.168.56.20` - Wireshark 捕获了 VirtualBox Host-only 网络上的 ICMP 流量 - Wireshark 证据确认了 Windows 宿主机和 Ubuntu 测试机之间的 Host-only 实验室流量 - 记录的限制:Wireshark 截图捕获的是宿主机到终端的流量,而扫描机到目标的流量是通过 Suricata 日志确认 事件报告:[Suricata 和 Wireshark 网络事件报告](incident-reports/suricata-wireshark-network-incident.md) ### 第 10 天 – Windows 终端日志收集 完成了使用 Wazuh 进行 Windows 终端日志收集和登录失败检测。 已配置并验证: - 创建了 Windows 11 Enterprise Evaluation 虚拟机 - Windows 终端连接到了 NAT 和 Host-only 网络 - 分配了 Host-only IP 地址: - `192.168.56.30` - Windows 终端成功连接至 Wazuh Server: - `192.168.56.10` - 在 Windows 终端上安装了 Wazuh 代理 - Wazuh 服务成功启动 - Windows 终端在 Wazuh 仪表板中显示为活动代理 - 代理详情已验证: - 代理名称:`windows-endpoint` - 代理 ID:`002` - IP 地址:`192.168.56.30` - 操作系统:Microsoft Windows 11 Enterprise Evaluation - Wazuh 代理版本:4.14.5 - 启用了 Windows 登录失败审核 - 创建了本地测试用户,用于安全的登录失败测试 - 本地确认了 Windows Security Event ID `4625` - Wazuh 仪表板显示了 Windows 登录失败事件 - Wazuh 检测到: - `Logon Failure - Unknown user or bad password` - Wazuh 事件确认了 `testuser` 的登录失败活动 事件报告:[Windows 登录失败事件报告](incident-reports/windows-failed-login-incident.md) ## 当前状态 实验室基础架构和多个检测场景已完成。 已完成: * 创建了 GitHub 存储库 * 创建了 Ubuntu 测试机 * 创建了 Wazuh Server 虚拟机 * 安装了 Wazuh Server * 成功访问了 Wazuh 仪表板 * Ubuntu 测试机已连接到 Host-only 实验室网络 * Ubuntu 测试机已注册为 Wazuh 代理 * 创建了 Ubuntu 扫描机虚拟机 * 在实验室网络内执行了安全的 Nmap 扫描 * 收集了 UFW 防火墙日志作为扫描证据 * 手动生成了 SSH 登录失败尝试 * 审查了 Ubuntu 认证日志 * 审查了 Wazuh SSH 登录失败事件 * 生成并审查了可疑命令活动 * 审查了 Wazuh sudo 命令事件 * 使用 ClamAV 进行了 EICAR 安全恶意软件测试 * 安装并测试了 Suricata IDS * 创建了 Suricata 自定义实验室规则 * 审查了 Suricata 网络警报 * 捕获了 Wireshark Host-only 实验室流量 * 创建了 Windows 终端虚拟机 * Windows 终端已注册为 Wazuh 代理 * 审查了 Windows Security Event ID 4625 * 审查了 Wazuh Windows 登录失败事件 * 编写了五份事件报告 * 记录了 EICAR 测试笔记 * 记录了自定义 Suricata 实验室规则 * 添加了最终架构图 * 添加了设置文档和截图 后续步骤: 1. 准备将项目用于作品集和简历。 2. 在未来版本中继续改进实验室。 ## 事件报告 - [Nmap 扫描事件报告](incident-reports/nmap-scan-incident.md) - [SSH 登录失败事件报告](incident-reports/failed-ssh-login-incident.md) - [可疑命令事件报告](incident-reports/suspicious-command-incident.md) - [Suricata 和 Wireshark 网络事件报告](incident-reports/suricata-wireshark-network-incident.md) - [Windows 登录失败事件报告](incident-reports/windows-failed-login-incident.md) ## 示例警报笔记 - [EICAR 测试笔记](sample-alerts/eicar-test-notes.md) ## 检测规则 - [自定义 Suricata 实验室规则](detection-rules/custom-suricata-lab-rules.md) ## 经验教训 - [经验教训](lessons-learned.md) ## 存储库结构 ``` soc-home-lab/ ├── README.md ├── setup-guide.md ├── architecture-diagram.png ├── docs/ │ ├── day-02-ubuntu-vm-setup.md │ ├── day-03-wazuh-server-setup.md │ └── day-04-ubuntu-agent-enrollment.md ├── screenshots/ │ ├── day-02-ubuntu-vm-setup/ │ ├── day-03-wazuh-server-setup/ │ ├── day-04-ubuntu-agent-enrollment/ │ ├── day-05-nmap-scan-detection/ │ ├── day-06-failed-ssh-login-detection/ │ ├── day-07-suspicious-command-eicar/ │ ├── day-08-suricata-wireshark/ │ └── day-10-windows-endpoint-logs/ ├── detection-rules/ │ └── custom-suricata-lab-rules.md ├── sample-alerts/ │ └── eicar-test-notes.md ├── incident-reports/ │ ├── nmap-scan-incident.md │ ├── failed-ssh-login-incident.md │ ├── suspicious-command-incident.md │ ├── suricata-wireshark-network-incident.md │ └── windows-failed-login-incident.md └── lessons-learned.md ``` ## 安全与道德 本项目中的所有测试仅在私有虚拟实验室环境中进行。 未经许可,不会扫描或测试任何公共系统、大学网络、公司网络或第三方目标。
标签:AMSI绕过, CTI, Metaprompt, 威胁检测, 安全实验环境, 安全运营中心, 库, 应急响应, 网络安全, 网络映射, 隐私保护