Sicherheit und Fortschritt ziehen nicht immer in dieselbe Richtung. Im Linux-Kernel 7.3 gibt es dafür gerade ein Lehrbuchbeispiel: Eine Härtungsmaßnahme, die seit Jahren gegen bestimmte Angriffe hilft, wird in der Standardkonfiguration abgeschaltet — damit die Rust-Unterstützung überhaupt gebaut werden kann.
WAS RANDSTRUCT ÜBERHAUPT MACHT
RandStruct würfelt beim Übersetzen des Kernels die Speicheranordnung sensibler C-Strukturen durcheinander. Klingt technisch, ist aber im Kern simpel: Angreifer, die eine Speicherlücke ausnutzen wollen, müssen wissen, wo im Speicher was liegt. Wenn diese Anordnung bei jedem Kernel-Build anders ausfällt, hilft ein fertiger Exploit von der Stange nicht weiter — er muss für genau diesen Kernel neu gebaut werden.
Das verhindert keinen Angriff. Es macht ihn teurer. Und genau das ist der Sinn von Härtung.
WARUM ES JETZT WEICHT
Der Grund ist erstaunlich unspektakulär: RandStruct unterstützt Rust nicht. Deshalb gab es in der Kernel-Konfiguration eine Abhängigkeit, die Rust immer dann aussperrte, wenn RandStruct aktiv war.
Das Problem daran zeigt sich beim allmodconfig-Bau. Das ist die Standard-Konfiguration, mit der sämtliche Kernel-Module durchgebaut werden — der wichtigste automatische Testlauf des Projekts überhaupt. Dort war RandStruct standardmäßig an. Und weil es an war, flog Rust automatisch raus. Ergebnis: Der gesamte Rust-Code wurde in diesem Testlauf nie mitübersetzt.
Mark Brown, von dem die inzwischen übernommene Änderung stammt, hat diesen Knoten aufgelöst, indem er die Vorzeichen umdreht: RandStruct ist künftig standardmäßig aus, sobald eine Rust-Werkzeugkette vorhanden und Rust für die Architektur unterstützt ist.
WIE SCHLIMM IST DAS?
Das kommt darauf an, wen man fragt. Nüchtern betrachtet:
- Es ist keine Sicherheitslücke. Nichts wird kaputt, nichts wird angreifbar, was vorher dicht war.
- Es ist ein Verlust an Tiefenstaffelung. Eine zusätzliche Hürde fällt in der Standardkonfiguration weg.
- Rust bringt dafür eigene Vorteile mit. Speichersicherheit auf Sprachebene verhindert von vornherein einen ganzen Teil der Fehler, gegen deren Ausnutzung RandStruct überhaupt erst antritt.
Es ist also weniger ein Rückschritt als ein Tausch. Ob der Tausch aufgeht, hängt daran, wie viel Kernel-Code tatsächlich in Rust geschrieben wird — und das ist bislang ein kleiner, wenn auch wachsender Anteil.
SO HOLST DU DIE HÄRTUNG ZURÜCK
Der Weg ist offen: Wer RandStruct behalten will, baut seinen Kernel mit einer abweichenden Konfiguration ohne Rust-Unterstützung. Dann greift die alte Abhängigkeit wieder und die Härtung ist an. Für die meisten Homelab-Betreiber ist das theoretisch — wer Distributions-Kernel nutzt, bekommt, was die Distribution konfiguriert hat. Interessant wird es für alle, die aus Sicherheitsgründen ohnehin eigene Kernel bauen.
DER RAHMEN: EIN „RAUER“ ZYKLUS
Passend dazu hat Greg Kroah-Hartman, der zweite Mann hinter Linus Torvalds, gewarnt, dass der 7.3-Zyklus vermutlich wieder anstrengend wird — wegen des anhaltenden Lärms durch KI-generierte Fehlermeldungen und Patches. Linux 7.3-rc1 ist Anfang September erschienen, bis zur fertigen Version sind es noch rund sieben Wochen.