Aller au contenu principal

Bonnes pratiques d'adoption du CRA

Développement sécurisé de composants FOSS

Comment les projets open source peuvent intégrer la sécurité tout au long du cycle de vie, assurer une gouvernance transparente et traiter les vulnérabilités en proportion du risque, afin que les intégrateurs en aval puissent gérer leurs propres obligations au titre du CRA.

Sur cette page

Permettre la gestion des risques en aval

Pour les développeurs et mainteneurs de composants FOSS, l’approche fondée sur les risques du CRA consiste à permettre la gestion des risques en aval, plutôt qu’à assumer une responsabilité réglementaire directe.

L’Office fédéral allemand de la sécurité de l’information (BSI) a publié la TR-03185-2 Secure Software Lifecycle for Open Source Software, un cadre de référence pratique sur la manière d’aborder le développement de logiciels open source sous l’angle de la sécurité. Les principes ci-dessous s’en inspirent.

Une orientation fondée sur les risques

La logique fondée sur les risques est le moteur central du CRA. Plutôt que de prescrire des contrôles rigides et uniformes, l’analyse doit reposer sur des critères orientés résultats, pouvant être mis en œuvre selon :

Criticité et usage

La criticité du projet et son contexte d’utilisation.

Impact d’une défaillance

L’impact potentiel des défaillances de sécurité.

Maturité de la communauté

La maturité et les ressources de la communauté.

Exposition dans la chaîne d’approvisionnement

L’exposition du logiciel au sein des chaînes d’approvisionnement.

Cette proportionnalité est essentielle pour les FOSS, dont les projets vont de petites bibliothèques maintenues par des bénévoles à des composants d’infrastructure largement déployés.

La sécurité tout au long du cycle de vie

La sécurité dès la conception exige que les considérations de cybersécurité soient intégrées à l’ensemble du cycle de vie du logiciel. Dans un modèle fondé sur les risques et aligné sur le CRA, la sécurité n’est pas une activité distincte mais un processus continu et proportionné, dans lequel chaque phase contribue à la résilience globale d’un composant FOSS et soutient les obligations de conformité en aval.

  1. Conception Exigences liées à la sécurité et prise en compte des menaces.
  2. Implémentation Gestion contrôlée des modifications, revue par les pairs et outils d'analyse adaptés.
  3. Tests et validation Vérification des fonctionnalités liées à la sécurité.
  4. Publication et distribution Intégrité et authenticité des livrables.
  5. Maintenance Gestion structurée des vulnérabilités et divulgation responsable.
  6. Fin de vie Communication transparente sur l'état du support et la dépréciation.

Conception

Lors de la phase de conception, l’intégration de la sécurité commence par :

  • L’identification des exigences liées à la sécurité
  • La prise en compte de la mauvaise utilisation prévisible
  • L’analyse des surfaces d’attaque
  • Des choix d’architecture qui réduisent l’exposition

Pour les composants à plus forte criticité fonctionnelle (par exemple, authentification, cryptographie, mécanismes de mise à jour), une analyse des menaces plus structurée peut être appropriée. Au minimum, les fonctionnalités liées à la sécurité doivent être clairement documentées pour permettre leur évaluation en aval.

Implémentation

Pendant l’implémentation, la sécurité du cycle de vie exige :

  • Une gestion contrôlée des modifications
  • Des dépôts sous contrôle de version
  • Des pratiques de revue par les pairs
  • Une discipline de codage sécurisé

Les projets plus matures peuvent intégrer des outils automatisés d’analyse statique ou d’analyse des dépendances. L’objectif n’est pas d’imposer des outils, mais d’assurer des pratiques de développement cohérentes et traçables.

Tests et validation

Les tests et la validation confirment que les fonctionnalités liées à la sécurité fonctionnent comme prévu. Les mesures typiques comprennent :

  • Les tests fonctionnels de l’authentification et des contrôles d’accès
  • Les contrôles de validation des entrées
  • Des tests de sécurité de base avant chaque publication

