Open-source

Posture générale et actions de l'ANSSI sur l'open-source

Pour l’ANSSI, l’open source joue et doit continuer à jouer un rôle essentiel pour la maîtrise des solutions numériques, la sécurisation des chaînes logicielles, la protection et la résilience des systèmes d’information et des communs numériques, et le soutien aux technologies et solutions innovantes.

Ce parti-pris se fonde sur les possibilités qu’offre l’open source en termes d’adaptation, de maîtrise de la conception logicielle et de la chaine d’approvisionnement, de pérennité, de auditabilité, de portabilité et d’intégration. Le logiciel libre facilite le partage des connaissances, permet son évaluation par les pairs et tire profit de l’intelligence collective. Pour l’ANSSI, l’open source permet de développer les compétences indispensables à ses missions et indispensables à la maîtrise de technologies clés, et de les partager autour de cas d’usage spécifiques.

Dans ce contexte, consciente des limites de la « sécurité par l’obscurité » (faire reposer la sécurité d’un système sur le fait qu’un attaquant ne connaisse pas ses principes de fonctionnement), l’ANSSI défend le principe de « secure‑by‑design » (intégrer la sécurité dès la conception et non a posteriori) ainsi que celui d’« open‑by‑default » (ouverture des codes sources et des données) en veillant à ne pas exposer d’artefacts sensibles ou de configuration opérationnelles et en cohérence avec ses missions.

L’action de l’ANSSI suit les quatre axes suivants :

L’ANSSI contribue activement à l’écosystème open source par le partage de différents projets. Ces initiatives sont circonscrites à certains domaines, l’ANSSI n’ayant pas pour mission première d’éditer des logiciels à destination d’acteurs extérieurs.La publication de projets permet à l’ANSSI :

  • de partager ses compétences techniques et scientifiques et d’utiliser ce rayonnement pour attirer des talents et entretenir cette expertise ;
  • d’apporter de la transparence quant aux outils opérationnels qu’elle utilise au profit de ses bénéficiaires ;
  • de soutenir l’écosystème de ses partenaires au travers du partage d’outils ;
  • d’améliorer la coopération entre partenaires par l’utilisation de moyens interopérables.

Au-delà du (Ouvre une nouvelle fenêtre) cadre juridique[1], l’ANSSI a choisi d’inscrire ses travaux techniques dans une démarche open source, valorisant ainsi les développements technologiques à travers de nombreux projets. Ces initiatives prouvent que l’open source peut être un outil crédible pour asseoir une dynamique de développement et de diffusion.Pour la publication de son code source, l’ANSSI choisit des licences dans la (Ouvre une nouvelle fenêtre) liste de celles autorisées par décret. Parmi celles-ci, la licence retenue dépend des finalités envisagées pour chaque projet, avec une préférence pour des licences permissives (en particulier Apache 2.0) afin de limiter les restrictions imposées sur la réutilisation du code source (y compris dans un cadre commercial). Si la réutilisation et l’intégration d’un code source dans un modèle propriétaire est considéré comme une menace pour l’objectif visé par la publication, alors un choix de licence avec obligation de réciprocité (comme la famille GNU GPL) est utilisé.
L’ANSSI a défini plusieurs catégories pour ses projets publiés en open source auxquelles sont associés différents niveaux d’engagement pour leur maintenance et différents niveaux de support.

  • Les projets doctrinaux diffusant des éléments de doctrine de l’Agence ou en accompagnant la publication : démonstrateur technologique, implémentation de référence, code source ayant servi à réaliser un article scientifique ou à générer des données (artefacts de recherche), contenu illustrant concrètement des recommandations de l’Agence (« actionnables »), etc. Ces projets sont diffusés à titre informatif et sont maintenus par l’ANSSI durant la période de pertinence de l’article scientifique ou de la recommandation associée. Les utilisateurs, intégrateurs et contributeurs peuvent se les approprier, principalement pour reproduire des résultats de recherche ou déployer des recommandations, en gardant à l’esprit qu’ils ne font pas l’objet d’un support de l’ANSSI.
  • Les outils internes : projets développés pour un besoin interne de l’ANSSI, publiés pour des raisons de transparence ou par volonté de partager des ressources utiles à l’écosystème. Selon le cadre propre à chaque projet, les contributions extérieures peuvent être intégrées sans garantie systématique et sans support utilisateur associé.
  • Les outils externes : outils mis à disposition des bénéficiaires ou des partenaires de l’ANSSI (comme les CERT), accessibles directement ou à travers des services fournis par l’ANSSI. La gouvernance de ces projets est assurée en interne, leur réutilisation est encouragée, et un soutien peut être apporté aux bénéficiaires et partenaires en fonction des ressources disponibles de l’Agence.

L’ANSSI publie ses projets majoritairement au sein de l’organisation Github (Ouvre une nouvelle fenêtre) ANSSI-FR. Certains projets de grande envergure ou dont la maintenance a vocation à être partagée sont hébergés dans des organisations Github dédiées, (Ouvre une nouvelle fenêtre) référencées depuis l’organisation Github principale.Pour chacun de ces projets, une action en cours vise à affecter un « degré d'ouverture » à ces codes sources en s’appuyant sur la (Ouvre une nouvelle fenêtre) classification élaborée par la Direction interministérielle du numérique (DINUM) :

Cas des transferts de projets open source

Bien que l’ANSSI n’ait pas pour mission première d’éditer des logiciels, elle publie néanmoins certains projets open source qui pourraient s’apparenter à des produits industriels ou pourraient servir de base au développement de solutions. Lorsque l’ANSSI est amenée à se désengager d’un projet mais qu’elle souhaite que sa pérennité soit assurée, elle peut lancer une démarche de transfert de sa gouvernance afin d’identifier un acteur externe à même de poursuivre les travaux.Un acteur externe intéressé par la reprise d’un projet peut aussi prendre l’initiative d’en solliciter les mainteneurs ou, à défaut, contacter les adresses industries@ssi.gouv.fr ou opensource@ssi.gouv.fr.Le transfert permet d’assurer un accès pérenne à un outil, et ainsi de renforcer la cybersécurité de l’écosystème numérique grâce à des solutions implémentant les bonnes pratiques prônées par l’ANSSI, déployables en production et s’accompagnant d’un support dédié.

Les agents de l’ANSSI contribuent à des projets open source maintenus par des acteurs extérieurs, dans des contextes variés qui s’inscrivent dans les missions de l’Agence.

Des contributions peuvent concerner des projets open source d’intérêt utilisés par les bénéficiaires de l’Agence. Lorsque cela est possible, l’Agence intervient le plus en amont possible de manière à optimiser l’utilisation de ses ressources et pour démultiplier les effets positifs pour la cybersécurité de l’écosystème numérique. Elle intervient par exemple sur la sécurité des briques de base des infrastructures numériques comme des noyaux de systèmes d’exploitation (tel que le noyau Linux).

Les contributions peuvent aussi permettre d’améliorer des logiciels de cybersécurité utilisés par des chercheurs en sécurité appartenant au monde académique ou à la sphère des partenaires opérationnels de l’Agence.

Enfin, des contributions d’opportunité concernent plus particulièrement les projets utilisés en interne de l’Agence (voir la section Utiliser des solutions open source). Ces contributions peuvent aller de la simple correction de bug à des adaptations pour les conformer à des cas d’usage spécifiques (par exemple fonctionnement en mode isolé, déconnecté d’Internet), ou à de nouveaux usages (tel que l’inclusion de nouveaux algorithmes cryptographiques).

Tous ces travaux permettent à l’ANSSI de développer une expertise dans les logiciels concernés et leur publication participe au rayonnement de l’Agence.

La contribution de l’Agence à des projets open source publics lui permet aussi de démultiplier son action :

  • elle diminue la charge de travail de ses équipes en évitant de reproduire des adaptations spécifiques en parallèle des évolutions publiques d’un projet[2] ;
  • le renforcement de la sécurité d’un produit (ou de ses fonctionnalités, par exemple pour un outil de sécurité) bénéficie non seulement aux ministères et aux opérateurs d’importance vitale (OIV) mais également aux partenaires de l’Agence et à l’ensemble de la communauté des utilisateurs.

Acteurs de l’open source au sein de l’écosystème numérique

L’investissement de l’ANSSI dans l’open source ne se fait pas de façon isolée, mais en lien avec de nombreux acteurs de l’écosystème numérique :

Ces deux derniers acteurs sont en particulier initiateurs d’évolutions dans les politiques publiques concernant les communs numériques, qui peuvent avoir un impact sur l’ensemble des citoyens. C’est aussi au niveau politique que sont évoqués les sujets de souveraineté numérique, les enjeux d’indépendance et de maîtrise des moyens technologiques, dont l’open source fait partie.

