12. Auditoría y cumplimiento para Ubuntu Server: prácticas recomendadas

Introducción

Garantizar la auditoría y el cumplimiento en entornos de servidores Ubuntu es un paso fundamental para las organizaciones que buscan proteger datos sensibles, cumplir las normas regulatorias y responder eficazmente a los incidentes de seguridad. Normas de cumplimiento como PCI-DSS, GDPR, HIPAA e ISO/IEC 27001 exigen mecanismos sólidos de auditoría, registro e informes para garantizar la rendición de cuentas y la protección de datos.

Este artículo ofrece una guía completa para configurar reglas de auditoría, generar informes, identificar actividades sospechosas y aplicar prácticas recomendadas para mantener el cumplimiento en servidores Ubuntu 22.04.


Artículos anteriores:

01. Introducción a Ubuntu Server – SysOSX: AI & Cloud

02. Cómo configurar tu primer servidor Ubuntu: guía para principiantes – SysOSX: AI & Cloud

03. Dominar la línea de comandos de Linux para Ubuntu Server – SysOSX: AI & Cloud

04. Gestión de usuarios y permisos en Ubuntu Server: una guía completa – SysOSX: AI & Cloud

05. Fundamentos de redes para Ubuntu Server: una guía completa – SysOSX: AI & Cloud

06. Instalar y gestionar software en Ubuntu Server: una guía completa – SysOSX: AI & Cloud

07.Aplicar parches y actualizar Ubuntu Server: una guía completa – SysOSX: AI & Cloud

08. Proteger tu servidor Ubuntu: pasos prácticos para reforzar y proteger – SysOSX: AI & Cloud

09. Auditoría y registro del servidor Ubuntu

10. Herramientas de supervisión del sistema para Ubuntu Server: una guía completa – SysOSX: AI & Cloud

11. Registro centralizado para servidores Ubuntu: una guía imprescindible – SysOSX: AI & Cloud



Por qué importan las auditorías de cumplimiento


El 78 % de las organizaciones no superaron las auditorías iniciales de PCI-DSS por un registro inadecuado (informe de Verizon de 2023)

Ejemplo real de filtración:
Un proveedor de salud se enfrentó a multas de HIPAA de 1,2 millones de dólares tras no auditar el acceso a los historiales de pacientes almacenados en servidores Ubuntu. Unas reglas de auditctl adecuadas podrían haber detectado el acceso no autorizado.


Hoja de referencia de los requisitos de las normas de cumplimiento

NormaRequisitos clave de auditoría de UbuntuHerramientas relevantes
PCI-DSSSupervisión de la integridad de archivos, registros de actividad de usuariosauditd + AIDE
GDPRSeguimiento del acceso a datos, notificación de filtraciones en 72 horasaureport + ELK
HIPAASupervisión del acceso a ePHI, conservación de registros durante 6 añosauditctl + Splunk
ISO 27001Prueba de evaluación de riesgos, registros de control de accesoLynis + OpenSCAP

Uso de auditctl para configurar reglas de auditoría (conceptos básicos)

El marco de auditoría de Linux, disponible en Ubuntu 22.04, es una herramienta potente para supervisar las actividades del sistema. El auditctl comando se usa para crear y gestionar reglas de auditoría que rastrean eventos específicos en tu servidor.

Paso 1: Instalar el marco de auditoría

Antes de configurar reglas de auditoría, asegúrate de que el marco de auditoría esté instalado:

sudo apt update
sudo apt install auditd

Paso 2: Definir reglas de auditoría

Las reglas de auditoría especifican qué actividades supervisar. Estos son algunos ejemplos habituales:

  • Supervisar el acceso a archivos:
    Rastrea las modificaciones de archivos críticos, como /etc/passwd:
sudo auditctl -w /etc/passwd -p wa -k passwd_changes

Esta regla supervisa las operaciones de escritura (w) y los cambios de atributos (a) en el archivo /etc/passwd .

  • Supervisar eventos de inicio y cierre de sesión:
    Rastrea la actividad de inicio/cierre de sesión de los usuarios:
