2010-01-06 10 views
11

Um zu Hause nicht vertrauenswürdigen Code auszuführen, verwende ich eine virtuelle VMWare-Maschine. Ich möchte eine alternative Lightweight-Sandbox-API zum Ausführen nicht vertrauenswürdiger Anwendungen finden, ohne den Aufwand für die Installation von VMWare oder einer anderen Art von Virtualisierungstool für Endbenutzer. (Edit: Ich möchte nicht, dass es ein Betriebssystem hostet - ich möchte es nicht vertrauenswürdige Anwendungen laufen lassen).Gibt es eine leichte, programmierbare Sandbox-API für die Windows-Plattform?

Im Idealfall wäre (oder könnte) die Sandbox transparent sein, sodass die in der Sandbox ausgeführte App kein zusätzliches Chrom oder zusätzliche Features anzeigt. (Haben sie nicht tun dies in Parallels auf dem Mac)

Der Windows .NET Entwickler Seite von mir wünscht, für eine API so statt Booten eine spezielle GUI, ich kann Skript Szenarien für sie.

Es wäre so, als würde der Google Chrome-Webbrowser eine eigene Technologie zum Sandbox-Scripting aus dem Internet enthalten, um das System zu schützen. Google muss VMWare nicht mit seinem Browser verteilen, und dennoch erreichen sie die Sandbox-Sicherheit für Apps.

Edit:

für etwas suchen Leichtgewicht wie Google Chrome enthält mit Features wie stark eingeschränkt Datei/Netzwerk/UI Zugriff, niedrige Privilegien usw. suchen nicht für den Betrieb/seine eigene OS-Hosting.

+0

.... welche Art von Sandboxing suchen Sie hier? Völlig getrennt, läuft auf einem eigenen Betriebssystem, etc. etc.? Oder stark eingeschränkter Datei-/Netzwerk-/UI-Zugriff? Es gibt viele Möglichkeiten, diese Frage zu beantworten, und die Antworten variieren stark. –

+0

@Kevin: Gute Frage, danke, habe ich mit einem Schnitt geklärt. –

+0

Sie könnten versuchen, ein Front-End für die Google Chrome-Sandbox zu schreiben. http://dev.chromium.org/developers/design-documents/sandbox – hwiechers

Antwort

5

Nein, gibt es nicht.

Ich meine, Sie können ein anderes Windows-Konto verwenden (mit den Berechtigungen, die Sie für angemessen halten), aber dann müssen Sie sich wohl fühlen, dass die nicht vertrauenswürdige App nicht ausbrechen kann. Aber Sie haben das gleiche Problem mit VMWare (es hatte Fehler in der Vergangenheit, die Sie ausbrechen lassen). Am besten läuft es in einer virtuellen Maschine.

+3

seidig ist 100% richtig. Ich bin mir auch nicht sicher, ob es möglich ist, eine "leichtgewichtige programmierbare Sandbox-API" zu erstellen - jede existierende Implementierung einer Sandbox, die ich kenne, ist ein sehr kompliziertes Biest (und das schließt AppArmor und SeLinux ein). IMHO, wenn Sie paranoid sind, ist eine VM der Weg zu gehen - wie silky sagte, es gibt VM-Bypass-Probleme, aber die Verwendung einer VM ist sicherer als nicht mit einer VM. –

+0

Wow, wird nicht viel besser als die Bestätigung von jemandem wie dir :) –

+0

@silky: Einverstanden - das ist ein Teil von dem, was SO super macht. Die Experten und die Bürger (die sich auf mich selbst beziehen) vermischen sich mit dem Programmieren. –

3

Sie könnten auch interessiert sein an Google Native Client (auch bekannt als NaCl). Dies ist ein Projekt, das darauf abzielt, (überprüfbaren) x86-Code in einer Sandbox auszuführen.

+0

Es scheint nur über ein Browser-Plugin verfügbar zu sein, um x86 im Web laufen zu lassen. Trotzdem sehr interessant. –

6

Googles Chrome wird mit 4 Fenster Mechanismen, dies zu erreichen:

A restricted token 
The Windows job object 
The Windows desktop object 
Windows Vista only: The integrity levels 

Werfen Sie einen Blick auf: https://sites.google.com/a/chromium.org/dev/developers/design-documents/sandbox

Sie haben eine detaillierte Beschreibung dessen, was sie tun.

+0

Gute Ressource. Vielen Dank! –

+0

Aktualisierter Link: https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox.md – Miscreant

0

In einer "sandboxing" Frage von mir wurde ich auf Sandboxie hingewiesen. Ich löse mein Problem nicht, aber vielleicht ist es interessant für dich?

Ich weiß nicht, ob es eine API hat, aber eine schnelle Google gibt an, dass es mindestens somehow automatable über die Befehlszeile ist.

2

Ich habe dies nicht implementiert..aber meine $ .02.

Sie können eine Windows-Station implementieren.Eine Windows-Station ist im Grunde eine Sicherheitsgrenze Desktops enthalten und verarbeitet nur eine Windows-Station für Console Logon (Winsta0) http://msdn.microsoft.com/en-us/library/windows/desktop/ms682573(v=vs.85).aspx

erlaubt ist, können Sie erreichen, Prozess, Windows-Objekt, und ACL Isolation auf pro Station Basis. Einige API-Funktionen in Windows-Station verwendet sind hier aufgeführt: http://msdn.microsoft.com/en-us/library/windows/desktop/ms687107(v=vs.85).aspx

Überblick Sessions, Desktops und Windows-Stationen. http://blogs.technet.com/b/askperf/archive/2007/07/24/sessions-desktops-and-windows-stations.aspx

Es gibt ein Codeproject Beispiel hier mit Quelle: http://www.codeproject.com/Articles/21352/Virtual-Desktop-A-Simple-Desktop-Management-Tool

Ich würde empfehlen, mit API-Monitor zu debuggen Win32 API-Aufrufe http://www.rohitab.com/apimonitor

hth

+0

Eh! Lary Osterman antwortete auf diesen Thread. Ich vermisste irgendwie seinen Kommentar.) Wenn er nein sagt, rate ich die Antwort ist nein. –

0

Leider für Windows Optionen Gastgeber sind extrem begrenzt. Auf Linux-Hosts stehen jedoch Optionen wie mbox und capsicum zur Verfügung, die das ausführen, was Sie beschreiben - d. H. Leichtes Sandboxing auf Anwendungsebene.

Verwandte Themen