dimasqiramadhani/endpoint-detection-coverage
GitHub: dimasqiramadhani/endpoint-detection-coverage
基于 Wazuh SIEM 集成 Falco、auditd 和 Sysmon 的端点安全监控与检测工程方案,提供自定义检测规则、MITRE ATT&CK 映射和验证测试。
Stars: 1 | Forks: 0

# Endpoint Detection 覆盖率
作为为期两个月的安全工程项目的一部分,为一家保险服务客户开发的安全监控实施方案。该实施涵盖了 endpoint 遥测数据收集、集中式日志管理,以及跨 Linux 和 Windows 服务器环境的检测工程。
本仓库记录了项目期间进行的技术架构、配置、检测规则和验证测试。实验室环境是在正式部署前,基于 Visionet 环境中的克隆基础设施构建的。
## 项目背景
**角色:** 安全工程师 (PT. Visionet Data Internasional)
**客户:** 保险服务客户
**周期:** 2 个月
**范围:** 使用 Wazuh 作为中心 SIEM 的安全监控实施,涵盖具有多源遥测集成的 Linux 和 Windows 服务器 endpoint
在正式推出之前,实施过程经历了一个概念验证(POC)阶段,以验证检测覆盖范围和仪表板功能。本仓库反映了在该过程中开发和测试的配置及规则。
## 架构
```
graph TB
subgraph AIO["Wazuh All-in-One - Central SIEM"]
WM[Wazuh Manager]
WI[Wazuh Indexer / OpenSearch]
WD[Wazuh Dashboard]
WM --> WI --> WD
end
subgraph LINUX["Linux Server Endpoint"]
LA[Wazuh Agent v4.14.5]
Falco[Falco 0.43.1]
Auditd[auditd]
Falco -->|JSON alerts| LA
Auditd -->|audit.log| LA
end
subgraph WIN["Windows Server 2019 Endpoint"]
WA[Wazuh Agent v4.14.5]
Sysmon[Sysmon v15.20]
Sysmon -->|Event Log| WA
end
LA -->|port 1514 TLS| WM
WA -->|port 1514 TLS| WM
```
## 环境清单
| 主机 | 角色 | 操作系统 | Wazuh 版本 | Agent ID | 状态 |
|--------------|-----------------------------------|-------------------------------------------------|---------------|--------------|--------|
| ubnsrv-aio | Wazuh Manager, Indexer, Dashboard | Linux | v4.14.5 | 000 (server) | Active |
| ubnsrv-agent | Linux 服务器 Endpoint | Ubuntu 22.04.5 LTS, 内核 5.15.0-179-generic | v4.14.5 | 001 | Active |
| winsrv-agent | Windows 服务器 Endpoint | Windows Server 2019 Standard (Build 10.0.17763) | v4.14.5 | 002 | Active |
完整版本详情见 [docs/lab-inventory.md](docs/lab-inventory.md)。
## 组件
| 组件 | 版本 | 功能 | 部署位置 |
|-----------------|----------------------|--------------------------------------------------|--------------|
| Wazuh Manager | v4.14.5 | 日志摄取、规则处理、告警生成 | ubnsrv-aio |
| Wazuh Indexer | v4.14.5 | 告警存储与搜索 (OpenSearch) | ubnsrv-aio |
| Wazuh Dashboard | v4.14.5 | 监控界面、调查、报告 | ubnsrv-aio |
| Wazuh Agent | v4.14.5 | endpoint 日志收集与转发 | ubnsrv-agent |
| Wazuh Agent | v4.14.5 | endpoint 日志收集与转发 | winsrv-agent |
| Falco | 0.43.1 | 通过 eBPF 进行运行时威胁检测 | ubnsrv-agent |
| auditd | Ubuntu 22.04 package | Linux syscall 审计 | ubnsrv-agent |
| Sysmon | v15.20 | Windows 进程、网络和文件遥测 | winsrv-agent |
## 遥测源与日志流
三个独立的遥测源输入到中心的 Wazuh 实例中。每一个都使用了不同的收集机制。
**Linux endpoint:**
| 来源 | 收集方式 | 格式 | 传输 |
|--------|----------------------------------------------|-------|------------------------|
| auditd | localfile - /var/log/audit/audit.log | audit | Wazuh Agent, 端口 1514 |
| Falco | localfile - /var/log/falco/falco_events.json | json | Wazuh Agent, 端口 1514 |
**Windows endpoint:**
| 来源 | 收集方式 | 格式 | 传输 |
|-----------------|---------------------------------------------------------|--------------|------------------------|
| Sysmon | eventchannel - Microsoft-Windows-Sysmon/Operational | eventchannel | Wazuh Agent, 端口 1514 |
| PowerShell | eventchannel - Microsoft-Windows-PowerShell/Operational | eventchannel | Wazuh Agent, 端口 1514 |
| Security Events | eventchannel - Security (filtered) | eventchannel | Wazuh Agent, 端口 1514 |
详细的处理流程请参见 [docs/log-flow.md](docs/log-flow.md)。
## 检测工程
### 自定义规则
开发了自定义的 Wazuh 规则,以将检测覆盖范围扩展到内置规则集之外。所有规则都进行了 MITRE ATT&CK 映射,并记录在 [docs/custom-rules.md](docs/custom-rules.md) 中。
**Falco 集成规则 (117000-117003):**
| 规则 ID | 条件 | 级别 | 触发器 |
|---------|----------------------|-------|-----------------------------------------|
| 117000 | 任何 Falco JSON 事件 | 6 | 基础规则 |
| 117001 | 优先级: Critical | 10 | XZ backdoor,严重运行时事件 |
| 117002 | 优先级: Warning | 7 | 敏感文件读取,账号创建 |
| 117003 | 优先级: Notice/Info | 5 | 网络异常,信息事件 |
**auditd 检测规则 (210100-210114):**
| 规则 ID | Audit Key | 级别 | MITRE |
|---------|------------------------------------------------------|-------|------------------------------------------------|
| 210100 | etcpasswd, shadow_access | 8 | T1003 - OS Credential Dumping |
| 210101 | priv_esc | 10 | T1548 - Abuse Elevation Control |
| 210102 | rootcmd | 9 | T1548.003 - Sudo and Sudo Caching |
| 210103 | susp_activity | 8 | T1059 - Command and Scripting Interpreter |
| 210104 | recon | 6 | T1082 - System Information Discovery |
| 210105 | user_modification, group_modification | 9 | T1136 - Create Account |
| 210106 | sshd | 10 | T1098 - Account Manipulation |
| 210107 | remote_shell | 12 | T1059.004 - Unix Shell |
| 210108 | cron | 8 | T1053.003 - Cron |
| 210109 | modules | 10 | T1547.006 - Kernel Modules and Extensions |
| 210110 | code_injection, data_injection, register_injection | 12 | T1055 - Process Injection |
| 210111 | auditconfig, auditlog | 11 | T1070.002 - Clear Linux or Mac System Logs |
| 210112 | perm_mod | 7 | T1222 - File and Directory Permissions |
| 210113 | T1011_Exfiltration_Over_Other_Network_Medium | 10 | T1011 - Exfiltration Over Other Network Medium |
| 210114 | T1081_Credentials_In_Files | 8 | T1552.001 - Credentials In Files |
### 检测覆盖范围总结
| 类别 | 来源 | 覆盖范围 |
|----------------|---------------|--------------------------------------------------------------------------------------------|
| 运行时威胁检测 | Falco | XZ backdoor 模式、敏感文件访问、意外网络活动、账号创建 |
| 凭据访问 | auditd | /etc/shadow 和 /etc/passwd 访问监控 |
| 权限提升 | auditd | sudo 使用情况、SUID 执行、root 命令追踪 |
| 持久化 | auditd | Cron 修改、内核模块加载 |
| 防御规避 | auditd | 审计日志和配置篡改 |
| 进程注入 | auditd | 基于 ptrace 的注入(代码、数据、寄存器) |
| 横向移动 | auditd | SSH 配置修改 |
| 数据窃取 | auditd | 原始套接字创建监控 |
| Windows 进程活动| Sysmon | 完整命令行、哈希值 (MD5/SHA256/IMPHASH)、父进程链 |
| PowerShell 执行 | Sysmon | 编码命令、执行策略绕过、下载诱饵 |
| 网络连接 | Sysmon | 出站和入站连接日志记录 |
| 身份验证失败 | Wazuh 内置 | SSH 暴力破解、无效用户尝试 |
## 验证测试
所有检测场景在生产移交前都经过了测试和验证。
| 测试用例 | endpoint | 遥测源 | 触发规则 | 结果 |
|------------------------------------|--------------|-------------------------------|------------------------|--------------------|
| /etc/shadow 访问 | ubnsrv-agent | auditd (key: etcpasswd) | 210100, level 8, T1003 | 通过 |
| sudo whoami, sudo id | ubnsrv-agent | auditd (key: recon + rootcmd) | 210104, 210102 | 通过 |
| curl, wget 执行 | ubnsrv-agent | auditd (key: susp_activity) | 210103, level 8 | 通过 |
| Falco - 敏感文件读取 | ubnsrv-agent | Falco | 117002, level 7 | 通过 |
| Falco - XZ backdoor 模式 | ubnsrv-agent | Falco | 117001, level 10 | 通过 |
| Sysmon 进程创建 | winsrv-agent | Sysmon Event ID 1 | 内置规则 | 通过 |
| PowerShell -ExecutionPolicy Bypass | winsrv-agent | Sysmon Event ID 1 | 92027, T1059.001 | 通过 |
| PowerShell -EncodedCommand | winsrv-agent | Sysmon Event ID 1 | 内置规则 | 通过 |
| PowerShell IEX 下载诱饵 | winsrv-agent | Sysmon Event ID 1 + 3 | 内置规则 | 通过 |
| Agent 连接性 | 两者 | Wazuh Manager | N/A | 通过 - 均为 Active |
完整的测试用例文档见 [docs/detection-test-cases.md](docs/detection-test-cases.md)。
## POC 仪表板
在 Wazuh 中构建了一个自定义的安全监控仪表板,将所有遥测源整合到一个操作视图中。该仪表板在 POC 演示期间被用作主要交付物。
仪表板面板:
- 按来源(Sysmon、Falco、auditd、高严重性)统计的告警总数
- 告警时间线(30分钟间隔,按来源细分)
- 总告警计数器(24小时窗口)
- Sysmon 事件表(Event ID、进程、描述)
- Falco 告警表(agent、规则、优先级)
- Falco 规则频率图表
- 按 agent 划分的告警细分
- 包含规则组和描述的近期告警表
- auditd 事件表(agent、规则组、可执行文件)
- Sysmon Event ID 分布
- 触发次数最多的规则
截图在 `screenshots/` 中。
## 生产环境的观察
在 POC 和测试阶段,该环境受到了真实的外部攻击流量。主要观察结果:
- SSH 暴力破解是持续且大量的。“sshd: Attempt to login using a non-existent user” (规则 5710) 规则始终位居触发规则榜首,每小时有来自多个国家外部 IP 的数百次尝试。
- Falco 触发了一个严重告警:“Suspicious sshd Execution Pattern (XZ Backdoor Indicators)”。当 sshd 以 `EXE_WRITABLE` 标志执行时,就会触发此规则,这与 CVE-2024-3094 (XZ Utils 供应链后门) 的行为特征相匹配。这已被标记进行分类,以确定它是真阳性还是由于正常的 sshd 守护进程重启行为引起的假阳性。
- auditd 规则 210113 频繁触发,因为 Falco 本身会为基于 eBPF 的监控创建原始套接字。这是一个已知的假阳性,计划为 `/usr/bin/falco` 添加排除项。
该环境的示例告警位于 `sample-alerts/` 中。
## 已知问题与计划工作
| 项目 | 优先级 | 备注 |
|-------------------------------------------------------|--------|---------------------------------------------|
| 在规则 210113 中添加 Falco 的排除项 | High | 减少 eBPF 套接字创建产生的假阳性噪声 |
| 分类处理Z Backdoor Falco 告警 | High | 确定真阳性与行为假阳性 |
| 创建缺失的 CDB 列表 (common-ports, bash_profile) | Medium | 修复规则 102503 和 200120 的静默跳过 |
| 实现多记录 auditd 关联 | Medium | SYSCALL + PATH + EXECVE 分组上下文 |
| 为 PowerShell 滥用添加自定义 Sysmon 规则 | Low | 目前仅依赖内置规则 |
| 添加网络遥测 (Suricata 或 Zeek) | Low | 未来阶段的考虑 |
## 仓库结构
```
wazuh-detection-lab/
├── README.md
├── LICENSE
├── .gitignore
├── configs/
│ ├── wazuh/
│ │ ├── ossec-agent-linux.conf
│ │ └── ossec-agent-windows.conf
│ ├── linux/
│ │ ├── auditd-rules.conf
│ │ └── falco-output-config.yaml
│ └── windows/
│ └── sysmon-config-notes.md
├── docs/
│ ├── architecture.md
│ ├── wazuh-server-setup.md
│ ├── linux-agent-falco-auditd.md
│ ├── windows-agent-sysmon.md
│ ├── log-flow.md
│ ├── detection-test-cases.md
│ ├── custom-rules.md
│ ├── lab-inventory.md
│ ├── troubleshooting.md
│ └── lessons-learned.md
├── rules/
│ └── local_rules.xml
├── sample-alerts/
│ ├── alert-auditd-rule210113.json
│ ├── alert-sshd-bruteforce-rule5710.json
│ ├── alert-sysmon-powershell-rule92027.json
│ ├── falco-raw-alerts.jsonl
│ ├── auditd-raw-events.txt
│ └── README.md
├── test-cases/
│ ├── linux-auditd-detections.md
│ ├── linux-falco-detections.md
│ ├── windows-sysmon-detections.md
│ ├── windows-powershell-detections.md
│ └── agent-connectivity.md
├── screenshots/
├── diagrams/
│ └── architecture.mermaid
└── notes/
```
## 作者
Dimasqi Ramadhani, 安全工程师
- [个人主页](https://dimasqiramadhani.com)
- [Github](https://github.com/dimasqiramadhani)
- [Linkedin](https://linkedin.com/in/dimasqiramadhani)
## 许可证
本项目基于 MIT 许可证授权。详情请参见 [LICENSE](LICENSE)。
标签:Wazuh, 端点安全, 补丁管理, 运维监控