Je veux exécuter de petits programmes non fiables, mais les empêcher d’accéder à des fichiers en dehors de leur dossier, à l’accès au réseau et à tout ce dont ils n’ont pas vraiment besoin. Quelle est la manière la plus simple d'y parvenir?
S'ils ne sont pas fiables et que vous voulez en être sûr, vous devez configurer une boîte séparée. Soit vraiment ou virtuellement.
En outre, vous ne voulez pas que cette boîte soit dans le même réseau que vos éléments importants, si vous êtes assez paranoïaque. Dans toutes les solutions, vous devez configurer un utilisateur distinct sans droit, afin de ne pas ouvrir trop d’outils au compromis potentiel.
Si vous êtes obligé de l'exécuter dans la même boîte, vous avez par exemple cette option
En fin de compte, vous devrez peut-être configurer un modèle de sandboxing spécifique sans avoir à vous soucier de la virtualisation ou de boîtes séparées, ou de la situation encore à risque de chroot. Je doute que ce soit ce que vous vouliez dire, mais regardez ce lien pour des informations plus détaillées: lien
Docker vous aidera à configurer des conteneurs que vous pouvez exécuter sur votre noyau actuel, tout en restant éloigné du reste de votre système. Cela semble assez avant-gardiste mais il y a un focus Ubuntu une bonne documentation.
Firejail est relativement récent et en constante évolution. Facile à utiliser.
Vous pouvez simplement:
sudo apt-get install firejail
firejail app
Une solution possible est un logiciel de virtualisation tel que Virtual box que vous pouvez trouver dans le centre de logiciels.
Vous pouvez maintenant installer le logiciel auquel vous ne faites pas confiance pour voir ce qu’il fait. Il ne peut pas perturber le monde extérieur ou vous hébergez le système d'exploitation car il n'a pas accès.
Cela peut toutefois nuire à votre machine virtuelle, mais si c'est le cas, vous pouvez simplement restaurer à partir de votre instantané.
Il peut exister d’autres méthodes pour limiter le pouvoir destructeur des logiciels non fiables, mais c’est la méthode la plus robuste que je puisse imaginer.
Une autre option peut être LXC plus d'informations ici
LXC est le package de contrôle de l'espace utilisateur pour les conteneurs Linux, un mécanisme de système virtuel léger parfois décrit comme "chroot sur les stéroïdes".
LXC s’appuie sur chroot pour mettre en œuvre des systèmes virtuels complets, en ajoutant des mécanismes de gestion des ressources et d’isolation à l’infrastructure de gestion de processus existante de Linux.
Il est disponible dans le centre de logiciels. Je n'ai aucune expérience avec cependant.
Vous pouvez utiliser subuser pour mettre vos applications en sandbox avec Docker. Cela vous permet de faire des choses comme les applications d'interface graphique de sandbox, ce qui n'est pas facile à faire directement avec Docker.
Je pense qu'une solution possible est de créer un utilisateur distinct à des fins de test et de limiter ses privilèges. De cette façon, vous ne perdrez pas en performance, ce qui se produirait sur une machine virtuelle, mais je pense que c'est moins sûr, sinon mis en place très correctement, ce que je ne peux pas vous dire sur comment faire.
Lire d'autres questions sur les étiquettes security