Betriebssystem: Fractal OS vereinfacht Suche nach Hardware-Sicherheitslücken
Moderne Betriebssysteme bringen viele Features mit, um Angreifern das Leben schwer zu machen. Dazu zählen auch Forscher, die nach Sicherheitslücken in Hardware suchen – auch wenn ihre Absichten gut sein mögen. Einige Mechanismen stören dabei lediglich indirekt und erschweren Forschern die Suche nach Problemen. Mit eigenen Patches versuchen sie dann, diese Einschränkungen zu vermeiden.
Genau das war Joseph Ravichandran, Doktorand am CSAIL (Computer Science and Artificial Intelligence Laboratory) des Massachusetts Institute of Technology (MIT), leid. Deshalb entwickelte er mit Fractal ein Betriebssystem(öffnet im neuen Fenster), das Sicherheitsforschern die Arbeit erleichtern soll. Fractal bringt Features mit, die anderen Betriebssystemen aus guten Gründen fehlen.
So ermöglicht das Betriebssystem, den gleichen Code ohne sogenannten Kontextwechsel mit den Rechten des Betriebssystemkerns auszuführen. Daneben ist sogenanntes kooperatives Multitasking implementiert. Hier entscheidet der ausgeführte Thread, wann er den Prozessor abgeben möchte. Üblicherweise ist preemptives Multitasking implementiert, bei dem das Betriebssystem den Prozessor nach einer gewissen Zeit einem anderen Thread zuteilt.
Ungestört die Lücke ausnutzen
Der Hintergrund ist, dass zum Erkennen von Hardware-Sicherheitslücken oft lange, gezielt ausgearbeitete Befehlsfolgen erforderlich sind.
Gleiches gilt für die Analyse der Funktionsweise von Prozessorkomponenten wie etwa der Sprungvorhersage (g+). Werden die genutzten Befehlssequenzen unterbrochen, etwa weil das Betriebssystem den Prozessor einem anderen Thread zuteilt, war die Arbeit umsonst. Durch kooperatives Multitasking lässt sich das verhindern und weitere Konzepte hinter Fractal sollen eine Beeinflussung anderer Komponenten wie des TLB (Translation Lookaside Buffer) vermeiden.
Ravichandran entwickelte Fractal hauptsächlich für Apple Silicon. Beim M1 konnte er mit seinem eigenen Betriebssystem bereits zeigen, dass dieser für den Mechanismus hinter der Sicherheitslücke Phantom anfällig ist. Der M1 lässt sich hier zwar auf einen falschen Pfad schicken, allerdings lädt er nur den entsprechenden Befehl, führt ihn aber nicht aus.
Neben M1 und M4 läuft das mehr als 31.000 Zeilen Assembler-, C- und C++-Code umfassende Betriebssystem auch auf dem Raspberry Pi sowie RISC-V- und 64-Bit-x86-Prozessoren. Der Quellcode ist bei Github verfügbar(öffnet im neuen Fenster), Ravichandran veröffentlichte Fractal zudem im Rahmen des IEEE Symposium on Security and Privacy veröffentlicht (PDF)(öffnet im neuen Fenster).
- Anzeige Hier geht es zu Hacking & Security: Das umfassende Handbuch bei Amazon Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.