CVE-2024-3094

Backdoor in xz (2024)

CVE-2024-3094 ist die Bezeichnung eines Eintrags in das System Common Vulnerabilities and Exposures (CVE) des US-amerikanischen National Cybersecurity FFRDC (NCF), mit dem eine Backdoor-Verwundbarkeit der Linux-Utility xz beschrieben wird. Hiermit können Angreifer von außen die Kontrolle über befallene Linux-Computersysteme erlangen.

Geschichte

Bearbeiten

Am 29. März 2024 teilte der Softwareentwickler Andres Freund mit, er habe eine Backdoor im Linux-Utility xz gefunden; diese befände sich in der liblzma Bibliothek, betroffen seien die Versionen 5.6.0 und 5.6.1. der Komponente, welche im Februar 2024 veröffentlicht wurden.[1]

Die Backdoor erlaubt es einem Angreifer, auf dem entsprechenden System Root-Rechte zu erlangen, wenn er über einen spezifischen Ed448 Schlüssel verfügt. Dies erlaubt eine Remote Code Execution. Der Issue hat das höchstmögliche Score im CVSS System erhalten, 10.0.[2][3][4]

Hilfsprogramm xz

Bearbeiten

Das Hilfsprogramm xz ist Teil der meisten Linuxdistributionen. Die Backdoor betrifft vermutlich nur Systeme, welche zur Paketverwaltung .deb oder .rpm und die Architektur x86-64 nutzen. Zum Zeitpunkt der Entdeckung waren die betroffenen Softwareversionen von xz (5.6.0 und 5.6.1) noch nicht weit verbreitet.[5]

Hintergrund

Bearbeiten

Andres Freund, Angestellter von Microsoft und ein Entwickler von PostgreSQL, meldete die Backdoor, welche er durch Performancemessungen in Debian Sid gefunden hatte.[6] Freund hatte festgestellt, dass SSH-Verbindungen zu einer hohen Systemlast führten, und bei Valgrind,[7] einem Tool zum Memory-Debugging, Fehler verursachten.[8] Er meldete seine Funde der Openwall Security Mailingliste.[7] Durch diese Meldung wurden verschiedene Hersteller auf das Problem aufmerksam.[8] Es gibt Hinweise, dass die Angreifer versuchten, die Funktion des Codes zu verschleiern.[9][10] Der Wirkmechanismus der Backdoor umfasst mehrere Schritte.[11]

Sobald die kompromittierte Version in ein System eingebunden wird, verändert sie das Verhalten des SSH-Daemons von OpenSSH: Systemd wird missbraucht, um dem Angreifer Root-Rechte auf dem System zu geben.[8][11] Gemäß Red Hat kann ein Hacker aus der Ferne dadurch die SSH-Authentifizierung umgehen und von Ferne unbefugten Zugriff zum System erhalten.[12]

Eine weitere Untersuchung fand heraus, dass die Kampagne, die Backdoor in das XZ Utils Paket einzubringen, etwa drei Jahre dauerte. Ein Benutzer namens Jia Tan mit dem Pseudonym JiaT75 erlangte eine Position des Vertrauens innerhalb des Projektes. Nach einiger Zeit und etwas Sockpuppetry war es ihm möglich, die Versionen 5.6.0, welche die Backdoor einführte, und die Nachfolgeversion 5.6.1 als Ko-Maintainer zu signieren.[8] Version 5.6.1 fügte weiteren Code ein. Weitere wahrscheinlich beteiligte Charaktere sind unter den Pseudonymen Jigar Kumar, krygorin4545, and misoeater91 bekannt. Es wird angenommen, dass es sich bei allen Namen, sowie beim Namen des angeblichen Autors, Hans Jensen, um Pseudonyme handelt. Die entsprechenden Personen existieren nicht außerhalb des Projekts, oder sie haben nichts mit dem Projekt zu tun.[13][14]

