4.4. Confinement des privilèges avec AppArmor

Un grand nombre de failles de sécurité résultent de bogues dans des programmes approuvés. Un programme approuvé s'exécute avec des privilèges dont un attaquant veut bénéficier. Le programme ne parvient pas à conserver cette confiance en cas de bogue dans le programme qui permet à l'attaquant d'acquérir ce privilège.

Novell® AppArmor est une solution de sécurité d'application conçue spécialement pour fournir le plus petit confinement de privilège aux programmes suspects. AppArmor permet à l'administrateur de spécifier le domaine des activités que le programme peut effectuer en développant un profil de sécurité pour cette application, c'est-à-dire une liste des fichiers auxquels le programme peut accéder ainsi que les opérations qu'il peut exécuter.

Le renforcement efficace de la sécurité d'un ordinateur nécessite de réduire le nombre de programmes accordant des privilèges puis de sécuriser les programmes autant que possible. Avec Novell AppArmor, il suffit de profiler les programmes exposés aux attaques dans votre environnement, ce qui réduit considérablement la quantité de travail nécessaire au renforcement de la sécurité de votre ordinateur. Les profils AppArmor imposent des stratégies pour garantir que les programmes font ce qu'ils sont supposés faire et rien d'autre.

Les administrateurs doivent uniquement s'occuper des applications vulnérables aux attaques et générer des profils pour celles-ci. Le renforcement de la sécurité d'un système se limite alors à la création et à la gestion de l'ensemble de profils AppArmor, ainsi qu'à la surveillance des violations de stratégies ou des exceptions consignées par l'utilitaire de rapports d'AppArmor.

La création de profils AppArmor pour confiner une application est très simple et intuitive. AppArmor est livré avec plusieurs outils qui vous assistent dans la création des profils. AppArmor ne nécessite aucune programmation et aucune gestion de script. La seule tâche de l'administrateur consiste à déterminer une stratégie de moindre accès et à exécuter les autorisations pour chaque application devant être renforcée.

Les mises à jour ou les modifications apportées aux profils d'application ne sont requises que si vous modifiez la configuration des logiciels ou des activités. AppArmor offre des outils intuitifs pour gérer les mises à jour ou les modifications des profils.

Les utilisateurs ne remarquent pas du tout la présence d'AppArmor. Il fonctionne « en arrière plan » et ne nécessite aucune interaction de l'utilisateur. Les performances ne sont pas notablement altérées par AppArmor. Si certaines activités de l'application ne sont pas couvertes par un profil AppArmor ou si une activité de l'application est interdite par AppArmor, l'administrateur doit modifier le profil de cette application pour en tenir compte.

Ce guide décrit les tâches de base devant être exécutées avec AppArmor pour renforcer efficacement la sécurité d'un système. Pour des informations plus détaillées, reportez-vous au Guide d'administration de Novell AppArmor 2.0.

4.4.1. Installation de Novell AppArmor

Les utilisateurs qui installent une sélection de bureau GNOME ou KDE peuvent ignorer cette section, car Novell AppArmor est installé par défaut dans le cadre de ces sélections.

Si vous n'installez aucun de ces bureaux ou si vous optez pour un environnement entièrement de type texte, procédez de la manière suivante pour installer les paquetages requis à l'aide du gestionnaire de paquetages de YaST.

  1. Loguez-vous en tant que root et démarrez YaST.

  2. Dans le Centre de contrôle YaST, sélectionnez Logiciels+Installer et supprimer des logiciels.

  3. Utilisez la fonction de recherche de YaST (mots-clés « AppArmor ») pour installer les paquetages suivants :

    • apparmor-parser

    • libapparmor

    • apparmor-docs

    • yast2-apparmor

    • apparmor-profiles

    • apparmor-utils

  4. Sélectionnez tous ces paquetages pour les installer, puis cliquez sur Accepter. YaST résout toutes les dépendances et installe tous les paquetages.

  5. Lorsque YaST a terminé de mettre à jour la configuration du système, cliquez sur Terminer pour quitter le gestionnaire de paquetages.

4.4.2. Activation de Novell AppArmor

