Reproducible Builds

Gewährleistung der Sicherheit und Integrität von Open-Source-Software während des gesamten Lebenszyklus vom Quell- bis zum Binärcode

Eckdaten

Status:
Laufend
Investition
353.430,00 €
Investitionsjahr(e)
2023, 2024

Das 2015 gegründete Projekt Reproducible Builds konzentriert sich auf die Absicherung von Open-Source-Software-Produktionsketten. Sein Ziel ist es, Angriffe auf die komplexen Systeme zu verhindern, die die digitale Infrastruktur der modernen Gesellschaft bilden. Die Reproducible-Builds-Initiative unterstützt Tausende von Projekten für freie und quelloffene Software (FOSS: Free and Open Source Software) und sorgt dafür, dass ihre Build-Systeme gegen potenzielle Angriffe und vor Manipulationen geschützt sind. Zu den bemerkenswerten Erfolgen gehört die Verbesserung der Sicherheit von Projekten wie Tails, einem freien Betriebssystem, das von Journalist*innen bei hochkarätigen Untersuchungen eingesetzt wird.

Reproducible Builds befasst sich mit einem dringenden Problem der Integrität der heutigen digitalen Infrastruktur - obwohl Sicherheitsexpert*innen den Quellcode von FOSS-Projekten analysieren können, wird fast die gesamte Software, die wir tatsächlich nutzen, im nächsten Schritt von einem komplexen Netzwerk von Drittparteien zusammengestellt. Böswillige Akteur*innen können Tausende von Systemen unterwandern, indem sie die Software manipulieren, nachdem sie erst einmal geschrieben wurde, aber bevor sie die Computer, Telefone oder andere Geräte der Nutzer*innen erreicht. Dies kann durch die Manipulation von App-Stores und anderen Software-Repositorys geschehen oder durch das Hacken der Build-Systeme, die von Menschen lesbaren Quellcode in binären Computercode umwandeln.

Langfristig zielt das Projekt darauf ab, reproduzierbare Builds als de facto methodische Voraussetzung für Softwareentwicklung und -verteilung zu etablieren. So wie die Verwendung eines verteilten Revisionskontrollsystems einst als bahnbrechend galt und heute Standard ist, will das Team dasselbe für reproduzierbare Builds erreichen.


Warum ist das wichtig?

In den letzten Jahren gab es eine deutliche Zunahme von Angriffen auf die Software-Produktionskette, und Reproducible Builds spielt eine entscheidende Rolle bei der Abwehr von Angriffen, indem es einen Rahmen und Werkzeuge für FOSS-Projekte anbietet, um die Integrität ihres Codes vom Quellcode bis zum Binärcode auf den Geräten der Nutzer*innen zu validieren.

Die Wirkung des Projekts geht jedoch über einzelne Softwareprojekte hinaus und trägt zur allgemeinen Sicherheit von Millionen von Nutzer*innen weltweit bei. Mit denselben Techniken können Hintertüren aufgedeckt werden, die durch die Kompromittierung von Build-Farmen (Gruppen von Build-Systeme, die Softwarekomponenten vorbereiten und kompilieren, damit sie eingesetzt werden können), Paket-Repositorys oder sogar den eigenen Laptops der Entwickler*innen eingebaut wurden. Das Framework und die Tools von Reproducible Builds können sogar aufdecken, wenn Organisationen oder Einzelpersonen durch Erpressung oder auf Anweisung der Regierung gezwungen wurden, Änderungen vorzunehmen. Die Nutzer*innen einiger bekannter Projekte, wie Tor, Tails und Debian, sind heute dank die Arbeit von Reproducible Builds sicherer.

Was unterstützen wir?

Der Sovereign Tech Fund gibt Arbeiten in mehreren Bereichen in Auftrag, um die langfristige Nachhaltigkeit dieser wichtigen Initiative für die Sicherheit der Software-Lieferkette zu verbessern. Der Schwerpunkt liegt dabei auf der Wartung kritischer Werkzeuge sowie auf der Erforschung und Weiterentwicklung der Architektur von Reproducible Builds. Dabei konzentrieren sich die Entwickler*innen auf den Aufbau einer vollständig reproduzierbaren Computing-Plattform mit dem Betriebssystem Debian Linux als Beispiel für ein vollständig reproduzierbares großes und komplexes Softwareprojekt.

  • Entwicklung eines zuverlässigen Archiv-Snapshot-Dienstes für den Zugriff auf Softwarepakete auf der Grundlage von Versionsnummern.
  • Verbesserung der Fähigkeiten des „Diffoscope“-Werkzeugs, bei dem ausstehende Funktionswünsche wie der Vergleich von Kernelmodul-Signaturen berücksichtigt werden, um umfassende Einblicke in Probleme der Nicht-Reproduzierbarkeit zu ermöglichen.
  • Verbesserung der Reproduzierbarkeit des Debian-Installers, Zusammenführen von Code und systematisches Testen nach der Veröffentlichung von Debian 12.0.
  • Organisieren von Online-Sprints, um den Rückstau an reproduzierbarkeitsbezogenen Patches zu beseitigen und die laufende Verbesserung von Softwareprojekten sicherzustellen.
  • Erweiterung der Funktionalität des Test-Frameworks, um neue Komponenten unterzubringen und Elemente wie den Debian-Installer richtig zu testen.
  • Entwicklung von reproduzierbaren „Paket-Rebuildern“, um die Beständigkeit der offiziellen Build-Server zu bestätigen und sicherzustellen, dass sie nicht kompromittiert wurden.
  • Durchführung einer Interview-Serie mit Projektunterstützer*innen, um ihre Beiträge und Ideen innerhalb der Community für reproduzierbare Builds zu präsentieren.

More technologies

Alle Technologien