Vor einiger Zeit hat einen wirklich beeindruckender und technisch außergewöhnlich professionell durchgeführter Hack die Fachwelt erschüttert.
Die Rede ist von dem XZ-Utils Hack, mit dem man Zugriff auf Linux Server bekommen hat. Dieser Hack war darauf ausgelegt auf Systemen auf denen Linux installiert ist, also insbesondere auf Servern, illegal Zugriff zu erhalten. Der Zugriff sollte mit root-Rechten erfolgen. Das bedeutet dass der Hacker auf dem System alles machen darf was ihm beliebt. Er hat volle Zugriffsrechte auf alle Dateien des Systems und kann schalten und walten wie er will. Dazu wurde versucht ein Tool zu kompromittieren, das in der Linux Welt von zentraler Bedeutung ist:
Ders XZ-Komprimierer
Der grobe Ablauf:
2021
JiaT75 (Jia Tan) erstellt seinen GitHub-Account. Erste verdächtige Commits nicht in xz, sondern in libarchive: Ersetzen von safe_fprint durch eine unsichere Variante.
Anfang 2022
Es gibt eine Schwachstelle in xzgrep, einem Hilfsprogramm von XZ Utils.
CVE-2022-1271 erlaubte es, durch bösartig gestaltete Dateinamen beliebige Dateien zu überschreiben oder sogar beliebigen Code auszuführen, wenn xzgrep zusammen mit einer GNU sed-Erweiterung verwendet wurde. Der Patch behebt diese Schwachstelle, indem er die Verarbeitung von Dateinamen in xzgrep sicherer gestaltet. Er wurde am 7. April 2022 veröffentlicht und betrifft die Versionen 4.999.9beta, 5.0.0 bis 5.2.5, 5.3.1alpha und 5.3.2alpha von XZ Utils. Neuere Versionen von XZ Utils enthalten eine verbesserte Behebung für dieses Problem. Die Schwachstelle wurde ursprünglich von einem Sicherheitsforscher namens „cleemy desu wayo“ in Zusammenarbeit mit der Trend Micro Zero Day Initiative entdeckt.
Jia Tan reicht einen Patch über eine Mailingliste ein.
Jigar Kumar tritt auf und drängt auf die Integration des Patches über jene Mailingliste. Außerdem drängt dieser Jigar Kumar den Verantwortlichen für XZ Lasse Collin, einen weiteren Maintainer für XZ hinzuzufügen.
Drei Tage nach den E-Mails: JiaT75 macht den ersten Commit zu xz: „Tests: Created tests for hardware functions“.
Jigar Kumar verschwindet, Dennis Ens tritt auf und übt ebenfalls Druck aus.
Juni 2022
Lasse Collin, der ursprüngliche XZ-Maintainer, deutet in einer E-Mail an, dass Jia Tan zukünftig eine größere Rolle spielen könnte, da er selbst unter Burnout leidet.
7. Januar 2023
JiaT75 fusioniert seinen ersten Commit, was zeigt dass ihm vollständig vertraut wird.
März 2023
Die Hauptkontakt-E-Mail in Google’s oss-fuzz wird auf die von Jia Tan geändert. Google’s OSS-Fuzz ist ein kostenloses Fuzzing-Tool, das von Google entwickelt wurde, um Open-Source-Software auf sicherheitsrelevante Mängel zu testen.
Juni 2023
Commit von Testing-Infrastruktur durch Jia Tan. Der Code wurde von Hans Jansen erstellt.
Juli 2023
Es wird ein Pull-Request mit indirekten Function-Calls eingebracht. Die Kontrolle von ifunc für Fuzzing-Builds wird deaktiviert und dadurch die Alarmierung der geplanten Änderungen verschleiert.
24. Februar 2024
Pull-Request von Jia Tan in Version 5.6.0 von XZ Utils fügt eine Hintertür (CVE-2024-3094) ein, die Remote-Code-Ausführung ermöglicht
kurz darauf
Commit mit den letzten Schritten zur Ausführung der Hintertür wird hinzugefügt. Es werden Binärdateien eingebaut die für eine Aushebelung der Sicherheit sorgen: „Tests: Add a few test files“.
9. März 2024
Die Hintertür ist auch in Version 5.6.1 von XZ Utils enthalten.
Andreas Freund, der Entdecker des Hacks, arbeitet mit einer Vorabversion einer Linus Distribution an der PostgreSQL Datenbank. Ihm fällt auf das der LogIn über SSH in der neuen Linux Version verlangsamt abläuft. Er beginnt mit Nachforschungen.
28. März 2024
Jia Tan schiebt ein Update mit der Hintertür im Ubuntu-Fehlerverfolgungssystem nach
29. März 2024
Entdeckung durch Andreas Freund und E-Mail an die oss-security Mailingliste, die die Hintertür andeutet und den Exploit-Chain erklärt.