Seltsam, das kompiliert nicht mehr sauber – aber das kann bei neuen Paketen schon mal passieren.
So wurde ein Fedora-Entwickler auf eine potenzielle Backdoor in den XZ-Utils beziehungsweise in dessen Bibliotheken aufmerksam. Diese ganz frische Version von XZ war ihm im Februar 2024 durch dessen neuen Hauptentwickler förmlich aufgedrängt worden und sollte wegen etlicher Verbesserungen noch unbedingt mit in Fedora 40 kommen.
Daraus wurde nichts: Zwar erkannte das Fedora-Team die Backdoor nicht als solche, kompilierte aber eine dafür vorausgesetzte Komponente durch ein paar zusätzliche Compiler-Optionen heraus und machte den eingeschleusten Schadcode damit unwirksam. Eher zufällig als geplant.
Die Anatomie der Backdoor
Die Ehre, die Backdoor entdeckt und zuerst beschrieben zu haben, gebührt Andres Freund, einem Microsoft-Entwickler, der Ende März ebenfalls über auffälliges Verhalten nach dem Kompilieren der betroffenen XZ-Version 5.6 stolperte.
Unter Debian Sid war ihm aufgefallen, dass SSH-Verbindungen plötzlich viel CPU-Last erzeugten, deutlich länger dauern und die Bibliothek „liblzma“ aus dem XZ-Paket im Debugger zahlreiche Fehler verursacht.
Die weitere Recherche bestätigte seinen Anfangsverdacht: Diese XZ-Version war mit einer Backdoor ausgestattet, eingeschmuggelt von einem der Hauptentwickler selbst. Der Schadcode erhielt nach Analysen prompt die höchste CVE-Bewertung von zehn in der Risikobewertung, die es nicht oft zu sehen gibt.
Die Backdoor macht sich einen Patch für SSH zu nutze, den die meisten Linux-Distributionen anwenden, um über Systemd Benachrichtigungen von diesem Dienst weiterzuleiten. Die dafür zuständige Bibliothek verlinkt unter anderem zu „liblzma“ aus den XZ-Utils.
Genau da setzt der Schadcode an: Die manipulierte Bibliothek wird aktiv, wenn ein bestimmter, vordefinierte Schlüssel beim Log-in von einem SSH-Client gesendet wird. Der trojanisierte SSH-Server extrahiert dann Code aus dem gesendeten Schlüssel und führt diesen auf dem Server aus.
Schlägt dies fehl, arbeitet SSH ganz normal weiter. Der Backdoorcode selbst war in binärer Form in Testdateien versteckt, die erst beim Kompilieren eines DEB- oder RPM-Paket mit Standardparametern herangezogen wurden.
Angreifer waren unter Zugzwang
Allein die Vorbereitung von mehreren Jahren und der Aufwand zum Verstecken des Codes weisen darauf hin, dass es sich bei den Angreifern, die unter dem Namen „Jia Tan“ agierten, um professionelle Cyberkriminelle oder um das geheimdienstliche Treiben eines Staates handelt.
Es war aber nicht nur unsaubere Arbeit bei der Programmierung der Backdoor, welche zu ihrer Entdeckung führte. Vielmehr sahen sich die Angreifer wegen geplanter Änderungen in Linux-Distributionen unter Zugzwang, mussten schnell reagieren und haben deshalb schlecht getesteten Code ausgeliefert.
Denn Systemd war schon dabei, Packerbibliotheken als Abhängigkeiten zu entfernen, und die XZ-Backdoor hätte dann zu SSH keinen Einstiegspunkt mehr gehabt.
Das Beinahe-Desaster wirft aber wieder einmal ein Licht darauf, dass nicht alle Open-Source-Projekte gut aufgestellt sind. Wäre der ursprüngliche XZ-Entwickler nicht hoffnungslos überarbeitet gewesen, hätte die feindliche Übernahme des XZ-Projekts nicht funktioniert.
Chronologie eines Strategischen Angriffs
2021: Das Github-Konto „Jia Tan“ tritt erstmals mit zahlreichen Anfragen an Open-Source-Projekte in Erscheinung, mit der Bitte um Aufnahme als Entwickler.
2022: Nach Cybermobbing gegen den ursprünglichen XZ-Entwickler wird Jia Tan der offizielle Maintainer des XZ-Projekts auf Github.
2023: Über Jia Tan gehen etliche Änderungswünsche bei anderen Open-Source-Projekten mit Sicherheitsfokus ein, etwa bei Google Oss-Fuzz. Ziel ist, über Manipulation an verbreiteten Sicherheitstools eine Entdeckung der geplanten Backdoor zu erschweren.
Februar 2024: Die neuen XZ-Utils erscheinen in Version 5.6 und enthalten bereits den Code für die geplante Backdoor. Fedora-Entwickler werden stutzig, entdecken im verdächtigen Quellcode aber nicht den versteckten Nutzen.
April 2024: Andreas Freund entdeckt und dokumentiert die XZ-Backdoor. Microsoft schließt den Github-Account von Jia Tan und friert das XZ-Repository ein. Betroffene Linux-Distributionen gehen von XZ 5.6. zurück zur Version 5.4 – ein komplettes Reengineering des binären Blobs, in dem sich die Backdoor versteckte.
Mehr zum Thema Sicherheit:
Hacker verbreiten Schadsoftware über Whatsapp: Android-Smartphones infiziert
Fritzbox aktuell im Visier von Angreifern: Das müssen Sie jetzt sofort tun
Security Software and Services