Après avoir installé Novell AppArmor, activez-le de façon explicite pour vérifier qu'il démarre en même temps que votre système. Utilisez le module Éditeur de niveaux d'exécution de YaST pour cette tâche :

  1. Loguez-vous en tant que root et démarrez YaST.

  2. Démarrer Système+Éditeur de niveaux d'exécution.

  3. Dans la liste des services affichée, sélectionnez apparmor. Voir la Figure 4.3, « Activation de Novell AppArmor en utilisant YaST ».

  4. Cliquez sur Activer pour activer AppArmor de façon permanente.

  5. Cliquez sur Terminer pour accepter vos réglages.

Figure 4.3. Activation de Novell AppArmor en utilisant YaST

Activation de Novell AppArmor en utilisant YaST

L'outil de niveau d'exécution de YaST permet d'activer des services de façon permanente. Ces réglages sont maintenus après un redémarrage du système. Pour activer AppArmor temporairement, c'est-à-dire pour la durée d'une session seulement, procédez de la façon suivante :

  1. Loguez-vous en tant que root et démarrez YaST.

  2. Démarrez Novell AppArmor+Panneau de configuration AppArmor.

  3. Définissez État AppArmor sur AppArmor est activé en cliquant sur Configurer+Activer+OK.

  4. Pour appliquer les paramètres choisis, cliquez sur Terminé.

4.4.3. Mise en route du profil des applications

Préparez le déploiement de Novell AppArmor sur votre système en étudiant soigneusement les points suivant :

  1. Déterminez les applications à profiler. Pour en savoir plus, reportez-vous à Section 4.4.3.1, « Choix des applications à profiler ».

  2. Créez les profils nécessaires selon la description de Section 4.4.3.2, « Création et modification de profils ». Vérifiez les résultats et réglez les profils selon vos besoins.

  3. Conservez la trace de ce qui se passe sur votre système en exécutant des rapports AppArmor et en gérant les événements de sécurité. Reportez-vous à Section 4.4.3.3, « Configuration de la notification des événements et des rapports Novell AppArmor ».

  4. Mettez à jour vos profils chaque fois que votre environnement change ou que vous voulez réagir à des événements de sécurité consignés par l'outil de rapport d'AppArmor. Reportez-vous à Section 4.4.3.4, « Mise à jour de vos profils ».

4.4.3.1. Choix des applications à profiler

Il suffit de protéger les programmes exposés aux attaques dans votre installation particulière. Vous ne devez donc utiliser des profils que pour les applications que vous exécutez réellement. La liste suivante permet de déterminer les candidats les plus probables :

Agents réseau

Les programmes (serveurs et clients) ont des ports réseau ouverts. Les agents réseau sont des programmes serveur qui répondent à ces ports. Les clients utilisateurs (tels que les clients de messagerie et les navigateurs Web) ont également des ports réseau ouverts et accordent des privilèges.

applications Web

Scripts CGI Perl, pages PHP et applications Web plus complexes pouvant être appelés par l'intermédiaire d'un navigateur Web.

Tâches cron

Programmes que le démon cron exécute périodiquement et lit l'entrée d'un ensemble de sources.

Pour rechercher les processus qui sont actuellement exécutés avec des ports réseau ouverts et qui peuvent nécessiter un profil pour les confiner, exécutez Non confiné en tant que root.

Exemple 4.1. Résultat de Non confiné

19848 /usr/sbin/cupsd not confined
19887 /usr/sbin/sshd not confined
19947 /usr/lib/postfix/master not confined
29205 /usr/sbin/sshd confined by '/usr/sbin/sshd (enforce)'

Chacun des processus de l'exemple ci-dessus libellé Non confiné peut nécessiter un profil personnalisé pour le confiner. Ceux qui sont libellés Non confiné sont déjà protégés par AppArmor.

[Tip]pour plus d'informations

Pour plus d'informations sur le choix des applications à profiler, reportez-vous au chapitre Sélection de programmes à immuniser (Guide d'administration de Novell AppArmor 2.0).

4.4.3.2. Création et modification de profils

