Abo
  • IT-Karriere:

Kernel: Defekte Dateisysteme bringen Linux zum Stolpern

In einer Diskussion um die Aufnahme eines neuen Dateisystems in den Linux-Kernel wird klar, dass viele Dateisystemtreiber mit defekten Daten nicht klarkommen. Das kann nicht nur zu Abstürzen führen, sondern auch zu Sicherheitslücken.

Artikel veröffentlicht am ,
Über USB-Sticks könnte man Sicherheitslücken in Linux-Dateisystemtreibern ausnutzen, wenn die Distribution diese automatisch mountet.
Über USB-Sticks könnte man Sicherheitslücken in Linux-Dateisystemtreibern ausnutzen, wenn die Distribution diese automatisch mountet. (Bild: Hanno Böck)

Die Aufnahme des Dateisystems EROFS in den Linux-Kernel führt zu einer Diskussion darüber, wie robust die Dateisystemtreiber im Kernel sein sollen. Darüber berichtet Linux Weekly News. In vielen Dateisystemtreibern gibt es bekannte, ungefixte Sicherheitslücken. Insbesondere XFS ist problematisch.

Stellenmarkt
  1. Fresenius Medical Care Deutschland GmbH, Sankt Wendel
  2. Allianz Private Krankenversicherungs-AG, München Unterföhring

EROFS ist ein komprimiertes Read-Only-Dateisystem, das von Huawei entwickelt wurde. Es ist seit Version 4.19 Teil des sogenannten Staging-Bereichs des Linux-Kernels, in dem Treiber zu finden sind, die noch getestet werden. Gao Xiang, einer der Entwickler von EROFS, hat zuletzt darum gebeten, das Dateisystem künftig als normalen Kernel-Dateisystemtreiber auszuliefern.

Wie robust müssen Kernel-Dateisystemtreiber sein?

Kernel-Entwickler Richard Weinberger wies in der Diskussion darauf hin, dass der Code offenbar erwarte, dass das eingelesen Dateisystem korrekt sei und keine fehlerhaften Daten enthalte. So sei es ihm mit wenig Aufwand gelungen, ein fehlerhaftes Dateisystemimage zu erzeugen, das im Code von EROFS zu einer Endlosschleife geführt habe. Das führte zu einer Grundsatzdiskussion darüber, ob man von Linux-Dateisystemtreibern erwarten kann, dass sie auch mit fehlerhaften Dateisystemen klarkommen.

Theodore Ts'o, der das Ext4-Dateisystem im Kernel betreut, wies darauf hin, dass auch andere Dateisysteme, die schon lange Teil von Linux sind, solche Probleme hätten. Er versuche zwar, solche Fehler in Ext4 zu beheben, aber es habe für ihn keine hohe Priorität. Es sei unfair, von neuen Dateisystemen etwas zu erwarten, was schon bestehende Dateisysteme nicht erfüllen könnten.

Fuzzing findet viele Bugs in Dateisystemtreibern

Es gab in der Vergangenheit mehrfach Bemühungen, mittels Fuzzing solche Fehler in Dateisystemtreibern zu finden. Hierbei erzeugt ein Fuzzing-Tool defekte Eingabedaten und testet, ob diese zu Abstürzen oder anderen Fehlern führen.

2016 nutzten Entwickler von Oracle eine modifizierte Version von American Fuzzy Lop (AFL), um Fehler in Dateisystemtreibern zu finden. Auf der Usenix-Konferenz 2017 wurde ein weiterer Ansatz namens kAFL, ebenfalls basierend auf AFL, vorgestellt. Auch Googles Syzkaller-Projekt findet teilweise Fehler in Dateisystemtreibern und meldet diese automatisch.

Fuzzing schädlich?

Wen Xu vom Georgia Institute of Technology erweiterte diesen Ansatz und stellte im Mai diesen Jahres eine Fuzzing-Methode vor, bei der nicht nur das Einlesen eines defekten Dateisystems getestet wurde, sondern anschließend auch Zugriffe darauf. Im Rahmen dieser Forschung wurde eine ganze Reihe von Fehlern an die Kernel-Entwickler gemeldet, darunter mehrere Memory-Corruption-Bugs. In den Dateisystemtreibern für XFS, ReiserFS, HFS und GFS2 wurden viele der Bugs nicht gefixt. Auch für Ext4 findet man drei Bugs. Diese wurden aber gefixt, es wurde wohl nur vergessen, die entsprechenden Bugreports auch zu schließen.

XFS-Entwickler findet Fuzzing schädlich

In mehreren Onlinediskussionen in der Vergangenheit haben die Entwickler des XFS-Dateisystems geschrieben, dass sie derartige Fehler nicht fixen möchten. Als Antwort auf einen Fehlerbericht eines kAFL-Entwicklers antwortete ein Entwickler des XFS-Dateisystems, dass er solches Fuzzing für schädlich halte.