Les projets plus exposés peuvent intégrer des outils SAST ou DAST automatisés dans leurs pipelines CI/CD. Les tests permettent de détecter les vulnérabilités avant la distribution.

Publication et distribution

Des pratiques de publication sécurisées sont des contrôles essentiels de la chaîne d’approvisionnement. Les pratiques clés comprennent :

  • Un versionnage clair
  • Un journal des modifications documenté
  • La protection de l’intégrité des artefacts publiés
  • La transparence sur les dépendances incluses (par exemple, génération d’un SBOM)

Les projets plus avancés peuvent mettre en place des versions signées ou des builds reproductibles au moyen de pipelines immuables. Cette phase renforce la confiance et la traçabilité en aval.

Maintenance

L’intégration de la sécurité ne s’arrête pas à la publication. La maintenance exige :

  • La surveillance des vulnérabilités nouvellement divulguées
  • Une gestion structurée des vulnérabilités
  • L’application rapide des correctifs
  • Une communication claire sur les mises à jour

La maintenance continue soutient directement les obligations du CRA relatives au cycle de vie et réduit le risque systémique dans la chaîne d’approvisionnement.

Fin de vie

Une communication transparente sur la fin de vie est essentielle pour éviter des risques non maîtrisés. Les projets doivent :

  • Communiquer clairement l’état du support
  • Annoncer le calendrier de dépréciation
  • Recommander des solutions de migration le cas échéant

Les utilisateurs en aval, y compris les PME, peuvent ainsi planifier des transitions sécurisées et éviter les dépendances qui ne sont plus maintenues.

La gouvernance et la transparence comme mesures de maîtrise des risques

Dans les écosystèmes open source, les mécanismes de gouvernance servent souvent d’outils principaux d’atténuation des risques. La transparence, la documentation et les processus communautaires ne sont pas de simples aspects administratifs, mais des leviers fondamentaux de la sécurité. Quatre éléments sont essentiels :

Processus documentés

Des procédures claires et écrites, de la planification au déploiement. Elles garantissent la cohérence et réduisent les erreurs.

Rôles et responsabilités définis

Des missions et des responsabilités attribuées pour les tâches de sécurité. Cela évite toute ambiguïté et garantit que chaque tâche a un responsable.

Canaux de signalement clairs

Des mécanismes établis et simples d’utilisation pour signaler d’éventuels problèmes de sécurité, en interne comme en externe.

Communication publique

Une divulgation transparente et rapide des vulnérabilités et des solutions disponibles auprès des utilisateurs et des parties prenantes.

Ces mesures réduisent le risque systémique en renforçant la responsabilisation et en permettant aux utilisateurs en aval d’évaluer la fiabilité d’un projet.

Enjeux pour la sécurité de la chaîne d'approvisionnement

Les composants open source sont profondément ancrés dans les chaînes d’approvisionnement logicielles modernes. Une approche du développement FOSS fondée sur les risques doit donc prendre en compte non seulement les risques propres au projet, mais aussi les risques systémiques propagés par la réutilisation et la redistribution. La résilience de la chaîne d’approvisionnement est favorisée en encourageant :

  • Des pratiques de publication sécurisées
  • La traçabilité des modifications
  • La transparence sur l’état de la maintenance
  • Un point de contact sécurité clairement identifié

Ces pratiques améliorent la capacité des intégrateurs en aval, y compris les petites et moyennes entreprises, à réaliser des évaluations des risques et à respecter leurs obligations réglementaires ou contractuelles.

Attestations de sécurité volontaires (article 25)

La sécurité d’un produit final est indissociable de l’intégrité de ses composants en amont. Alors que le CRA entre dans sa phase de mise en œuvre, le secteur fait face à un défi majeur : comment vérifier la sécurité des millions de dépendances open source qui constituent l’épine dorsale des infrastructures mondiales, sans étouffer le modèle collaboratif qui les a fait naître ?

