Comment mettre en sandbox les applications?

59

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?

    
posée michel 09.05.2013 - 10:02
la source

8 réponses

25

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.

  • L'option la plus sûre serait donc une boîte séparée supprimée physiquement de votre réseau.
  • Vous pouvez céder un peu en l’ajoutant au réseau physique, mais sur un sous-réseau différent: pas de connexion "réelle" à l’intérieur
  • Une machine virtuelle serait une option, mais pourrait devoir abandonner certaines performances

Si vous êtes obligé de l'exécuter dans la même boîte, vous avez par exemple cette option

  • chroot. Ceci est une option par défaut pour ce faire pour beaucoup de gens, et pour les menaces non spécifiques, cela pourrait même fonctionner. Mais ce n'est PAS une option de sécurité et peut être facilement éliminé. Je suggère 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 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

    
réponse donnée Nanne 09.05.2013 - 11:00
la source
11

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.

lien

    
réponse donnée N. Thomas Kor 22.05.2013 - 02:13
la source
11

Firejail est relativement récent et en constante évolution. Facile à utiliser.

Vous pouvez simplement:

sudo apt-get install firejail
firejail app
    
réponse donnée penguinforsupper 10.12.2015 - 18:10
la source
9

Une solution possible est un logiciel de virtualisation tel que Virtual box que vous pouvez trouver dans le centre de logiciels.

  • Installer la boîte virtuelle
  • Créer une machine virtuelle avec la mise en réseau activée
  • Installez Ubuntu ou peut-être un bureau plus léger tel que Lubuntu
  • Mettez à jour complètement le système d’exploitation installé (dans la boîte virtuelle)
  • Désactiver le réseau sur la machine virtuelle
  • Prenez un instantané

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.

    
réponse donnée Warren Hill 09.05.2013 - 10:46
la source
9

mbox

"Mbox est un mécanisme de sandboxing léger que tout utilisateur peut utiliser sans privilèges spéciaux sur les systèmes d'exploitation de base." lien

- lien

Je l’ai utilisé pour quelques raisons de manière fiable.

    
réponse donnée 0x78 13.02.2014 - 04:10
la source
4

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.

    
réponse donnée timthelion 14.08.2015 - 17:19
la source
1

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.

    
réponse donnée Phlya 09.05.2013 - 10:50
la source
1

Au cas où vous souhaiteriez simplement utiliser l’activité des utilisateurs, vous pouvez utiliser "dosh" lien

    
réponse donnée ubuser 15.11.2017 - 13:32
la source

Lire d'autres questions sur les étiquettes