Sandbox

English readers will find more Information here.

Die netEstate sandbox dient dazu, eine Unix-Applikation in mehrere unabhängige Module zu teilen, die sowohl das Betriebssystem als auch einander nicht negativ beeinflussen können. Dies ist besonders nützlich für sicherheitskritische Applikationen.

Um dies zu erreichen, wird die Applikation in mehrere ausführbare Dateien (Module) unterteilt, die untereinander über Nachrichten kommunizieren. Die Nachrichten werden über ein spezielles remote procedure call API generiert und via stdin/stdout empfangen/gesendet.

Das Hauptprogramm "sandbox" startet alle Module der Applikation und überwacht deren Ausgabe. Sobald eine Nachricht empfangen wurde, wird diese an das Zielmodul weitergeleitet. Das sandbox-Programm stellt sicher, dass kein Modul Nachrichten mit einer falschen Absenderkennung versendet. Auf diese Art kann jedes Modul selbst entscheiden, von welchem Modul es welche Anfragen akzeptiert.

Sobald ein Modul eine spezielle Nachricht an das sandbox-Programm sendet, wird es von diesem in ein "Gefängnis" eingeschlossen. Das bedeutet, dass das Modul von nun an nur noch eine konfigurierbare Menge von Systemaufrufen nutzen kann. Standardmäßig sind dies exit, read, write, brk und select, welche vom remote procedure call API für die Kommunikation verwendet werden. Ein auf diese Art eingeschlossenes Modul kann, selbst wenn es kompromittiert wurde (z.b. durch einen buffer overflow), nur noch folgendes tun:

  • Mit anderen Modulen kommunizieren (sofern diese es erlauben)
  • Zusätzlichen Hauptspeicher anfordern
  • Von/zu Filedeskriptoren lesen/schreiben, die zum Zeitpunkt der "Einweisung" schon offen waren.

Die Dokumentation der Schnittstellen finden Sie hier.

Details zur Lizenzierung erhalten Sie von uns auf Anfrage.


Web-Tipp: Anerkannter Hochschulabschluss im Fernstudium

Alle Preise inkl. MwSt. • (c) 2008 netEstate GmbH • Website powered by Zopilot®Impressum