12. Audit et conformité pour Ubuntu Server : bonnes pratiques

Introduction

Garantir l'audit et la conformité dans les environnements de serveurs Ubuntu est une étape essentielle pour les organisations qui cherchent à protéger les données sensibles, à respecter les normes réglementaires et à réagir efficacement aux incidents de sécurité. Des normes de conformité comme PCI-DSS, le RGPD, HIPAA et ISO/IEC 27001 imposent des mécanismes robustes d'audit, de journalisation et de reporting pour assurer la responsabilité et la protection des données.

Cet article fournit un guide complet pour configurer des règles d'audit, générer des rapports, identifier les activités suspectes et mettre en œuvre les bonnes pratiques pour maintenir la conformité sur les serveurs Ubuntu 22.04.


Articles précédents :

01. Introduction à Ubuntu Server – SysOSX: AI & Cloud

02. Comment configurer votre premier serveur Ubuntu : guide du débutant – SysOSX: AI & Cloud

03. Maîtriser la ligne de commande Linux pour Ubuntu Server – SysOSX: AI & Cloud

04. Gestion des utilisateurs et des autorisations sur Ubuntu Server : un guide complet – SysOSX: AI & Cloud

05. Bases des réseaux pour Ubuntu Server : un guide complet – SysOSX: AI & Cloud

06. Installer et gérer des logiciels sur Ubuntu Server : un guide complet – SysOSX: AI & Cloud

07.Corriger et mettre à jour Ubuntu Server : un guide complet – SysOSX: AI & Cloud

08. Sécuriser votre serveur Ubuntu : étapes pratiques de durcissement et de protection – SysOSX: AI & Cloud

09. Audit et journalisation des serveurs Ubuntu

10. Outils de surveillance système pour Ubuntu Server : un guide complet – SysOSX: AI & Cloud

11. Journalisation centralisée pour serveurs Ubuntu : un guide indispensable – SysOSX: AI & Cloud



Pourquoi les audits de conformité sont importants


78 % des organisations ont échoué aux audits PCI-DSS initiaux en raison d'une journalisation inadéquate (rapport Verizon 2023)

Exemple réel de violation :
Un prestataire de soins de santé a dû payer 1,2 million de dollars d'amendes HIPAA après avoir omis d'auditer l'accès aux dossiers des patients stockés sur des serveurs Ubuntu. Des règles auditctl appropriées auraient pu détecter l'accès non autorisé.


Aide-mémoire des exigences des normes de conformité

NormePrincipales exigences d'audit UbuntuOutils pertinents
PCI-DSSSurveillance de l'intégrité des fichiers, journaux d'activité des utilisateursauditd + AIDE
RGPDSuivi des accès aux données, notification des violations sous 72 heuresaureport + ELK
HIPAASurveillance de l'accès aux ePHI, conservation des journaux pendant 6 ansauditctl + Splunk
ISO 27001Preuve d'évaluation des risques, journaux de contrôle d'accèsLynis + OpenSCAP

Utilisation d' auditctl pour configurer les règles d'audit (bases)

Le cadre d'audit Linux, disponible sur Ubuntu 22.04, est un outil puissant pour surveiller les activités du système. La auditctl commande sert à créer et à gérer des règles d'audit qui suivent des événements spécifiques sur votre serveur.

Étape 1 : installer le cadre d'audit

Avant de configurer les règles d'audit, assurez-vous que le cadre d'audit est installé :

sudo apt update
sudo apt install auditd

Étape 2 : définir les règles d'audit

Les règles d'audit précisent quelles activités surveiller. Voici des exemples courants :

  • Surveiller l'accès aux fichiers :
    Suivez les modifications apportées aux fichiers critiques, comme /etc/passwd :
sudo auditctl -w /etc/passwd -p wa -k passwd_changes

Cette règle surveille les opérations d'écriture (w) et les modifications d'attributs (a) apportées au fichier /etc/passwd .

  • Surveiller les événements de connexion et de déconnexion :
    Suivez l'activité de connexion/déconnexion des utilisateurs :
