Login
Newsletter
Werbung

Mi, 18. Dezember 2013, 08:31

Software::Distributionen::BSD::FreeBSD

FreeBSD: Capability-Framework Capsicum ist komplett

Die FreeBSD Foundation vermeldet die vollständige Integration des Capability- und Sandbox-Frameworks Capsicum in FreeBSD 10.0. FreeBSD 10.0 wird, wenn alles wie geplant verläuft, am 2. Januar 2014 erscheinen.

Universität von Cambridge

Capsicum ist ein neuartiger Ansatz, Prozesse in Sandboxen voneinander zu isolieren. Es entstand, finanziell unterstützt von Google, an der Universität von Cambridge in England und wurde mit FreeBSD 8.2 entwickelt. Es wurde in FreeBSD 9.0 im Januar 2012 erstmals offiziell veröffentlicht, galt aber weiter als experimentell. Nach einer weiteren Spende von Google konnte der Entwickler Pawel Jakub Dawidek im Sommer 2012 für drei Monate an Capsicum weiterarbeiten, wobei das Hauptaugenmerk auf der Entwicklung eines Frameworks lag, das von Anwendungen genutzt werden kann. Unter anderem stellt dieses Framework in Sandboxen gekapselte Bibliotheken bereit sowie einen dynamischen Linker, der diese Bibliotheken zu den startenden Anwendungen hinzubindet.

Dank einer weiteren Spende von Google konnte derselbe Entwickler in diesem Jahr neue Systemaufrufe zur einfacheren Entwicklung Capsicum-fähiger Anwendungen implementieren, den Daemon Casper verbessern und einige sicherheitskritische Anwendungen auf Capsicum umstellen, so dass sie in sicheren Sandboxen laufen. Die umgestellten Anwendungen sollen als initiale Beispiele dienen, die viele Nachahmer finden sollen.

Die gesamte bisherige Arbeit wurde in FreeBSD 10.0 integriert. Genau genommen wird laut der Mitteilung der FreeBSD Foundation der Daemon Casper erst in FreeBSD 10.1 erscheinen, der Rest in FreeBSD 10.0. Der Zeitplan für FreeBSD 10.0 sieht die Veröffentlichung der neuen Version des freien BSD-Systems am 2. Januar 2014 vor, dieser Termin kann sich aber noch ändern, falls wichtige Fehler gefunden werden, deren Behebung länger dauert.

Capsicum ermöglicht, Sandboxen zu erstellen, in denen die Prozesse ihre Rechte auf das nötige Minimum beschränken können. Für jeden Dateideskriptor des Prozesses können fein granulierte Rechte vergeben werden. Der Prozess selbst ist ein (Pseudo-) Dateideskriptor, mit dem prozessweite Rechte gesetzt werden können.

Capsicum stellt eine Alternative zu traditionellen Sicherheitsmechanismen dar, die auf Access Control Lists (ACLs) beruhen. Nach Ansicht von Ben Laurie, Entwickler von OpenSSL und aktuell Mitglied des Google-Sicherheitsteams, ist es erwiesen, dass ACLs das falsche Modell sind. Er hat bereits im April 2012 beschrieben, wie man sich die Verwendung von Capsicum vorstellen muss, und das Programm bzip2 konvertiert. bzip2 dient zum Komprimieren und Dekomprimieren von Dateien. In der Vergangenheit traten dabei Sicherheitslücken auf, in denen Angreifer mit präparierten Dateien Pufferüberläufe produzieren und in der Folge einen Teil der Eingabedatei als Code ausführen lassen konnten. Es ist nicht auszuschließen, dass weitere Fehler dieser Art gefunden werden.

Mit einem auf Capsicum portierten bzip2 hätte aber ein solcher Fehler keine Auswirkungen mehr. Das modifizierte bzip2 startet einen Kindprozess, der nur die Aufgabe hat, die auf einem Dateideskriptor hereinkommenden Daten zu dekomprimieren und auf den Ausgabedeskriptor zu schreiben. Der Kindprozess legt beim Start durch Capsicum-Aufrufe fest, dass er keinerlei Rechte benötigt außer dem Lesen vom ersten und dem Schreiben auf den zweiten Dateideskriptor - auch das Ändern von Metadaten zu diesen Dateien und das Ausführen von anderen Systemaufrufen mit diesen Deskriptoren ist dann nicht möglich. Sollte ein Angreifer hier Code einschleusen können, würde ihm das nichts nützen, da er diese Rechte nicht erweitern kann.

Der Linux-Kernel enthält zwar ebenfalls Capabilities, diese werden jedoch prozessweit vergeben. Während Capsicum im offiziellen Linux-Kernel noch nicht zu finden ist, hat Google im Oktober bereits Capsicum für Linux vorgestellt. Es ist derzeit noch auf dem Stand von FreeBSD 9, soll aber bald auf den aktuellen Stand gebracht werden. Es setzt auf die Linux Security Modules (LSM) auf.

Zuvor hatte Google bereits Mitte 2012 eine Portierung für Chomium OS vorgenommen. Die Trennung von Privilegien und das Sandboxing sind Themen, die bereits in einigen Anwendungen durchgeführt wurden, von OpenSSH bis Chromium. Mit Capsicum könnte sie einfacher als je zuvor werden.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung