返回首页

Wazuh Syscheck:Linux 文件监控

配置 Wazuh 中 Syscheck 的指南,用于使用 whodata 监控关键 Linux 文件。集中配置、关键性 12 规则、更改测试。auditd 集成提供归因。

Wazuh Linux 文件保护:whodata 和警报
Advertisement 728x90

使用 Wazuh Syscheck 和 Whodata 监控 Linux 关键文件完整性

Wazuh Syscheck 监控关键 Linux 文件(如 /etc/passwd、/etc/shadow、/etc/sudoers 和 /etc/ssh/sshd_config)的变更。Whodata 模式通过 auditd 捕获变更的用户和进程。此配置可集中应用于 Linux 代理组,生成 12 级警报。

Wazuh 架构与 Syscheck 作用

Wazuh 由事件处理的管理器、主机上的代理以及基于 Kibana 的仪表板组成。Syscheck 可定时或实时扫描文件,验证哈希、权限和所有权。在 whodata 模式下,它与 auditd 集成以归因变更。

主要特性:

Google AdInline article slot
  • 每 300 秒周期性扫描。
  • 发送变更差异。
  • 检测目录中新文件。
  • 排除临时文件以减少噪音。

准备代理

在 linux 组的所有 Linux 代理上安装 auditd。

针对 RHEL 类系统:

sudo dnf install audit audispd-plugins -y
sudo systemctl enable --now auditd

针对 Debian/Ubuntu:

Google AdInline article slot
sudo apt install auditd audispd-plugins -y
sudo systemctl enable --now auditd

检查状态:sudo auditctl -l

验证 linux 组是否存在:ls -la /var/ossec/etc/shared/。如果缺失,在 UI 中创建。

集中式 agent.conf 配置

在管理器上编辑 /var/ossec/etc/shared/linux/agent.conf:

Google AdInline article slot
<agent_config>
  <syscheck>
    <frequency>300</frequency>
    <whodata>yes</whodata>
    <diff>yes</diff>
    <directories check_all="yes" whodata="yes" report_changes="yes">/etc/passwd</directories>
    <directories check_all="yes" whodata="yes" report_changes="yes">/etc/shadow</directories>
    <directories check_all="yes" whodata="yes" report_changes="yes">/etc/sudoers</directories>
    <directories check_all="yes" whodata="yes" report_changes="yes">/etc/ssh/sshd_config</directories>
    <ignore>/etc/passwd-</ignore>
    <ignore>/etc/shadow-</ignore>
    <ignore>/etc/sudoers.tmp</ignore>
    <ignore>/etc/.pwd.lock</ignore>
    <alert_new_files>yes</alert_new_files>
    <scan_on_start>yes</scan_on_start>
    <auto_ignore>no</auto_ignore>
  </syscheck>
</agent_config>

重启:sudo systemctl restart wazuh-manager

关键参数:

  • check_all="yes" — 完整属性检查。
  • whodata="yes" — 通过 auditd 归因。
  • report_changes="yes" — 警报中包含差异。
  • alert_new_files="yes" — 新文件警报。

高优先级警报规则

添加到 /var/ossec/etc/rules/local_rules.xml:

<group name="syscheck,">
  <rule id="100100" level="12">
    <if_sid>550</if_sid>
    <field name="file">/etc/passwd</field>
    <description>严重变更:/etc/passwd 被修改</description>
    <mitre>
      <id>T1078</id>
      <id>T1136</id>
    </mitre>
  </rule>
  <rule id="100101" level="12">
    <if_sid>550</if_sid>
    <field name="file">/etc/shadow</field>
    <description>严重变更:/etc/shadow 被修改(密码文件)</description>
    <mitre>
      <id>T1003</id>
      <id>T1078</id>
    </mitre>
  </rule>
  <rule id="100102" level="12">
    <if_sid>550</if_sid>
    <field name="file">/etc/sudoers</field>
    <description>严重变更:/etc/sudoers 被修改</description>
    <mitre>
      <id>T1078</id>
      <id>T1548</id>
    </mitre>
  </rule>
  <rule id="100104" level="12">
    <if_sid>550</if_sid>
    <field name="file">/etc/ssh/sshd_config</field>
    <description>严重变更:/etc/ssh/sshd_config 被修改</description>
    <mitre>
      <id>T1078</id>
      <id>T1548</id>
    </mitre>
  </rule>
  <rule id="100103" level="10">
    <if_sid>554</if_sid>
    <field name="file">/etc/passwd</field>
    <field name="file">/etc/shadow</field>
    <field name="file">/etc/sudoers</field>
    <options>alert_by_email</options>
    <description>用户修改关键文件:$(file) - $(audit.user.name)</description>
    <mitre>
      <id>T1078</id>
    </mitre>
  </rule>
</group>

重启管理器。规则基于 if_sid 550(文件变更)触发,优先级 12 级。

测试配置

在代理上验证:sudo cat /var/ossec/etc/shared/agent.conf | grep -A5 "syscheck"

模拟变更:

sudo cp /etc/passwd /etc/passwd.backup.test
echo "testuser:x:9999:9999:Test User:/home/testuser:/bin/bash" | sudo tee -a /etc/passwd

警报将显示 JSON,包括 rule.level=12、syscheck.path、audit.user.name(root)、process.name(tee)和差异。

恢复:sudo cp /etc/passwd.backup.test /etc/passwd && sudo rm /etc/passwd.backup.test

关键要点

  • Syscheck 结合 whodata 通过 auditd 追踪变更发起者。
  • linux 组集中配置减少手动操作。
  • /etc/passwd、/etc/shadow 等文件的 12 级规则带 MITRE 标签。
  • 警报中包含差异和归因,便于取证。
  • 排除临时文件降低误报。

扩展监控

扩展至 /etc/hosts.allow、nginx/apache 配置、SSH 密钥。添加主动响应阻断,并集成外部通知系统。

— Editorial Team

Advertisement 728x90

继续阅读