Sécurité informatique : en route vers la nomenclature logicielle
Written by:
Computer Security Office
—
La nomenclature logicielle (Software Bill of Materials – SBOM) n’a pas bonne réputation en informatique. Constituant des inventaires complets (et souvent titanesques) de composants, de bibliothèques logicielles et de modules, les nomenclatures logicielles sont complexes à mettre en œuvre. C’est pourquoi personne ne les apprécie vraiment, si bien que de nombreux responsables informatiques tentent tout simplement d’y échapper. C’est regrettable, car elles présentent des avantages dans de nombreux domaines, à commencer par la sécurité. Par exemple, les nomenclatures logicielles peuvent être utiles pour la planification stratégique des mises à jour, la suppression des bibliothèques logicielles et des modules inutiles ou inutilisés, la gestion des licences de logiciels et le respect des restrictions à l’exportation, ou encore pour éviter la multiplication des restrictions liées aux composants des systèmes logiciels.
Les nomenclatures logicielles deviennent ainsi un atout essentiel pour les institutions de recherche modernes ayant besoin de « listes d’ingrédients » qui soient lisibles par une machine et qui répertorient les composants, les bibliothèques et les modules d’un logiciel. Les nomenclatures logicielles peuvent être générées et analysées de manière automatique. De ce fait, elles réduisent le temps passé à identifier manuellement les composants vulnérables, planifier les mises à jour et vérifier la conformité des licences. De plus, elles présentent un avantage concret pour la recherche : en fournissant une liste détaillée des composants et des versions d’un logiciel, les nomenclatures logicielles favorisent la reproductibilité des expériences et, par conséquent, la science ouverte.
Penchons-nous sur les mesures prises pour mieux comprendre comment les composants logiciels sont utilisés au CERN.
Le CERN a déjà pris plusieurs initiatives en matière de nomenclature logicielle. À titre d’exemple, le service GitLab du CERN propose des scans permettant d’analyser les dépendances et la sécurité des logiciels, et chacun des conteneurs gérés par OpenStack* dispose d’une liste des composants (vulnérables). Par ailleurs, le secteur Accélérateurs et technologie s’appuie sur une technologie d’inventaire avancée pour planifier le remplacement et le déploiement des logiciels, et ainsi éviter qu’un composant logiciel, quel qu’il soit, ne devienne obsolète durant une campagne d’acquisition de données. Le CERN élabore actuellement une stratégie globale concernant la nomenclature logicielle. Cet automne, un chercheur externe de l’Université de la Ruhr, à Bochum (Allemagne), se chargera de dresser un inventaire des différents domaines dans lesquels des nomenclatures logicielles sont déployées ou dans lesquels il est prévu d’en déployer. Le but de cet inventaire sera de comprendre les avantages et les inconvénients des nomenclatures logicielles, et de déterminer le type d’accompagnement qui pourrait s’avérer nécessaire au cours du processus de déploiement. Ces initiatives constituent, certes, de petites avancées, mais elles sont essentielles pour aller dans la bonne voie.
Parallèlement, un étudiant technique a été recruté par le CERN pour étudier les différents moyens permettant de créer des nomenclatures logicielles. Il est possible d’utiliser le scan de dépendances de GitLab, dont il était question précédemment, ainsi que le registre d’OpenStack. Néanmoins, d’autres outils commerciaux sont également à disposition, dont Artifactory, JFrog, Nexus et Snyk, ou encore CycloneDX, la norme ouverte pour les nomenclatures logicielles. Mais alors, quel outil serait le plus adapté au CERN ? Et comment établir un premier niveau de visibilité logicielle ? Une piste serait d’avoir recours à un logiciel de passerelle qui, en agissant comme un proxy, fournirait un historique indiquant l’origine, le moment et l’auteur du téléchargement de composants de logiciels ont été téléchargés. Ce type de logiciel pourrait également servir de cache, proposer des quarantaines de 12 heures, 24 heures ou 48 heures en cas de cyberattaque, et même fournir une première analyse des dépendances logicielles et des potentielles failles en matière de droits d’auteur, ainsi qu’une évaluation du niveau de sécurité des composants logiciels (niveau élevé ou extrême).
En bref, même si les nomenclatures logicielles peuvent être vues comme quelque chose de fastidieux, elles proposent plus d’avantages que d’inconvénients. Ainsi, elles apportent à l’ensemble des développeurs de logiciels du CERN une meilleure visibilité des composants logiciels utilisés, ainsi qu’un lot d’informations cruciales, comme notamment :
- le niveau de sécurité des composants ;
- les composants inutiles, car jamais exécutés ;
- la possibilité de déclarer un logiciel open source et d’obtenir une licence adaptée (si les restrictions à l’exportation le permettent) ;
- les dépendances vis-à-vis des composants déjà protégés par des droits d’auteurs (droits pour lesquels vous avez normalement payé…).
Cela vous intéresse ? Contacez-nous!
* Allez dans votre projet et ouvrez l’onglet « Artefacts ». Vous pouvez alors générer une nomenclature logicielle ou lancer un scan complet pour rechercher des vulnérabilités.
_________
Pour en savoir plus sur les incidents et les problèmes en matière de sécurité informatique au CERN, lisez nos rapports mensuels(en anglais). Si vous souhaitez avoir plus d’informations, poser des questions ou obtenir de l’aide, visitez notre siteou contactez-nous à l’adresse Computer.Security@cern.ch.