Auffällig waren bei der Backdoor die komplexe Ausführung und die Tatsache, dass die Hacker über weitgehende Kenntnisse in Betriebssicherheit (OPSEC) verfügten; dies war nötig, um die Vertrauensposition innerhalb des Projekts zu erreichen.

Der Name der verdächtigten Person, als auch die verwendete Zeitzone sollen laut Experten den Eindruck erwecken, es handle sich um eine Person aus China. Tatsächlich deuten Analysen allerdings daraufhin, dass die Person in der Zeitzone UTC+2 oder UTC+3 arbeitete, welche in Osteuropa bzw. Westrussland liegen. So war der verdächtigte Nutzer zum Beispiel nie an Weihnachten oder Neujahr aktiv, arbeitete aber an chinesischen Feiertagen.[15] Dave Aitel, ein amerikanischer Sicherheitsforscher, merkte an, dass das Verhaltensmuster zu APT29/Cozy Bear passe, einer Hacker-Gruppe, welche im Auftrag der russischen Regierung agiert und enge Geheimdienstverstrickungen hat.[16] Andere Personen glauben, es könne sich um einen beliebigen staatlichen oder um einen privatwirtschaftlichen Akteur mit großen Ressourcen handeln.[17]

Wirkmechanismus

Bearbeiten

Der Schadcode ist in den Versionen 5.6.0 und 5.6.1 der XZ Utils enthalten. Der Exploit wird nur aktiv, wenn er von einem spezifischen Drittquellen-Patch des SSH-Servers aktiviert wird. Unter den richtigen Voraussetzungen kann dies einem böswilligen Akteur erlauben, die Authentifizierung zu umgehen und unerlaubterweise Fernzugriff auf das System zu erhalten.[12] Der Mechanismus besteht aus zwei komprimierten Testdateien, welche binären Schadcode enthalten. Diese sind im git-Repository verfügbar, aber sie bleiben inaktiv, bis sie entpackt und ins Programm injiziert werden.[4] Der Code benutzt den IFUNC Mechanismus von glibc um die bestehende OpenSSH-Funktion RSA_public_decrypt durch eine Version mit Schadcode zu ersetzen. OpenSSH setzt im Normalfall kein liblzma ein, aber ein verbreiteter Patch führt zum Einsatz von libsystemd, welches lzma lädt.[4]

Eine modifizierte Version der Datei build-to-host.m4 war im Release auf github ebenfalls enthalten. Dieses Skript extrahiert die Testdateien und führt die Code-Injection durch. Dieses Skript war nicht im Repository, es fand sich lediglich in tar-Dateien, welche vom Maintainer separat von git released wurden.[4] Das Skript scheint die Injection nur auszuführen, wenn das Programm auf einer x86-64 Architektur gebaut wird, glibc und GCC zum Bauen verwendet wird, und der Buildprozess von dpkg oder rpm gesteuert wird.[4]

Reaktion

Bearbeiten

Patching

Bearbeiten

Die US Behörde Cybersecurity and Infrastructure Security Agency, welche für Cybersecurity und -bedrohungen zuständig ist, hat ein Advisory veröffentlicht: Dort wird empfohlen, betroffene Systeme auf eine frühere Version zurückzusetzen, welche von der Verwundbarkeit nicht betroffen ist.[18] Linuxdistributoren wie Red Hat, SUSE und Debian sind dieser Aufforderung gefolgt und haben das Update des Pakets auf ältere Versionen veranlasst.[12][19] Github hat die Spiegelung des Repositories für xz deaktiviert.[20]

Weitergehende Diskussion

Bearbeiten

Alex Stamos, ein Informatiker, merkte an, dass dies die „weitestgehende und effektivste Backdoor“ gewesen sein könnte, welche in Software installiert wurde. Wäre sie nicht entdeckt worden, hätte sie den Programmierern einen Masterschlüssel zu allen Computern auf der Welt verschafft, welche SSH einsetzen.[21] Das Ereignis löste auch eine Diskussion darüber aus, ob kritische Teile einer Informatikinfrastruktur von unbezahlten Freiwilligen abhängen sollten.[22]

