Auch Anwendungen aus an sich vertrauenswürdigen Quellen enthalten Sicherheitslücken, zudem gibt es böswillig manipulierte Dateien, die Programme zu schädlichem Verhalten bringen. Aus diesen Gründen sei es sinnvoll, Anwendungen in Umgebungen mit beschränktem Zugriff auf das System auszuführen, begann Walsh seine Keynote zum Thema Sandboxing.

Sandboxing kommt in verschiedenen Implementierungen seit Jahren zum Einsatz, sei es als Chroot oder Java-Sandbox. Der Referent zeigte, wie sich das SE Linux seines Arbeitgebers Red Hat zu diesem Zweck einsetzen lässt. Das gehe mit Red Hat Enterprise Linux und auch mit Fedora 15 oder 16, gab er an.

Im Desktop-Umfeld sollte eine Sandbox der Gast-Anwendung folgende Möglichkeiten entziehen: Netzwerk, Setuid, Setgid, Zugriff auf andere Prozesse, Zugriff auf Home- und Temporär-Verzeichnis, Zugriff auf den X-Server und Dbus. Genau das tue SE Linux Sandboxing, zudem verwehre es auch noch den Zugriff auf "proc/self", erklärte Walsh.

Auf seinem Fedora-Rawhide-Notebook lief die gesamte Präsentation in einer Libre-Office-Sandbox. Dazu hatte er sich ein einfaches Wrapper-Skript geschrieben, das nur eine einzige Zeile umfasst: '/usr/bin/sandbox -w 1000x900 -X ooffice "$@"'. Es gibt die Fenstergröße vor und startet die Anwendung auf einem eigenen Xephyr-X-Server mit eigener Display-Nummer. Leider lässt sich dessen Fenstergröße unter Fedora nicht verändern, räumte der Referent ein, unter RHEL 6 funktioniere das aber. Ein weiterer Usability-Mangel: Die Fenster tauchen in der Fensterliste und bei [Alt+Tab] nur immer als "Xephyr" auf.

Im weiteren Verlauf seiner Demonstration zeigte Walsh anhand mehrerer Xterm-Sandboxen, wie jede Instanz ein jungfräuliches Home- und Temporär-Verzeichnis erhält sowie eine eigene MCS-Kennung von SE Linux zugewiesen bekommt. Keines der beschränkten Terminals konnte einen Netzwerk-Ping ausführen oder mit Sudo Rootrechte erlangen.

Daniel Walsh startet die Anwendungen auf seinem Fedora-Notebook in SE-Linux-Sandboxen.

Daniel Walsh startet die Anwendungen auf seinem Fedora-Notebook in SE-Linux-Sandboxen.

Daniel Walsh verwendet nach eigenen Angaben bis zu 20 Sandboxes innerhalb einer Desktop-Sitzung und kann nicht über Performanceprobleme klagen. Er tut dies beispielsweise, um Online-Banking in einer abgeschirmten Umgebung durchzuführen oder Webseiten daran zu hindern, Inhalte aus dem Red-Hat-Intranet von Browser-Tab zu Browser-Tab auszulesen. "Wären nicht zwei Browser-Sandboxen sinnvoll? Eine fürs Intranet und eine für das externe Internet?" dachte er laut nach.

Red Hats neues Plattform-Angebot Openshift (wir berichteten) verwende übrigens auch SE Linux (sowie die Cgroups des Linux-Kernels), um die Konten der einzelnen Anwender von einander abzuschirmen. "Wir geben im Gegensatz zu anderen Anbietern dem Anwender alle Programme und auch Programmiersprachen, dafür sperren wir das Ganze aber in eine Sandbox", schloss Daniel Walsh seinen Vortrag.