sudo auditctl -a always,exit -F arch=b64 -S execve -F key=login_activity
  • Surveiller les accès non autorisés :
    Détectez les tentatives d'accès aux répertoires sensibles :
 sudo auditctl -w /var/www/html -p rwxa -k web_access

    Étape 3 : rendre les règles d'audit persistantes

    Les règles d'audit sont temporaires à moins d'être rendues persistantes. Ajoutez des règles à /etc/audit/audit.rules pour les rendre permanentes :

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

    Redémarrez le démon d'audit pour appliquer les modifications, sudo systemctl restart auditd ne fonctionne pas, vous devez l'arrêter puis le redémarrer pour que la nouvelle configuration prenne effet :

    sudo systemctl kill auditd
    sudo systemctl start auditd
    

    Étape 4 : vérifier les règles d'audit actives

    Listez toutes les règles d'audit actives pour confirmer qu'elles sont appliquées :

    sudo auditctl -l
    

    Règle avancée pour les audits de conformité

    Règles 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  
    

    Règles RGPD (/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. Conserver les règles après les redémarrages

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

    Générer des rapports d'audit et identifier les activités suspectes

    Une fois les règles d'audit configurées, l'étape suivante consiste à analyser les journaux et à générer des rapports pour identifier les activités suspectes ou les violations de conformité.

    1. Consulter les journaux d'audit

    Les journaux d'audit sont stockés dans /var/log/audit/audit.log. Utilisez la ausearch commande pour interroger les journaux :

    sudo ausearch -k passwd_changes
    

    Cela récupère tous les événements marqués avec le mot-clé passwd_changes.

    2. Générer des rapports avec aureport

    L'outil aureport simplifie l'analyse des journaux d'audit en générant des rapports lisibles par l'humain :

    • Résumé des connexions/déconnexions des utilisateurs :
    sudo aureport -l
    

    Ce rapport résume les événements de connexion et de déconnexion des utilisateurs.

    • Résumé des accès aux fichiers :
     sudo aureport -f
    
    • Tentatives de connexion échouées :
     sudo aureport --failed
    

      3. Identifier les activités suspectes

      Utilisez ausearch pour identifier les anomalies, comme les tentatives de connexion échouées ou les modifications de fichiers non autorisées :

      • Tentatives de connexion échouées :
       sudo ausearch -m USER_LOGIN -sv no
      
      • Accès non autorisé aux fichiers :
       sudo ausearch -w /etc/passwd -sv no
      

        4. Centraliser les journaux d'audit

        Pour les environnements à grande échelle, centralisez les journaux avec des outils comme rsyslog ou intégrez des plateformes comme :

        • ELK Stack (Elasticsearch, Logstash, Kibana) : Pour l'analyse avancée des journaux et la visualisation.
        • Splunk : Pour la surveillance des journaux en temps réel et les rapports de conformité.
        • Graylog : Pour l'agrégation des journaux et les alertes.

        Mesures de sécurité supplémentaires pour la conformité

        Au-delà de la configuration des règles d'audit, la mise en œuvre de mesures de sécurité supplémentaires peut encore améliorer la conformité :

        1. Activer la surveillance de l'intégrité des fichiers

        Utilisez des outils comme AIDE (Advanced Intrusion Detection Environment) pour détecter les modifications de fichiers non autorisées :

        sudo apt install aide
        sudo aideinit
        

        Planifiez des contrôles d'intégrité réguliers pour détecter les falsifications.

        2. Configurer une journalisation sécurisée

        Assurez-vous que les journaux sont protégés contre les accès non autorisés :

        • Restreignez l'accès à /var/log/audit/ à l'aide des autorisations : sudo chmod 600 /var/log/audit/audit.log

        3. Automatiser la rotation des journaux

        Évitez que les journaux d'audit ne consomment trop d'espace disque en configurant la rotation des journaux :

        sudo nano /etc/logrotate.d/audit
        

        Exemple de configuration :

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

        4. Surveiller les performances du système

        Les règles d'audit peuvent affecter les performances du système. Utilisez des outils comme htop ou top pour surveiller l'utilisation des ressources :

        sudo apt install htop
        htop
        

        Outils de conformité avancés

        1. Analyses de vulnérabilités automatisées

        # 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. Alertes en temps réel avec 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. Journaux d'audit immuables

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

        FAQ : défis courants en matière de conformité

        Q : Combien de temps devons-nous conserver les journaux d'audit pour HIPAA ?
        R : 6 ans minimum. Utilisez logrotate avec :

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

        Q : auditd peut-il affecter les performances du serveur ?
        R : Oui. Surveillez avec :

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

        Q : Comment prouver la conformité lors des audits ?
        R : Utilisez ces commandes :

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

        Liste de contrôle de maintenance de la conformité

        •  Validation mensuelle des règles d'audit :
        auditctl -l | grep -E 'pci|gdpr'
        
        •  Mises à jour trimestrielles de la base de données AIDE :
        aideinit && mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
        
        •  Révision semestrielle des règles du pare-feu :
         sudo ufw status numbered
        
        •  Test d'intrusion annuel :
        nikto -h yourdomain.com
        

          Pour maintenir la conformité et la sécurité, suivez ces bonnes pratiques :

          • Examens réguliers des journaux : Planifiez des examens réguliers des journaux d'audit pour détecter les anomalies et garantir la conformité.
          • Contrôle d'accès basé sur les rôles : Restreignez l'accès aux journaux d'audit et aux fichiers sensibles en fonction des rôles des utilisateurs.
          • Rapports automatisés : Utilisez des scripts ou des outils pour automatiser la génération de rapports d'audit pour les exigences réglementaires.
          • Gestion des correctifs : Mettez régulièrement votre serveur à jour pour corriger les vulnérabilités et maintenir la conformité.
          • Tester les règles d'audit : Testez régulièrement les règles d'audit pour vous assurer qu'elles capturent les événements requis sans causer de problèmes de performances.

          Conclusion

          L'audit et la conformité sont essentiels pour sécuriser les serveurs Ubuntu 22.04 et satisfaire aux exigences réglementaires. En tirant parti d'outils comme auditctl, ausearch et aureport les administrateurs peuvent configurer des règles d'audit, surveiller l'activité du système et générer des rapports pour garantir la conformité à des normes comme PCI-DSS, le RGPD et HIPAA. La combinaison de ces pratiques avec la journalisation centralisée, l'automatisation et des mesures de sécurité supplémentaires garantit un environnement de serveur robuste et conforme.

          Restez à l'écoute pour le prochain article !

          Dans la prochaine partie de notre série, nous plongerons dans Services web et de fichiers. Notre prochain article, « Configurer un serveur web sur Ubuntu Server » vous guidera dans l'installation et la configuration de Apache ou Nginx pour héberger un site web. Nous verrons également comment sécuriser votre site avec SSL/TLS en utilisant Let’s Encrypt sécuriser. Ne le manquez pas !