NixOS bietet eine Methode zum Schutz vor der EinfĂŒhrung von Backdoors, wie sie in XZ vorkommen.

Um in das Paketrepository nixpkgs, das in der NixOS-Distribution verwendet wird, aufgenommen zu werden, wurde ein Modus fĂŒr reproduzierbare Builds vorgeschlagen, der es ermöglicht, FĂ€lle von Backdoor-Integration im Code zu identifizieren, Ă€hnlich dem Vorfall mit dem Projekt XZ. Die vorgestellte Schutzmethode ermöglicht es, Modifikationen in den Archiven mit dem Quellcode der Veröffentlichung zu erkennen, die in den Code-Repositories fehlen.

Das Prinzip der Methode besteht darin, dass der Quellcode der neuen Version der Anwendung zweimal kompiliert wird – einmal aus dem Code, der aus dem Git-Repository heruntergeladen wurde, und einmal aus dem Code, der in vorgefertigten Archiven verteilt wird. Wenn die resultierenden BinĂ€rdateien unterschiedlich sind, ergibt sich ein Grund fĂŒr den Verdacht auf versteckte Modifikationen im Repository oder in der Archivdatei mit dem Code.

Erinnern wir uns daran, dass im Fall des Projekts XZ das Code-Repository keine verdĂ€chtigen Änderungen enthielt. Die die Backdoor bildenden bösartigen Komponenten wurden innerhalb von Dateien geliefert, die im Testset zur ÜberprĂŒfung der korrekten Funktion des XZ-Dekomprimierers verwendet wurden. Die Backdoor wurde auf der Ebene des Build-Systems aktiviert, wĂ€hrend der Quellcode von XZ mit dem Code im Repository ĂŒbereinstimmte. Die aktivierenden Backdoor m4-Makros fĂŒr das Automake-Toolset waren nur im fertigen Archiv mit dem Code enthalten und fehlten im Repository.

Die Backdoor in XZ wurde von einem Angreifer implementiert, der den Status eines Maintainern im Projekt erlangt hatte. Die Implementierung der Backdoor blieb sofort unbemerkt, da die Distributionen hauptsĂ€chlich Pakete erstellen, indem sie Code aus vorkompilierte Archiven herunterladen, da bei der Code-Download fĂŒr den Build eine einzige PrĂŒfziffer zur IntegritĂ€tsĂŒberprĂŒfung der Archivdatei ausreicht und Spiegelserver genutzt werden können. Der Schwerpunkt bei der ÜberprĂŒfung des Codes liegt auf der Analyse des Inhalts des Repositories, weshalb nicht offensichtliche Unterschiede in den Archiven nicht immer sofort erkannt werden können.

Um die ÜberprĂŒfung der Übereinstimmung von Archivdateien und Repository-Schnitten, die den Veröffentlichungen entsprechen, zu vereinfachen, haben einige Open-Source-Projekte wie PostgreSQL ein System zur reproduzierbaren Erstellung von Archiven eingefĂŒhrt. In diesem Fall wird ein Werkzeugset bereitgestellt, mit dem Sie Ihr Archiv eigenstĂ€ndig aus dem Code erstellen können, das vollstĂ€ndig mit dem bereitgestellten Archiv fĂŒr den Download ĂŒbereinstimmt. Wenn das unabhĂ€ngig erstellte Archiv und das vom Hauptprojekt bereitgestellte Archiv unterschiedlich sind, liegt eine Kompromittierung des Repositories oder des Referenzarchivs vor.

Das Problem ist, dass eine solche Methode nur in bestimmten FĂ€llen praktiziert wird, wĂ€hrend viele Projekte weiterhin zusĂ€tzliche Artefakte in die Archive aufnehmen, die im Hauptrepository fehlen, wie man-Seiten, Dokumentationen, Beispiele, Skripte zur Erstellung von Paketen fĂŒr Distributionen und zusĂ€tzliche Build-Dateien. Dies geschieht hauptsĂ€chlich aus historischen GrĂŒnden und aufgrund der Besonderheiten im Prozess der Veröffentlichung. Eine einfache ÜbereinstimmungsprĂŒfung von den Inhalten des Repositories und des Archivs ist in diesem Fall nicht ausreichend.

Als Lösung wurde vorgeschlagen, die BinĂ€rdateien der Veröffentlichung sowohl aus dem Repository (zum Beispiel kann das automatisch generierte Archiv in GitHub fĂŒr das Release-Tag verwendet werden) als auch aus dem Archiv, das vom Maintainer vorbereitet wurde, zu kompilieren und dann das Ergebnis zu vergleichen. Als Experiment wurde eine solche ÜberprĂŒfung bisher nur fĂŒr das Paket „xz“ vorgeschlagen. Wenn das Experiment erfolgreich ist, wird angestrebt, diese ÜberprĂŒfung auch fĂŒr andere Pakete in nixpkgs zu verwenden.

Quelle: opennet.ru

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster