A Security Analysis of CheriBSD and Morello Linux
Diese Arbeit analysiert die Sicherheit von CheriBSD und Morello Linux und zeigt auf, dass trotz der Effektivität der CHERI-Architektur gegen Speicherfehler bestehende Kompartimentierungsmechanismen durch einfache Bugs und Angriffe weiterhin anfällig für Umgehungen sind, und schlägt spezifische Abhilfemaßnahmen sowie Empfehlungen vor, um diese Schwachstellen zu adressieren.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich einen Hochsicherheits-Banktresors vor. In der Vergangenheit konnten Diebe, wenn sie ein Fenster einschlugen (ein Software-Bug), im gesamten Bankgebäude umherziehen und alles stehlen – vom Schreibtisch des Kassierers bis zum Safe des CEO.
Um dies zu verhindern, entwickelten Ingenieure einen neuen Typ von Tresor namens CHERI. Anstatt nur Türen zu verriegeln, gab man jedem einzelnen Gegenstand in der Bank einen speziellen „magischen Schlüssel“ (eine sogenannte Capability). Dieser Schlüssel besagt nicht nur „Öffne diese Tür“, sondern: „Du darfst diese spezifische Tür öffnen, aber nur zwischen 9 Uhr und 17 Uhr, und du darfst nur hineinschauen, aber nichts anfassen.“
Das Ziel von CHERI ist die Kompartimentierung: Die Bank in winzige, isolierte Räume zu unterteilen. Wenn ein Dieb in den Raum „Geschenkeladen“ einbricht, sollten die dort gefundenen magischen Schlüssel ihn nur dazu befähigen, die Türen des Geschenkeladens zu öffnen. Er sollte nicht in der Lage sein, in den Raum „Tresor“ zu gelangen.
Dieses Papier ist wie ein Sicherheitsaudit-Bericht. Die Forscher fragten: „Wenn ein Dieb in den Geschenkeladen einbricht, kann er dann immer noch in den Tresor schleichen?“ Sie testeten dies an zwei verschiedenen Versionen des Banksystems: Morello Linux und CheriBSD.
Hier ist das, was sie herausfanden, einfach erklärt:
Das Kernproblem: Das Lecken der Generalschlüssel
Obwohl die Wände stark sind, fanden die Forscher vier Wege, wie der Dieb im „Geschenkeladen“ die Schlüssel stehlen konnte, die den „Tresor“ öffnen.
1. Der „Stack Walking“-Angriff (Im Müll herumschnüffeln)
Die Analogie: Stellen Sie sich vor, jedes Mal, wenn ein Bankangestellter eine Aufgabe erledigt, schreibt er Notizen auf einen Klebezettel und klebt ihn auf einen Stapel auf seinem Schreibtisch. Wenn er fertig ist, geht er zur nächsten Aufgabe, aber manchmal vergisst er, die alten Klebezettel wegzuwerfen.
Der Angriff: Der Dieb im Geschenkeladen betrachtet den Stapel an Klebezetteln, die ehemalige Mitarbeiter hinterlassen haben. Er findet einen Zettel, auf dem steht: „Hier ist der Schlüssel zum Tresor.“ Da das System die Notizen (den Speicher) nicht bereinigt hat, stiehlt der Dieb den Schlüssel und schreitet direkt in den Tresor.
Die Lösung: Die Forscher schlagen vor, dass die Bank eine „Reinigungstruppe“ haben sollte, die jeden Klebezettel sofort nach Gebrauch vom Schreibtisch wischt, oder dass jeder Mitarbeiter seinen eigenen privaten Schreibtisch bekommt, damit er die Notizen der anderen nicht sehen kann.
2. Der „Dlopen“-Leak (Die fehlerhafte Karte)
Die Analogie: Die Bank hat ein zentrales Verzeichnis (eine Karte), das angibt, wo sich alle Räume befinden. Wenn ein neuer Raum hinzugefügt wird, aktualisiert sich das Verzeichnis. Der Dieb fragt das Verzeichnis nach einer Karte des „Geschenkeladens“.
Der Angriff: Das Verzeichnis gibt ihm eine Karte, aber es ist eine „fehlerhafte“ Version. Anstatt nur den Geschenkeladen anzuzeigen, enthält die Karte versehentlich eine geheime Liste aller Räume in der Bank, einschließlich des Tresors, des Büros des CEO und des Safes. Der Dieb nutzt diese versehentliche Liste, um die Schlüssel für überall zu finden.
Die Lösung: Die Forscher schlagen vor, dass das Verzeichnis dem Dieb eine „versiegelte“ Karte gibt. Der Dieb kann die Karte sehen, aber er kann die geheimen Teile nicht lesen, es sei denn, er besitzt ein spezielles Werkzeug zum Aufbrechen der Siegel (welches er nicht hat).
3. Der „Heap Scavenging“-Angriff (Im Haufen wühlen)
Die Analogie: Die Bank hat einen großen Haufen weggeworfener Kartons (Speicher) in der Ecke. Wenn ein Karton weggeworfen wird, soll er leer sein. Aber manchmal werfen die Arbeiter Kartons weg, die noch Werkzeuge oder Schlüssel enthalten, weil sie vergessen haben, sie vorher zu leeren.
Der Angriff: Der Dieb durchwühlt den Haufen weggeworfener Kartons und sucht nach einem, der noch einen Schlüssel enthält. Wenn er einen Schlüssel findet, den ein „Tresor“-Mitarbeiter zurückgelassen hat, kann er den Tresor öffnen.
Die Lösung: Die Bank braucht eine Regel, die besagt: „Bevor du einen Karton wegwirfst, musst du ihn sauber fegen.“ Oder der Dieb sollte nur in einem Haufen Kartons wühlen dürfen, der dem Geschenkeladen gehört, und nicht der gesamten Bank.
4. Der „Heap Storing“-Angriff (Die Zeitbombe)
Die Analogie: Der Dieb schnappt sich einen Karton aus dem Haufen, schreibt seinen Namen darauf und versteckt ihn in seiner Tasche. Später wird derselbe Karton von der Bank weggeworfen und einem neuen Mitarbeiter gegeben.
Der Angriff: Der Dieb wartet ab. Später überprüft er seine Tasche. Der Karton wird nun vom neuen Mitarbeiter verwendet, um das Gold des Tresors zu lagern. Da der Dieb jedoch noch einen „Pointer“ (eine mentale Notiz) zu diesem spezifischen Karton hat, kann er hineingreifen und das Gold stehlen, obwohl er eigentlich nicht dazu berechtigt ist.
Die Lösung: Die Bank benötigt ein System, das die alten Schlüssel zu einem Karton in dem Moment „widerruft“ (zerstört), in dem er weggeworfen wird, damit die mentale Notiz des Diebes nutzlos wird.
Die Ergebnisse: Zwei verschiedene Banken
Die Forscher testeten diese Tricks auf zwei verschiedenen Systemen:
- Morello Linux: Dieses System war sehr verwundbar. Der Dieb konnte alle vier Tricks anwenden, um aus dem Geschenkeladen auszubrechen und die privaten Schlüssel aus dem Haupttresor zu stehlen. Es war wie eine Bank ohne Sicherheitskräfte und mit überall herumliegenden, schmutzigen Klebezetteln.
- CheriBSD: Dieses System war viel besser. Es hatte eingebaute Wächter (genannt c18n und heap revocation).
- Der „Stack Walking“-Trick funktionierte nicht, da jeder Mitarbeiter seinen eigenen privaten Schreibtisch hatte (isolierte Stacks).
- Der „Heap Storing“-Trick funktionierte nicht, da die Bank ein System hatte, das alte Schlüssel sofort zerstörte.
- Jedoch funktionierten der „Dlopen“-Leak und das „Heap Scavenging“ immer noch. Der Dieb konnte immer noch die geheime Karte finden und in den schmutzigen Kartons wühlen.
Das Wichtigste in Kürze
Die Forscher bauten einen „Proof of Concept“ (einen Testfall), bei dem sie erfolgreich einen privaten Schlüssel (wie ein Master-Passwort) aus einem sicheren Programm unter Verwendung des „Dlopen“-Leaks gestohlen haben.
Das Fazit:
Die CHERI-Architektur ist eine fantastische neue Erfindung, die viele klassische Diebstähle (wie das Durchbrechen von Wänden) verhindert. Jedoch weist die Software, die darauf läuft (die Betriebssysteme und Bibliotheken), immer noch Fehler auf. Diese Fehler wirken wie offene Fenster oder verlorene Schlüssel, die es einem Dieb ermöglichen, die Sicherheit zu umgehen, selbst wenn die Wände stark sind.
Das Papier kommt zu dem Schluss, dass die Hardware zwar sicher ist, wir aber die Software anpassen müssen (die Klebezettel wegwischen, die fehlerhaften Karten korrigieren und die Kartons sauber fegen müssen), um das System wirklich sicher zu machen.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.