Gestion des risques et des vulnérabilités de la sécurité Open Source
Il y a beaucoup de bonnes raisons de tirer parti des logiciels open source, comme le fait qu’ils sont généralement gratuits et faciles à modifier ou à étendre. Mais un inconvénient potentiel des logiciels open source (OSS) est la sécurité. Lorsque les entreprises réutilisent des logiciels open source, elles ont besoin de disposer d'un plan pour gérer les risques de sécurité open source que le code source tiers peut introduire dans leurs parcs informatiques.
Cet article explique ce qu'est la sécurité open source, ainsi que la gestion des risques et des vulnérabilités de sécurité des logiciels open source.
Qu’est-ce que la sécurité open source ?
La sécurité open source est le processus de gestion des risques de sécurité potentiels introduits par les logiciels open source. Ce processus de sécurité est essentiel car neuf entreprises sur dix utilisent régulièrement du code open source. Parfois, elles intègrent du code open source dans les applications qu’elles développent. Par exemple, les développeurs peuvent importer des paquets open source ou des plugins dans les logiciels qu’ils écrivent afin de tirer parti des fonctionnalités offertes par les packages ou les plugins.
D’autres fois, les organisations déploient des composants open source autonomes. Par exemple, ils peuvent utiliser une plate-forme open source comme Kubernetes pour héberger des applications. Ou, ils peuvent utiliser un outil de développement open source, comme Jenkins, dans le cadre de leur pipeline CI / CD.
Dans les deux cas, les risques de sécurité ou les vulnérabilités qui existent dans les logiciels open source utilisés par les entreprises peuvent affecter ces entreprises, à moins qu’ils ne soient identifiés et corrigés avant que les attaquants ne les exploitent. Une version Jenkins non sécurisée pourrait fournir une porte dérobée dans le pipeline CI/CD de votre entreprise, par exemple, et un package Python avec une vulnérabilité de sécurité connue pourrait être exploité pour compromettre une application qui dépend du package.
Plus clairement, les logiciels open source ne sont pas intrinsèquement moins sûrs que les logiciels fermés. Tout logiciel peut – et contient généralement – des failles de sécurité, quelle que soit la façon dont il est concédé sous licence. Mais le fait que l’open source puisse être facilement et librement réutilisé signifie que les vulnérabilités de sécurité open source peuvent rapidement se propager d'une entreprise à l'autre. C’est moins un problème dans le cas des logiciels fermés, car le code source fermé n’est pas fréquemment partagé ou réutilisé.
Risques de sécurité des logiciels open source
Pour ajouter du contexte aux risques de sécurité du logiciel libre, examinons certains des problèmes de sécurité spécifiques qui peuvent découler de l’utilisation de code source ouvert.
Vulnérabilités connues
Le risque de sécurité open source le plus grave est le code open source soumis à une vulnérabilité de sécurité connue. Les vulnérabilités de sécurité connues sont signalées dans les bases de données publiques, comme MITRE CVE. Les bases de données détaillent les versions spécifiques des logiciels vulnérables aux attaques et expliquent comment les attaques peuvent être menées. Bien que ces informations soient utiles aux développeurs qui souhaitent résoudre des problèmes de sécurité, elles peuvent également être utilisées par des attaquants pour exploiter des logiciels vulnérables.
Ainsi, si les modules open source, bibliothèques ou autres composants utilisés par une entreprise sont soumis à des vulnérabilités de sécurité connues, les attaquants peuvent facilement les exploiter.
Erreurs de configuration
Parfois, les logiciels open source que les entreprises réutilisent ne sont pas configurés de la manière la plus sécurisée possible. Par exemple, les entreprises peuvent déployer des images de conteneur open source qui exécutent des processus en tant que root (ce qui n'est pas sécurisé). Ou, une plate-forme open source complexe comme Kubernetes peut être livrée avec des paramètres de contrôle d’accès qui ne sont pas excessivement permissifs en fonction des besoins spécifiques d’une entreprise.
Dans ces cas, un logiciel mal configuré peut permettre aux attaquants d’exploiter plus facilement les vulnérabilités ou d’augmenter la portée d’une attaque.
Manque de visibilité
Dans certains cas, les développeurs peuvent emprunter du code open source sans qu'un bon travail de suivi de son origine ou de la façon dont il est documenté soit effectué. Par conséquent, il devient difficile de s’assurer qu’ils suivent les meilleures pratiques pour gérer le code de manière sécurisée. Par exemple, les développeurs originaux du code peuvent avoir expliqué comment configurer le code en toute sécurité, mais il est difficile d’adhérer à ces pratiques si le code est réutilisé d’une manière qui masque l’origine du code ou les pratiques de sécurité recommandées par ses auteurs.
Comment identifier et gérer les risques de sécurité des logiciels libres ?
En réponse aux défis de sécurité open source décrits ci-dessus, vous pouvez choisir simplement de ne pas utiliser de code open source. Mais ce n’est pas une réponse parfaite car cela priverait votre entreprise des nombreux avantages offerts par l’open source. Vos développeurs devraient consacrer plus de temps et d’efforts à la mise en œuvre de fonctionnalités qu’ils pourraient emprunter à des logiciels open source.
Une meilleure approche consiste à vous assurer que vous avez des mesures de protection en place pour identifier et répondre aux risques de sécurité open source. Pour ce faire, un moyen simple consiste à déployer un outil d’analyse des vulnérabilités open source qui identifie automatiquement les composants open source utilisés par votre organisation, puis alerte les ingénieurs des risques de sécurité qui leur sont associés.
En analysant de manière exhaustive les ressources informatiques à la recherche de risques de sécurité open source, les outils d’analyse vous aident à vous assurer que vous pouvez trouver et réagir aux problèmes de sécurité OSS. Et, parce que les scanners peuvent scruter profondément les bases de code et les binaires d’application, ils sont capables de détecter les composants open source, même dans les cas où vos développeurs ou ingénieurs informatiques n’ont pas fait un bon travail de documentation de l’origine des composants.
Vous devriez aussi, bien sûr, vous efforcer d’utiliser les logiciels open source de manière responsable en empruntant du code uniquement à des projets dignes de confiance et en vous assurant que vous documentez correctement votre utilisation du code open source. Mais comme il est impossible de se protéger contre tous les oublis de sécurité open source potentiels, les outils d’analyse fournissent une couche supplémentaire d’assurance contre les problèmes de sécurité accidentels pouvant découler de l’utilisation de code open source.