AdityaBhatt3010/Malware-Execution-Detection-using-Wazuh-and-Auditd

GitHub: AdityaBhatt3010/Malware-Execution-Detection-using-Wazuh-and-Auditd

该项目展示了如何通过集成 Wazuh 和 Auditd 实现对 Linux 端点上特权命令执行活动的集中化监控与威胁狩猎。

Stars: 1 | Forks: 0

# 使用 Wazuh 和 Auditd 进行恶意软件执行检测 ## 概述 安全运营中心 (SOC) 的关键目标之一是监控进程执行,特别是当特权用户执行可能表明权限提升、持久化机制、恶意软件活动或未经授权的管理操作的命令时。 在这个概念验证 (PoC) 中,我们在 Wazuh Agent 上配置 Auditd,以监控由 root 用户执行的命令。随后,这些事件将被转发到 Wazuh,您可以在其中通过 Threat Hunting 模块对它们进行调查。 ## 目标 本次实验的目标是: * 在 Wazuh Agent 上安装并配置 Auditd。 * 将 Auditd 日志转发到 Wazuh。 * 创建 audit 规则以监控特权用户的命令执行。 * 在 endpoint 上生成活动。 * 在 Wazuh Dashboard 中可视化生成的警报和事件。 # 第一步:安装 Auditd Auditd 是 Linux Audit Daemon,负责记录与安全相关的系统事件,例如: * 进程执行 * 文件访问 * 用户活动 * 权限提升尝试 * 系统调用 更新系统并安装 Auditd: ``` sudo apt-get update -y && sudo apt-get upgrade -y sudo apt-get install auditd ``` 默认情况下,Auditd 将日志存储在: ``` /var/log/audit/audit.log ``` 验证日志文件是否存在并包含事件: ``` cd /var/log/audit/ cat /var/log/audit/audit.log ``` 以下截图展示了正在被访问的 Auditd 日志文件。 ![1](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/2cba2081b6082735.png) 对于日常分析,通常不需要查看整个日志文件。相反,仅显示最近的事件更为实用。 ``` tail -n50 audit.log ``` 此命令显示 Auditd 生成的最后 50 条记录。 ![2](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fe2e553176082740.png) # 第二步:配置 Wazuh 以摄取 Auditd 日志 尽管 Auditd 现在正在本地收集事件,但 Wazuh 不会自动处理这些日志。我们必须明确告诉 Wazuh Agent Auditd 日志文件的位置。 打开 Wazuh Agent 配置文件: ``` nano /var/ossec/etc/ossec.conf ``` 在 `` 闭合标签之前,添加以下配置: ``` audit /var/log/audit/audit.log ``` ### 此配置的作用是什么? * `log_format` 告诉 Wazuh 数据源是 Auditd。 * `location` 指定 Auditd 日志文件。 * Wazuh Agent 将持续监控此文件并将事件转发给 Wazuh Manager。 ![3](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a98aaea473082746.png) 保存配置后,重启 Wazuh Agent: ``` systemctl restart wazuh-agent.service ``` # 第三步:为特权命令执行创建 Audit 规则 对于此 PoC,我们要监控由 root 用户执行的命令。 打开 Auditd 规则文件: ``` nano /etc/audit/audit.rules ``` 添加以下规则: ``` -a exit,always -F euid=0 -F arch=64 -S execve -k audit-wazuh-c -a exit,always -F euid=0 -F arch=32 -S execve -k audit-wazuh-c ``` ### 理解规则 ``` -a exit,always ``` 在受监控的系统调用完成时记录事件。 ``` -F euid=0 ``` 针对以有效 UID 为 0 (root) 运行的进程。 ``` -F arch=64 ``` 监控 64 位系统调用。 ``` -F arch=32 ``` 监控 32 位系统调用。 ``` -S execve ``` `execve` 系统调用负责启动程序和命令。监控此系统调用使我们能够跟踪系统上的命令执行情况。 ``` -k audit-wazuh-c ``` 分配一个自定义 key 以帮助识别和搜索匹配的事件。 ![4](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/cfb8938e93082750.png) 重新加载 Auditd 规则: ``` auditctl -R /etc/audit/audit.rules ``` 这将应用新的监控配置,而无需重启。 ![5](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8e167a5639082755.png) # 第四步:生成活动 为了验证监控是否正常运行,请以 root 身份执行一条命令。 对于此 PoC,我们使用: ``` netstat ``` ### 为什么使用 Netstat? `netstat` 命令显示活动的网络连接、监听端口和路由信息。 从安全角度来看,攻击者在侦查和后渗透活动期间通常会枚举网络连接。因此,观察诸如 `netstat` 之类的命令执行事件可以为 endpoint 活动提供有价值的可见性。 ``` netstat ``` ![6](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/08bd5d8c6c082801.png) # 第五步:在 Wazuh 中调查事件 导航到: ``` Wazuh Dashboard └── Target Agent └── Threat Hunting └── Events ``` 您现在应该能看到从 agent 转发过来的 Auditd 事件。 这些事件包含有用的信息,例如: * 执行的命令 * 用户上下文 * 进程详情 * 时间戳 * Audit key * 主机信息 这使得安全分析师能够直接从 Wazuh 界面调查潜在的可疑命令执行活动。 ![7](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1774f8f87e082806.png) # 检测流程 ``` Command Executed │ ▼ Auditd │ ▼ audit.log │ ▼ Wazuh Agent │ ▼ Wazuh Manager │ ▼ Threat Hunting │ ▼ Analyst Investigation ``` # 总结 在此 PoC 中,我们成功地将 Auditd 与 Wazuh 集成,以监控特权用户执行的命令。 通过创建自定义 Auditd 规则并将生成的日志转发到 Wazuh,我们获得了对进程执行事件的可见性,这些事件可能表明权限提升尝试、攻击者侦查、恶意软件执行或未经授权的管理操作。 虽然本演示使用了一个简单的命令 (`netstat`) 来生成事件,但相同的方法可以扩展到监控敏感二进制文件、检测可疑行为,并增强真实 SOC 环境中的 endpoint 可见性。 这项基础技术广泛适用于: * 安全运营中心 (SOC) * Threat Hunting * Detection Engineering * Incident Response * Endpoint Monitoring * Linux 安全监控
标签:Auditd, CSV导出, PB级数据处理, Wazuh, 安全运维, 应用安全, 权限提升检测