Un mécanisme d'isolation similaire à plegde est en cours de développement sur FreeBSD

Il a été révélé que une implémentation a été proposée d'un mécanisme d'isolation d'application pour FreeBSD, qui n'est pas sans rappeler les appels système de repli et de dévoilement développés par le projet OpenBSD.

L'isolement dans plegde se fait en interdisant l'accès aux appels système qui ne sont pas utilisés par l'application et en divulguant en ouvrant sélectivement l'accès uniquement à certains chemins de fichiers avec lesquels l'application peut fonctionner. Pour l'application, une sorte de liste blanche d'appels système et de chemins de fichiers est formée, et tous les autres appels et chemins sont interdits.

La différence entre plié et dévoilé, développé pour FreeBSD, cela revient à fournir une couche supplémentaire qui vous permet d'isoler les applications sans ou avec des modifications minimes de leur code. N'oubliez pas que dans OpenBSD, plegde et unlock visent une intégration étroite avec l'environnement de base et sont implémentés en ajoutant des annotations spéciales au code de chaque application.

Pour simplifier l'organisation de la protection, les filtres permettent d'éviter les détails au niveau des appels système individuels et de manipuler les classes d'appels système (entrée/sortie, lecture de fichier, écriture de fichier, sockets, ioctl, sysctl, démarrage de processus, etc.) . Les fonctions de restriction d'accès peuvent être appelées dans le code d'application lorsque certaines actions sont effectuées, par exemple, l'accès aux sockets et aux fichiers peut être fermé après l'ouverture des fichiers nécessaires et l'établissement d'une connexion réseau.

L'auteur du port "plier et révéler" pour FreeBSD destiné à fournir la possibilité d'isoler des applications arbitraires, pour lequel l'utilitaire curtain est proposé, qui permet d'appliquer aux applications des règles définies dans un fichier séparé. La configuration proposée comprend un fichier avec les paramètres de base qui définissent les classes d'appels système et les chemins de fichiers typiques spécifiques à certaines applications (travail avec le son, les réseaux, la journalisation, etc.), ainsi qu'un fichier avec les règles d'accès pour les applications spécifiques.

L'utilitaire de rideau peut être utilisé pour isoler la plupart des utilitaires, des processus serveur, des applications graphiques et même des sessions de bureau entières qui n'ont pas été modifiées. Le partage de rideau avec les mécanismes d'isolation fournis par les sous-systèmes Jail et Capsicum est pris en charge.

Aussi il est possible d'organiser un isolement imbriqué, lorsque les applications lancées héritent des règles définies par l'application mère, en les complétant par des contraintes distinctes. Certaines opérations du noyau (outils de débogage, POSIX/SysV IPC, PTY) sont en outre protégées par un mécanisme de barrière qui empêche l'accès aux objets du noyau créés par des processus autres que le processus courant ou parent.

Un processus peut configurer sa propre isolation en appelant curtainctl ou en utilisant les fonctions plegde() et dévoile() fournies par la bibliothèque libcurtain, similaire à celle d'OpenBSD. Le sysctl 'security.curtain.log_level' est fourni pour suivre les verrous pendant que l'application est en cours d'exécution.

L'accès aux protocoles X11 et Wayland est activé séparément en spécifiant les options "-X"/"-Y" et "-W" lors du démarrage du rideau, mais la prise en charge des applications graphiques n'est pas encore suffisamment stabilisée et présente une série de problèmes non résolus ( les problèmes apparaissent principalement lors de l'utilisation de X11, et le support de Wayland est bien meilleur). Les utilisateurs peuvent ajouter des restrictions supplémentaires en créant des fichiers de règles locales (~/.curtain.conf). Par exemple,

L'implémentation comprend le module de noyau mac_curtain pour le contrôle d'accès obligatoire (MAC), un ensemble de correctifs pour le noyau FreeBSD avec l'implémentation des pilotes et filtres nécessaires, la bibliothèque libcurtain pour l'utilisation de plegde et les fonctions révélées dans les applications, le rideau utilitaire, affiche la configuration fichiers, une suite de tests et des correctifs pour certains programmes de l'espace utilisateur (par exemple, pour utiliser $TMPDIR pour unifier le travail avec des fichiers temporaires). Dans la mesure du possible, l'auteur essaie de minimiser le nombre de changements qui nécessitent de corriger le noyau et les applications.

Enfin si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.