GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el sistema de auditoría en Linux:configurar, auditar registros y generar informes

Antes de comenzar a hablar sobre el sistema de auditoría, me gustaría hacer algunas preguntas. ¿Cómo se monitorean los comandos ejecutados por el usuario? ¿Cómo se controla si se accedió a un archivo oa un directorio? ¿Cómo registra varios eventos relacionados con la seguridad? ¿Cómo monitorea las llamadas al sistema, el acceso a la red, etc... y finalmente, cómo genera un informe a partir de eso? Bueno, el sistema de auditoría de Linux es la respuesta a todas las preguntas anteriores.

El sistema de auditoría de Linux permite que un administrador configure reglas de auditoría para monitorear las llamadas al sistema, el acceso a la red, los archivos, etc. y generar un informe resumido, que luego puede analizarse e investigarse en busca de actividad sospechosa. A partir de la versión 2.6, el kernel de Linux viene con auditd daemon y, cuando se inicia, lee las reglas preconfiguradas de /etc/audit/audit.rules . El administrador puede usar auditctl comando para controlar el sistema de auditoría, crear reglas, etc... Los otros dos comandos importantes son:

  • ausearch – comando que le permite consultar los registros de auditoría en función de los criterios dados.
  • aureport – comando utilizado para generar informes.

Los archivos de configuración de auditoría se encuentran en /etc/audit y registra en /var/log/audit.

  • /etc/audit/audit.rules – archivo donde se crean y cargan las reglas permanentes cuando auditd se inicia el demonio.
  • /etc/audit/audit.conf – archivo de configuración de auditoría
  • /etc/audit/rules.d/ – carpeta que contiene archivos de reglas personalizadas.

A continuación se muestra la lista de información que registrará la auditoría:

  • Marca de tiempo, tipo y resultado del evento
  • UID, GID que desencadenó el evento
  • Etiquetas de sensibilidad de sujeto y objeto
  • Acceso a todos los sistemas de autenticación como SSH, Kerberos, etc...
  • Comprobaciones de integridad de archivos
  • Importación y exportación de información.
  • Incluya o excluya eventos según la identidad del usuario, el tema y otros atributos.
  • Intentos de cambiar los registros y archivos de configuración de auditoría.

¿Cómo configurar auditd en CentOS y Ubuntu?

En CentOS:

# yum install audit

En Ubuntu:

# apt-get install auditd
::::::::::
Setting up auditd (1:2.4.5-1ubuntu2) ...
update-rc.d: warning: start and stop actions are no longer supported; falling ba ck to defaults
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for systemd (229-4ubuntu6) ...
Processing triggers for ureadahead (0.100.0-19) ...

Una vez instalado el paquete, el auditd Daemon se iniciará automáticamente. Si no, puede iniciarlo usando los siguientes comandos:

# /etc/init.d/auditd start

Lista de las reglas de auditoría activas:

# auditctl -l
 No rules

¿Cómo crear reglas de auditoría?

Vamos a crear una regla para monitorear el archivo /etc/passwd

# auditctl -w /etc/passwd -p war -k audit-passwd

El comando anterior crea una vigilancia en el archivo /etc/passwd .

  • con /etc/passwd – crea un reloj para el archivo /etc/passwd
  • -p guerra – establece el filtro de permisos – w para escritura, r para lectura, a para cambio de atributo y e para ejecución.
  • k auditoría-contraseña – aquí contraseña de auditoría es una clave para identificar la regla de forma única a partir de los registros.

Básicamente, el comando anterior rastrea /etc/passwd para cualquiera que intente escribir, leer o cambiar los atributos del archivo.

Ahora que se creó la regla, iniciemos sesión como un usuario sin privilegios e intentemos acceder a /etc/passwd archivo.

$ grep "someinformation" /etc/passwd
$ vim /etc/passwd

Los dos comandos anteriores fueron realizados por un usuario local llamado 'ubuntu' y se espera que esos eventos se registren en /var/log/audit/audit.log archivo.

¿Cómo encontrar quién cambió o accedió a /etc/passwd?

Usaremos ausearch comando:

# ausearch -f /etc/passwd -i
type=PROCTITLE msg=audit(08/05/2016 11:56:10.088:72) : proctitle=grep --color=auto henry /etc/passwd
 type=PATH msg=audit(08/05/2016 11:56:10.088:72) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL
 type=CWD msg=audit(08/05/2016 11:56:10.088:72) : cwd=/home/ubuntu
 type=SYSCALL msg=audit(08/05/2016 11:56:10.088:72) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffffffffffff9c a1=0x7ffebf6cb887 a2=O_RDONLY|O_NOCT
 TY a3=0x0 items=1 ppid=14098 pid=14992 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 s
 es=1302 comm=grep exe=/bin/grep key=audit-passwd
 ----
 type=PROCTITLE msg=audit(08/05/2016 11:56:12.028:74) : proctitle=vim /etc/passwd
 type=PATH msg=audit(08/05/2016 11:56:12.028:74) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL
 type=CWD msg=audit(08/05/2016 11:56:12.028:74) : cwd=/home/ubuntu
 type=SYSCALL msg=audit(08/05/2016 11:56:12.028:74) : arch=x86_64 syscall=open success=yes exit=3 a0=0x556072132500 a1=O_RDONLY a2=0x0 a3=0x556072347f50 items
 =1 ppid=14098 pid=14993 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 ses=1302 comm=vi
 m exe=/usr/bin/vim.basic key=audit-passwd