sudo auditctl -a always,exit -F arch=b64 -S execve -F key=login_activity
  • Supervisar el acceso no autorizado:
    Detecta intentos de acceso a directorios sensibles:
 sudo auditctl -w /var/www/html -p rwxa -k web_access

    Paso 3: Hacer persistentes las reglas de auditoría

    Las reglas de auditoría son temporales a menos que se hagan persistentes. Añade reglas a /etc/audit/audit.rules para hacerlas permanentes:

    -w /etc/passwd -p wa -k passwd_changes
    -a always,exit -F arch=b64 -S execve -F key=login_activity
    

    Reinicia el demonio de auditoría para aplicar los cambios, sudo systemctl restart auditd no funciona, tienes que detenerlo y volver a iniciarlo para que la nueva configuración surta efecto:

    sudo systemctl kill auditd
    sudo systemctl start auditd
    

    Paso 4: Verificar las reglas de auditoría activas

    Enumera todas las reglas de auditoría activas para confirmar que se han aplicado:

    sudo auditctl -l
    

    Regla avanzada para auditorías de cumplimiento

    Reglas de PCI-DSS (/etc/audit/rules.d/pci-dss.rules):

    # Monitor payment processing directory  
    -w /var/lib/payment_processor -p rwxa -k pci_processing  
    
    # Track sudo usage  
    -a always,exit -F arch=b64 -S execve -C uid!=euid -F key=sudo_esc  
    

    Reglas de GDPR (/etc/audit/rules.d/gdpr.rules):

    # Monitor database access  
    -w /var/lib/mysql -p rw -k gdpr_data  
    
    # Log user account changes  
    -w /etc/shadow -p wa -k user_changes  
    

    3. Conservar las reglas tras los reinicios

    sudo auditctl -R /etc/audit/rules.d/pci-dss.rules  
    sudo augenrules --load  
    

    Generar informes de auditoría e identificar actividades sospechosas

    Una vez configuradas las reglas de auditoría, el siguiente paso es analizar los registros y generar informes para identificar actividades sospechosas o infracciones de cumplimiento.

    1. Ver los registros de auditoría

    Los registros de auditoría se almacenan en /var/log/audit/audit.log. Usa el ausearch comando para consultar los registros:

    sudo ausearch -k passwd_changes
    

    Esto recupera todos los eventos marcados con la palabra clave passwd_changes.

    2. Generar informes con aureport

    La aureport herramienta simplifica el análisis de los registros de auditoría al generar informes legibles para las personas:

    • Resumen de inicios/cierres de sesión de usuarios:
    sudo aureport -l
    

    Este informe resume los eventos de inicio y cierre de sesión de los usuarios.

    • Resumen de accesos a archivos:
     sudo aureport -f
    
    • Intentos de inicio de sesión fallidos:
     sudo aureport --failed
    

      3. Identificar actividades sospechosas

      Usa ausearch para identificar anomalías, como intentos de inicio de sesión fallidos o modificaciones de archivos no autorizadas:

      • Intentos de inicio de sesión fallidos:
       sudo ausearch -m USER_LOGIN -sv no
      
      • Acceso a archivos no autorizado:
       sudo ausearch -w /etc/passwd -sv no
      

        4. Centralizar los registros de auditoría

        En entornos a gran escala, centraliza los registros con herramientas como rsyslog o intégrate con plataformas como:

        • ELK Stack (Elasticsearch, Logstash, Kibana): Para análisis avanzados de registros y visualización.
        • Splunk: Para la supervisión de registros en tiempo real y la elaboración de informes de cumplimiento.
        • Graylog: Para la agregación de registros y las alertas.

        Medidas de seguridad adicionales para el cumplimiento

        Además de configurar reglas de auditoría, aplicar medidas de seguridad adicionales puede mejorar aún más el cumplimiento:

        1. Activar la supervisión de la integridad de archivos

        Usa herramientas como AIDE (Advanced Intrusion Detection Environment) para detectar cambios de archivos no autorizados:

        sudo apt install aide
        sudo aideinit
        

        Programa comprobaciones periódicas de integridad para detectar manipulaciones.

        2. Configurar un registro seguro

        Asegúrate de que los registros estén protegidos contra el acceso no autorizado:

        • Restringe el acceso a /var/log/audit/ mediante permisos: sudo chmod 600 /var/log/audit/audit.log

        3. Automatizar la rotación de registros

        Evita que los registros de auditoría consuman demasiado espacio en disco configurando la rotación de registros:

        sudo nano /etc/logrotate.d/audit
        

        Ejemplo de configuración:

        /var/log/audit/audit.log {
            daily
            rotate 7
            compress
            missingok
            notifempty
        }
        

        4. Supervisar el rendimiento del sistema

        Las reglas de auditoría pueden afectar al rendimiento del sistema. Usa herramientas como htop o top para supervisar el uso de recursos:

        sudo apt install htop
        htop
        

        Herramientas de cumplimiento avanzadas

        1. Análisis de vulnerabilidades automatizados

        # Install OpenSCAP  
        sudo apt install libopenscap8 ssg-debian  
        
        # Run PCI-DSS scan  
        oscap xccdf eval --profile pci-dss /usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml  
        

        2. Alertas en tiempo real con Auditd

        # Email alerts for root logins  
        -a always,exit -F arch=b64 -S execve -F euid=0 -k root_cmd -F exe=/usr/bin/mailx  
        
        

        3. Registros de auditoría inmutables

        #Configure audit.log as append-only  
        sudo chattr +a /var/log/audit/audit.log  
        
        

        Preguntas frecuentes: desafíos habituales de cumplimiento

        P: ¿Cuánto tiempo debemos conservar los registros de auditoría para HIPAA?
        R: Mínimo 6 años. Usa logrotate con:

        /var/log/audit/*.log {  
          monthly  
          rotate 72  
          compress  
        }  
        
        

        P: ¿Puede auditd afectar al rendimiento del servidor?
        R: Sí. Supervisa con:

        watch "grep 'auditd' /proc/slabinfo | awk '{print \$2,\$3}'"  
        
        

        P: ¿Cómo se demuestra el cumplimiento durante las auditorías?
        R: Usa estos comandos:

        # Generate evidence package  
        tar czvf compliance-proof-$(date +%F).tar.gz \  
          /var/log/audit/ /etc/audit/ /var/lib/aide/  
        

        Lista de verificación de mantenimiento del cumplimiento

        •  Validación mensual de las reglas de auditoría:
        auditctl -l | grep -E 'pci|gdpr'
        
        •  Actualizaciones trimestrales de la base de datos de AIDE:
        aideinit && mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
        
        •  Revisión semestral de las reglas del cortafuegos:
         sudo ufw status numbered
        
        •  Prueba de penetración anual:
        nikto -h yourdomain.com
        

          Para mantener el cumplimiento y la seguridad, sigue estas prácticas recomendadas:

          • Revisiones periódicas de registros: Programa revisiones rutinarias de los registros de auditoría para detectar anomalías y garantizar el cumplimiento.
          • Control de acceso basado en roles: Restringe el acceso a los registros de auditoría y a los archivos sensibles según los roles de los usuarios.
          • Informes automatizados: Usa scripts o herramientas para automatizar la generación de informes de auditoría para los requisitos regulatorios.
          • Gestión de parches: Actualiza tu servidor periódicamente para corregir vulnerabilidades y mantener el cumplimiento.
          • Probar las reglas de auditoría: Prueba periódicamente las reglas de auditoría para asegurarte de que capturan los eventos requeridos sin causar problemas de rendimiento.

          Conclusión

          La auditoría y el cumplimiento son esenciales para proteger los servidores Ubuntu 22.04 y cumplir los requisitos regulatorios. Al aprovechar herramientas como auditctl, ausearch y aureport los administradores pueden configurar reglas de auditoría, supervisar la actividad del sistema y generar informes para garantizar el cumplimiento de normas como PCI-DSS, GDPR e HIPAA. Combinar estas prácticas con el registro centralizado, la automatización y medidas de seguridad adicionales garantiza un entorno de servidor robusto y conforme.

          ¡No te pierdas el próximo artículo!

          En la próxima entrega de nuestra serie, profundizaremos en Servicios web y de archivos. Nuestro próximo artículo, «Configuración de un servidor web en Ubuntu Server» te guiará en la instalación y configuración de Apache o Nginx para alojar un sitio web. También veremos cómo proteger tu sitio con SSL/TLS mediante Let’s Encrypt protegerlo. ¡No te lo pierdas!