Login
Newsletter
Werbung

Fr, 19. April 2013, 14:46

Software::Security

FreeBSD erweitert Capability-Framework Capsicum

Durch eine erneute Spende von Google kann die FreeBSD Foundation eine Weiterentwicklung des Capability-Frameworks Capsicum finanzieren. Capsicum ist ein neuartiger Ansatz, Prozesse in Sandboxen voneinander zu isolieren.

Universität von Cambridge

Capsicum 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.

Eine erneute Spende von Google soll nun wiederum Pawel Jakub Dawidek zugute kommen. Der Entwickler soll damit die Integration der bisherigen Arbeit, die Entwicklung neuer Systemaufrufe zur einfacheren Entwicklung Capsicum-fähiger Anwendungen, die Verbesserung des Daemons Casper und die Umstellung einiger sicherheitskritischer Anwendungen auf Capsicum erledigen.

Das Projekt wird es unter anderem ermöglichen, Erfahrungen mit der Praxistauglichkeit des Capsicum-Frameworks zu gewinnen. Die umgestellten Anwendungen sollen außerdem als Beispiele dienen, die viele Nachahmer finden sollen. Das Projekt soll im Juni dieses Jahres abgeschlossen sein.

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 vor einem Jahr 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 bereits Mitte 2012 eine Portierung für Chomium OS vorgenommen. Die Trennung von Privilegien und das Sandboxing sind Themen, die bereits in einigen Anwendungen vorgenommen wurden, von OpenSSH bis Chromium. Mit Capsicum könnte sie einfacher als je zuvor werden.

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