Schadcode in XZ Utils für Linux-Systeme ermöglicht Remotecode-Ausführung
Eine neue Analyse hat ergeben, dass der bösartige Code, der in die Open-Source-Bibliothek XZ Utils eingefügt wurde, auch die Möglichkeit zur Remote-Codeausführung bietet. XZ Utils ist ein weit verbreitetes Paket in den wichtigsten Linux-Distributionen.
Letzte Woche wurde eine Sicherheitslücke, bekannt als CVE-2024-3094 (mit einem CVSS-Score von 10.0), aufgedeckt. Ein Microsoft-Ingenieur und PostgreSQL-Entwickler entdeckte eine Hintertür in einem Datenkomprimierungsprogramm, die es Angreifern ermöglicht, die sichere Shell-Authentifizierung zu umgehen und volle Kontrolle über ein betroffenes System zu erlangen.
Der Microsoft-Mitarbeiter erklärte auf Mastodon: „Ich führte einige Mikro-Benchmarks durch und bemerkte, dass die sshd-Prozesse ungewöhnlich viel CPU verbrauchten, obwohl sie aufgrund falscher Benutzernamen abgelehnt wurden. Das Profiling zeigte, dass viel CPU-Zeit in liblzma verbraucht wurde, was mich misstrauisch machte. Einige Wochen zuvor hatte ich auch eine seltsame valgrind-Beschwerde bei automatisierten Tests von PostgreSQL bemerkt. Es brauchte wirklich einiges an Zufällen, um all diese Zusammenhänge herzustellen.“
XZ Utils ist ein weit verbreitetes Kommandozeilen-Tool für das Komprimieren und Dekomprimieren von Daten in Linux und anderen Unix-ähnlichen Betriebssystemen.
Der bösartige Backdoor-Code wurde anscheinend absichtlich von einem der Projektbetreuer namens Jia Tan (auch bekannt als Jia Cheong Tan oder JiaT75) eingeführt, möglicherweise im Rahmen eines über mehrere Jahre hinweg akribisch geplanten Angriffs. Das entsprechende GitHub-Benutzerkonto wurde im Jahr 2021 erstellt, und die Identität des oder der Täter ist derzeit unbekannt.
Laut einem Bericht von Akamai begann der Bedrohungsakteur vor fast zwei Jahren, zum XZ-Projekt beizutragen, und erarbeitete sich allmählich Glaubwürdigkeit, bis ihm schließlich die Verantwortung als Maintainer übertragen wurde. Um den ursprünglichen Betreuer – Lasse Collin vom Tukaani-Projekt – dazu zu bringen, einen neuen Mitbetreuer zum Repository hinzuzufügen, wurden offenbar weitere raffinierte Social-Engineering-Taktiken eingesetzt. Dabei wurden vermutlich „Sockenpuppenkonten“ (gefälschte oder manipulierte Benutzerkonten in Online-Communities oder sozialen Netzwerken, die von einer einzelnen Person oder einer Gruppe erstellt und kontrolliert werden) wie Jigar Kumar und Dennis Ens verwendet, um Funktionen anzufordern und verschiedene Probleme in der Software zu melden.
Dann kam Jia Tan ins Spiel, der im Jahr 2023 eine Reihe von Änderungen an XZ Utils vornahm. Diese Änderungen flossen schließlich in die Version 5.6.0 ein, die im Februar 2024 veröffentlicht wurde. Dabei enthielt sie auch eine ausgeklügelte Hintertür.
Die Hintertür betrifft die Versionen XZ Utils 5.6.0- und 5.6.1-Release-Tarballs (komprimierte Datei, die durch das Archivierungsprogramm „tar“ erstellt wurde), wobei letztere eine verbesserte Version desselben Implantats enthält. Collins hat mittlerweile zugegeben, dass die Sicherheitslücke im Projekt vorhanden war. Beide Tarballs wurden von Jia Tan erstellt und signiert und hatten angeblich nur Zugriff auf das jetzt deaktivierte GitHub-Repository.
Das Firmware-Sicherheitsunternehmen Binarly kommentierte: „Dies ist offensichtlich eine äußerst komplexe, staatlich geförderte Operation mit beeindruckender Raffinesse und mehrjähriger Planung. Ein derart umfangreiches und professionell entwickeltes Implantations-Framework wird nicht für einen einmaligen Einsatz entwickelt.“
Eine eingehende Analyse der Backdoor ergab, dass die betroffenen Versionen es bestimmten Angreifern ermöglichen, über ein SSH-Zertifikat beliebige Nutzdaten zu senden. Dies geschieht auf eine Weise, welche die Authentifizierungsprotokolle umgeht und effektiv die Kontrolle über den betroffenen Rechner übernimmt.
Akamai kommentierte weiter: „Es scheint, als würde die Hintertür dem SSH-Daemon auf dem verwundbaren Rechner hinzugefügt, was einem entfernten Angreifer ermöglicht, beliebigen Code auszuführen. Das bedeutet, dass jeder Rechner, der das anfällige Paket verwendet und SSH mit dem Internet verbindet, potenziell gefährdet ist. Mit anderen Worten: Die Hintertür ermöglicht es einem Angreifer mit einem vorher festgelegten privaten Schlüssel, den SSH-Daemon zu übernehmen und bösartige Befehle auszuführen.
Es ist offensichtlich, dass die zufällige Entdeckung durch Microsoft einen der schwerwiegendsten Angriffe auf die Lieferkette aller Zeiten offengelegt hat. Hätte das manipulierte Paket den Weg in stabile Versionen von Linux-Distributionen gefunden, hätte dies eine ernsthafte Sicherheitskatastrophe verursachen können.
JFrog betonte: „Der bemerkenswerteste Aspekt dieses Supply-Chain-Angriffs ist das außergewöhnliche Engagement des Angreifers, der mehr als zwei Jahre daran gearbeitet hat, sich als legitimer Maintainer zu etablieren. Dies geschah durch die Übernahme von Aufgaben in verschiedenen Open-Source-Projekten und die Übertragung von Code über mehrere Projekte hinweg, um eine Entdeckung zu vermeiden.“
Dieser Vorfall zeigt erneut, wie stark Unternehmen auf Open-Source-Software und Projekte angewiesen sind, die von Freiwilligen betrieben werden. Ähnlich wie beim Fall von Apache Log4j können Sicherheitslücken schwerwiegende Folgen haben.
Um solche Probleme zu vermeiden, empfiehlt ReversingLabs Unternehmen, Tools und Prozesse einzuführen, um Anzeichen von Manipulationen und schädlichem Code sowohl in Open-Source- als auch in kommerzieller Software zu erkennen, die in ihren Entwicklungsprozessen verwendet wird.