Projektstatus: Im Einsatz

Reproducible Builds in der Wirklichkeit

Wir machen die Lieferketten von Softwareproduktionen sicherer.

Holger 'h01ger' Levsen
#Runde4 #Sicherheit #Softwareinfrastruktur

Welches Problem willst Du mit Deinem Projekt lösen?

Das Problem, das Reproducible Builds löst, ist die Absicherung der „Lieferkette“ vom Quellcode zum Binärcode über Umkehrung: Software-Distributionen verbreiten Software in Binärform, allerdings läßt sich (mit vertretbaren Aufwand) nur der Quellcode von freier und Open-Source-Software auf Fehler untersuchen, nicht jedoch der Binärcode.
Dabei ist auch nicht überprüfbar, ob eine Binärversion wirklich von dem Sourcecode abstammt, von dem sie abstammen soll.
Das erhöht die Wahrscheinlichkeit von erfolgreichen „Man in the Middle“-Attacken und kann dazu führen, dass Rechner kompromittiert werden.
Eine mutwillige Veränderung der Distribution eines Programms bedeutet im schlimmsten Fall, dass politisch sensible Nutzer wie Dissident*innen, Journalist*innen und Whistleblower*innen gefährdet werden. Auch ein indirekter Angriff auf solche Nutzer*innen über Entwickler*innen und Admins ist möglich.

Wie löst Dein Projekt das Problem?

Da es technisch unmöglich nachzuvollziehen ist, aus welchem Quellcode exakt ein bestimmtes Binary kommt, soll der Quellcode mehrmals von unterschiedlichen Entitäten gebaut werden. Wenn diese zum selben Ergebnis kommen, ist davon auszugehen, das sowohl der Sourcecode als auch die Entwicklungsumgebung übereinstimmen und so vorliegen, wie von den Entwickler*innen intendiert.
Bis jetzt wurde an Reproducible Builds in Debian und anderen Distributionen überwiegend theoretisch geforscht und dabei große Fortschritte erzielt. Nun geht es darum, diese theoretischen Arbeiten für Benutzer*innen und Entwickler*innen konkret nutzbar zu machen, so dass diese sicher sein können, Binärcode zu nutzen, der mit Sicherheit von dem Quellcode abstammt, von dem er abstammen soll.

Wem das jetzt noch zu kompliziert war, dem erklärt Holger Reproducible Builds hier nochmal ausführlich: Oder hier: https://reproducible-builds.org/docs/definition/

An wen richtet sich Dein Tool?

Es gibt zwei Zielgruppen, Entwickler*innen und User*innen, die dieses Projekt auf unterschiedliche Weise informieren und schützen soll.
Wir wollen der Welt zeigen, dass es möglich ist, mehr als 25.000 Software-Pakete auf zehn Architekturen Bit für Bit identisch zu bauen und so zu verteilen, dass jede*r dies nachvollziehen kann. Wenn Debian das kann, dann kann das auch Ubuntu, RedHat und Microsoft und so weiter. Unser langfristiges Ziel ist daher, die Art und Weise, wie Software gebaut und verteilt wird, nachhaltig zu ändern.