La solution la plus viable réside dans l’article 25, qui définit un cadre pour des attestations de sécurité volontaires. En passant de la correction réactive à une transparence proactive et standardisée, il permet aux gestionnaires open source à but non lucratif de fournir des garanties graduées et fondées sur les risques, en contrepartie d’une rémunération couvrant des coûts de fonctionnement transparents, ce qui fait de la conformité réglementaire un moteur durable de résilience de la chaîne d’approvisionnement. Trois piliers soutiennent cette résilience :

  1. Faciliter une diligence raisonnable efficace grâce à des artefacts de confiance

    Le CRA impose aux fabricants d’exercer une diligence raisonnable rigoureuse sur chaque composant intégré, y compris les logiciels libres et open source. Standardiser les attestations sous forme d’artefacts vérifiables et lisibles par machine met fin à l’« attaque par déni de service » que subissent les mainteneurs du fait de demandes de conformité manuelles et redondantes, et fournit aux fabricants des informations cohérentes et fiables qu’ils peuvent intégrer directement dans leurs évaluations automatisées des risques.

  2. Encourager la maintenance de la sécurité tout au long de la chaîne d'approvisionnement

    La sécurité n’est pas un état figé mais un processus continu de maintenance. Les attestations créent un lien concret entre les exigences réglementaires et le soutien économique nécessaire pour assurer cette maintenance, en offrant aux fabricants un moyen structuré de soutenir financièrement les gestionnaires open source et les mainteneurs des projets critiques dont le travail de sécurité est indispensable à leur propre conformité.

  3. Renforcer la gouvernance et la résilience portées par les communautés

    La force de la chaîne d’approvisionnement logicielle réside dans sa diversité. Un modèle d’attestation strictement volontaire, proportionné et fondé sur les risques respecte les modèles de gouvernance propres à l’open source, permet aux communautés de définir leur propre posture de sécurité grâce à des niveaux de garantie gradués, et évite une obligation uniforme.

Activités de cybersécurité pour un support sur tout le cycle de vie

S’engager à maintenir et sécuriser un produit pendant toute sa durée de vie opérationnelle implique une responsabilité continue pour tous les composants intégrés, y compris les bibliothèques open source tierces. Les composants open source évoluent de manière indépendante : des vulnérabilités peuvent apparaître des années après l’intégration, des mainteneurs peuvent se retirer, le rythme des publications peut ralentir. Sans visibilité structurée sur les dépendances, surveillance continue, rigueur dans la gestion des versions et politiques de mise à jour documentées, les organisations risquent d’hériter d’une dette technique non maîtrisée et de vulnérabilités latentes dans leur chaîne d’approvisionnement. Mesures concrètes :

Tenir un SBOM continuellement à jour

Garantir la transparence et la traçabilité des dépendances d’une version du produit à l’autre.

Institutionnaliser l’évaluation des risques liés aux dépendances

Utiliser des critères tels que le niveau d’activité du projet, le délai de réponse aux vulnérabilités, la transparence de la gouvernance et la rigueur des publications.

Mettre en place une surveillance continue des vulnérabilités

Suivre les vulnérabilités nouvellement divulguées qui affectent les composants que vous livrez.

Au-delà des contrôles internes, s'impliquer en amont

Lorsque des dépendances sont critiques pour la mission, les organisations devraient envisager de contribuer des correctifs, de financer des mainteneurs ou de participer à la gouvernance des projets afin de réduire le risque systémique.

En combinant transparence (SBOM), évaluation structurée des risques, surveillance continue et participation en amont, les fabricants peuvent faire de leurs dépendances open source, autrefois source d’exposition non maîtrisée, un actif gouverné de manière stratégique au service de la sécurité, de la conformité et de la confiance à long terme.

Traitement des vulnérabilités

Dans le cadre du CRA, les fabricants sont tenus d’identifier, de gérer et de corriger les vulnérabilités de manière rapide et structurée tout au long du cycle de vie du produit. Si les projets open source ne sont pas directement réglementés en tant que tels, leurs pratiques influencent fortement la capacité des fabricants et des PME en aval à se mettre en conformité. Dans un modèle fondé sur les risques, le traitement des vulnérabilités ne se limite pas à la correction réactive. Il englobe :

  • Des mécanismes de signalement accessibles
  • Un triage et une évaluation des risques structurés
  • Des processus de correction transparents
  • Des pratiques de divulgation transparentes
  • Une surveillance continue des vulnérabilités connues

