Trace: audit

Audit

¿Tiene traviesos duendecillos que modifican archivos sin permiso?

¿El unicornio rosado invisible se “comio un archivo” y le cambió el password al jefecito?

Existe una manera de descubrir estos fenómenos, de denunciar a esas maldosas deidades.

El sistema Audit de Linux provee una vía para registrar información relevante a la seguridad del sistema. Se basa en reglas preconfiguradas, Audit genera logs para registrar toda la información posible sobre los eventos que ocurren en el sistema. Esta información es crucial para determinar quien es el infractor de alguna política de seguridad. No obstante Audit no proporciona seguridad adicional, una herramienta mas adecuada es SELinux.

Audit proporciona registros de eventos para:

  • Fecha y hora, tipo y resultado de un evento.
  • Etiquetas de sensibilidad de sujetos y objetos.
  • Asociación de un evento con la identidad del usuario que accionó el evento
  • Modificaciones de las configuraciones de Audit y el acceso a los archivos de log.
  • Usos de mecanismos de autenticación, como SSH, Kerberos y otros.
  • Cambios en bases de datos de confianza, como /etc/passwd
  • Intentos de importar o exportar información hacia o desde el sistema.
  • Incluir o excluir eventos basados en la identidad del usuario, etiquetas de sujeto y objeto, y otros atributos.

El sistema Audit consta de dos partes, a saber las aplicaciones y utilidades de espacio de usuario y el procesamiento de llamadas del sistema del lado del kernel.

Reglas

sudo auditctl -w /etc/hosts -p wa -k hosts_changes
sudo auditctl -w /etc/hosts.allow -p wa -k hosts_allow_changes
sudo auditctl -w /etc/hosts.deny -p wa -k hosts_deny_changes
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
sudo auditctl -w /etc/group -p wa -k group_changes
sudo auditctl -w /etc/hostname -p wa -k hostname_changes
sudo auditctl -w /etc/crontab -p wa -k crontab_changes
sudo auditctl -w /etc/anacrontab -p wa -k anacrontab_changes
sudo auditctl -w /etc/resolv.conf -p wa -k resolv_changes
sudo auditctl -w /etc/rsyslog.conf -p wa -k rsyslog_changes
sudo auditctl -w /etc/rsyslog.d -p wa -k rsyslog_d_changes
sudo auditctl -w /etc/cron.d -p wa -k cron_d_changes
sudo auditctl -w /etc/cron.daily/ -p wa -k cron_daily_changes
sudo auditctl -w /etc/cron.hourly/  -p wa -k cron_hourly_changes
sudo auditctl -w /etc/cron.monthly/  -p wa -k cron_monthly_changes
sudo auditctl -w /etc/cron.weekly/  -p wa -k cron_weekly_changes
sudo auditctl -w /etc/modprobe.d/  -p wa -k modprobe_d_changes
sudo auditctl -w /etc/audit/ -p wa -k audit_changes
sudo auditctl -w /etc/audit/rules.d/ -p wa -k audit_rules_d_changes

Hacer las reglas anteriores persistentes:

sudo auditctl  -l > /etc/audit/rules.d/gbm.rules

Redireccionar registros de audit a syslog

El formato del audit es complicado de digerir, la mayoría de aplicaciones saben leer syslog, pero no audit, con los siguientes pasos puede redirigir los eventos de audit a syslog, de manera que puedan ser consumidos por medio de este protocolo.

Configure audisp /etc/audisp/plugins.d/:

active = yes
direction = out
path = builtin_syslog
type = builtin
args = LOG_LOCAL6
format = string

Configure rsyslog /etc/rsyslog.d/audit.conf:

local6.*    /var/log/audit.log

Reinicie los servicios:

service auditd restart
systemctl restart rsyslog

Referencias

audit.txt · Last modified: 2020/02/12 13:54
Public Domain Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain