Tutoriel complet sur le sandboxing sous Linux avec Firejail et plus encore

Dernière mise à jour: 22/02/2026
Auteur: Isaac
  • Le sandboxing sous Linux repose sur les espaces de noms, seccomp-BPF, MAC et chroot pour isoler les processus et limiter l'impact des vulnérabilités.
  • Firejail offre une solution simple et légère pour isoler les applications de bureau et serveur grâce à des profils prédéfinis et des options avancées.
  • Des outils comme Bubblewrap, Flatpak, AppArmor, SELinux et Kata Containers étendent les possibilités d'isolation dans des scénarios plus complexes.
  • L'association de la sécurité de la mémoire et du sandboxing, comme dans l'approche Fil-C et OpenSSH, offre une défense en profondeur pour les applications critiques.

Sandbox sous Linux

Sécurisez vos applications sous Linux Il est devenu quasiment indispensable de sécuriser son système si vous consultez des sites web saturés de publicités agressives, exécutez des fichiers binaires non fiables ou gérez des services exposés sur Internet. Bien que Linux soit déjà un système relativement robuste, il n'en reste pas moins que votre navigateur, vos lecteurs multimédias ou tout client réseau peuvent constituer une porte d'entrée idéale pour les logiciels malveillants, le cryptojacking ou le vol de données si vous ne les isolez pas correctement.

Dans ce tutoriel complet sur Le sandboxing sous Linux avec des outils comme Firejail, Bubblewrap, AppArmor et les technologies du noyau Vous découvrirez le fonctionnement concret de l'isolation des processus, les mécanismes de sécurité utilisés par le système (espaces de noms, seccomp-BPF, chroot, limites de ressources, etc.) et comment les combiner pour minimiser l'impact d'une éventuelle exploitation. L'objectif est de vous permettre d'acquérir une compréhension claire, des exemples prêts à l'emploi et une base solide pour renforcer la sécurité de vos applications de bureau et serveur.

Comment utiliser Firejail
Article connexe:
Comment utiliser Firejail sous Linux pour isoler et protéger les applications

Qu'est-ce qu'un sandbox sous Linux et pourquoi devriez-vous l'utiliser ?

Lorsque nous parlons de sandboxing sous Linux, nous faisons référence à exécuter des programmes dans un environnement restreint, séparée du reste du système, de sorte qu'en cas de problème (exploitation de faille, logiciel malveillant, script malveillant sur un site web, etc.), les dommages restent confinés dans ce « bac à sable » et ne peuvent pas facilement affecter le reste du système d'exploitation, vos documents ou d'autres services.

Cette approche est particulièrement utile pour applications très exposéesPar exemple, les navigateurs web, les clients de messagerie, les applications de messagerie instantanée, les logiciels de torrent, les lecteurs multimédias ou les services réseau accessibles depuis Internet. Dans tous ces cas, le risque qu'ils traitent du contenu non fiable est extrêmement élevé ; il est donc judicieux de les protéger par plusieurs niveaux de sécurité.

Sous Linux, le sandboxing moderne repose principalement sur mécanismes natifs du noyau: Espaces de noms LinuxLes politiques de contrôle d'accès (MAC) telles qu'AppArmor ou SELinux, les filtres seccomp-BPF, les restrictions avec setrlimit, chroot et l'exécution sous des utilisateurs non privilégiés sont autant de mécanismes fondamentaux. Des outils comme Firejail, Bubblewrap, Flatpak, ou même des systèmes de conteneurisation comme Docker, reposent sur ces éléments de base.

Il est également important de comprendre que La sécurité de la mémoire et le sandboxing sont des concepts distincts mais complémentaires.Un programme peut être écrit dans un langage sécurisé en mémoire (ou protégé par un environnement d'exécution qui empêche les erreurs typiques du C/C++), mais s'il a un accès complet au système de fichiers et à tous les appels système, il reste dangereux en cas de compromission. Inversement, un programme isolé dans un environnement sandbox peut contenir des vulnérabilités mémoire exploitables de l'intérieur. Une sécurité optimale repose sur la combinaison de ces deux approches.

Firejail : le sandbox le plus populaire pour les applications de bureau

Firejail est probablement le l'outil de sandbox le plus connu sur les ordinateurs de bureau LinuxIl est programmé en C et fonctionne comme un exécutable SUID qui s'appuie sur les espaces de noms, seccomp-BPF et d'autres fonctionnalités du noyau pour créer un environnement isolé autour du programme que vous souhaitez exécuter.

Son grand avantage est que Il est très léger et facile à utiliserLa vitesse d'exécution des applications dans l'environnement isolé est quasiment identique à celle d'une exécution normale ; aucun processus résident n'est créé au démarrage du système et les dépendances sont très limitées. En pratique, la consommation de ressources n'intervient que lors du lancement d'une application, ce qui rend cet environnement adapté même aux machines modestes.

De plus, Firejail est livré avec Profils de configuration prédéfinis pour plus de 300 à 1000 applications courantes (Selon la version que vous utilisez) : navigateurs comme Firefox et Chromium, VLC, Transmission, lecteurs PDF, éditeurs de texte, et bien d’autres. Ces profils spécifient les parties du système de fichiers auxquelles chaque programme a accès, ses permissions, son accès au son, son type d’accès réseau, etc.

Vous pouvez également utiliser Firejail pour programmes serveur et outils de terminalPar exemple, pour confiner un serveur web Apache ou un service personnalisé qui écoute sur un port spécifique. Le principe reste le même : le processus s’exécute dans un ensemble d’espaces de noms et de restrictions qui limitent l’impact d’une faille de sécurité.

Comment Firejail fonctionne sur le plan technique

Pour que Firejail puisse soulever ses cages, elle utilise intensivement Espaces de noms LinuxCette fonctionnalité, apparue dans le noyau à partir de la version 2.6.23, a été étendue pour offrir différents types d'isolation : PID, réseau, utilisateur, point de montage, UTS (nom d'hôte), IPC, etc. Chaque espace de noms encapsule un ensemble de ressources, de sorte que les processus qui partagent un espace de noms perçoivent une réalité différente de ceux qui se trouvent en dehors de celui-ci.

Autrement dit, un programme a débuté avec Firejail Il ne reconnaît pas le même système de fichiers, la même table des processus, la même pile réseau ni le même nom d'hôte. Plutôt que le reste du système, il s'agit d'une version filtrée ou partiellement assemblée selon le profil utilisé. C'est le principe de base de nombreuses technologies de conteneurisation, comme Docker, et c'est ce qui explique leur grande efficacité.

Firejail complète les espaces de noms avec politiques de contrôle d'accès (MAC) sur le système de fichiersGrâce à ces règles, vous pouvez, par exemple, autoriser le programme à accéder uniquement à certains sous-répertoires de votre répertoire personnel, tels que Téléchargements ou le dossier de configuration spécifique de l'application, tout en bloquant l'accès au reste. De nombreux profils par défaut incluent déjà des règles bien définies qui permettent au programme de fonctionner sans lui donner accès à l'ensemble de votre disque.

Une autre couche importante est seccomp-BPFCe mécanisme permet d'associer un filtre d'appels système (syscall) à un processus. Ce filtre, décrit à l'aide de BPF (Berkeley Packet Filter), définit les appels système autorisés et leurs paramètres ; tout autre appel entraîne l'arrêt du processus par le noyau ou le renvoi d'une erreur. Les navigateurs comme Chrome et les systèmes de conteneurisation comme Docker utilisent également cette technique pour limiter les actions possibles du code en cours d'exécution.

  Comment utiliser Fortect sous Windows : guide complet, fonctionnalités et tarifs

Enfin, Firejail peut vivre avec AppArmor et SELinuxCes systèmes MAC fonctionnent au niveau du noyau pour restreindre l'accès aux fichiers, aux sockets, aux fonctionnalités, etc. Firejail ajoute une couche d'isolation supplémentaire : il ne se contente pas de décider des ressources auxquelles une application peut accéder, mais les sépare également en espaces de noms afin que même plusieurs applications disposant de permissions similaires n'aient pas nécessairement à se voir ou à se manipuler mutuellement.

Installez Firejail et son interface graphique Firetools.

Dans la plupart des distributions GNU/Linux, Firejail Il n'est pas préinstallé, mais il est disponible dans les dépôts officiels.Sous Debian, Ubuntu et leurs dérivés, il suffit d'utiliser APT pour l'intégrer au système sans aucune dépendance supplémentaire ni service d'arrière-plan additionnel.

Pour installer le package Firejail de base, vous pouvez exécuter :

sudo apt-get install firejail

Avec cette simple commande, vous aurez Tout ce dont vous avez besoin pour utiliser Firejail depuis le terminalIl n'est pas nécessaire de toucher aux fichiers de configuration pour commencer ; en connaissant quelques commandes de base, vous pouvez déjà confiner vos premières applications.

Si tu veux un interface graphique plus conviviale Pour lancer et configurer des applications, vous pouvez également installer Firetools, qui fait office de lanceur avec une icône dans la barre d'état système et un assistant d'installation.

sudo apt-get install firetools

Après l'installation, vous verrez deux nouvelles entrées dans le menu des applications : une pour la barre d'état système contenant les lanceurs et une autre pour… Assistant de configuration Firejail, un assistant étape par étape qui vous permet de choisir l'application, de décider d'utiliser le profil par défaut ou un profil personnalisé, et d'ajuster les autorisations sur les répertoires, le son, le réseau et d'autres protections du noyau.

Utilisation de Firejail depuis le terminal : les bases et plus encore

L'utilisation la plus courante de Firejail est de ajouter la commande firejail à l'exécutable que vous souhaitez isoler. Si le programme possède un profil prédéfini, celui-ci sera appliqué automatiquement ; sinon, une configuration générique sera utilisée, en plus de toute configuration ajoutée via la ligne de commande.

Par exemple, pour ouvrir Firefox dans un environnement isolé (sandbox), la commande serait :

firejail firefox

Il faut savoir que sur les distributions comme Ubuntu 22.04 et versions ultérieures, Firefox est généralement fourni sous forme de paquet Snap. Cette commande peut ne pas fonctionner directementDans ce cas, vous devrez utiliser la version empaquetée APT ou adapter le profil au chemin correct du binaire qui s'exécute réellement.

Le constat est similaire pour les autres applications de bureau. Voici quelques exemples courants :

firejail gedit
firejail evince
firejail vlc
firejail transmission-gtk

Lorsque ces applications sont ouvertes, si vous consultez le moniteur de ressources, vous verrez que chaque processus apparaît comme un enfant d'un processus firejailPour afficher l'arborescence complète des processus exécutés dans les environnements sandbox à un instant donné, vous pouvez utiliser :

firejail --tree

Si vous souhaitez explorer toutes les options prises en charge (il en existe de nombreuses pour la mise en réseau, X11, la bande passante, les profils personnalisés, etc.), l'option habituelle est disponible :

firejail --help

Profils de configuration Firejail : où les trouver et comment y accéder

La véritable puissance de Firejail provient de son profils de configurationChaque profil décrit comment un programme spécifique doit être isolé : quels répertoires il monte en lecture seule ou en lecture-écriture, s’il a accès au dossier utilisateur, si l’accélération 3D est autorisée, s’il peut accéder à Internet, quel DNS il utilise, s’il écoute le serveur audio, etc.

Les profils globaux du système sont généralement stockés dans /etc/firejail/Pour afficher la liste complète des éléments disponibles sur votre machine, vous pouvez exécuter :

ls /etc/firejail/

Chaque fichier avec extension .profil définit les règles d'un programme. Si vous souhaitez modifier, par exemple, le profil Firefox par défaut, vous pouvez le faire avec votre éditeur de texte préféré en l'exécutant avec les privilèges d'administrateur :

sudo nano /etc/firejail/firefox.profile

À l'intérieur, vous trouverez des directives Firejail qui contrôlent assemblages spéciaux, accès, capacités et optionsPour comprendre tous les paramètres disponibles, il est fortement recommandé de consulter la page de manuel spécifique aux profils :

man 5 firejail-profile

En plus de modifier les profils existants, vous pouvez Créez de nouveaux profils pour les programmes qui n'en possèdent pas.Dans ces cas-là, Firejail utilise généralement une configuration générique plus permissive. Si vous souhaitez personnaliser le comportement d'une application spécifique, vous pouvez définir un fichier de profil portant son nom et l'adapter à vos besoins, en vous référant à la documentation officielle et aux exemples d'autres utilisateurs.

Profils utilisateur : remplacement et extension des paramètres standard

Souvent, il n'est pas dans notre intérêt de toucher au profils système dans /etc/firejailQue ce soit pour faciliter les mises à jour futures ou parce que vous souhaitez avoir vos propres variantes pour un utilisateur spécifique, Firejail prend en charge les profils dans le répertoire de configuration de l'utilisateur, qui peuvent inclure le profil global et ajouter ou modifier des règles.

La première étape consiste à créer le dossier où seront stockés ces profils d'utilisateurs :

mkdir -p ~/.config/firejail/

Imaginez que vous vouliez VLC n'ont jamais accès à Internet Lorsque vous l'ouvrez avec Firejail, vous pouvez créer un profil local appelé vlc.profile qui inclut le profil global et ajoute la restriction réseau. Pour ce faire, ouvrez le fichier :

nano ~/.config/firejail/vlc.profile

Et insérez quelque chose comme ceci :

include /etc/firejail/vlc.profile
net none

Directif comprennent Faites glisser les paramètres VLC par défaut, et la ligne suivante ajoute la règle de blocage du réseau. À partir de là, lancez Firejail VLC Il utilisera également ce fichier utilisateur et, par conséquent, VLC ne pourra pas accéder à Internet, restant limité à la lecture de contenu local.

N'oubliez pas que le nom du fichier dans votre dossier utilisateur doit correspondre au nom de profil standard afin que Firejail puisse le détecter et le combiner correctement.

Options avancées de Firejail : réseau, mode privé et ressources

En plus des profils, Firejail offre un bon arsenal de paramètres de ligne de commande pour ajuster temporairement le comportement du bac à sable à chaque exécution, sans avoir besoin de modifier les fichiers de configuration.

  Comment installer des programmes Linux natifs sur FreeBSD

Par exemple, vous pouvez désactiver l'accès réseau pour une application spécifique en utilisant l'option –net=none. Pour démarrer VLC en mode Internet isolé, il suffit de :

firejail --net=none vlc

Une autre fonctionnalité très puissante est la mode privéDans ce mode, le programme s'exécute dans un système de fichiers temporaire (tmpfs), ignore vos paramètres et fichiers personnels, et toutes ses actions disparaissent lorsque vous vous déconnectez de l'environnement isolé. Ce mode est idéal pour les opérations sensibles, comme l'accès à vos services bancaires en ligne, le test de sites web suspects ou l'exécution de logiciels dont vous ne souhaitez pas laisser de traces.

Un exemple concret serait d'ouvrir Google Chrome avec mode privé et DNS spécifique (par exemple, celles de Google) :

firejail --private --dns=8.8.8.8 --dns=8.8.4.4 google-chrome

Dans ce cas de figure, Chrome démarre avec ses paramètres par défaut, sans extensions ni historique de navigation, s'isole dans un environnement tmpfs et utilise les serveurs DNS spécifiés. C'est une méthode tout à fait raisonnable pour minimiser les risques lors de la consultation de sites web sensibles.

Firejail le permet également. Les applications exécutées dans l'environnement isolé utilisent leur propre interface réseau virtuelle.avec une adresse IP interne distincte, une table ARP, un pare-feu séparé, etc., grâce à macvlan. Vous pourriez, par exemple, lancer Firefox sur l'interface eth0 avec :

firejail --net=eth0 firefox

Si vous souhaitez attribuer une adresse IP spécifique à ce bac à sable :

firejail --net=eth0 --ip=192.168.1.80 firefox

Gardez à l'esprit que Cette fonctionnalité est actuellement généralement limitée aux réseaux câblés.et peuvent ne pas fonctionner sur les interfaces sans fil en fonction de la configuration et de la distribution de votre système.

Contrôle de la bande passante et surveillance du bac à sable

