Ich möchte kleine nicht vertrauenswürdige Programme ausführen, sie jedoch daran hindern, auf Dateien außerhalb ihres Ordners, des Netzwerkzugriffs und auf alles andere zuzugreifen, was sie nicht wirklich benötigen. Was ist der einfachste Weg, dies zu erreichen?
66
Antworten:
Wenn sie wirklich nicht vertrauenswürdig sind und Sie sicher sein möchten, würden Sie eine separate Box einrichten. Entweder wirklich oder virtuell.
Außerdem möchten Sie nicht, dass sich diese Box im selben Netzwerk wie Ihre wichtigen Sachen befindet, wenn Sie paranoid genug sind. In allen Lösungen würden Sie einen separaten Benutzer ohne Rechte einrichten, um dem potenziellen Kompromissgeber nicht zu viele Tools zu öffnen.
Wenn Sie verpflichtet sind, es auf derselben Box auszuführen, haben Sie beispielsweise diese Option
chroot
. Dies ist eine Standardoption für viele Benutzer. Bei unspezifischen Bedrohungen kann dies sogar funktionieren. Aber es ist KEINE Sicherheitsoption und kann ziemlich leicht herausgebrochen werden. Ich würde vorschlagen, dies wie vorgesehen zu verwenden, dh nicht aus Sicherheitsgründen.Am Ende müssen Sie möglicherweise ein bestimmtes Sandbox-Modell einrichten, ohne den Aufwand der Virtualisierung oder separater Boxen oder die noch gefährdete Situation von
chroot
. Ich bezweifle, dass dies das ist, was Sie meinten, aber schauen Sie sich diesen Link an, um weitere Informationen zu erhalten.quelle
Feuergefängnis ist ziemlich neu und in ständiger Entwicklung. Einfach zu verwenden.
Sie können einfach:
quelle
Docker hilft Ihnen beim Einrichten von Containern, die Sie von Ihrem aktuellen Kernel ausführen und die dennoch vom Rest Ihres Systems fernhalten können. Es scheint ziemlich topaktuell, aber es gibt einen Ubuntu-Fokus und eine gute Dokumentation.
quelle
Volle Virtualisierung / Emulation (VirtualBox)
Eine mögliche Lösung ist eine Virtualisierungssoftware wie VirtualBox, die Sie im Software-Center finden.
Sie können jetzt die Software installieren, der Sie nicht vertrauen, um zu sehen, was sie tut. Es kann die Außenwelt nicht stören, oder Sie hosten das Betriebssystem, da es keinen Zugriff hat.
Möglicherweise wird Ihre virtuelle Maschine jedoch in den Papierkorb verschoben, in diesem Fall können Sie sie jedoch einfach von Ihrem Snapshot wiederherstellen.
Es mag andere Methoden geben, um die zerstörerische Kraft von nicht vertrauenswürdiger Software zu begrenzen, aber dies ist die robusteste Methode, die ich mir vorstellen kann.
Container-basierte Virtualisierung (Docker / LXC)
Eine weitere Option kann LXC sein. Weitere Informationen finden Sie hier
LXC ist das Userspace-Steuerungspaket für Linux-Container, ein leichter Mechanismus für virtuelle Systeme, der manchmal als „Chroot on Steroids“ bezeichnet wird.
LXC baut auf chroot auf, um vollständige virtuelle Systeme zu implementieren, und erweitert die bestehende Infrastruktur für das Prozessmanagement von Linux um Ressourcenmanagement- und Isolationsmechanismen.
Es ist im Software-Center verfügbar. Ich habe jedoch keine Erfahrung damit.
quelle
mbox
Ich habe es für ein paar Dinge zuverlässig verwendet.
quelle
Unterbenutzer
Sie können Subuser verwenden, um Ihre Anwendungen mit Docker zu sandboxen. Auf diese Weise können Sie Sandbox-GUI-Apps ausführen, was mit Docker nicht einfach ist.
quelle
Ich denke, eine mögliche Lösung besteht darin, einen separaten Benutzer zu Testzwecken zu erstellen und seine Berechtigungen einzuschränken. Auf diese Weise verlieren Sie nicht an Leistung, was auf jeden Fall in einer virtuellen Maschine passieren würde, aber ich denke, dies ist weniger sicher, wenn es nicht richtig eingerichtet ist, und ich kann Ihnen keine Ratschläge dazu geben.
quelle
DoSH - Docker SHell
Für den Fall, dass Sie lediglich die Aktivität der Benutzer in einer Sandbox speichern möchten, können Sie "DoSH" verwenden.
quelle