Das Adoptium-Projekt produziert hochwertige Java-Laufzeitumgebungen für den Einsatz in unternehmenskritischen Umgebungen. Für das Projekt und unsere Nutzer ist es von großer Bedeutung, dass die von uns bereitgestellte Software sowohl sicher als auch geschützt ist. Adoptium folgt einem Satz grundlegender, solider und sicherer Softwareentwicklungspraktiken, die auf bewährten Verfahren basieren und zur Überprüfung der Integrität unserer Lieferergebnisse herangezogen werden können.
Sichere Entwicklungspraktiken
Unsere Ziele für die sichere Entwicklung sind:
-
Sicherstellen, dass unsere Community, Prozesse und Technologien auf sichere Softwareentwicklung ausgelegt sind.
-
Alle Komponenten des Prozesses und der Software vor Manipulation und unbefugtem Zugriff schützen.
-
Gut gesicherte Software mit minimalen Sicherheitslücken durchgehend zu produzieren.
-
Angemessen auf Schwachstellen zu reagieren und zu verhindern, dass ähnliche Schwachstellen in der Zukunft auftreten.
Adoptium erfüllt diese sicheren Entwicklungsziele durch die Einhaltung folgender Praktiken:
- Herkunft und vertrauenswürdige Quellen
-
Adoptium erstellt Quellcode aus vertrauenswürdigen Quell-Repositories und bezieht Abhängigkeiten sowie Tools von vertrauenswürdigen Standorten. Das Temurin-Build-Projekt enthält die Open-Source-Programme bzw. „Rezepte" zur Erstellung unserer Releases. Diese Build-Skripte laufen auf virtuellen Maschinen und Betriebssystemen, die das Projekt von vertrauenswürdigen Anbietern bezieht, und verwenden Tools wie Compiler und Installationsprogramme von vertrauenswürdigen Standorten. Die Laufzeitumgebung selbst wird aus dem von OpenJDK und anderen renommierten Drittanbieterprojekten gepflegten Quellcode erstellt, die eine starke Governance und Aufsicht vorweisen, um sicherzustellen, dass das resultierende Binärprodukt nur den erwarteten Code und das erwartete Verhalten enthält.
Adoptium erfasst, schützt, pflegt und teilt Herkunftsdaten für alle Komponenten jedes Software-Releases in einem Software Bill of Materials. Wir überprüfen regelmäßig die Integrität und prüfen die Herkunft jeder Abhängigkeit, um potenzielle Probleme zu identifizieren.
- Versionskontrolle und Tagging
-
Der gesamte von Adoptium-Projekten gepflegte Code wird in versionskontrollierten GitHub-Repositories unter der Adoptium-Organisation gespeichert und von der Eclipse Foundation verwaltet. Unser Code ist Open Source und steht der Community zur Überprüfung zur Verfügung, der Zugang zur Änderung des Codes ist jedoch auf gewählte und stark authentifizierte Committer beschränkt. Wir nutzen die Versionskontrollfunktionen des Repositorys, um alle am Code vorgenommenen Änderungen mit Verantwortlichkeit gegenüber dem jeweiligen Committer-Konto nachzuverfolgen, und erfordern Sekundärprüfungen, zusätzliche automatisierte Überprüfungen und Community-Überwachung, um sicherzustellen, dass die Änderungen sicher sind.
Eclipse Temurin-Releases werden aus versionskontrollierten Quellen erstellt, die in OpenJDK als Release-Qualität getaggt sind, und die resultierenden Binärprodukte werden als getaggte Releases in unserem GitHub-Repository veröffentlicht. Diese Release-Artefakte werden Endbenutzern und Weiterverteilern direkt über die Adoptium API, die Website und das Repository zur Verfügung gestellt.
- Infrastructure as Code
-
Um sicherzustellen, dass unsere Infrastruktur sicher verwaltet wird, definieren und provisionieren wir Maschinen nach den Prinzipien von Infrastructure as Code (IaC). Der Großteil der Build- und Test-Infrastruktur von Adoptium läuft auf virtuellen Maschinen, die von großen Cloud-Dienstanbietern betrieben werden. Adoptium definiert die Anforderungen und Konfiguration dieser Maschinen mithilfe von IaC-Definitionen, die im Adoptium-Infrastrukturprojekt unter Versionskontrolle gehalten werden. Dies ermöglicht es der Community zu überprüfen, welche Infrastruktur zur Produktion von Adoptiums Artefakten verwendet wird, und dieselben Definitionen zur Konfiguration von Maschinen zu nutzen, denen sie vertrauen, um dieselbe Build- und Test-Software wie das Projekt auszuführen.
IaC bietet Resilienz zur Konfiguration und Implementierung von Maßnahmen zur Sicherung der Hosting-Infrastrukturen der Umgebungen nach einer Zero-Trust-Architektur, die die Änderungen bei der Hardware-Provisionierung definiert, sowie die Möglichkeit, unsere Infrastruktur bei verschiedenen Anbietern zu betreiben und so sicherzustellen, dass wir täglich Ergebnisse gegenseitig überprüfen können.
- Reproduzierbare Builds
-
Ein wichtiger Teil der sicheren Entwicklungspraktiken von Adoptium ist die Möglichkeit für Community-Mitglieder, die von uns erstellten Builds zu verifizieren. Dies wird durch binär verifizierbare reproduzierbare Builds ermöglicht, d. h. mit denselben Quellen, Tools und Maschinenkonfigurationen kann jeder ein byteweise identisches Ergebnis erzeugen. Wir stellen sicher, dass unser Quellcode, unsere Build-Skripte und unsere Infrastruktur gut definiert und versionskontrolliert sind. Wir veröffentlichen Informationen darüber, wie Adoptium-Binärprodukte reproduziert werden können, und ermutigen andere, diese Builds zu verifizieren, indem sie ihre Build-Ergebnisse bei gleichen Eingaben und Prozessen überprüfen.
Adoptium stellt Software Bill of Material (SBOM)-Attestierungen für die Herkunft von Eclipse Temurin-Builds bereit. Die SBOM ist neben jedem unserer Temurin-Release-Artefakte verfügbar.
- Tests und Code-Signierung
-
Adoptium validiert und verifiziert die Eclipse Temurin-Releases mithilfe einer umfangreichen Suite von Softwaretests. Diese Tests werden vom Adoptium AQAvit-Projekt gepflegt. Diese Tests sind darauf ausgelegt sicherzustellen, dass die Binärprodukte für den unternehmenskritischen Produktionseinsatz bereit sind. AQAvit-Tests prüfen die funktionale Korrektheit, Sicherheitslage, Leistungsmerkmale und Dauerhaftigkeit jedes Binärprodukts, bevor es veröffentlicht wird.
AQAvit-Tests umfassen sowohl intern im Projekt entwickelte als auch Drittanbieter-Test-Suites und -Anwendungen, um sicherzustellen, dass das Binärprodukt das erwartete Verhalten zeigt. Die Qualitätssicherung ist gestaffelt über den gesamten Release-Prozess, mit nächtlichen Tests der Entwicklungsarbeit, um Anomalien schnell zu identifizieren und zu beheben, zusätzlich zu rigorosen Release-Tests.
Java-Spezifikations-Konformitätstests und AQAvit-Qualitätssicherungstests müssen bestanden werden, bevor ein Eclipse Temurin-Binärprodukt für ein Release bereit ist. Erst wenn alle Release-Tests abgeschlossen sind, wird das Binärprodukt zusammen mit den unterstützenden Metadaten und dem Software Bill of Materials veröffentlicht. Adoptium stellt eine kryptografisch sichere Code-Signatur bereit, die sicherstellt, dass das Release-Binärprodukt eindeutig als offizielles Adoptium-Release identifizierbar ist.
- Audits und Verifizierung
-
Alle Aspekte eines Adoptium-Releases werden öffentlich durchgeführt, mit Ausnahme der Java-Kompatibilitätstests mithilfe des Oracle Technology Compatibility Kit (TCK). Das TCK ist kein offener Code und unsere Lizenz mit Oracle erlaubt es nicht, die Kompatibilitätstests öffentlich durchzuführen. Das AQAvit-Testing ist jedoch vollständig Open-Source-Code, und die Ergebnisse werden zur öffentlichen Überprüfung bereitgestellt. Der Quellcode wird in Open-Source-Repositories gepflegt, und die verwendeten Tools sind in unseren Infrastrukturdateien beschrieben. Wir begrüßen Audits und die Verifizierung der Build-, Test- und Veröffentlichungsaktivitäten des Projekts.
Alle Temurin-Release-Binärprodukte haben einen entsprechenden kryptografischen Hash, der Endbenutzern über die API, die Website und das Github-Release-Repository zur Verfügung steht. Binärprodukte sind mit dem Eclipse Code-Signierungszertifikat signiert, das von einer etablierten Zertifizierungsstelle ausgestellt wird, sodass die Betriebssysteme unserer Nutzer oder andere Tools und Dienste die Gültigkeit der Signaturen vor der Verwendung bestätigen können.
Adoptium nimmt alle Sicherheitslücken ernst und hält sich an die Eclipse Foundation Vulnerability Reporting Policy. Die Benachrichtigung über potenzielle oder tatsächliche Schwachstellen in den Produkten oder sicheren Softwareentwicklungspraktiken muss dieser Meldepolitik folgen.