Novell AppArmor sur SUSE Linux est livré avec un ensemble préconfiguré de profils pour les applications les plus importantes. En outre, vous pouvez utiliser AppArmor pour créer vos propres profils pour un ensemble d'applications défini dans /etc/apparmor/README.profiles.

Il existe deux modes de gestion des profils. L'un consiste à utiliser le frontal graphique fourni par les modules YaST Novell AppArmor et l'autre à utiliser les outils de ligne de commande fournis avec la suite AppArmor elle-même. Les deux méthodes fonctionnent globalement de la même manière.

L'exécution de l'outil Non confiné comme indiqué dans Section 4.4.3.1, « Choix des applications à profiler » identifie la liste des applications pouvant nécessiter un profil en mode sécurisé.

Pour chaque application, procédez de la façon suivante pour créer un profil :

  1. En tant que root, laissez AppArmor créer une ébauche du profil de l'application en exécutant genprof programnamer

    ou

    En exécutant YaST+Novell AppArmor+Ajouter un assistant de profil et en spécifiant le chemin complet de l'application à profiler.

    Un profil de base est esquissé et AppArmor est placé en mode apprentissage, ce qui signifie qu'il consigne toute activité du programme que vous exécutez sans toutefois la restreindre.

  2. Exécutez l'ensemble complet des actions de l'application pour que AppArmor ait une vision tout à fait exacte de ses activités.

  3. Laissez AppArmor analyser les fichiers journaux générés dans l'Étape 2. Vous pouvez saisir S dans genprof

    ou

    cliquer sur Analyser les journaux système AppArmor dans Ajouter un assistant de profil et suivre les instructions fournies dans l'assistant jusqu'à ce que le profil soit terminé.

    AppArmor analyse les journaux enregistrés lors de l'exécution de l'application et vous demande de définir les droits d'accès de chaque événement consigné. Vous pouvez les définir pour chaque fichier ou le faire de façon générique.

  4. Lorsque tous les droits d'accès ont été définis, votre profil est configuré en mode imposition. Le profil est appliqué et AppArmor restreint l'application selon le profil que vous venez de créer.

    Si vous avez démarré genprof pour une application ayant déjà un profil en mode réclamation, ce profil reste en mode apprentissage jusqu'à la sortie de ce mode apprentissage. Pour plus d'informations sur le changement de mode d'un profil, reportez-vous à la section Mode réclamation ou apprentissage (chapitre 3, Création de profils Novell AppArmor, Guide d'administration de Novell AppArmor 2.0) et à la section Mode imposition (chapitre 3, Création de profils Novell AppArmor, Guide d'administration de Novell AppArmor 2.0).

Testez vos paramètres de profil en exécutant chaque tâche dont vous avez besoin avec l'application que vous venez de confiner. Normalement, le programme confiné s'exécute sans difficulté et vous ne remarquez pas du tout les activités d'AppArmor. Si toutefois vous remarquez un comportement inhabituel de votre application, reportez-vous aux journaux du système pour vérifier si les contraintes exercées par AppArmor sur votre application sont trop fortes. Vous trouverez les journaux appropriés dans /var/log/messages ou en exécutant dmesg.

Tout ce qui ressemble à l'exemple suivant permet de supposer qu'AppArmor exerce des contraintes trop fortes sur votre application :

AppArmor: REJECTING w access to /var/run/nscd/socket (traceroute(2050) profile
/usr/sbin/traceroute active /usr/sbin/traceroute)

Pour régler le profil, exécutez de nouveau Ajouter un assistant de profil comme indiqué ci-dessus et laissez-le analyser les messages du journal associés à cette application particulière. Déterminez les droits d'accès ou les restrictions lorsque vous y êtes invité par YaST.

[Tip]pour plus d'informations

Pour plus d'informations sur la création et la modification de profils, reportez-vous au chapitre Création de profils Novell AppArmor (Guide d'administration de Novell AppArmor 2.0).

4.4.3.3. Configuration de la notification des événements et des rapports Novell AppArmor

Configurez la notification des événements dans Novell AppArmor pour consulter les événements de sécurité. La notification des événements est une fonction de Novell AppArmor qui informe un destinataire spécifié lorsqu'il se produit une activité systémique de Novell AppArmor au niveau de gravité choisi. Cette fonction est actuellement disponible par l'intermédiaire de l'interface de YaST.

