Annusjawad/Custom-Detection-Engineering-Lab

GitHub: Annusjawad/Custom-Detection-Engineering-Lab

一个基于 OpenWrt 路由器和 Wazuh SIEM 的蓝队检测工程实验室,演示端到端日志收集、流水线验证及自定义检测规则编写。

Stars: 0 | Forks: 0

# 🛡️ OpenWrt 到 Wazuh SIEM:自定义检测工程实验室 一个综合性的蓝队工程实验室,展示了使用生产级 OpenWrt 边缘设备和 Wazuh SIEM 进行的端到端日志收集、流水线验证、实时攻击模拟以及自定义检测规则编写。 ## 📋 执行摘要 * **目标:** 实现从活跃网络路由器到集中式 SIEM 的安全遥测和监控流水线,模拟针对实机硬件的单源和分布式认证攻击,并编写自定义关联规则以解决特定的检测盲区。 * **核心能力:** Syslog 传输配置、日志解析与解码、规则工程、攻击模拟以及事件检测生命周期管理。 * **框架:** [MITRE ATT&CK](https://attack.mitre.org/)(战术:凭证访问 | 技术:[T1110 - 暴力破解](https://attack.mitre.org/techniques/T1110/))。 ## 🏗️ 架构与流水线流向 遥测和检测工作流遵循从网络边缘到 SIEM 仪表板的结构化、多阶段流水线: ### 流水线阶段详情: 1. **网络传输:** OpenWrt 路由器上由 `dropbear` SSH daemon 生成的原始认证事件,通过 Syslog 经由 UDP 端口 514 转发到 Wazuh Manager。 2. **预解码与解码(阶段 1 和 2):** Wazuh 引擎解析原始的 syslog 字符串,提取关键的上下文字段,包括源 IP (`srcip`) 和目标用户名 (`dstuser`)。 3. **检测与关联(阶段 3 和 4):** 标准规则处理孤立的认证失败和单源突发情况,而自定义规则 (`botnet.xml`) 则弥补了多源或协同攻击向量的覆盖盲区。 ## 阶段 1:遥测设置与 Syslog 摄取 1. **配置 Wazuh 服务器摄取:** 更新 Wazuh manager 配置文件 (`/var/ossec/etc/ossec.conf`) 以接受传入的 syslog 流量: ``` syslog 514 udp YOUR_ROUTER_IP_ADDRESS ``` 重启 manager 服务以应用更改: ``` sudo systemctl restart wazuh-manager ``` 2. **配置 OpenWrt 远程日志记录:** 通过默认网关登录 OpenWrt Web 界面: * 导航至 **System > System**。 * 选择 **Logging** 标签页。 * 在 **Log output** / **Remote logging** 下: * **Log remote server:** 输入 Wazuh Manager 的 IP 地址。 * **Remote port:** 设置为 `514`。 * **Remote protocol:** 选择 `UDP`。 * 点击 **Save & Apply**。 3. **验证日志传输:** 确认 Wazuh 服务器接口已接收到原始遥测数据包: ``` sudo tcpdump -i any port 514 -v ``` 从另一个终端触发针对路由器的 SSH 连接尝试,以验证数据包流向: ``` 14:29:00.373095 enp0s3 In IP (tos 0x0, ttl 64, id 26695, offset 0, flags [DF], proto UDP (17), length 114) _gateway.44278 > server1.syslog: SYSLOG, length: 86 Facility authpriv (10), Severity info (6) Msg: Jul 20 14:29:00 OpenWrt dropbear[17955]: Child connection from ``` ## 阶段 2:流水线验证与解码器测试 1. 使用您的服务器 IP 地址访问 Wazuh Web 仪表板。 2. 从您的 `tcpdump` 捕获中提取一条干净的日志字符串(从时间戳开始,例如:`Jul 20 14:29:00 OpenWrt dropbear...`)。 3. 打开 Wazuh 导航菜单(左上角的汉堡图标),选择 **Server Management** 下的 **Ruleset Test**。 4. 将日志条目粘贴到测试界面中并运行评估。确认内置的 `dropbear` 解码器能够在所有操作阶段成功解析日志。 ## 阶段 3:攻击模拟与基线分析 为了建立基线,使用下面提供的自动化脚本,对实时的路由器环境模拟未经授权的认证尝试。 ### 攻击模拟脚本 (`bruteforceattack.py`) 在仓库中提供 ### 执行与监控: 1. 安装依赖项:`pip install paramiko` 2. 执行:`python3 bruteforceattack.py` 3. **Wazuh 监控:** * 导航至 **Wazuh Dashboard**。 * 打开侧边导航菜单中的 **Discover** 标签页。 * 为 `agent.id`、`rule.id`、`data.srcip` 和 `rule.description` 添加自定义列/过滤器,以查看传入的遥测数据。 * *分布式攻击注意事项:* 为了模拟 botnet,在多个设备/IP 上同时执行脚本,以查看 SIEM 如何聚合这些事件。 ## 阶段 4:自定义检测工程 (`botnet.xml`) 为了填补覆盖盲区,将自定义规则定义部署到您的 Wazuh Manager 规则目录中: ``` sudo nano /var/ossec/etc/rules ``` 从仓库中添加 botnet.xml 文件 ### 收尾工作: 1. 重启 Wazuh Manager:`sudo systemctl restart wazuh-manager` 2. 重新运行模拟,验证新规则是否在 **Discover** 标签页中触发。 ## 👤 致谢与鸣谢 * **实验环境:** Wazuh SIEM / OpenWrt * **方法论:** 检测工程生命周期(日志 -> 解码 -> 关联 -> 告警) * *作为网络安全检测工程实验室项目的一部分而创建。*
标签:FOFA, OpenWrt, Wazuh, 安全运营, 扫描框架, 检测规则, 网络资产发现, 逆向工具