Une fonctionnalité moins connue de Firejail est sa capacité à limiter la bande passante des applications exécutées dans l'environnement isolé. C'est idéal pour les tests de performance, la simulation de connexions lentes ou simplement pour empêcher un client torrent d'accaparer toute votre bande passante.

Le schéma habituel consiste en Attribuez un nom au bac à sable puis opérer dessus depuis un autre terminal. Par exemple, en lançant Firefox dans un environnement isolé appelé « browser » connecté à eth0 :

firejail --name=navegador --net=eth0 firefox

Dans un autre terminal, vous pouvez définir les limites de téléchargement et d'envoi avec l'option –bandwidth, en spécifiant le nom du sandbox, l'interface et les valeurs (en Ko/s) :

firejail --bandwidth=navegador set eth0 80 20

Avec ces paramètres, Firefox serait limité à une vitesse de téléchargement de 80 Ko/s et à une vitesse d'envoi de 20 Ko/s.Si vous souhaitez ultérieurement supprimer ces restrictions, vous pouvez effacer les règles de bande passante avec :

firejail --bandwidth=navegador clear eth0

Savoir à tout moment Quelles applications sont exécutées dans Firejail ?La commande `-list` affiche une liste des PID, des utilisateurs et des programmes associés :

firejail --list

Et si ce qui vous intéresse est observer la consommation de ressources (mémoire, processeur, nombre de processus) de chaque sandbox active, vous disposez :

firejail --top

Entrez dans un environnement sandbox existant et utilisez Firejail par défaut.

Il existe des situations dans lesquelles vous pourriez être intéressé accéder « depuis l'intérieur » d'un bac à sable en cours d'exécutionPar exemple, pour examiner la configuration de votre réseau, consulter les routes montées ou effectuer des tâches d'administration, Firejail vous permet de rejoindre un environnement isolé spécifique à l'aide de l'option `--join`, en utilisant l'identifiant de processus (PID) de l'un des processus.

Si, par exemple, à la sortie de liste des prisons de feu Vous voyez que Firefox a le PID 5394, vous pouvez entrer dans son environnement isolé avec :

sudo firejail --join=5394

Firejail se charge lui-même de basculer vers le premier processus enfant à l'intérieur de la prison et vous laisse dans un shell root au sein de cet environnement isolé, à partir duquel vous pouvez effectuer les vérifications nécessaires.

Une autre possibilité très pratique est Configurez Firejail comme méthode par défaut pour démarrer tout programme disposant d'un profil disponible.Pour ce faire, vous pouvez utiliser la commande firecfg, qui crée des liens symboliques dans /usr/local/bin pointant vers /usr/bin/firejail pour chaque application disposant d'un profil.

sudo firecfg

À partir de maintenant, chaque fois que vous lancerez un programme depuis la liste (via le menu graphique ou le terminal), il démarrera automatiquement dans un environnement isolé (sandbox). Si vous souhaitez revenir en arrière, il vous suffit de supprimer les liens symboliques créés dans / usr / local / bin.

Si vous préférez appliquer ce comportement à un seul application spécifiqueVous pouvez créer vous-même le lien symbolique. Par exemple, pour que Firefox utilise toujours Firejail :

sudo ln -s /usr/bin/firejail /usr/local/bin/firefox

Pour désactiver l'utilisation automatique de Firejail pour ce programme, il vous suffit de supprimer le lien symbolique correspondant dans /usr/local/bin.

Serveurs graphiques alternatifs : Xpra et Xephyr avec Firejail

L'une des critiques classiques formulées à l'encontre du modèle X11 est que Il n'offre pas une bonne isolation entre les applications graphiques.Cela ouvre la porte aux enregistreurs de frappe, aux captures d'écran et autres techniques d'espionnage entre fenêtres. Firejail tente d'atténuer ce problème en autorisant l'exécution des applications sur des serveurs graphiques alternatifs.

Vous pouvez notamment utiliser Xpra et Xephyr en tant que serveurs X distincts, afin que le programme isolé ne partage pas le même serveur X que le reste du bureau. Vous devez d'abord installer les paquets correspondants sur votre système :

sudo apt-get install xpra xserver-xephyr

