Pratiques de développement logiciel sécurisé d’Adoptium®

Le projet Adoptium produit des environnements d’exécution Java de haute qualité destinés à être utilisés dans des environnements critiques. Il est important pour le projet et pour nos utilisateurs que le logiciel que nous livrons soit à la fois sûr et sécurisé. Adoptium suit un ensemble de pratiques de développement logiciel fondamentales, solides et sécurisées, basées sur des pratiques établies qui peuvent être vérifiées pour garantir l’intégrité de nos livrables.

Pratiques de développement sécurisé

Nos objectifs en matière de développement sécurisé sont les suivants :

  • Garantir que notre communauté, nos processus et notre technologie sont conçus pour un développement logiciel sécurisé.

  • Protéger tous les composants du processus et du logiciel contre toute altération et tout accès non autorisé.

  • Produire des logiciels bien sécurisés avec un minimum de vulnérabilités de sécurité.

  • Répondre de manière appropriée aux vulnérabilités et prévenir l’apparition de vulnérabilités similaires à l’avenir.

Adoptium atteint ces objectifs d’ingénierie sécurisée en adhérant aux pratiques suivantes :

Provenance et sources de confiance

Adoptium construit les sources à partir de dépôts de confiance, et prend ses dépendances et ses outils depuis des emplacements de confiance. Le projet de build Temurin contient les programmes open source ou « recettes » permettant de construire nos versions. Ces scripts de build s’exécutent sur des machines virtuelles et des systèmes d’exploitation fournis par le projet auprès de fournisseurs de confiance, et utilisent des outils tels que des compilateurs et des installateurs provenant d’emplacements de confiance. L’environnement d’exécution lui-même est construit à partir du code source maintenu par OpenJDK et d’autres projets tiers notables ayant une solide tradition de gouvernance et de supervision, afin de garantir que le binaire résultant ne contient que le code et le comportement attendus.

Adoptium collecte, protège, maintient et partage les données de provenance de tous les composants de chaque version logicielle dans une nomenclature logicielle (SBOM). Nous vérifions régulièrement l’intégrité et contrôlons la provenance de chaque dépendance afin d’identifier les problèmes potentiels.

Contrôle de version et étiquetage

Tout le code maintenu par les projets Adoptium est hébergé dans des dépôts GitHub sous contrôle de version au sein de l’organisation Adoptium et administré par l’Eclipse Foundation. Notre code est open source et accessible à l’examen de la communauté, mais l’accès pour modifier le code est limité aux contributeurs élus et fortement authentifiés. Nous utilisons les fonctionnalités de contrôle de version du dépôt pour suivre toutes les modifications apportées au code avec responsabilisation du compte individuel du contributeur, et nous exigeons des révisions secondaires, des vérifications automatisées supplémentaires et une supervision de la communauté pour s’assurer que les modifications sont sûres et sécurisées.

Les versions d’Eclipse Temurin sont construites à partir de sources sous contrôle de version étiquetées comme versions de qualité dans OpenJDK, et les binaires résultants sont publiés en tant que versions étiquetées dans notre dépôt GitHub. Ces artefacts de version sont mis à la disposition directe des utilisateurs finaux et des redistributeurs via l’API, le site web et le dépôt Adoptium.

Infrastructure en tant que code

Pour garantir que notre infrastructure est gérée de manière sécurisée, nous définissons et provisionons les machines selon les principes de l’Infrastructure en tant que Code (IaC). La majeure partie de l’infrastructure de build et de test d’Adoptium fonctionne sur des machines virtuelles exploitées par de grands fournisseurs de services cloud. Adoptium définit les exigences et la configuration de ces machines à l’aide de définitions IaC conservées sous contrôle de version dans le projet d’infrastructure Adoptium. Cela permet à la communauté de vérifier les détails de l’infrastructure utilisée pour produire les artefacts d’Adoptium, et de réutiliser ces mêmes définitions pour configurer des machines de confiance afin d’exécuter les mêmes logiciels de build et de test que le projet.

L’IaC offre une résilience pour configurer et mettre en œuvre des mesures de sécurisation des infrastructures d’hébergement des environnements selon une architecture de confiance zéro, en définissant les modifications de provisionnement matériel et la disponibilité pour exécuter notre infrastructure chez différents fournisseurs, garantissant ainsi notre capacité à croiser les résultats quotidiennement.

Builds reproductibles

Un aspect important de la pratique d’ingénierie sécurisée d’Adoptium est la capacité pour les membres de la communauté de vérifier les builds que nous produisons. Cela est rendu possible par des builds binaires vérifiablement reproductibles, ce qui signifie qu’avec les mêmes sources, outils et configuration de machine, toute personne peut produire un résultat identique octet par octet. Nous veillons à ce que notre code source, nos scripts de build et notre infrastructure soient bien définis et sous contrôle de version. Nous publions des informations sur la manière de reproduire les binaires Adoptium, et nous encourageons d’autres personnes à vérifier ces builds en contrôlant que leurs résultats correspondent aux mêmes entrées et processus.

Adoptium fournit des attestations de nomenclature logicielle (SBOM) pour la provenance des builds Eclipse Temurin. Le SBOM est disponible aux côtés de chacun de nos artefacts de version Temurin.

Tests et signature de code

Adoptium valide et vérifie les versions d’Eclipse Temurin à l’aide d’une suite complète de tests logiciels. Ces tests sont maintenus par le projet AQAvit d’Adoptium. Ces tests sont conçus pour garantir que les binaires sont prêts pour une utilisation en production critique. Les tests AQAvit vérifient la correction fonctionnelle, la posture de sécurité, les caractéristiques de performance et la robustesse de chaque binaire avant sa publication.

Les tests AQAvit comprennent à la fois ceux développés en interne au projet et des suites de tests et applications tiers, afin de garantir que le binaire se comporte comme prévu. L’assurance qualité est mise en œuvre tout au long du processus de publication, avec des tests nocturnes des travaux de développement pour s’assurer que les anomalies sont rapidement identifiées et traitées, en plus des tests rigoureux de publication.

Les tests de conformité aux spécifications Java et les tests d’assurance qualité AQAvit doivent réussir avant qu’un binaire Eclipse Temurin soit prêt à être publié. Ce n’est que lorsque tous les tests de publication ont été effectués que le binaire est publié, accompagné des métadonnées et de la nomenclature logicielle. Adoptium fournit une signature de code cryptographiquement sécurisée qui garantit l’unicité du binaire de publication en tant que version officielle Adoptium.

Audits et vérification

Tous les aspects d’une version Adoptium sont conduits publiquement, à l’exception des tests de compatibilité Java utilisant l’Oracle Technology Compatibility Kit (TCK). Le TCK n’est pas du code ouvert et notre licence avec Oracle ne permet pas que les tests de compatibilité soient conduits en public. Cependant, les tests AQAvit sont tous en code open source et les résultats sont mis à la disposition pour un examen public. Le code source est conservé dans des dépôts open source, et les outils utilisés sont décrits dans nos fichiers d’infrastructure. Nous accueillons favorablement les audits et la vérification des activités de build, de test et de publication du projet.

Les binaires de version Temurin disposent tous d’un hachage cryptographique correspondant, accessible aux utilisateurs finaux via l’API, le site web et le dépôt de versions GitHub. Les binaires sont signés avec le certificat de signature de code Eclipse émis par une autorité de certification reconnue, afin que les systèmes d’exploitation ou autres outils et services de nos utilisateurs puissent confirmer la validité des signatures avant utilisation.

Adoptium prend toutes les vulnérabilités de sécurité au sérieux et adhère à la politique de signalement des vulnérabilités de l’Eclipse Foundation. La notification de vulnérabilités potentielles ou réelles dans les produits ou dans les pratiques de développement logiciel sécurisé doit suivre cette politique de signalement.

edit icon

Aidez-nous à améliorer cette documentation !

Toutes les documentations Adoptium sont open source. Une erreur ou un point flou ?

Auteurs de la documentation
tellisongdams
Join our Slack channel to discuss and reach out to maintainers.Join Slack