Memory Sanitizer: Neues Kernel-Werkzeug findet 300 Speicherfehler
Trotz Compilerwarnungen und -Werkzeuge gibt es weiter neue Speicherfehler im Linux-Kernel. Ein Memory Sanitizer soll das zum Teil verhindern.

Der Google-Angestellte Alexander Potapenko hat nach mehr als zwei Jahren Pause eine aktualisierte Fassung des Werkzeugs Kernel Memory Sanitizer (KMSAN) auf der Mailing-Liste des Linux-Kernel zur Diskussion eingereicht. Mit Hilfe dieses Werkzeugs sollen Fehler entdeckt werden, die auf nicht initialisierte Speicherbereiche zurückzuführen sind. Laut Potapenko seien so bereits mehr als 300 Fehler im Linux-Kernel entdeckt worden, die meisten davon in Kombination mit Hilfe des Fuzzers Syzkaller.
Potapenko schreibt dazu: "Solche Bugs werden trotz neuer Compiler-Warnungen und anderer Analysen immer wieder in den Kernel eingeschleust". Demnach seien allein im Entwicklungszeitraum für Linux 5.16 mehrere Fehler mit Hilfe von KMSAN gefunden und gemeldet worden. Als Grund für die Einführung von KMSAN im Linux-Kernel schreibt der Entwickler, dass die Alternative, eine komplette Initialisierung von Stack und Heap, noch sehr weit entfernt davon sei, tatsächlich auch praktisch genutzt werden zu können.
Das zugrundeliegende Problem ist, dass es die Programmiersprache C nicht forciert, Variablen bei der Deklaration zu initialisieren. Das heißt, ihnen werden unter Umständen keine Werte zugewiesen. Das ist jedoch nicht definiertes Verhalten und kann etwa dazu führen, dass geschützte Inhalte von Speicherbereichen versehentlich offengelegt oder dass die Speicherbereiche direkt genutzt werden. Beides kann zu Sicherheitslücken führen.
Werkzeuge, um solch ein Verhalten zu entdecken, gibt es bereits für den Userspace und diese werden bereits breit eingesetzt. Darüber hinaus wollen etwa Microsoft für Windows und Google für Android, eine komplette Speicherinitialisierung umsetzen. Für den Linux-Kernel soll nun aber eben zunächst KMSAN eingepflegt werden. Grundsätzliche Kritik daran gibt es nicht. Die Linux-Kernel-Community, darunter auch Projekt-Gründer und Chefentwickler Linus Torvalds, diskutiert jedoch detailliert das konkrete Vorgehen und die Umsetzung im Code.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Wer keine Ahnung hat... Den Rest dieses Satzes hast du sicher schon ein paar Mal gehört.
Kommentieren