L’open source comme levier d’action de la politique industrielle de l’ANSSI

La politique industrielle de l’ANSSI vise à ce que l’écosystème numérique propose aux utilisateurs des solutions de cybersécurité adaptées, sécurisées et alignées sur les besoins. Si les logiciels libres sont devenus des éléments centraux des chaînes de valeur numérique, le lien entre l’open source et la politique industrielle de l’ANSSI est cependant récent et en développement. L’open source a le potentiel de soutenir la politique industrielle de l’Agence, en stimulant l’innovation, en mobilisant les fondations et en fédérant les acteurs.

Évaluations de sécurité

Depuis 2017, l’ANSSI finance des évaluations de sécurité de logiciels open source, dans le but d’améliorer la sécurité de briques logicielles largement utilisées directement par les organisations bénéficiaires des services de l’Agence, ou indirectement via leur intégration dans des produits commerciaux.

Ainsi, l’ANSSI sélectionne chaque année des logiciels open source afin de les soumettre à des audits de sécurité ad hoc ou à des évaluations de sécurité conformes au schéma de certification CSPN (Certification de Sécurité de Premier Niveau). Les vulnérabilités identifiées sont signalées au mainteneur du projet et l’Agence peut ainsi faciliter le travail de remédiation.

(Ouvre une nouvelle fenêtre) Plus d’information concernant les évaluations de sécurité des logiciels open source

L’ANSSI a une utilisation pragmatique des logiciels libres pour ses différents besoins, qu’ils soient d’infrastructure, bureautiques ou métiers.

Elle ne s’interdit pas l’utilisation de logiciels propriétaires quand ils sont nécessaires mais considère que les logiciels libres amènent un certain nombre d’avantages, en particulier en matière de transparence et de maîtrise des environnements numériques, et permettent de mieux encadrer les dépendances à des acteurs extérieurs. L’ (Ouvre une nouvelle fenêtre) article 16 de la loi pour une République numérique précise ainsi que les administrations « encouragent l'utilisation des logiciels libres et des formats ouverts lors du développement, de l'achat ou de l'utilisation, de tout ou partie, de ces systèmes d'information ».

L’utilisation de logiciels libres permet à l’Agence une certaine maîtrise de ses infrastructures numériques métier, acquise en particulier grâce à la transparence liée à la disponibilité du code source et à la possibilité donnée à un tiers de se l’approprier, ce qui limite les risques de dépendances, ainsi que les risques liés à des changements de stratégie des entités commerciales qui les contrôlent. Il est possible d’analyser ou faire analyser le code source et ses dépendances[4], de modifier ou faire modifier le code pour l’adapter à des usages particuliers[5] et, dans un cas extrême, de reprendre la maintenance d’un projet si celui-ci est abandonné ou change d’orientation de façon incompatible avec les usages de l’ANSSI.

Le développement et la maintenance de logiciels sont des tâches spécifiques, et les logiciels libres peuvent être utilisés dans un cadre commercial. Il peut être intéressant pour l’ANSSI de confier ces tâches à des entreprises spécialisées dans le domaine, dans un écosystème (français et européen) très riche. Dans ce contexte, il convient de préciser dans des documents contractuels l’importance de l’accès au code source sous licence libre, voire l’obtention des droits patrimoniaux. Ceci permet aussi la mutualisation de moyens apportés par différentes entités pour demander des modifications qui seront in fine accessibles publiquement.

Pour ce faire, l’ANSSI peut s’appuyer sur différentes ressources (aussi accessibles au reste de l’administration) :

Pour en savoir plus

L’action de l’ANSSI dans l’open source est visible de l’écosystème au travers de différents canaux :

L’ANSSI participe aussi à la communauté (Ouvre une nouvelle fenêtre) BlueHats (animée par la DINUM) et à (Ouvre une nouvelle fenêtre) la communauté des OSPOs français.

Dernières actualités de l'ANSSI sur l'open-source

Publications de l'ANSSI sur l'open-source

Recommandations techniques

Terminologie