Pour configurer la notification des événements dans YaST, procédez de la façon suivante :

  1. Assurez-vous qu'un serveur de messagerie fonctionne sur votre système pour fournir les notifications d'événements.

  2. Loguez-vous en tant que root et démarrez YaST. Sélectionnez ensuite Novell AppArmor+Panneau de configuration AppArmor.

  3. Dans la section Activer la notification des événements de sécurité, sélectionnez Configurer.

  4. Pour chaque type d'enregistrement (succinct, résumé et détaillé) définissez la fréquence des rapports, entrez l'adresse électronique de réception des rapports et déterminez la gravité des événements à consigner. Si vous souhaitez inclure des événements inconnus dans les rapports des événements, cochez l'option Inclure les événements de gravité inconnue.

    [Note]Remarque

    Si vous n'êtes pas familier de la catégorisation d'événement d'AppArmor, choisissez d'être notifié quel que soit le niveau de gravité des événements.

  5. Quittez cette boîte de dialogue en cliquant sur OK+Terminer pour appliquer vos paramètres.

Configurez les rapports Novell AppArmor. À l'aide des rapports, vous pouvez lire les événements importants de sécurité de Novell AppArmor consignés dans les fichiers journaux sans manuellement passer au crible les fastidieux messages qui ne servent qu'à l'outil logprof. Vous pouvez réduire la taille du rapport en filtrant par plage de dates ou par nom de programme.

Pour configurer les rapports AppArmor, procédez de la façon suivante :

  1. Loguez-vous en tant que root et démarrez YaST. Sélectionnez Novell AppArmor+Rapports AppArmor.

  2. Sélectionnez le type de rapport que vous voulez examiner ou configurer : Résumé de sécurité d'exécution, Rapport d'audit d'applications ou Rapport d'incident de sécurité.

  3. Modifiez la fréquence de génération des rapports, l'adresse électronique, le format d'exportation et l'emplacement des rapports en sélectionnant Modifier et en fournissant les données demandées.

  4. Pour exécuter un rapport du type sélectionné, cliquez sur Exécuter maintenant.

  5. Naviguez parmi les rapports archivés d'un type donné en sélectionnant Afficher archive et en spécifiant le type de rapport.

    ou

    Supprimez les rapports dont vous n'avez pas besoin ou ajoutez-en de nouveaux.

[Tip]pour plus d'informations

Pour plus d'informations sur la configuration de la notification d'événements dans Novell AppArmor, reportez-vous à la section « Configuration de la notification d'événement » (chapitre 4, Gestion des applications profilées, Guide d'administration de Novell AppArmor 2.0). Pour plus d'informations sur la configuration des rapports, reportez-vous à la section « Rapports » (chapitre 4, Gestion des applications profilées, Guide d'administration de Novell AppArmor 2.0).

4.4.3.4. Mise à jour de vos profils

La configuration des logiciels et du système évolue avec le temps. De ce fait, la configuration de vos profils dans AppArmor peut nécessiter un réglage de temps à autres. AppArmor vérifie les violations de stratégies dans le journal du système ainsi que les autres événements AppArmor et permet de régler votre ensemble de profils en conséquence. Tout comportement de l'application qui sort de la définition d'un profil peut également être géré en utilisant Mettre à jour l'assistant de profil.

Pour mettre à jour l'ensemble des profils, procédez de la façon suivante :

  1. Loguez-vous en tant que root et démarrez YaST.

  2. Démarrer Novell AppArmor+Mettre à jour l'assistant de profil.

  3. Réglez les droits d'accès ou d'exécution pour les ressources ou les exécutables consignés lorsque vous y êtes invité.

  4. Quittez YaST après avoir répondu à toutes les questions. Les modifications sont appliquées dans les profils respectifs.

[Tip]pour plus d'informations

Pour plus d'informations sur la mise à jour de vos profils à partir des journaux du système, reportez-vous à la section « Mise à jour des profils à partir d'entrées du journal du système » (Chapitre 3, Création de profils Novell AppArmor, Guide d'administration de Novell AppArmor 2.0).