Wie führe ich Programme in einer Sandbox aus?

7

Ich habe PlayOnLinuxWindows-Programme unter Linux ausgeführt. PlayOnLinuxErstellt für jedes installierte Programm ein virtuelles Laufwerk und jeder VD repräsentiert einen anderen Windows XP-Computer.

Alle vom Programm vorgenommenen Änderungen bleiben nur innerhalb des eigenen VD. Wenn ich also ein Programm mit einem Virus ausführe, kann ich einfach den VD des Programms löschen und alles ist in Ordnung.

Gibt es ein ähnliches Programm, mit dem Linux-Programme auf einem virtuellen Laufwerk ausgeführt werden können? dh ich möchte PlayOnLinux/ Wineminus die Windows-Emulation.

Kshitiz Sharma
quelle
3
Wein ist kein Sandkasten; Es kommt einfach so vor, dass Windows-Anwendungen nicht versuchen, auf das System auszubrechen.
Ignacio Vazquez-Abrams

Antworten:

2

Ich möchte Firejail, Sandboxie-ähnliche Software für Linux, einschließlich GUI, teilen.

Schauen Sie hier: https://firejail.wordpress.com/ und laden Sie es von https://sourceforge.net/projects/firejail/ oder https://pkgs.org/debian-sid/debian-main-amd64/firejail_0 herunter .9.38-1_amd64.deb.html (Änderung an Ihrem System)

Einfach zu verwenden; Führen Sie in diesem Fall einfach Firejail über Ihrem Befehl / Ihrer Software ausfirejail wine program.exe

Wenn Sie diese Programme überprüfen möchten, bevor Sie sie firejail wine winedbg --gdb program.exeausführen , können Sie sie alle miteinander verketten , um den inhaftierten Wein-Debugger auszuführen.

Vielleicht denkst du darüber nach, wie viel gut es sein kann. Sehen Sie sich an, wie eine WordPress-Installation mit Brandschutz vollständig ausgeführt wird, beispielsweise als Beispiel für ein komplexes Sandboxing. https://www.digitalocean.com/community/tutorials/how-to-use-firejail-to-set-up-a-wordpress-installation-in-a-jailed-environment

Vertraue niemals einem Stück binären Blobs (exe).

m3nda
quelle
@ Jeff Schaller. Ich habe nach der Bedeutung von wollen gesucht und ich kann nicht verstehen, warum Sie "Ich will" zu "wollen" bearbeitet haben. Vielen Dank für die anderen Korrekturen, ich bin kein Englisch und jede Art von Lernen / Korrektur ist willkommen. (Willst du Definition, will: Ich will hier raus. Mehr sehen.)
m3nda
weil es Slang für die vollständige Phrase ist und ich denke, es sieht professioneller aus und wäre für andere nicht-englische Muttersprachler leichter zu verstehen.
Jeff Schaller
Ich bin nicht gebürtig und ich kann es verstehen. Aber trotzdem hast du Recht mit deiner Aussage. Vielen Dank.
m3nda
1

Ich kann Ihnen keine vollständige Antwort geben, da ich es nicht weiß, aber ich weiß, dass der Befehl chroot für ähnliche, wenn nicht genau den gleichen Zweck ausgelegt ist.

Karthik T.
quelle
1
chrootist für die grundlegende Sicherheit in Ordnung, aber Sie sollten wissen, dass es Möglichkeiten gibt, aus einer chrootUmgebung auszubrechen .
Elias Probst
@ EliasProbst oh? Ich war mir nicht bewusst, ich bin eigentlich nicht zu vertraut mit Chroot
Karthik T
Das @EliasProbst und das Einrichten eines Chroot-Gefängnisses für nicht triviale Software können Kopfschmerzen bereiten . Es hängt genau davon ab, was die Software macht und wie sie es macht. Serversoftware ist in Chroot-Gefängnissen im Allgemeinen besser als benutzerorientierte Software (BIND in einem Chroot-Gefängnis auszuführen ist nicht so schlecht, aber ich würde beispielsweise nicht versuchen, LibreOffice in einem Chroot-Gefängnis auszuführen ...)
ein CVn
Die Verwendung systemd-nspawnoder dockerdies kann wirklich sehr einfach erreicht werden. Nicht chrootbasierend, sondern basierend auf LXC, das sogar etwas sicherer als eine einfache Chroot ist und eine bessere Isolierung vom Host bietet.
Elias Probst
1

Mit dem Kernel-Patch für Linux-Vserver und dem zugehörigen Benutzerbereich (siehe http://linux-vserver.org/ ) können Sie Programme in eigenen isolierten Containern ausführen, ohne das Gastbetriebssystem vollständig virtualisieren zu müssen.

Linux-Vserver-Container haben einen eigenen Mount-Namespace, einen eigenen Netzwerk-Namespace, einen eigenen Sicherheitskontext usw.

Beachten Sie jedoch, dass Linux-Vserver hauptsächlich zum Ausführen von Servern entwickelt wurde. Während Sie Desktop-Anwendungen in einem Linux-Vserver-Container ausführen können, müssen Sie wissen, was Sie tun.

Ein anderer Ansatz wäre, AppArmor zu verwenden, um einzuschränken, was Ihr Programm tun darf.

András Korn
quelle