Dezember 7, 2024

securnews

Finden Sie alle nationalen und internationalen Informationen zu Deutschland. Wählen Sie die Themen aus, über die Sie mehr erfahren möchten

Was wir über die Heckklappe des xz Utils wissen, die beinahe die Welt im Sturm erobert hätte

Was wir über die Heckklappe des xz Utils wissen, die beinahe die Welt im Sturm erobert hätte

Hineinzoomen / Warnbildschirm „Malware erkannt“ mit digitalem 3D-Konzept des Binärcodes

Getty Images

Forscher enthüllten am Freitag die Entdeckung einer absichtlich in xz Utils eingebauten Hintertür, einem Open-Source-Datenkomprimierungstool, das auf fast allen Installationen von Linux und anderen Unix-ähnlichen Betriebssystemen verfügbar ist. Die Person oder die Personen, die hinter diesem Projekt stehen, haben wahrscheinlich jahrelang daran gearbeitet. Sie waren wahrscheinlich kurz davor, ein Backdoor-Update in Debian und Red Hat, den beiden größten Linux-Distributionen, zu sehen, als ein scharfsichtiger Entwickler etwas Verdächtiges entdeckte.

„Dies ist möglicherweise der am besten ausgeführte Supply-Chain-Angriff, den wir je in der Öffentlichkeit beschrieben haben, und es ist ein Albtraumszenario: bösartig, effizient und in einer weit verbreiteten Bibliothek autorisiert“, sagte Software- und Kryptografieingenieur Filippo Valsorda. Er sagte Eine Anstrengung, die dem Erfolg erschreckend nahe kam.

Forscher verbrachten das Wochenende damit, Beweise zu sammeln. Folgendes wissen wir bisher.

Was ist das xz-Dienstprogramm?

xz Utils gibt es fast überall unter Linux. Es bietet verlustfreie Datenkomprimierung auf fast allen Unix-ähnlichen Betriebssystemen, einschließlich Linux. xz Utils bietet wichtige Funktionen zum Komprimieren und Dekomprimieren von Daten bei allen Arten von Vorgängen. xz Utils unterstützt auch das alte .lzma-Format, was diese Komponente noch wichtiger macht.

was ist passiert?

Anders Freund, ein Entwickler und Ingenieur, der am PostgreSQL-Angebot von Microsoft arbeitet, hat kürzlich die Leistungsprobleme behoben, die Debian mit SSH hatte, dem Protokoll, das am häufigsten für die Remote-Anmeldung bei Computern über das Internet verwendet wird. Insbesondere verbrauchten SSH-Anmeldungen zu viele CPU-Zyklen und führten zu Fehlern bei Valgrind, einem Dienstprogramm zur Überwachung des Computerspeichers.

Durch eine Kombination aus reinem Glück und Freunds scharfem Auge entdeckte er schließlich, dass die Probleme auf Aktualisierungen der xz Utils zurückzuführen waren. Am Freitag enthüllte Freund im Open-Source-Sicherheitsmenü, dass die Updates darauf zurückzuführen seien, dass jemand absichtlich eine Hintertür in die Komprimierungssoftware eingebaut habe.

Was macht eine Hintertür?

Den Versionen 5.6.0 und 5.6.1 von xz Utils wurde schädlicher Code hinzugefügt, um das Verhalten des Programms bei der Ausführung von Vorgängen im Zusammenhang mit der lzma-Komprimierung oder -Dekomprimierung zu ändern. Wenn diese Funktionen SSH beinhalten, ermöglichen sie die Ausführung von Schadcode mit Root-Rechten. Mit diesem Token kann sich jeder mit einem vordefinierten Verschlüsselungsschlüssel über SSH beim Backend-System anmelden. Von nun an hat diese Person das gleiche Maß an Kontrolle wie jeder autorisierte Administrator.

Siehe auch  Patchnotizen: Version 2.34 | Rocket League®

Wie ist diese Hintertür entstanden?

Es scheint, dass diese Hintertür schon seit Jahren im Bau ist. Im Jahr 2021 erstellte eine Person mit dem Benutzernamen JiaT575 ihr eigenes Konto Erster bekannter Commit Zu einem Open-Source-Projekt. Später, Es ändert Das libarchive-Projekt ist verdächtig, da es die Safe_fprint-Funktion durch eine Variable ersetzt hat, die seit langem als weniger sicher gilt. Damals bemerkte es niemand.

Im folgenden Jahr reichte JiaT575 einen Patch auf der xz Utils-Mailingliste ein, und fast sofort beteiligte sich ein unsichtbarer Teilnehmer namens Jigar Kumar an der Diskussion und argumentierte, dass Lasse Collin, der langjährige Betreuer von xz Utils, die Software nicht oft aktualisiere . Oft oder schnell genug. Kumar setzte sich mit der Unterstützung von Dennis Ince und mehreren anderen, die zuvor nicht auf der Liste gestanden hatten, dafür ein, dass Colin einen zusätzlichen Entwickler hinzuzog, um das Projekt aufrechtzuerhalten.

Im Januar 2023 wurde es von JiaT75 hergestellt Erste Verpflichtung Zu xz Utils. In den folgenden Monaten engagierte sich JiaT75, der den Namen Jia Tan verwendete, zunehmend in den Angelegenheiten von xz Utils. Zum Beispiel ersetzte Tan Collins‘ Kontaktinformationen durch seine eigenen zum Oss-Fuzz-Projekt von Microsoft, einem Projekt, das Open-Source-Software auf Anzeichen von Bösartigkeit überprüft. Tan bat oss-fuzz außerdem, die ifunc-Funktion während des Tests zu deaktivieren, eine Änderung, die ihn daran hinderte, die böswilligen Änderungen zu erkennen, die Tan bald an xz Utils vornehmen würde.

Im Februar dieses Jahres veröffentlichte Tan Commits für die Versionen 5.6.0 und 5.6.1 von xz Utils. Backdoor-Updates implementiert. In den folgenden Wochen forderten Tan und andere die Entwickler von Ubuntu, Red Hat und Debian auf, die Updates in ihre Betriebssysteme zu integrieren. Schließlich gelangte eines der beiden Updates in nachfolgende Versionen. entsprechend Verteidigungsfähiges Sicherheitsunternehmen:

Können Sie mehr darüber sagen, was diese Hintertür bewirkt?

Kurz gesagt: Es ermöglicht jedem mit dem richtigen privaten Schlüssel, sshd, die ausführbare Datei, die für die Herstellung von SSH-Verbindungen verantwortlich ist, zu kapern und von dort aus bösartige Befehle auszuführen. Die Heckklappe wird durch einen fünfstufigen Lader realisiert, der eine Reihe einfacher, aber cleverer Techniken nutzt, um sich zu verbergen. Es bietet auch die Möglichkeit, neue Nutzlasten bereitzustellen, ohne dass größere Änderungen erforderlich sind.

Siehe auch  Geschenke an Silvester 2023: Doppeltes Glück in diesem Dezember

Viele Leute, die die Updates rückentwickelt haben, haben viel über die Hintertür zu sagen.

Eingeführt vom Entwickler Sam James Diese Übersicht:

Diese Hintertür besteht aus mehreren Komponenten. Auf hohem Niveau:

  • Von Upstream veröffentlichte Versionen von Tarballs enthalten nicht denselben Code wie in GitHub. Dies ist in C-Projekten üblich, sodass nachgeschaltete Verbraucher sich nicht daran erinnern müssen, wie Autotools und Autokonferenzen ausgeführt werden. Die in den Tarballs gefundene Version von build-to-host.m4 unterscheidet sich erheblich von der Originalversion auf GitHub.
  • Es gibt auch erstellte Testdateien im Ordner „tests/“ im Git-Repository. Diese Dateien befinden sich in den folgenden Commits:
  • Ein von build-to-host.m4 aufgerufenes Skript entpackt diese bösartigen Testdaten und verwendet sie, um den Build-Prozess zu ändern.
  • IFUNC, ein Mechanismus in Glibc, der indirekte Funktionsaufrufe ermöglicht, wird zur Laufzeitbindung/-umleitung von OpenSSH-Authentifizierungsverfahren verwendet. IFUNC ist ein Tool, das normalerweise für legitime Zwecke verwendet wird, aber in diesem Fall wird es für diesen Angriffspfad ausgenutzt.

Upstream veröffentlicht normalerweise Tarballs, die sich von den automatisch in GitHub generierten unterscheiden. In diesen modifizierten Tarballs ist eine bösartige Version von build-to-host.m4 enthalten, um während des Build-Prozesses ein Skript auszuführen.

Dieses Skript prüft (zumindest in den Versionen 5.6.0 und 5.6.1) verschiedene Bedingungen wie die Gerätearchitektur. Hier ist ein Auszug des schädlichen Skripts, das von build-to-host.m4 dekompiliert wurde, und eine Erklärung seiner Funktionsweise:

if ! (echo "$build" | grep -Eq "^x86_64" > /dev/null 2>&1) && (echo "$build" | grep -Eq "linux-gnu$" > /dev/null 2>&1);then
  • Wenn amd64/x86_64 das Build-Ziel ist
  • Und wenn das Ziel den Namen linux-gnu verwendet (überprüft hauptsächlich die Verwendung von glibc)

Außerdem wird die verwendete Toolkette überprüft:

if test "x$GCC" != 'xyes' > /dev/null 2>&1;then
exit 0
fi
if test "x$CC" != 'xgcc' > /dev/null 2>&1;then
exit 0
fi
LDv=$LD" -v"
if ! $LDv 2>&1 | grep -qs 'GNU ld' > /dev/null 2>&1;then
exit 0

Und wenn Sie versuchen, ein Debian- oder Red Hat-Paket zu erstellen:

if test -f "$srcdir/debian/rules" || test "x$RPM_ARCH" = "xx86_64";then

Dieser Angriff scheint also auf AMD64-Systeme abzuzielen, auf denen glibc unter Verwendung von Distributionen läuft, die von Debian oder Red Hat abgeleitet sind. Andere Systeme könnten derzeit anfällig sein, aber wir wissen es nicht.

In einem Online-Interview bestätigte der Entwickler und Reverse Engineer HD Moore den Verdacht von Sam James, dass die Hintertür auf Debian- oder Red Hat-Distributionen abzielt.

Siehe auch  Corning, Samsung hat bestätigt, dass das Galaxy S23 über Gorilla Glass Victus 2 verfügt

„Der Angriff war hinterhältig, da er nur die letzten Schritte der Hintertür erforderte, wenn Sie die Bibliothek auf AMD64 (Intel x86 64-Bit) erstellten und ein Debian- oder RPM-Paket erstellten (anstatt es für eine lokale Installation zu verwenden). ” ,“ er schrieb.

Er fuhr fort, indem er die Beobachtungen von Forschern umschrieb, die gemeinsam das Wochenende damit verbrachten, die bösartigen Updates zu analysieren:

Wenn bei der Überprüfung eines öffentlichen SSH-Schlüssels der öffentliche Schlüssel mit einer bestimmten Fingerabdruckfunktion übereinstimmt, wird der Inhalt des Schlüssels mithilfe eines vorinstallierten Schlüssels entschlüsselt, bevor der öffentliche Schlüssel tatsächlich überprüft wird. Die entschlüsselten Inhalte werden dann direkt an das System weitergeleitet.

Wenn der Fingerabdruck nicht übereinstimmt oder der entschlüsselte Inhalt nicht mit einem bestimmten Format übereinstimmt, erfolgt wieder die normale Schlüsselüberprüfung, und niemand erfährt davon.

Die Hintertür ist sehr hinterhältig. Verwendet eine unbekannte Funktion von glibc, um eine Funktion zu binden. Es wird nur ausgeführt, wenn die hintertürige xz-Bibliothek vom /usr/bin/sshd-Prozess auf einer der betroffenen Distributionen geladen wird. Es mag noch viele andere Hintertüren geben, aber die Hintertür, von der alle reden, verwendet eine ungerichtete Funktion, um den Haken hinzuzufügen. Die Nutzlast wurde in gefälschten xz-Testdateien verschlüsselt und effektiv als Shellcode ausgeführt, wodurch der SSH-RSA-Schlüsselverifizierungscode so geändert wurde, dass der magische öffentliche Schlüssel (der während der normalen Authentifizierung gesendet wird) dem Angreifer den Zugriff ermöglichen würde

Ihr großer Plan war:

1) Hintertürt unsichtbar die Release-Bälle, nicht aber den Quellcode

2) Verwenden Sie Sockpuppet-Konten, um verschiedene Linux-Distributionen davon zu überzeugen, die neueste Version herunterzuladen und zu packen

3) Sobald diese Distributionen ausgeliefert werden, können sie jedes Benutzer-/Firmensystem usw. übernehmen

Weitere technische Analysen finden Sie unter über Bluesky-Faden von Valsorda, Forscher Kevin Beaumont Und Das verriet Freund am Freitag.

Was wissen wir mehr über Jia Tan?

Im Moment ist das sehr wenig, insbesondere für jemanden, der die Aufgabe hat, eine so weit verbreitete und sensible Software wie xz Utils zu überwachen. Diese Entwicklerpersönlichkeit hat in den letzten Jahren Dutzende anderer Open-Source-Software berührt. Derzeit ist nicht bekannt, ob sich hinter diesem Benutzernamen eine echte Person verbirgt oder ob es sich bei Jia Tan um eine völlig erfundene Person handelt.