Open-Source-Supply-Chain-Angriff: Der xz-Backdoor-Vorfall

2025-03-22

Im März 2024 wurde eine Hintertür in xz entdeckt, einer weit verbreiteten Komprimierungssoftware. Ein böswilliger Maintainer unter dem Pseudonym Jia Tan hatte diese Hintertür heimlich über drei Jahre hinweg eingefügt. Die Hintertür ermöglichte die Remote-Code-Ausführung auf Maschinen mit installiertem ssh. Ihre Entdeckung war zufällig, durch einen Postgres-Entwickler, der nicht verwandte Leistungsprobleme untersuchte. Dieser Artikel beschreibt die Funktionsweise der Hintertür und schlägt die Verwendung von Build-Reproduzierbarkeit zur Erkennung vor. Die Hintertür beinhaltete die Änderung des xz-Build-Prozesses, um eine schädliche Objektdatei einzuschleusen, und die Nutzung des ifunc-Mechanismus von glibc, um die RSA_public_decrypt-Funktion von ssh zu hooken. Der Autor befürwortet den Build von Software aus vertrauenswürdigen Quellen und die Nutzung von Build-Reproduzierbarkeit zur Verbesserung der Sicherheit der Software-Supply-Chain, wie z. B. den Vergleich von GitHub-Releases mit vom Maintainer bereitgestellten Tarballs und die Überprüfung der binären Konsistenz zwischen Build-Quellen.

Mehr lesen
(luj.fr)

NixOS Build-Reproduzierbarkeit: Besser als gedacht

2025-02-12

Die Reproduzierbarkeit von Builds in NixOS war lange umstritten. Während das funktionale Paketmanager-Modell zur Reproduzierbarkeit von Builds beiträgt, garantiert es nicht die bitgenaue Reproduzierbarkeit für alle Builds. Ein neuer Forschungsartikel untersucht Nixpkgs (die Paketkollektion von NixOS) empirisch über sechs Jahre und zeigt eine stetig steigende Reproduzierbarkeitsrate – von 69 % im Jahr 2017 auf 91 % im April 2023. Die Studie identifiziert auch häufige Ursachen für Nicht-Reproduzierbarkeit, wie eingebettete Datumsangaben, uname-Ausgaben, Umgebungsvariablen und Build-IDs. Diese Ergebnisse zeigen, dass Nixpkgs, obwohl es bereits hohe Reproduzierbarkeitsraten erreicht, noch Verbesserungspotenzial hat, indem diese Punkte angegangen werden. Diese Forschung ist entscheidend, um das Vertrauen in das Nix-Substitutions-Protokoll zu stärken und die Entwicklung von verteilten Caching-Lösungen basierend auf der Reproduzierbarkeit von Builds voranzutreiben.

Mehr lesen
(luj.fr)