El resultado del registro anterior indica que el usuario llamó a ubuntu había accedido al archivo /etc/passwd usando comandos grep y vim . De forma predeterminada, la salida del registro utilizará UID y GID, pero la opción '-i ‘ asignará el uid y el gid a los nombres correspondientes (nombre de usuario legible por humanos y nombre de grupo).

¿Cómo crear un watch para monitorear los cambios de un usuario en particular?

#auditctl -w /usr/local/test -p wa -F uid=1001 -k audit-temp

Busque eventos en el registro:

#ausearch -ua 1001 -i

El comando anterior enumerará todos los eventos activados por el ID de usuario 1001 .

Creando reglas permanentes

Nota :Las reglas creadas usando auditctl son temporales y estarán activos hasta que auditd se reinicia el demonio. Los siguientes comandos explican este escenario.

# auditctl -l
 -w /etc/passwd -p rwa -k audit-passwd
 -a always,exit -S all -F dir=/etc -F perm=wa -F uid=1001 -F key=audit-temp
 -a always,exit -S all -F dir=/usr/local/test -F perm=wa -F uid=1001 -F key=audit

El comando anterior imprime la lista de reglas activas. Ahora intentemos reiniciar auditd demonio.

# /etc/init.d/auditd restart
 [ ok ] Restarting auditd (via systemctl): auditd.service.

Vuelva a comprobar las reglas activas.

# auditctl -l
 No rules

Una vez que la auditoría se reinicia el demonio, todas las reglas que se crearon usando auditctl el comando será eliminado (porque eran temporales). Si ha estado experimentando con auditctl y desea crear esas reglas de forma permanente, puede editar /etc/audit/audit.rules o cree un nuevo archivo de reglas en /etc/audit/rules.d/ carpeta.

# echo "-D" > /etc/audit/rules.d/new.rules
# auditctl -l >> /etc/audit/rules.d/new.rules

El primer comando agrega la acción de eliminar regla antes de agregar el nuevo conjunto de reglas.

¿Cómo generar un informe de auditoría?

Informe resumido:

# aureport
Summary Report
======================
Range of time in logs: 08/05/2016 11:45:39.464 - 08/08/2016 06:14:14.328
Selected time for report: 08/05/2016 11:45:39 - 08/08/2016 06:14:14.328
Number of changes in configuration: 7
Number of changes to accounts, groups, or roles: 5
Number of logins: 1
Number of failed logins: 6
Number of authentications: 8
Number of failed authentications: 6
Number of users: 3
Number of terminals: 8
Number of host names: 2
Number of executables: 37
Number of commands: 39
Number of files: 13
Number of AVC's: 0
Number of MAC events: 0
Number of failed syscalls: 12
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 2
Number of process IDs: 214
Number of events: 1337

El comando anterior imprimirá el informe resumido de todos los eventos registrados.

Imprimir un informe resumido de todos los intentos fallidos de inicio de sesión

# aureport --login --summary -i
Login Summary Report
============================
total auid
============================
6 henry
1 ubuntu

Generar un informe resumido de eventos de archivos ejecutables:

# aureport -x --summary

Genera un informe de todos los archivos de auditoría que se consultan y el rango de tiempo de los eventos que incluyen

# aureport -t
Log Time Range Report
=====================
/var/log/audit/audit.log: 08/05/2016 11:45:39.464 - 08/08/2016 06:17:01.068

Generar un informe de todos los eventos registrados dentro del intervalo de fechas:

# aureport --start 08/05/2016 00:00:00 --end 08/07/2016 00:00:00

Generar informe desde ausearch salida

# ausearch -k audit-temp | aureport -f -i

¿Cómo eliminar todas las reglas de auditoría?

# auditctl -D

Nota :El comando anterior eliminará todas las reglas activas en la auditd en ejecución demonio. Sin embargo, las reglas permanentes en el archivo /etc/audit/audit.rules se cargarán cada vez que auditd se inicia.

¿Eso es todo auditoría? ¿puede hacer? ¡No! El sistema de auditoría de Linux es capaz de hacer más y lo que se enumera aquí es solo una pequeña parte de este poderoso sistema. Eche un vistazo a las páginas man de auditd , auditoría , ausearch y aureport para más información.


Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. ¿Cómo monitorear los archivos /etc/shadow y /etc/passwd en busca de cambios con Auditd?

  3. CentOS / RHEL:cómo recuperarse de un archivo /etc/passwd eliminado

  4. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

  5. En mi archivo /etc/hosts/ en Linux/OSX, ¿cómo hago un subdominio comodín?

¿Cómo generar y usar la clave SSH en el sistema Linux?

Cómo instalar y usar YouTube-DL en el sistema Linux

Cómo instalar y configurar AnyDesk en el sistema Linux

Cómo instalar y configurar Django en un sistema Linux

Cómo instalar y configurar PrestaShop en el sistema Linux

Cómo instalar y configurar Elasticsearch en el sistema Linux