Logiciel open source / logiciel libre : Les concepts de logiciel open source (LOS) et de logiciel libre (LL) sont similaires car ils reposent tous deux sur un principe fondamental commun : l'accès au code source et la liberté d’utilisation, de modification et de redistribution d’un logiciel, ce principe étant matérialisé par la licence de redistribution du logiciel (voire la (Ouvre une nouvelle fenêtre) liste des licences considérées libres par l’Open Source Initiative). Ils diffèrent principalement sur le plan philosophique, l'approche idéologique ainsi que par certaines nuances juridiques. Dans ce document, les différences de définition entre LOS et LL sont volontairement ignorées et les deux termes sont utilisés de manière interchangeable, sauf mention explicite contraire. Le lecteur peut aussi se référer à la (Ouvre une nouvelle fenêtre) définition de l’Open Source Initiative.

Bénéficiaire : On appelle « bénéficiaires » de l’Agence l’ensemble des services de l’État et des opérateurs qui peuvent bénéficier de ses services. On retrouve en particulier l’ensemble des organismes publics (ministères, institutions, juridictions, autorités indépendantes, collectivités territoriales), les opérateurs d’importance vitale (OIV) et les opérateurs de services essentiels, ainsi à terme que les entités NIS2.

Contribution : Terme englobant qui inclut toutes les formes d’investissement dans le projet, qu’il s’agisse de code, de retours, d’aide communautaire, de mise à disposition de ressources ou d’idées à un projet, de suggestion de modification, de fonctionnalité ou de correctif, etc.

Écosystème open source : Sous-ensemble de l’écosystème numérique, c’est l’ensemble des acteurs, pratiques, artefacts et infrastructures qui participent à la production, la diffusion et la maintenance de logiciels dont le code source est publié sous une licence libre ( (Ouvre une nouvelle fenêtre) reconnue par l’Open Source Initiative), permettant l’étude, la modification et la redistribution. Ses composants clés sont :

Projet open source d’intérêt : Un logiciel ou composant open source est considéré comme d’intérêt par l’ANSSI s’il satisfait ces deux conditions :

Transfert de projet open source : Dans le contexte d’un projet open source où l’ANSSI joue le rôle de développeur, désigne l’ensemble des processus, des actions et des moyens de l’ANSSI de transférer ce rôle vers d’autres organisations ou communautés dans une intention de réutilisation et de pérennisation du projet open source.

Mainteneur : Le mainteneur d’un projet est la personne ou l’entité responsable de la gouvernance. Elle décide de l’inclusion ou non de nouveau code et de nouvelles fonctionnalités, de la feuille de route du projet, etc. C’est cette entité qui est aussi responsable d’assurer l’éventuel support utilisateur, maintien en conditions opérationnelles ou de sécurité. Au sein de l’ANSSI la maintenance des projets est confiée à une entité (bureau ou division) afin d’assurer la pérennité du projet en cas de changement dans les effectifs.

Open source Program Office (OSPO) : Un OSPO est une structure organisationnelle et institutionnelle qui soutient et accélère l’utilisation, la création et l'implémentation de logiciels open source. L'OSPO est le centre de gravité et de compétence en matière d'open source d'une institution. Il œuvre de façon stratégique pour atteindre les objectifs politiques de l'institution dès qu'ils ont un lien avec l'open source. ( (Ouvre une nouvelle fenêtre) source)

1 En particulier le code des relations entre le public et l’administration (CRPA) et ses articles :

(Ouvre une nouvelle fenêtre) L300-2 qui inclut les codes sources dans les « documents administratifs » concernés par le texte ;

(Ouvre une nouvelle fenêtre) L311-1, (Ouvre une nouvelle fenêtre) L311-2 et (Ouvre une nouvelle fenêtre) L311-5 pour la publication elle-même ;

(Ouvre une nouvelle fenêtre) L323-1 à R323-7 pour les licences de réutilisation.

La direction interministérielle du numérique (DINUM) met aussi à disposition sur son site des (Ouvre une nouvelle fenêtre) éléments complémentaires.

2 L’acceptation d’une contribution au sein d’un projet public n’implique pas automatiquement sa maintenance par le projet, certains projets open source peuvent requérir un engagement sur la durée pour les fonctionnalités apportées, à intégrer dans la planification des efforts


3 Celui-ci est d’ailleurs encouragé dans son utilisation par l’ (Ouvre une nouvelle fenêtre) article L123-4-1 du code de l’éducation.

4 Voir aussi le paragraphe « Évaluations de sécurité »


5 Voir aussi le paragraphe « Contribuer à des projets open source extérieurs »