Vous pouvez ensuite lancer une application en spécifiant le serveur X à utiliser avec l'option –x11. Par exemple, pour démarrer VLC sans accès réseau et en utilisant Xephyr :

firejail --x11=xephyr --net=none vlc

Si vous préférez que l'application s'exécute sur Xpra, la commande serait similaire, en modifiant le paramètre :

firejail --x11=xpra --net=none vlc

Avec ce système, Vous compliquez considérablement la vie des utilisateurs de keyloggers et de logiciels de capture d'écran. qu'ils tentent d'espionner ce que vous faites dans cette application spécifique, puisqu'elle reste « connectée » à son propre serveur graphique, indépendamment du reste du bureau.

Autres approches de sandboxing sous Linux : Bubblewrap, Flatpak, AppArmor et les conteneurs

Bien que Firejail soit très pratique pour l'utilisateur d'ordinateur de bureau, l'écosystème Linux propose davantage d'outils destinés à isoler les processus et les applicationsAucun n'est parfait et tous ont leurs avantages et leurs inconvénients, mais il est utile de les connaître pour choisir le meilleur dans chaque cas.

Bubblewrap est une alternative qui se concentre sur offrir une durée d'exécution minimaliste en mode sandboxBubblewrap est plus propre et présente une surface d'attaque plus réduite qu'un outil setuid de grande envergure. Sa configuration directe est plus complexe que celle de Firejail, mais de nombreuses solutions modernes l'utilisent en interne. Contrairement à Firejail, Bubblewrap privilégie l'utilisation de SUID afin d'éviter autant que possible son recours, limitant ainsi l'impact des vulnérabilités internes potentielles.

  Comment créer un lien de téléchargement direct – Alternatives

Des projets comme Bubblewrap sont construits sur cette base. Prison à bullesdont l'objectif est d'offrir une expérience utilisateur plus conviviale en corrigeant certains défauts d'organisation de Firejail (profils plus cohérents, configuration plus claire, etc.). Son principal inconvénient est sa faible notoriété et sa petite communauté de développeurs. Il n'est pas aussi audité ni aussi éprouvé au combat. ainsi que d'autres options plus populaires.

D'autre part est FlatpakIl est largement utilisé pour distribuer des applications de bureau isolées. Bien qu'il repose sur des techniques de sandbox (espaces de noms, portails, permissions déclaratives, etc.), de nombreux experts soulignent que Il n'est pas simple de le configurer sans laisser d'espaces vides.De plus, cela ne s'applique qu'aux applications empaquetées au format Flatpak ; par conséquent, si votre programme n'existe pas dans ce format, cela ne fonctionnera pas pour vous.

Dans le domaine des politiques MAC, AppArmor et SELinux Elles permettent de définir des règles très précises concernant les fichiers, les sockets, les capacités et les ressources que chaque programme peut utiliser. Théoriquement, elles sont très puissantes et offrent généralement un niveau de sécurité supérieur aux solutions définies par l'utilisateur, mais elles souffrent du même problème : Leur configuration correcte est complexeL'élaboration de profils robustes pour chaque service exige du temps, de l'expérience et une maintenance constante.

Dans les environnements cloud et Kubernetes, une alternative très intéressante est la conteneurs basés sur des machines virtuelles légères, comme Kata Containers, que Red Hat OpenShift intègre en tant qu'environnement d'exécution optionnel compatible OCI. Dans ce modèle, chaque charge de travail s'exécute sur son propre noyau isolé au sein d'une machine virtuelle légère, offrant ainsi un couche d'isolation supplémentaire Au-delà de la séparation habituelle par espaces de noms, un opérateur est responsable de l'installation, de la gestion et de la mise à jour de cet environnement d'exécution au sein du cluster.

Sécurité de la mémoire et sandboxing : l’approche Fil-C et le cas OpenSSH

Au-delà des ordinateurs de bureau, de nombreuses applications critiques s'exécutent sur des serveurs (tels que OpenSSH ou des composants de plateformes SaaS) bénéficient de la combinaison sécurité de la mémoire et sandbox profondeC’est là qu’intervient l’approche de projets comme Fil-C, qui propose une implémentation sécurisée pour C/C++ capable de bien coexister avec les mécanismes natifs de Linux.

