Auditoría en linux: seguridad y control de tu sistema

En el entorno de la informática, la seguridad es crucial. Los sistemas operativos, como Linux, son el corazón de muchos servicios y aplicaciones, y su seguridad es fundamental para garantizar la integridad de la información y la protección de los datos.

En este contexto, la auditoría en Linux juega un papel vital. Es un proceso que permite monitorear y registrar las actividades del sistema, brindando un registro detallado de los eventos que ocurren. Este registro es esencial para identificar posibles amenazas, comprobar el cumplimiento de las políticas de seguridad y realizar investigaciones en caso de incidentes.

La auditoría en Linux se basa en un framework llamado Audit, que se encarga de capturar y registrar los eventos del sistema. Este framework es una herramienta poderosa que ofrece una amplia gama de funcionalidades para controlar y analizar la actividad del sistema.

Índice de Contenido

El Framework Audit: Una mirada en profundidad

El Framework Audit es un componente esencial para la seguridad de los sistemas Linux. Su funcionamiento se basa en la captura de eventos del kernel y su registro en un archivo de log, de acuerdo con reglas predefinidas.

En las distribuciones basadas en RedHat, los paquetes audit y audit-libs vienen preinstalados. En las distribuciones basadas en Debian, la instalación se realiza a través del siguiente comando:

# apt-get install auditd audispd-plugins

Es importante destacar que la auditoría no proporciona seguridad extra al sistema. Su objetivo principal es recolectar información que puede ser crucial para descubrir violaciones de las políticas de seguridad establecidas.

Estándares de Seguridad y Cumplimiento

El sistema de auditoría está diseñado para cumplir con los requisitos de varios estándares de seguridad internacionales, entre ellos:

  • Controlled Access Protection Profile (CAPP)
  • Labeled Security Protection Profile (LSPP)
  • Rule Set Base Access Control (RSBAC)
  • National Industrial Security Program Operating Manual (NISPOM)
  • Federal Information Security Management Act (FISMA)
  • Payment Card Industry — Data Security Standard (PCI-DSS)
  • Security Technical Implementation Guides (STIG)

Configuración del Framework Audit

La configuración del Framework Audit se realiza a través de dos archivos clave:

ArchivoDescripciónUbicación
confConfigura el demonio auditd, incluyendo la ubicación del archivo de registro, el tamaño máximo del archivo, la rotación, el formato de registro, etc./etc/audit
rulesDefine las reglas para auditar eventos específicos del kernel./etc/audit/rules.d

Tipos de Reglas de Auditoría

Dentro de las reglas de auditoría, podemos encontrar tres tipos principales:

  • Reglas de control: Modifican el comportamiento del sistema de auditoría.
  • Reglas del sistema de archivos: Auditan el acceso a archivos y directorios.
  • Reglas de llamadas del sistema: Registran las llamadas al sistema por cualquier programa o proceso.

El directorio /etc/audit/rules.d permite agregar archivos de reglas adicionales, como por ejemplo, el archivo de reglas para cumplir con la normativa PCI-DSS (https://github.com/linux-audit/audit-userspace/blob/master/rules/30-pci-dss-v3rules).

Acceso de Aplicaciones Externas

El sistema de auditoría también permite que aplicaciones externas accedan y usen el demonio auditd en tiempo real. El directorio /etc/audit/plugins.d contiene la configuración de acceso de estos programas externos, también llamados plugins.

Componentes del Sistema Audit

El sistema Audit se compone de varios componentes que trabajan en conjunto para proporcionar una solución completa de auditoría:

  • auditd: El demonio responsable de escribir en el log los mensajes de auditoría generados por el kernel.
  • auditctl: Utilidad para controlar el sistema de auditoría. Determina qué eventos se van a registrar.
  • aureport: Utilidad para crear informes personalizados del registro de auditoría.
  • ausearch: Utilidad para buscar registros en el archivo de log.
  • audispd: El Audit Dispacher Daemon, utilizado para enviar notificaciones de eventos a otras aplicaciones (plugins).
  • autrace: Registra la actividad de procesos de forma individual.
  • aulast: Muestra los últimos inicios de sesión en el sistema, similar al comando last, pero utilizando los archivos de log de la auditoría.
  • aulastlog: Muestra los últimos inicios de sesión en el sistema, similar al comando lastlog, pero utilizando los archivos de log de la auditoría.

Funcionamiento del Sistema Audit

El sistema Audit opera de la siguiente manera:

El kernel genera eventos relacionados con la actividad del sistema. Estos eventos son capturados por el interfaz de auditoría del kernel. El demonio auditd recibe estos eventos y los escribe en el archivo de log, de acuerdo con las reglas definidas en el archivo rules. Las aplicaciones externas pueden acceder al demonio auditd en tiempo real a través de plugins.

En una instalación por defecto del sistema Audit, no se configura ninguna regla. Sin embargo, audit audita varios aspectos del sistema, como los inicios de sesión. Para ver las reglas cargadas, se puede utilizar el siguiente comando:

# auditctl -l

Las reglas cargadas se pueden eliminar utilizando auditctl con el parámetro -d. Sin embargo, esta eliminación no es permanente. Para que los cambios sean persistentes, las reglas deben crearse en el directorio /etc/audit/rules.d. Por defecto, se modifica el archivo principal de reglas audit.rules.

Ejemplo: Auditoría de un Archivo

Para ilustrar el funcionamiento de la auditoría, veamos un ejemplo de cómo auditar un archivo.

Supongamos que queremos monitorizar la escritura y ejecución de un script llamado /opt/programa.sh. Para ello, añadiríamos la siguiente línea al archivo audit.rules:

-w /opt/programa.sh -p wx -k alerta_programa

Las opciones son:

  • -w: El archivo o directorio a vigilar.
  • -p: Los parámetros que se auditarán:
    • r: Lectura
    • w: Escritura
    • x: Ejecución
    • a: Cambio de atributo
  • -k: Identificación de la regla.

Si queremos auditar el archivo directamente, sin que los cambios sean persistentes, podemos utilizar el comando auditctl:

# auditctl -w /opt/programa.sh -p wa –k alerta_programa

Una vez configurada la auditoría, comprobaremos su funcionamiento. Iniciaremos sesión con el usuario bob y ejecutaremos el programa /opt/programa.sh. Al ejecutar el programa, se creará un registro en el archivo de auditoría /var/log/audit/audit.log.

También comprobaremos que al editar el archivo (con el usuario root), se registra el evento, incluyendo el programa con el que se ha editado.

Búsqueda de Registros de Auditoría

El Framework Audit incluye las utilidades aureport y ausearch para crear informes y buscar registros en el archivo de log.

Con el comando aureport, podemos ver los inicios de sesión realizados en el sistema:

# aureport –au

O los fallos del sistema:

# aureport --failed

En el ejemplo anterior, donde hemos auditado el programa /opt/programa.sh, podemos ver los registros de la regla establecida utilizando aureport con la opción -k :

# aureport –k

El comando ausearch también permite ver el registro de auditoría. Por ejemplo, para buscar por el PID del evento:

# ausearch -p 17196

Ambos comandos tienen muchas opciones que se adaptan a las necesidades de auditoría del sistema.

Sobre la Auditoría en Linux

¿Qué tipo de información se registra en el archivo de auditoría?

El archivo de auditoría registra una amplia gama de información, incluyendo:

  • Inicios y cierres de sesión
  • Acceso a archivos y directorios
  • Ejecución de programas
  • Llamadas al sistema
  • Cambios en las configuraciones del sistema
  • Eventos de seguridad, como intentos de acceso no autorizados

¿Cómo se configura el tamaño máximo del archivo de auditoría?

El tamaño máximo del archivo de auditoría se configura en el archivo /etc/audit/audit.conf. La opción log_file_size define el tamaño máximo en bytes. También se puede configurar la rotación del archivo, para que se cree un nuevo archivo cuando se alcanza el tamaño máximo.

¿Qué sucede si el archivo de auditoría se llena?

Si el archivo de auditoría se llena, el sistema continuará registrando eventos, pero los registros más antiguos se sobrescribirán. Es importante asegurarse de que el archivo de auditoría tenga suficiente espacio para almacenar los registros necesarios.

¿Cómo se puede analizar el archivo de auditoría?

El archivo de auditoría se puede analizar utilizando las utilidades aureport y ausearch. También se pueden utilizar herramientas de análisis de logs de terceros para obtener información más detallada.

¿Es necesario auditar todos los eventos del sistema?

No es necesario auditar todos los eventos del sistema. Es importante auditar los eventos que son más relevantes para la seguridad del sistema, como los inicios de sesión, el acceso a archivos sensibles y las llamadas al sistema.

¿Cómo se puede asegurar la integridad del archivo de auditoría?

Para asegurar la integridad del archivo de auditoría, se puede utilizar un sistema de gestión de logs centralizado, como syslog. También se puede implementar la firma digital de los registros para garantizar que no se hayan modificado.

¿Cómo se pueden utilizar los registros de auditoría para la investigación de incidentes?

Los registros de auditoría son una fuente valiosa de información para la investigación de incidentes. Se pueden utilizar para identificar la causa del incidente, los usuarios involucrados y las acciones que se tomaron. Los registros de auditoría también pueden ayudar a determinar si se ha producido una violación de las políticas de seguridad.

La auditoría en Linux es una herramienta esencial para la seguridad de los sistemas. El Framework Audit proporciona una solución completa para capturar, registrar y analizar los eventos del sistema. La configuración y el uso de las herramientas de auditoría son cruciales para garantizar la seguridad de los sistemas Linux y proteger la información valiosa.

Al comprender cómo funciona la auditoría en Linux, los administradores de sistemas pueden implementar políticas de seguridad robustas, identificar posibles amenazas y responder a incidentes de forma rápida y eficiente.

Artículos Relacionados

Subir