Mehrfach verwiesen Entwickler von XFS in diesen Diskussionen darauf, dass die aktuelle Version von XFS CRC32-Checksummen enthalte. Doch diese können zwar zufällige Bitfehler erkennen, sie verhindern aber keine böswillig manipulierten Dateisysteme. Das Erkennen von Bugs durch Fuzzing wird hingegen durch solche Checksummenmechanismen erschwert.

Angriffe über USB-Sticks und Automount

Wenn fehlerhafte Dateisystemtreiber Memory-Corruption-Fehler enthalten, kann das ein Sicherheitsproblem sein. Manche Linux-Distributionen mounten externe Laufwerke wie USB-Sticks automatisch, wenn diese angeschlossen werden. Doch auch ohne Automount besteht ein Sicherheitsrisiko, so könnte man etwa Nutzern einen USB-Stick mit einem Dateisystem geben, das eine solche Sicherheitslücke ausnutzt.

Das Mounten von fremden Dateisystemen ist aber unter den gegebenen Umständen riskant. Wie die Diskussion zeigt, kann man sich nicht darauf verlassen, dass Linux-Dateisystemtreiber mit bösartigen Eingabedaten klarkommen. Und einige Kernelentwickler sagen offen, dass das auch nicht ihr Ziel sei.



Anzeige
Spiele-Angebote
  1. (-40%) 29,99€
  2. (-78%) 11,00€
  3. 34,99€
  4. 51,95€

sambache 26. Aug 2019 / Themenstart

Eine voller file system check dauert sehr lange. Das macht niemand jedesmal.

schily 22. Aug 2019 / Themenstart

Also, als Frank Hoffman von Sun Microsystems und ich das 2005 und 2006 für das ISO-9660...

regiedie1. 21. Aug 2019 / Themenstart

Hab mich auch nicht für bcachefs ausgesprochen, sondern nur auf den Text des Entwicklers...

schily 21. Aug 2019 / Themenstart

In FreeBSD wurde es entdeckt und allen gemeldet. In Solaris wurden die Fehler behoben, in...

tsx-11 20. Aug 2019 / Themenstart

Das ist die Meinung von Ted To's und Dave Chinner. Ok, beide haben wenig Ahnung davon.

Kommentieren


Folgen Sie uns
       


Fairphone 3 - Fazit

Behebt das Fairphone 3 die Mängel der Vorgänger? Wir haben es getestet.

Fairphone 3 - Fazit Video aufrufen
Sonos Move im Test: Der vielseitigste Lautsprecher von Sonos
Sonos Move im Test
Der vielseitigste Lautsprecher von Sonos

Der Move von Sonos überzeugt durch Bluetooth und ist dank Akku und stabilem Gehäuse vorzüglich für den Außeneinsatz geeignet. Bei den Funktionen ist der Lautsprecher leider nicht so smart wie er sein könnte.
Ein Test von Ingo Pakalski

  1. Update für Multiroom-Lautsprecher Sonos-App spielt keine lokalen Inhalte mehr vom iPhone ab
  2. Smarter Lautsprecher Erster Sonos-Lautsprecher mit Akku und Bluetooth
  3. Soundbars Audiohersteller Teufel investiert in eigene Ladenkette

Verkehrssicherheit: Die Lehren aus dem tödlichen SUV-Unfall
Verkehrssicherheit
Die Lehren aus dem tödlichen SUV-Unfall

Soll man tonnenschwere SUV aus den Innenstädten verbannen? Oder sollten technische Systeme schärfer in die Fahrzeugsteuerung eingreifen? Nach einem Unfall mit vier Toten in Berlin mangelt es nicht an radikalen Vorschlägen.
Eine Analyse von Friedhelm Greis

  1. Torc Robotics Daimler-Tochter testet selbstfahrende Lkw
  2. Edag Citybot Wandelbares Auto mit Rucksackmodulen gegen Verkehrsprobleme
  3. Tusimple UPS testet automatisiert fahrende Lkw

Programmiersprache: Java 13 bringt mehrzeilige Strings mit Textblöcken
Programmiersprache
Java 13 bringt mehrzeilige Strings mit Textblöcken

Die Sprache Java steht im Ruf, eher umständlich zu sein. Die Entwickler versuchen aber, viel daran zu ändern. Mit der nun verfügbaren Version Java 13 gibt es etwa Textblöcke, mit denen sich endlich angenehm und ohne unnötige Umstände mehrzeilige Strings definieren lassen.
Von Nicolai Parlog

  1. Java Offenes Enterprise-Java Jakarta EE 8 erschienen
  2. Microsoft SQL-Server 2019 bringt kostenlosen Java-Support
  3. Paketmanagement Java-Dependencies über unsichere HTTP-Downloads

    •  /