Je souhaite exécuter de petits programmes non fiables, mais leur interdire l'accès aux fichiers en dehors de leur dossier, à leur accès réseau et à tout ce dont ils n'ont pas vraiment besoin. Quel est le moyen le plus simple d'y parvenir?
Je souhaite exécuter de petits programmes non fiables, mais leur interdire l'accès aux fichiers en dehors de leur dossier, à leur accès réseau et à tout ce dont ils n'ont pas vraiment besoin. Quel est le moyen le plus simple d'y parvenir?
Réponses:
S'ils ne sont vraiment pas fiables, et que vous voulez en être sûr, vous devriez créer une boîte séparée. Vraiment ou virtuellement.
De plus, vous ne voulez pas que cette boîte soit sur le même réseau que votre matériel important, si vous êtes assez paranoïaque. Dans toutes les solutions, vous auriez configuré un utilisateur distinct sans droits, afin de ne pas ouvrir trop d'outils au comprometteur potentiel.
Si vous êtes obligé de l’exécuter sur la même boîte, vous avez par exemple, cette option
chroot
. Il s’agit là d’une option par défaut pour beaucoup de personnes. Cela peut même fonctionner pour des menaces non spécifiques. Mais ce n’est PAS une option de sécurité et peut être facilement dissocié. Je suggérerais d'utiliser ceci comme prévu, c'est-à-dire pas pour la sécurité.En fin de compte, vous devrez peut-être configurer un modèle de sandboxing spécifique sans les tracas de la virtualisation ou des boîtes séparées, ni la situation toujours à risque de chroot
. Je doute que ce soit ce que vous vouliez dire, mais regardez ce lien pour des informations plus détaillées.
Firejail est relativement nouveau et en développement constant. Facile à utiliser.
Vous pouvez simplement:
sudo apt-get install firejail
firejail app
Docker vous aidera à configurer les conteneurs que vous pouvez utiliser à partir de votre noyau actuel, tout en les maintenant éloignés du reste de votre système. Cela semble plutôt à la fine pointe, mais il existe une concentration sur Ubuntu et une bonne documentation.
Une solution possible est un logiciel de virtualisation tel que VirtualBox que vous pouvez trouver dans le centre logiciel.
Vous pouvez maintenant installer le logiciel en lequel vous n'avez pas confiance pour voir ce qu'il fait. Il ne peut pas déranger le monde extérieur ou votre système d'exploitation car il n'a pas accès.
Cependant, votre machine virtuelle peut être mise au rebut, mais dans ce cas, vous pouvez simplement restaurer à partir de votre instantané.
Il existe peut-être d'autres méthodes pour limiter le pouvoir destructeur de logiciels non fiables, mais c'est la méthode la plus robuste à laquelle je puisse penser.
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 des stéroïdes».
LXC construit à partir de chroot pour mettre en œuvre des systèmes virtuels complets, en ajoutant des mécanismes de gestion des ressources et d’isolation à l’infrastructure existante de gestion des processus de Linux.
Il est disponible dans le centre de logiciel. Je n'ai aucune expérience avec cependant.
Mbox est un mécanisme de sandboxing léger que tout utilisateur peut utiliser sans privilèges spéciaux dans les systèmes d'exploitation courants.
Je l'ai utilisé pour plusieurs choses de manière fiable.
Vous pouvez utiliser le sous-utilisateur pour sandboxer vos applications avec Docker. Cela vous permet de faire des choses comme les applications d'interface graphique sandbox, ce qui n'est pas facile à faire directement avec Docker.
sudo apt install subuser
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 performances ce qui se produirait certainement dans une machine virtuelle, mais je pense que cela est moins sûr, si ce n’est pas très bien configuré, ce que je ne saurais vous conseiller.
Au cas où vous voudriez simplement mettre en sandbox l'activité des utilisateurs, vous pouvez utiliser "DoSH"
DoSH (qui signifie Docker SHell) est un développement permettant de créer des conteneurs Docker lorsque les utilisateurs se connectent au système Linux et y exécutent un shell, au lieu de créer le shell en même temps.