BeardedTinker/wazuh-homelab-security

GitHub: BeardedTinker/wazuh-homelab-security

一套专为家庭实验室设计的 Wazuh 规则和解码器集合,覆盖 UniFi、Synology、Home Assistant 三大平台的真实安全日志检测。

Stars: 1 | Forks: 0

# Wazuh 家庭实验室安全 针对真实家庭实验室环境的实用 Wazuh 规则、解码器、示例日志和仪表板构建模块。 本仓库专注于三种常见的家庭实验室遥测数据源: - UniFi 防火墙 / IDS / IPS 事件 - Synology DSM 身份验证事件 - 通过 Wazuh Agent + journald 获取的 Home Assistant 安全相关日志 目标很简单:检测**家庭实验室中的真实安全信号**,而不引入仅限企业级的复杂性。 本仓库反映了**真实可运行的家庭实验室部署**。 # 本仓库涵盖内容 ## UniFi 当前已实施的检测思路: - WAN_LOCAL 防火墙丢弃 - SSH 探测 - Synology DSM 暴露尝试 - Home Assistant 暴露尝试 - HTTP / HTTPS 后台探测 - 来自同一来源的高频重复探测 ## Synology DSM 当前已实施的检测思路: - 登录成功 - 登录失败 - 来自同一 IP 的重复登录失败 - 来自同一 IP 和用户的多次失败后登录成功 ## Home Assistant 当前已实施的检测思路: - 来自 `http.ban` 的无效身份验证 - 来自同一 IP 的重复无效身份验证 - 可疑的 websocket 身份验证活动 - 重复的 websocket 可疑活动 - Moonraker websocket 重连噪声抑制 # 仓库结构 ``` . ├── samples/ │ ├── homeassistant/ │ ├── synology/ │ └── unifi/ ├── tools/ │ └── sanitize/ └── wazuh/ ├── decoders/ ├── ossec.conf.snippets/ └── rules/ ``` # 文件夹用途 ### samples/ 包含**经过脱敏的真实日志样本**。 每个源文件夹包含: - `raw.log` - `expected.json` 这允许对解码器和规则进行回归测试。 ### tools/sanitize/ 用于在发布日志前进行脱敏的工具。 典型的脱敏操作包括: - 替换内部 IP - 移除用户名 - 移除设备 ID - 移除敏感 URL 或 token ### wazuh/decoders/ 按来源分组的自定义解码器。 示例: - `0100-unifi-decoders.xml` - `0200-synology-decoders.xml` - `0300-homeassistant-decoders.xml` ### wazuh/rules/ 按来源分组的自定义规则。 示例: - `0100-unifi-rules.xml` - `0200-synology-rules.xml` - `0300-homeassistant-rules.xml` 规则特意按**来源领域**组织,以保持仓库的可读性。 ### wazuh/ossec.conf.snippets/ 旨在合并到 `ossec.conf` 中的配置片段。 示例包括: - 远程 syslog 监听器 - UniFi 日志获取 - Synology 日志获取 - Home Assistant 的 journald 获取 # 安装顺序 应用这些规则时的推荐工作流程: 1. 将解码器复制到 Wazuh 解码器目录 2. 将规则复制到 Wazuh 规则目录 3. 合并所需的 ossec.conf 片段 4. 验证配置 5. 重启 Wazuh manager 6. 使用 wazuh-logtest 进行测试 典型命令: ``` sudo /var/ossec/bin/wazuh-analysisd -t sudo systemctl restart wazuh-manager sudo /var/ossec/bin/wazuh-logtest ``` # Home Assistant 集成说明 Home Assistant 日志通过具有 journald 访问权限的 **Wazuh Agent** 获取。 这意味着: - 事件源自 HA agent - 源 IP 提取在自定义解码器中进行 - 暴力破解检测通过 Wazuh 规则完成 - 跨源关联在仪表板级别处理 示例检测链: 1. UniFi 检测到针对端口 8123 的探测 2. Home Assistant 记录重复的无效身份验证 3. Wazuh 规则触发暴力破解警报 由于这些事件可能来自**不同的数据源**,因此在**仪表板或监控级别**进行关联更为可靠。 示例关联模式: UniFi 探测规则 → `100132` Home Assistant 暴力破解规则 → `100310` 可以在以下位置进行关联: ``` data.srcip ``` 在时间窗口内。 # 示例日志 每个来源都包含用于测试的示例日志。 结构: ``` raw.log expected.json ``` 预期文件描述了应该匹配哪些解码器和规则。 这有助于确保规则更改不会静默破坏检测逻辑。 # 仪表板建议 建议的仪表板面板: - Top attacking IPs(主要攻击 IP) - Attack timeline(攻击时间线) - Top attacked services(主要受攻击服务) - Attack sources map(攻击源地图) - Top attackers (last 24 hours)(主要攻击者 - 过去 24 小时) - Top attackers (historical)(主要攻击者 - 历史记录) - Alert severity distribution(警报严重程度分布) 推荐的索引模式: ``` wazuh-alerts-* ``` 示例过滤器: ``` rule.id:(100132 OR 100300 OR 100310) ``` # 已知限制 - 跨源关联特意未作为纯 Wazuh 规则实施 - 某些检测依赖于原始日志格式 - 示例日志已经过脱敏和简化 # 测试方法 修改解码器或规则时: 1. 验证 XML 语法 2. 使用 wazuh-logtest 测试单个事件 3. 测试重复事件阈值 4. 验证提取的字段 5. 验证仪表板中的索引 然后再添加仪表板或主动响应。 # 主动响应警告 自动阻断应**仅在仔细验证后**启用。 在启用主动响应之前: - 确认解码器准确性 - 了解误报模式 - 端到端验证事件流 建议的第一步是部署**默认禁用**的主动响应。 # 脱敏 在发布日志之前务必进行脱敏: - IP 地址 - 主机名 - 用户名 - 内部路径 - token 或 ID # 许可证 选择任何适合共享检测逻辑的许可证。 宽松的许可证通常最便于重用。 # 贡献 未来的改进可能包括: - 额外的 Home Assistant 检测 - UniFi IDS 富化 - 仪表板导出 - OpenSearch 监控示例 - 可选的主动响应示例
标签:CISA项目, Home Assistant, PB级数据处理, PE 加载器, Synology, UniFi, URL发现, Wazuh, 仪表盘, 威胁情报, 安全检测, 安全运维, 家庭实验室, 开发者工具, 日志清洗, 网络安全, 规则集, 解码器, 认证安全, 速率限制, 防火墙, 隐私保护