dimasqiramadhani/endpoint-detection-coverage

GitHub: dimasqiramadhani/endpoint-detection-coverage

基于 Wazuh SIEM 集成 Falco、auditd 和 Sysmon 的端点安全监控与检测工程方案,提供自定义检测规则、MITRE ATT&CK 映射和验证测试。

Stars: 1 | Forks: 0

![封面图片](https://raw.githubusercontent.com/dimasqiramadhani/endpoint-detection-coverage/main/screenshots/Cover%20Image.png) # 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, 端点安全, 补丁管理, 运维监控