Die Entwickler von openSUSE haben über die Erfolge des Projekts zur Gewährleistung der Unterstützung von reproduzierbaren Builds berichtet. Im Rahmen des Projekts wurde ein konzeptioneller Fork der Distribution Reproducible-openSUSE (RBOS) erstellt, für den die Möglichkeit erreicht wurde, 100 % identische Binärpakete basierend auf einem angebotenen Repository mit Quelltexten, das 3300 Pakete umfasst, zu bauen. Im Verlauf der Arbeit an dem Projekt wurden etwa 40 Patches (1, 2, 3) vorbereitet, die Probleme mit der reproduzierbaren Neubau von Paketen lösen. Ungefähr die Hälfte dieser Patches wurde bereits an Upstream-Projekte weitergegeben. Die Builds von Reproducible-openSUSE sind derzeit nur für Tests gedacht und nicht für den Einsatz in Produktionssystemen empfohlen, da für sie keine Updates zur Behebung von Sicherheitsanfälligkeiten bereitgestellt werden.
Das Projekt ermöglicht es dem Benutzer, eigene Builds zu erstellen, die bitgenau mit den angebotenen Vorlagen übereinstimmen, um zu überprüfen, dass die in den Paketen verteilten Binärdateien aus den bereitgestellten Quelltexten erstellt wurden und keine versteckten Änderungen enthalten. Die Möglichkeit, die Identität der Binärversion zu überprüfen, ermöglicht es, sich nicht nur auf das Vertrauen in die Build-Infrastruktur der Distribution zu verlassen, da eine Kompromittierung des Compilers oder des Build-Tools zu versteckten Hintertüren führen kann.
Bei der Erstellung von reproduzierbaren Builds werden Faktoren wie genaue Übereinstimmung der Abhängigkeiten, Verwendung unveränderter Kompositionen und Versionen des Build-Tools, identischer Satz von Optionen und Standardeinstellungen sowie die Beibehaltung der Reihenfolge der Datei-Builds (Anwendung derselben Sortiermethoden) berücksichtigt. Die Hinzufügung von nicht deterministischen Metainformationen durch den Compiler, wie zufällige Werte, Verweise auf Dateipfade und Daten über Datum und Uhrzeit des Builds, muss deaktiviert werden. Auch Fehler und Race Conditions im Tooling können sich auf die Reproduzierbarkeit der Builds auswirken.
Quelle: opennet.ru
