Volver al inicio

Wazuh Syscheck: Monitoreo de archivos de Linux

Guía para configurar Syscheck en Wazuh para monitorear archivos clave de Linux con whodata. Configuración centralizada, reglas de criticidad 12, pruebas de cambios. La integración de auditd proporciona atribución.

Protección de Archivos de Linux Wazuh: whodata y alertas
Advertisement 728x90

Monitoreo de integridad de archivos críticos en Linux con Wazuh Syscheck y Whodata

Wazuh Syscheck rastrea cambios en archivos clave de Linux como /etc/passwd, /etc/shadow, /etc/sudoers y /etc/ssh/sshd_config. El modo Whodata captura el usuario y proceso que realiza los cambios mediante auditd. Esta configuración se aplica de forma centralizada a un grupo de agentes Linux, generando alertas de nivel 12.

Arquitectura de Wazuh y rol de Syscheck

Wazuh consta de un gestor para procesar eventos, agentes en los hosts y un panel basado en Kibana. Syscheck escanea archivos de forma programada o en tiempo real, verificando hashes, permisos y propiedad. En modo whodata, se integra con auditd para atribuir los cambios.

Características clave:

Google AdInline article slot
  • Escaneos periódicos cada 300 segundos.
  • Envío de diffs de cambios.
  • Detección de nuevos archivos en directorios.
  • Exclusión de archivos temporales para reducir ruido.

Preparación de los agentes

Instala auditd en todos los agentes Linux del grupo linux.

Para sistemas tipo RHEL:

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

Para Debian/Ubuntu:

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

Verifica el estado: sudo auditctl -l.

Confirma que existe el grupo linux: ls -la /var/ossec/etc/shared/. Créalo en la interfaz si no existe.

Configuración centralizada de agent.conf

Edita /var/ossec/etc/shared/linux/agent.conf en el gestor:

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>

Reinicia: sudo systemctl restart wazuh-manager.

Parámetros clave:

  • check_all="yes" — Verificación completa de atributos.
  • whodata="yes" — Atribución vía auditd.
  • report_changes="yes" — Diffs en alertas.
  • alert_new_files="yes" — Alertas para nuevos archivos.

Reglas de alertas de alta prioridad

Añade a /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>CAMBIO CRÍTICO: /etc/passwd modificado</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>CAMBIO CRÍTICO: /etc/shadow modificado (contraseñas)</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>CAMBIO CRÍTICO: /etc/sudoers modificado</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>CAMBIO CRÍTICO: /etc/ssh/sshd_config modificado</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>Usuario detectado modificando archivo crítico: $(file) - $(audit.user.name)</description>
    <mitre>
      <id>T1078</id>
    </mitre>
  </rule>
</group>

Reinicia el gestor. Las reglas se activan con if_sid 550 (cambio de archivo), nivel 12 para prioridad.

Prueba de la configuración

En un agente, verifica: sudo cat /var/ossec/etc/shared/agent.conf | grep -A5 "syscheck".

Simula un cambio:

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

Las alertas mostrarán JSON con rule.level=12, syscheck.path, audit.user.name (root), process.name (tee) y diff.

Restaura: sudo cp /etc/passwd.backup.test /etc/passwd && sudo rm /etc/passwd.backup.test.

Lecciones clave

  • Syscheck con whodata rastrea autores de cambios vía auditd.
  • Configuración centralizada para grupo linux reduce trabajo manual.
  • Reglas de nivel 12 con etiquetas MITRE para /etc/passwd, /etc/shadow, etc.
  • Diffs y atribución en alertas para investigaciones forenses.
  • Exclusiones de archivos temporales reducen falsos positivos.

Escalado del monitoreo

Amplía a /etc/hosts.allow, configuraciones de nginx/apache, claves SSH. Añade respuesta activa para bloqueos e integraciones con sistemas de notificación externos.

— Editorial Team

Advertisement 728x90

Leer después