akshitrao33/mini-soc-lab

GitHub: akshitrao33/mini-soc-lab

基于 Wazuh 的完整 SOC 模拟实验室,提供从日志采集到告警调查的全流程实战环境,帮助学习者在单台笔记本上掌握安全运营核心技能。

Stars: 0 | Forks: 0

# Mini SOC Lab — 完整项目参考指南 ## 目录 1. [项目简介](#1-what-this-project-is) 2. [项目背景](#2-why-this-project-exists) 3. [通过构建本项目你将学到什么](#3-what-you-learn-by-building-it) 4. [完整技术栈](#4-complete-technology-stack) 5. [架构概述](#5-architecture-overview) 6. [仓库结构及文件说明](#6-repository-structure-every-file-explained) 7. [实验环境设计](#7-lab-environment-design) 8. [Wazuh 平台深入解析](#8-wazuh-platform-deep-dive) 9. [全部 5 个检测用例](#9-all-5-detection-use-cases) 10. [自定义检测规则](#10-custom-detection-rules) 11. [事件生成脚本](#11-event-generation-scripts) 12. [仪表板与告警调查](#12-dashboard-and-alert-investigation) 13. [事件报告系统](#13-incident-reporting-system) 14. [安装设置概览](#14-setup-summary) 15. [测试与验证](#15-testing-and-validation) 16. [安全与道德声明](#16-security-and-ethics-statement) 17. [面试准备摘要](#17-interview-preparation-summary) 18. [未来改进](#18-future-enhancements) ## 1. 项目简介 **Mini SOC Lab** 是一个完整、独立的安全运营中心 (SOC) 模拟环境,完全基于免费的开源工具构建,可部署在单台笔记本电脑上。它模拟了真实企业 SOC 的核心功能: - **集中式日志收集** — 多个端点将其系统日志发送到一台中央服务器 - **实时端点监控** — 每个端点上的轻量级 Agent 监控日志文件和文件变更 - **基于规则的检测** — 当匹配到可疑模式时,规则引擎会触发告警 - **告警可视化** — Web 仪表板展示所有告警及其完整详情,便于调查 - **告警分诊** — 用于判断每个告警是真实威胁还是误报的规范化工作流 - **事件报告** — 用于记录安全发现的标准化模板 本实验使用 **Wazuh**,这是一个被全球真实组织广泛使用的生产级开源 SIEM/XDR 平台。所有环境均在本地运行 —— 无需云服务、无需订阅、不暴露于互联网。 | VM | IP | 角色 | |---|---|---| | SOC-Server | 192.168.56.10 | Wazuh Manager + Indexer + Dashboard | | Endpoint-01 | 192.168.56.20 | 受监控的 Ubuntu 端点 (Agent 1) | | Endpoint-02 | 192.168.56.21 | 受监控的 Ubuntu 端点 (Agent 2) | ## 2. 项目背景 大多数网络安全专业的学生在毕业时只掌握了理论知识,而在真实安全运营中心 (SOC) 使用的工具方面没有任何实操经验。像 Splunk、IBM QRadar 和 Microsoft Sentinel 这样的企业级平台不仅昂贵,还需要云基础设施。大多数免费教程只涵盖安装步骤,却无法产出一个可运行、经过测试且适合演示的项目。 本项目通过使用 Wazuh —— 一个免费的开源 SIEM —— 解决了这个问题。它可以在你的笔记本电脑上构建一个功能齐全的 SOC,能够从真实的日志事件中生成真实的告警,提供一个可用于演示的实时仪表板,包含你可以解释的详细文档化检测规则,以及一套经过测试的分诊工作流。 ## 3. 通过构建本项目你将学到什么 | 技能类别 | 掌握的技能 | |---|---| | SIEM 运维 | 部署 Wazuh、配置 Manager 和 Agent、理解索引机制 | | 日志分析 | 读取 auth.log、syslog,理解日志格式和字段 | | 检测工程 | 编写基于 XML 的自定义规则、使用频率匹配、调优阈值 | | 网络安全 | 配置 Host-Only 网络、UFW 防火墙规则、端口管理 | | Linux 管理 | 使用 systemctl 管理服务、配置 Netplan、使用 SSH | | 告警分诊 | 遵循结构化的分诊工作流,分类真/假阳性 | | 事件响应 | 生成包含时间线和证据的结构化事件报告 | | 文件完整性监控 | 理解基于哈希的文件变更检测及 inotify 机制 | | 威胁框架 | 将检测映射到 MITRE ATT&CK 技术 | | 文档编写 | 编写架构指南、安装说明、故障排除参考文档 | | 虚拟化 | 在 VirtualBox 中创建和管理 VM、配置网络适配器 | | 脚本编写 | 编写 bash 脚本以实现自动化和事件生成 | ## 4. 完整技术栈 ### Wazuh 4.7 — 核心 SIEM/XDR 平台 Wazuh 是一个免费的开源安全平台,结合了 SIEM(日志聚合和告警)和 XDR(扩展检测与响应)。它提供了所需的全部三个基础设施组件: | 组件 | 作用 | 端口 | |---|---|---| | Wazuh Manager | 接收 Agent 日志,运行规则引擎,生成告警 | 1514, 1515 | | Wazuh Indexer | 存储和索引告警数据(基于 OpenSearch) | 9200 (localhost) | | Wazuh Dashboard | 用于可视化和调查的 HTTPS Web UI | 443 | | Wazuh Agent | 安装在端点上,收集并转发日志 | 出站 1514 | | Filebeat | 将 Manager 的输出桥接到 Indexer | 内部 | ### Ubuntu 22.04 LTS — 操作系统 Ubuntu 22.04 LTS 是 Wazuh 官方支持的平台。使用 "Server" 版本(无桌面 GUI)以最大程度减少 RAM 占用。所有三台 VM 均运行此操作系统。 ### VirtualBox 7.x — 虚拟化 在你的宿主机上创建隔离的虚拟机。使用 Host-Only 网络创建一个无法访问互联网的私有实验网络 (192.168.56.0/24)。 ### OpenSearch — 存储与搜索 将告警文档存储在每日索引 (wazuh-alerts-YYYY.MM.DD) 中。每个告警中的每个字段都经过全文索引且可被搜索。仪表板使用 KQL (Kibana Query Language) 对其进行查询。 ### Bash — 脚本语言 所有自动化和事件生成脚本均为 bash 脚本。关键脚本包括:服务器安装器、Agent 安装器、注册助手以及四个事件生成器。 ### UFW — 防火墙 Uncomplicated Firewall (UFW) 用于管理所有 VM 上的 iptables 规则。SOC-Server 仅允许来自实验子网的 22、443、1514、1515 端口的入站流量。 ### XML — 规则语言 Wazuh 检测规则使用 XML 编写。关键属性包括:id、level、frequency、timeframe、if_matched_sid、same_source_ip、description。 ## 5. 架构概述 ``` YOUR HOST MACHINE (192.168.56.1) — Browser at https://192.168.56.10 | | HTTPS :443 v +--------------------------------------------------+ | SOC-SERVER 192.168.56.10 | | | | Wazuh Manager <-- TCP :1514 from agents | | | | | Filebeat (log shipper) | | | | | Wazuh Indexer (OpenSearch) -- :9200 localhost | | | | | Wazuh Dashboard -- HTTPS :443 | +--------------------------------------------------+ ^ ^ TCP :1514 TCP :1514 | | +------------------+ +------------------+ | ENDPOINT-01 | | ENDPOINT-02 | | 192.168.56.20 | | 192.168.56.21 | | Wazuh Agent | | Wazuh Agent | | Monitors: | | Monitors: | | /var/log/auth | | /var/log/auth | | /var/log/syslog | | /var/log/syslog | | /etc (FIM) | | /etc (FIM) | | /opt/lab-watch | | /opt/lab-watch | +------------------+ +------------------+ ``` ### 完整数据流 ``` 1. Event occurs on endpoint (e.g. SSH failure) 2. OS writes to /var/log/auth.log 3. Wazuh Agent reads new line 4. Agent encrypts (AES-256) and sends to Manager :1514 5. Manager decodes log format, extracts fields (user, srcip, timestamp) 6. Rule engine runs: Rule 5716 matches "Failed password" 7. If 5+ fires from same IP in 120s: Rule 100001 fires (brute force) 8. Alert object written to /var/ossec/logs/alerts/alerts.json 9. Filebeat ships to Wazuh Indexer (OpenSearch) 10. Alert stored in index: wazuh-alerts-YYYY.MM.DD 11. Dashboard queries indexer, alert appears in Security Events view 12. Analyst investigates, triages, documents in incident report ``` ## 6. 仓库结构及文件说明 ``` mini-soc-lab/ | +-- README.md This file. Complete project reference. +-- .gitignore Prevents committing credentials/VM images to GitHub. | +-- docs/ | +-- architecture.md Full system design, diagrams, data flow, MVP vs Advanced. | +-- setup-guide.md 7-stage end-to-end install walkthrough. | +-- detections-guide.md All 5 use cases: purpose, config, test, response. | +-- testing-guide.md 8 test cases with pass/fail criteria + debug commands. | +-- troubleshooting-guide.md 7 problem scenarios with step-by-step resolution. | +-- demo-guide.md Scripted 10-minute demo for interviews/presentations. | +-- interview-prep.md 10 Q&A pairs + key term glossary. | +-- resume-blurb.md Resume bullets, portfolio descriptions, pitches. | +-- configs/ | +-- wazuh-manager/ | | +-- ossec.conf Manager main config: alerts, remote, rules, FIM, cluster. | | +-- local_rules.xml All 17 custom rules for the lab (Rules 100001-100051). | +-- wazuh-agent/ | +-- ossec.conf Agent config: manager address, log files, FIM dirs. | +-- scripts/ | +-- setup/ | | +-- install-wazuh-server.sh Automated Wazuh all-in-one server installation. | | +-- install-wazuh-agent.sh Automated agent install + config + enrollment. | | +-- enroll-agent.sh Manual re-enrollment if auto-enrollment fails. | +-- event-generation/ | +-- generate-failed-logins.sh SSH failure events (localhost only, safe). | +-- generate-fim-events.sh File create/modify/delete in /opt/lab-watched. | +-- generate-service-events.sh Service stop/start events (cron, safe). | +-- run-all-tests.sh Master runner: all tests + expected alerts summary. | +-- sample_logs/ | +-- failed-login-sample.log auth.log lines showing SSH failures. | +-- auth-brute-sample.log Extended brute force sequence log. | +-- fim-event-sample.log Wazuh FIM alert output format. | +-- service-event-sample.log syslog lines showing service state changes. | +-- detection_rules/ | +-- local_rules.xml Master rules file index/pointer. | +-- auth_rules.xml Auth rules: 100001, 100002, 100030-100032. | +-- fim_rules.xml FIM rules: 100010-100013, 100050-100051. | +-- service_rules.xml Service rules: 100020-100023. | +-- dashboards/ | +-- dashboard-guide.md Navigation, investigation workflow, custom viz guide. | +-- sample-queries.md 40+ KQL queries for auth, FIM, service, availability. | +-- reports/ | +-- incident-report-template.md 10-section incident report (Executive Summary to Lessons). | +-- daily-summary-template.md End-of-shift agent/alert/event summary. | +-- weekly-trend-template.md Weekly metrics, trends, MTTD/MTTR, coverage health. | +-- sample-finding.md Completed example: SSH brute force finding write-up. | +-- screenshots/ | +-- README.md 10-screenshot portfolio capture guide. | +-- lab_setup/ | +-- vm-setup-guide.md VirtualBox VM creation steps for all 3 VMs. | +-- network-config.md Netplan static IPs, UFW rules, /etc/hosts config. | +-- ip-planning.md IP address table and port reference. | +-- troubleshooting/ | +-- common-issues.md Quick-reference: 10 problems and one-line fixes. | +-- presentation_assets/ +-- project-slides-outline.md 12-slide deck content outline. +-- demo-script.md Word-for-word live demo script with stage directions. +-- 30-60-180-second-pitches.md Verbal pitches of three different lengths. ``` ## 7. 实验环境设计 ### Host-Only 网络 VirtualBox 的 Host-Only 网络 (vboxnet0) 在宿主机与 VM 之间创建了一个私有虚拟网络。它与互联网完全隔离——不会有任何流量泄露。 ### IP 分配 | 设备 | IP | 用途 | |---|---|---| | 宿主机 | 192.168.56.1 | 分析师工作站(浏览器访问) | | SOC-Server | 192.168.56.10 | Wazuh 服务器 | | Endpoint-01 | 192.168.56.20 | 受监控端点 | | Endpoint-02 | 192.168.56.21 | 受监控端点 | ### VM 配置 | VM | 内存 | CPU | 硬盘 | 网络适配器 | |---|---|---|---|---| | SOC-Server | 4 GB | 2 核 | 30 GB | NAT + Host-Only | | Endpoint-01 | 2 GB | 1 核 | 15 GB | Host-Only | | Endpoint-02 | 2 GB | 1 核 | 15 GB | Host-Only | ### 防火墙规则 (SOC-Server UFW) ``` ALLOW from 192.168.56.0/24 to port 22 (SSH management) ALLOW from 192.168.56.0/24 to port 443 (Dashboard) ALLOW from 192.168.56.0/24 to port 1514 (Agent data) ALLOW from 192.168.56.0/24 to port 1515 (Agent enrollment) DENY all other inbound ``` ## 8. Wazuh 平台深入解析 ### Manager 管道(每条日志如何变成告警) ``` Raw log line arrives from agent | [Pre-decoder] Strip syslog header: timestamp, hostname, program | [Decoder] Match log format, extract fields syslog decoder: program=sshd, user=admin, srcip=192.168.56.1 | [Rule Engine] Test decoded fields against all rules Rule 5716: if program=sshd AND message matches "Failed password" -> MATCH | [Frequency Check] Does this rule have frequency/timeframe? Rule 100001: if rule 5716 fires 5x in 120s from same IP -> MATCH | [Alert Object] Create structured JSON alert {rule.id, rule.level, rule.description, agent.name, data.srcip, full_log, ...} | [Output] Write to alerts.json -> Filebeat -> Indexer -> Dashboard ``` ### Agent 模块说明 | 模块 | 配置项 | 收集内容 | |---|---|---| | Log collector | `` | 逐行读取日志文件,转发新增条目 | | FIM (syscheck) | `` | 文件哈希基线,通过 inotify 检测变更 | | Rootcheck | `` | 已知 rootkit 特征、异常的 /dev 文件、隐藏进程 | | Syscollector | `` | 软件包、进程、开放端口、网络接口、操作系统信息 | ### 本项目中的规则类型 | 规则类型 | 工作原理 | 示例 | |---|---|---| | 简单匹配 | 日志匹配到模式时触发 | 规则 100021:syslog 包含 "Stopped service" | | 子规则 | 当父规则触发时触发,添加上下文 | 规则 100010:规则 550 触发且路径为 /opt/lab-watched | | 频率规则 | 当父规则在 T 秒内触发 N 次时触发 | 规则 100001:规则 5716 在 120 秒内来自同一 IP 触发 5 次 | | 复合规则 | 多个条件必须全部满足 | 规则 100002:规则 5715 触发且存在来自同一 IP 的先前失败记录 | ## 9. 全部 5 个检测用例 ### 用例 1:SSH 暴力破解 **规则:** 5716 + 100001 | **级别:** 10 | **MITRE:** T1110 检测重复的 SSH 登录失败。每次失败都会触发规则 5716。当达到阈值(120 秒内来自同一源 IP 的 5 次失败)时,触发规则 100001。测试命令:`generate-failed-logins.sh --count 8 --delay 1` ### 用例 2:文件完整性监控 **规则:** 550/554/553 + 100010/100011/100012/100013 | **级别:** 5-12 | **MITRE:** T1565.001 检测受监控目录(/etc、/usr/bin、/opt/lab-watched)中文件的创建、修改和删除。利用 inotify 进行实时检测。存储 MD5/SHA256 基线并显示差异。测试命令:`generate-fim-events.sh --cycles 2` ### 用例 3:服务状态监控 **规则:** 100021 + 100022 | **级别:** 6-8 | **MITRE:** T1489 通过 syslog 检测系统服务何时停止或重启。这一点至关重要,因为攻击者经常停止安全工具作为防御规避手段。测试命令:`generate-service-events.sh --service cron` ### 用例 4:身份验证异常 **规则:** 100030/100031/100032 | **级别:** 6-10 | **MITRE:** T1110.003, T1136.001 检测用户枚举(来自一个 IP 对多个账户的登录失败)、连续的 sudo 失败以及未经授权的账户创建。测试命令:`generate-failed-logins.sh --count 12 --delay 1` ### 用例 5:Agent 心跳丢失 **规则:** 502 + 100040/100041 | **级别:** 10 | **MITRE:** T1562 检测受监控端点何时停止通信。在 Agent 停止签到约 60 秒后触发。测试命令:在端点上运行 `sudo systemctl stop wazuh-agent`。 ## 10. 自定义检测规则 ### 完整规则列表 | 规则 ID | 描述 | 级别 | 触发条件 | |---|---|---|---| | 100001 | SSH 暴力破解 | 10 | 120 秒内来自同一 IP 的规则 5716 触发 5 次以上 | | 100002 | 失败后登录成功 | 12 | 来自同一 IP 的 5716 之后触发规则 5715 | | 100010 | 实验目录中 FIM 文件被修改 | 7 | /opt/lab-watched 对应的规则 550 | | 100011 | 实验目录中 FIM 新增文件 | 7 | /opt/lab-watched 对应的规则 554 | | 100012 | FIM /etc/passwd 被修改 | 9 | /etc/passwd 对应的规则 550 | | 10013 | FIM /etc/shadow 被修改 | 9 | /etc/shadow 对应的规则 550 | | 100020 | sshd 已停止 | 8 | syslog: "sshd.*Stopped" | | 100021 | 通用服务已停止 | 6 | syslog: "Stopped service" | | 100022 | 服务已启动/重启 | 5 | syslog: "Started service" | | 100023 | Cron 任务已执行 | 3 | syslog: CRON CMD | | 100030 | 用户枚举 | 10 | 120 秒内来自同一 IP 的规则 5716 触发 6 次以上 | | 100031 | 连续 sudo 失败 | 6 | 300 秒内来自同一用户的规则 5401 触发 10 次以上 | | 100032 | 创建新用户 | 8 | auth.log: "useradd" 或 "new user" | | 100040 | Agent 断开连接 | 10 | 内置规则 502 触发 | | 100041 | Agent 重新连接 | 3 | 内置规则 501 触发 | | 100050 | authorized_keys 已更改 | 11 | authorized_keys 对应的规则 550/554 | | 100051 | sudoers 已修改 | 12 | /etc/sudoers 对应的规则 550/554 | ### 严重性等级 | 级别 | 标签 | 需要采取的行动 | |---|---|---| | 1-3 | 信息性 | 仅记录 | | 4-6 | 低-中 | 在下次检查时审查 | | 7-9 | 中-高 | 在一小时内调查 | | 10-12 | 高-极高 | 立即调查 | | 13-15 | 严重 | 立即升级上报 | ## 11. 事件生成脚本(安全) 所有脚本都是非破坏性的,仅在 localhost 或实验网络上运行,并在完成后恢复原始状态。 | 脚本 | 作用 | 触发的规则 | |---|---|---| | generate-failed-logins.sh | 使用伪造的用户名通过 SSH 连接 localhost | 规则 5716, 100001 | | generate-fim-events.sh | 在 /opt/lab-watched 中创建/修改/删除文件 | 规则 550, 554, 553, 100010, 100011 | | generate-service-events.sh | 停止/启动 cron 服务 | 规则 100021, 100022 | | run-all-tests.sh | 按顺序运行上述三个脚本 | 以上所有规则 | ## 12. 仪表板与告警调查 **URL:** https://192.168.56.10 | **用户名:** admin ### 主要部分 | 部分 | 路径 | 用途 | |---|---|---| | 概览 | Dashboard > Overview | 告警数量、Agent 状态、MITRE 热力图 | | 安全事件 | Modules > Security Events | 主要告警流,分诊 | | 完整性监控 | Modules > Integrity Monitoring | FIM 事件 | | 代理 | Dashboard > Agents | 端点状态 (Active/Disconnected) | ### 分诊工作流 ``` 1. IDENTIFY — note rule.id, level, agent, timestamp 2. EXPAND — click row, view all fields + full_log 3. CORRELATE — filter same agent, time window +-15 min 4. ASSESS — known IP? expected event? any success after? 5. DECIDE — True Positive / False Positive / Inconclusive 6. DOCUMENT — fill incident-report-template.md ``` ### 常用 KQL 查询 ``` rule.id: "100001" Brute force alerts rule.groups: "authentication_failures" All auth failures rule.groups: "syscheck" All FIM events rule.level: >= 10 High + critical agent.name: "endpoint-01" One host rule.id: "100040" Agent disconnect data.srcip: "192.168.56.1" By source IP ``` ## 13. 事件报告 | 模板 | 用途 | |---|---| | incident-report-template.md | 按事件:标头、摘要、时间线、证据、分析、风险、响应 | | daily-summary-template.md | 按班次:Agent 状态、告警数量、重要事件 | | weekly-trend-template.md | 按周:指标、趋势、MTTD/MTTR、覆盖范围健康度 | | sample-finding.md | 已填写的 SSH 暴力破解示例报告 | ## 14. 安装设置概览 ``` 1. VirtualBox host-only network: vboxnet0 / 192.168.56.0/24 2. SOC-Server VM: Ubuntu 22.04, 4GB RAM, IP 192.168.56.10 3. Endpoint-01 VM: Ubuntu 22.04, 2GB RAM, IP 192.168.56.20 4. Endpoint-02 VM: Ubuntu 22.04, 2GB RAM, IP 192.168.56.21 5. sudo bash install-wazuh-server.sh (on SOC-Server, ~30 min) 6. Open https://192.168.56.10 (verify dashboard loads) 7. sudo bash install-wazuh-agent.sh (on each endpoint) 8. Deploy local_rules.xml to /var/ossec/etc/rules/ 9. sudo bash run-all-tests.sh (on Endpoint-01) 10. Verify alerts in dashboard (Security Events view) ``` 完整说明请参阅:docs/setup-guide.md 和 lab_setup/vm-setup-guide.md。 ## 15. 测试与验证 | # | 测试项 | 通过标准 | |---|---|---| | TC1 | Agent 连接情况 | 两个 Agent 在仪表板中均显示为 Active | | TC2 | 日志转发 | `logger` 的输出出现在 Manager 的 archives.log 中 | | TC3 | 失败登录检测 | 规则 5716 + 100001 显示在安全事件 (Security Events) 中 | | TC4 | FIM 检测 | 规则 550/554 显示在完整性监控 (Integrity Monitoring) 中 | | TC5 | 服务监控 | 规则 100021/100022 显示在安全事件 (Security Events) 中 | | TC6 | Agent 心跳丢失 | Agent 显示为 Disconnected;规则 100040 触发 | | TC7 | 规则验证 | wazuh-logtest 为测试日志识别出规则 5716 | | TC8 | 仪表板可视化 | 所有告警类型和 FIM 事件均正确显示 | 请参阅:docs/testing-guide.md ## 16. 安全与道德声明 本项目严格限于防御性用途和实验环境。 - 所有事件均在自有 VM 上生成 - SSH 脚本仅连接至 localhost (127.0.0.1) - 不包含外部扫描,不包含攻击性工具,不包含恶意软件 - 不使用或存储真实凭据 - 隔离的私有网络(不暴露于互联网) - 仅临时重启非关键服务 ## 17. 面试准备摘要 需要牢记的关键陈述: - **SIEM:** "从多个系统收集日志,通过规则进行关联,并生成告警以供调查。" - **数据流:** "端点事件 → auth.log → Agent 读取 → 加密并发送 → Manager 解码 → 规则触发 → 告警被索引 → 仪表板展示。" - **FIM:** "存储文件的 MD5/SHA256 基线,利用 inotify 实时检测变更,并触发带有差异对比的告警。" - **暴力破解规则:** "频率规则 —— 当在 120 秒内来自同一 IP 的 SSH 失败达到 5 次以上时触发。" - **MITRE ATT&CK:** "真实世界攻击技术的框架。我为规则打上技术 ID 标签,以便告警立即具有上下文意义。" - **分诊:** "审查告警,展开详情,关联时间线,评估上下文,判定真/假阳性,形成文档。" 完整问答请参阅:docs/interview-prep.md 完整演示脚本请参阅:presentation_assets/demo-script.md ## 18. 未来改进 | 增强功能 | 价值 | |---|---| | Suricata IDS | 网络层面的威胁检测 | | Windows 端点 | 跨平台监控 | | 漏洞检测 | 对已安装的软件包进行 CVE 扫描 | | 威胁情报 | IP 信誉信息富化 | | Python PDF 报告器 | 从 OpenSearch API 自动生成报告 | | 主动响应 | 自动封禁暴力破解 IP(仅限实验环境) | | GitHub Actions | 每次推送时运行 XML 规则检查 CI | ## 快速参考卡 ``` DASHBOARD: https://192.168.56.10 (admin / see wazuh-passwords.txt) SOC-Server: ssh socadmin@192.168.56.10 Endpoint-01: ssh labuser@192.168.56.20 Endpoint-02: ssh labuser@192.168.56.21 Run all tests: sudo bash scripts/event-generation/run-all-tests.sh Check services: sudo systemctl status wazuh-manager wazuh-indexer wazuh-dashboard Live alerts: sudo tail -f /var/ossec/logs/alerts/alerts.log Agent list: sudo /var/ossec/bin/manage_agents -l Rule tester: sudo /var/ossec/bin/wazuh-logtest KQL Quick Filters (paste in dashboard search bar): rule.id: "100001" brute force rule.groups: "authentication_failures" all auth events rule.groups: "syscheck" all FIM events rule.level: >= 10 high + critical only agent.name: "endpoint-01" one host only rule.id: "100040" agent disconnect ``` *Mini SOC Lab — 专为防御性网络安全教育而构建。* *所有事件均在隔离、经授权的实验环境中发生。* *安全 - 教育 - 作品集就绪*
标签:AMSI绕过, EDR, IR, IT安全, meg, OPA, Wazuh, Windows Server, x64dbg, 事件生成, 信息安全, 告警分诊, 告警调查, 威胁检测, 子域名变形, 安全事件分析, 安全仪表盘, 安全分析师, 安全实验室, 安全架构, 安全运营, 安全运营中心, 实验室搭建, 家庭实验室, 库, 应急响应, 应用安全, 扫描框架, 攻击模拟, 日志收集, 求职项目, 端点监控, 网络安全, 网络安全审计, 网络映射, 脆弱性评估, 自定义检测规则, 隐私保护, 面试准备, 靶场, 驱动签名利用