OpenSSH sous Linux utilise déjà plusieurs techniques d'isolation : chroot (créer une cage chroot) pour limiter la vue du système de fichiers, l'exécution de processus en tant qu'utilisateurs et groupes non privilégiés, l'utilisation de définir la limite pour restreindre les ressources (ouverture de fichiers, création de processus, etc.) et les filtres seccomp-BPF qui n'autorisent qu'un sous-ensemble contrôlé d'appels système ; tout le reste entraîne l'arrêt du processus.

Le défi pour les environnements d'exécution comme Fil-C est s'adapter à ces restrictions sans enfreindre le programmePar exemple, si le ramasse-miettes a besoin de threads d'arrière-plan, vous devez vous assurer que tous ces threads sont créés avant d'activer le bac à sable, et que les filtres seccomp sont installés sur tous ces threads, et pas seulement sur le thread principal, en respectant également les paramètres tels que PR_SET_NO_NEW_PRIVS et PR_SET_SECCOMP.

Fil-C offre des fonctionnalités telles que zlock_runtime_threads()Ces mesures imposent l'initialisation de tous les threads nécessaires avant l'activation du sandbox et bloquent la création de nouveaux threads par la suite, garantissant ainsi l'application cohérente des restrictions tout au long du processus. Cela nécessite également Exceptions mineures dans les filtres seccomp, comme l'activation de MAP_NORESERVE dans mmap ou de l'appel système sched_yield, qui sont nécessaires à la gestion interne de l'exécution.

Ce type de travail démontre que Il est possible de combiner des environnements à mémoire sécurisée, des sandboxes strictes et des applications à forte visibilité. comme OpenSSH, sans compromettre la compatibilité ni les performances. Les développeurs de Chrome et de Mozilla documentent depuis des années des pratiques similaires pour leurs environnements d'exécution Linux isolés, établissant ainsi la norme en matière de défense en profondeur robuste.

Cas d'utilisation pratiques : protéger votre navigation et votre vie quotidienne

Tout cela se traduit par des scénarios très quotidiens pour tout utilisateur Linux. Par exemple, lorsque vous visitez Sites de torrents, sites de téléchargement remplis de pop-ups, sites pornographiques ou portails aux liens suspectsLa probabilité de rencontrer des scripts de cryptojacking, des publicités malveillantes ou des tentatives d'usurpation d'identité est plus que raisonnable.

Une mesure simple consiste en Emprisonner le navigateur avec Firejail chaque fois que vous vous retrouvez dans ce genre de situation. Lancez le navigateur avec :

firejail chromium &

ou bien:

firejail firefox &

Cela vous offre une tranquillité d'esprit supplémentaire. L'esperluette (&) à la fin permet de garder le navigateur ouvert même si vous fermez accidentellement le terminal. Si vous combinez cela avec des solutions comme Pi-hole sur votre réseau local, ou des extensions bloquant les scripts et le minage, Vous réduisez considérablement la surface d'attaque. lors de la navigation sur des sites web douteux.

Le mode privé de Firejail, les profils qui bloquent l'accès aux dossiers sensibles et l'utilisation d'un DNS contrôlé pour le navigateur que vous utilisez pour vos services bancaires en ligne sont de petites décisions qui, mises bout à bout, Elles font toute la différence entre une grosse frayeur et un simple cil fermé..

Globalement, il est clair que le sandboxing sous Linux n'est pas une solution miracle, mais c'est un outil incroyablement puissant si l'on sait l'utiliser à bon escient : Firejail et ses profils pour une utilisation quotidienne, Bubblewrap et Flatpak pour des environnements plus contrôlés, AppArmor/SELinux et seccomp-BPF pour les services critiques, et des technologies comme Kata Containers ou des environnements d'exécution à faible consommation de mémoire comme Fil-C pour la construction d'infrastructures plus complexes. En fin de compte, il s'agit de construire des couches de manière à ce que, même en cas de défaillance de l'une d'entre elles, Le reste continuera à assurer une sécurité raisonnable à votre système..