Les petits projets ne disposent pas toujours des ressources des grands éditeurs commerciaux, mais ils devraient néanmoins mettre en œuvre des pratiques de base permettant aux intégrateurs en aval d’évaluer et de gérer efficacement les risques.

Éléments clés du traitement des vulnérabilités

  1. Signalement et réception

    • Un contact de sécurité ou un canal de signalement accessible publiquement
    • Des instructions claires pour une divulgation responsable
    • Une procédure définie de réception et d’accusé de réception

    Les chercheurs en sécurité et les utilisateurs peuvent signaler des problèmes de manière maîtrisée et transparente.

  2. Triage et évaluation des risques

    • Évaluation de la gravité et de l’impact potentiel
    • Identification des versions concernées
    • Évaluation de l’exploitabilité et de l’exposition

    La classification de la gravité peut s’appuyer sur des référentiels largement reconnus (par exemple, CVSS), tout en restant proportionnée à la taille et au contexte du projet.

  3. Correction et gestion des versions

    • Développement de correctifs
    • Processus de publication sécurisé
    • Versionnage clair et journal des modifications documenté

    Lorsque c’est possible, les mises à jour doivent s’accompagner d’une communication claire sur les mesures d’atténuation et les configurations concernées.

  4. Divulgation et transparence

    • Publication d’avis de sécurité publics le cas échéant
    • Communication claire auprès des utilisateurs en aval
    • Divulgation coordonnée lorsque plusieurs parties prenantes sont impliquées

    Ces mesures renforcent la confiance et soutiennent la transparence de la chaîne d’approvisionnement.

Niveaux de maturité proportionnés

Pour refléter le principe de proportionnalité du CRA, les pratiques de traitement des vulnérabilités peuvent être structurées selon trois niveaux de maturité.

Niveau 1

Pratique minimale viable

  • Canal public de signalement des vulnérabilités
  • Triage manuel des problèmes signalés
  • Publication des correctifs et mise à jour du journal des modifications

Permet une traçabilité de base et la gestion des risques en aval.

Niveau 2

Processus structuré

  • Politique documentée de gestion des vulnérabilités
  • Processus de triage défini et suivi interne
  • Publication d’avis de sécurité publics
  • Délai de réponse cible défini

Améliore la prévisibilité et la transparence.

Niveau 3

Avancé et intégré à la chaîne d'approvisionnement

  • Politique de divulgation coordonnée des vulnérabilités (CVD)
  • Attribution d’identifiants CVE le cas échéant
  • Outils de surveillance continue des vulnérabilités
  • Suivi des corrections fondé sur des SLA
  • Intégration de l’analyse des vulnérabilités dans les pipelines CI/CD

Renforce la résilience systémique de la chaîne d’approvisionnement logicielle.

Ce que cela signifie pour les PME qui intègrent des FOSS

Pour les PME qui intègrent des composants FOSS dans des produits comportant des éléments numériques, les pratiques de traitement des vulnérabilités des projets en amont influent directement sur leur propre niveau de conformité. Les PME devraient donc évaluer :

  • Si le projet dispose d’un canal public de divulgation des vulnérabilités
  • La rapidité avec laquelle les problèmes sont pris en compte et résolus
  • Si les avis de sécurité et les correctifs sont communiqués de manière transparente
  • Si le projet fait preuve d’une activité de maintenance

Lorsqu’un composant est fonctionnellement critique ou exposé publiquement, les PME devraient envisager des mesures de diligence raisonnable renforcées, notamment une surveillance continue et, lorsqu’elles existent, le recours aux attestations de sécurité volontaires prévues par l’article 25.

Lire le guide de conformité pour les PME

Retour en haut