Einzelnachweise

Bearbeiten
  1. Jonathan Corbet: A backdoor in xz. In: LWN. Abgerufen am 2. April 2024 (englisch).
  2. Sergiu Gatlan: Red Hat warns of backdoor in XZ tools used by most Linux distros. In: BleepingComputer. Abgerufen am 29. März 2024 (amerikanisches Englisch).
  3. Akamai Security Intelligence Group: XZ Utils Backdoor – Everything You Need to Know, and What You Can Do. 1. April 2024, abgerufen am 2. April 2024 (englisch).
  4. a b c d e Sam James: xz-utils backdoor situation (CVE-2024-3094). In: GitHub. Abgerufen am 2. April 2024 (englisch).
  5. CVE-2024-3094. In: National Vulnerability Database. NIST, abgerufen am 2. April 2024 (englisch).
  6. Zeljka Zorz: Beware! Backdoor found in XZ utilities used by many Linux distros (CVE-2024-3094). In: Help Net Security. 29. März 2024, abgerufen am 29. März 2024 (englisch).
  7. a b oss-security - backdoor in upstream xz/liblzma leading to ssh server compromise. In: www.openwall.com. Abgerufen am 8. April 2024 (englisch).
  8. a b c d Dan Goodin: What we know about the xz Utils backdoor that almost infected the world. In: Ars Technica. 1. April 2024, abgerufen am 1. April 2024 (amerikanisches Englisch).
  9. Michael Larabel: XZ Struck By Malicious Code That Could Allow Unauthorized Remote System Access. In: Phoronix. Abgerufen am 29. März 2024 (englisch).
  10. Lindsey O'Donnell-Welch: Red Hat, CISA Warn of XZ Utils Backdoor. In: Decipher. 29. März 2024, abgerufen am 29. März 2024 (englisch).
  11. a b Thomas Claburn: Malicious backdoor spotted in Linux compression library xz. In: The Register. Abgerufen am 1. April 2024 (englisch).
  12. a b c Urgent security alert for Fedora 41 and Fedora Rawhide users. Red Hat, abgerufen am 29. März 2024 (englisch).
  13. Watching xz unfold from afar. Abgerufen am 6. April 2024 (englisch).
  14. Timeline summary of the backdoor attack on XZ Utils. Abgerufen am 7. April 2024 (englisch).
  15. Simplicissimus: Wie dieser Deutsche das Internet gerettet hat. 4. September 2024, abgerufen am 5. September 2024.
  16. Andy Greenberg: The Mystery of ‘Jia Tan,’ the XZ Backdoor Mastermind. In: Wired. Abgerufen am 3. April 2024 (englisch).
  17. Thomas Claburn: Malicious xz backdoor reveals fragility of open source. The Register, archiviert vom Original am 8. April 2024; abgerufen am 8. April 2024 (englisch).
  18. Reported Supply Chain Compromise Affecting XZ Utils Data Compression Library, CVE-2024-3094. CISA, 29. März 2024, abgerufen am 29. März 2024 (englisch).
  19. SUSE addresses supply chain attack against xz compression library. In: SUSE Communities. SUSE, abgerufen am 29. März 2024 (englisch).
  20. Michael Larabel: GitHub Disables The XZ Repository Following Today's Malicious Disclosure. In: Phoronix. 29. März 2024, abgerufen am 31. März 2024 (englisch).
  21. Kevin Roose: Did One Guy Just Stop a Huge Cyberattack? In: The New York Times. Abgerufen am 4. April 2024 (englisch).
  22. Amrita Khalid: How one volunteer stopped a backdoor from exposing Linux systems worldwide. In: The Verge. 2. April 2024, abgerufen am 4. April 2024 (englisch).