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, 安全运营, 扫描框架, 检测规则, 网络资产发现, 逆向工具