Tech-Talk: Cybererdbeben
Supply-Chain-Attacke auf openssh via der Kompressionslibrary xz-utils
Im Rahmen des Tech Talks «Cybererdbeben: Supply-Chain-Attacke auf openssh via der Kompressionslibrary xz-utils» fasste Martin Gwerder die jüngsten Ereignisse rund um die titelgebende Supply Chain Attacke zusammen und erläuterte, wie über längere Zeit gezielt Code in das Open Source Project «xz-utils» eingeschleust wurde. Dass es sich bei diesem Angriff um einen für die ganze Informatik hoch kritische Fall handelt, zeigt nicht nur der CVS Score von 10 (Maximalwert), sondern auch die Tatsache, dass die betroffene Komponente auf weltweit rund 20 Millionen Servern in Betrieb ist.
Kurz vor Ostern stiess der Microsoft-Entwickler Andres Freund bei Benchmark-Tests auf ungewöhnlich lange SSH-Login-Zeiten. Dies sollte die Basis für die Entdeckung eines vermutlich langjährig geplanten Backdoors sein. Am 29. März veröffentlichte er seine zufällige Entdeckung, dass über die neuste Version der xz-Utils ein Backdoor in OpenSSH eingeschleust wurde. Dieses ermöglicht es Angreiffern verschiedene Kommandos – insbesondere das Umgehen der SSH- Authentifizierung – auf Zielrechnern auszuführen.
Ereignisse und Social Engineering Aspekte
Unter dem Pseudonym «Jia Tan» wurde Anfang 2024 Backdoor-Code in xz-Utils eingeschleust. Doch bereits seit 2022 sind Contributions dieses Users ins XZ Repository eingeflossen. Das Vorgehen war also von langer Hand geplant. Auf den Maintainer des Open Source Projekts wurde durch «Jia Tan» Druck ausgeübt (gesundheitliche Probleme wurden ausgenutzt) und er wurde dazu gedrängt, Kontrolle über das Projekt abzugeben. So flossen zwischen August 2023 und Februar 2024 mehrere Patches, auch von «Jia Tan», unkontrolliert ins Projekt ein.
Technische Aspekte
Die eingeführten Patches in XZ Utils erlauben insbesondere das Überladen von Funktionen mittels IFUNC. Der IFUNC Mechanismus erlaubt es mehrere Implementationen einer Funktion zu erstellen und zur Laufzeit zu entscheiden, welche genutzt wird. IFUNC gilt zwar als kritisch (wird z.B. bei statischen Code Analysen oft als gefährlich markiert), wurde aber hier gewhitelisted, damit die Nutzung nicht bemängelt wird. Das eigentliche Backdoor Code wurde dann über Testfiles von Unit Tests eingeschleust. Einer dieser Tests testet den Umgang mit einem korrupten File. Das vermeintlich korrupte Test-Archiv enthält einen unkenntlich gemachten (obfuscated) Code als Skript, der vorkompilierte binaries anstelle der im Build Prozess erzeugten einschleust. Durch dieses Vorgehen wird das veränderte Verhalten in die xz Library eingeführt.
Das Backdoor
OpenSSH nutzt die xz Library via einer Abhängigkeit zum Dienst systemd-notify. Bei eingehenden SSH-Verbindungen kommt es nun zur kritischen Interaktion mit dem eingeschleusten Schadcode. Anstatt nur die RSA Signatur beim Handshake zu prüfen (RSA_public_decrypt), wird jetzt der Schadcode aufgerufen. Denn die xz Library hat zur Laufzeit unter Verwendung von IFUNC den Funktionsaufruf auf den Schadcode umgeleitet. Angreifer können so bereits vor dem Login Kommandos auf einem Zielsystem durch die Malware ausführen lassen, wobei das Kommando selbst im öffentlichen Schlüssel des Angreifers versteckt ist. Angreifer können neben einem unbekannten Kommando deshalb zusätzlich folgende Aktionen ausführen lassen:
- 01 SSH Auth bypass
- 02 Execute Shell Command
- 03 Execute Shell Command with UID/GID
Angreifer und Einschätzung von Martin Gwerder
Wer hinter dem Pseudonym «Jia Tan» steckt ist unbekannt. Unter anderem das langfristige Vorgehen lässt aber auf mehr als einen Einzeltäter deuten. Während viele hinter den Angreiffern einen «State Sponsored Actor» aus den osteuropäischen Ländern oder Israel vermuten (primär aufgrund der Commit-Zeiten von «Jia Tan»), hält Martin Gwerder auch kommerzielle Motivation für möglich. Indizien dafür sieht er beim Aufbau der Signatur des Kommandos. Es ist beispielsweise möglich, dass die Ziel-Hosts eingeschränkt werden könnten. Eine solche Einschränkung wäre unter anderem sinnvoll, wenn der Exploit durch eine Firma als «Hacking as a Service» angeboten würde.
Tech-Talk und Slides: Martin Gwerder (martin.gwerder@fhnw.ch) Professor für Cyber Security
Blog-Beitrag: Simon Freiermuth (simon.freiermuth@fhnw.ch) Assistent und MSE Student
Kommentare
Keine Kommentare erfasst zu Tech-Talk: Cybererdbeben