L’auteur et expert des affaires, H. James Harrington, a dit un jour : « Si vous ne pouvez pas mesurer quelque chose, vous ne pouvez pas le comprendre. Si vous ne pouvez pas le comprendre, vous ne pouvez pas le contrôler. Si vous ne pouvez pas contrôler cela, vous ne pouvez pas l’améliorer. » Il avait raison. Et Google suit ce conseil en introduisant une nouvelle façon de renforcer la sécurité open source en introduisant un schéma d’échange de vulnérabilité pour décrire les vulnérabilités dans les écosystèmes open source.
C’est très important. Un problème de bas niveau est qu’il existe de nombreuses bases de données de vulnérabilités de sécurité, il n’y a pas de format d’échange standard. Si vous souhaitez agréger des informations provenant de plusieurs bases de données, vous devez gérer chacune d’entre elles complètement séparément. C’est une vraie perte de temps et d’énergie. À tout le moins, vous devez créer des analyseurs pour chaque format de base de données afin de fusionner leurs données. Tout cela rend le suivi systématique des dépendances et la collaboration entre les bases de données de vulnérabilités beaucoup plus difficiles qu’il ne devrait l’être.
Ainsi, Google s’est appuyé sur le travail déjà effectué sur le Base de données Open Source Vulnérabilités (OSV) et le OSS-Fuzz ensemble de données de vulnérabilités de sécurité. L’équipe Google Open Source Security, l’équipe Go et la communauté open source au sens large ont toutes contribué à créer ce schéma d’échange de vulnérabilités simple. Tout en travaillant sur le schéma, ils pourraient communiquer des données de vulnérabilité précises pour des centaines de projets open source critiques.
Désormais, l’OSV et le schéma ont été étendus à plusieurs nouveaux écosystèmes open source clés : Va, Rouiller, Python, et Fichier DWF. Cette extension unit et agrège leurs bases de données de vulnérabilités. Cela donne aux développeurs un meilleur moyen de suivre et de résoudre leurs problèmes de sécurité.
Ce nouveau schéma de vulnérabilité vise à résoudre certains problèmes clés liés à la gestion des vulnérabilités open source. Il:
- Applique une spécification de version qui correspond précisément aux schémas de nommage et de gestion des versions utilisés dans les écosystèmes de packages open source réels. Par exemple, faire correspondre une vulnérabilité telle qu’un CVE à un nom de package et à un ensemble de versions dans un gestionnaire de packages est difficile à faire de manière automatisée en utilisant des mécanismes existants tels que CPE.
- Peut décrire les vulnérabilités dans n’importe quel écosystème open source, sans nécessiter de logique dépendante de l’écosystème pour les traiter.
- Est facile à utiliser par les systèmes automatisés et les humains.
En bref, comme Abhishek Arya, le responsable de l’équipe de sécurité Google Open Source, l’a écrit dans une note sur le manuscrit de la spécification : « L’intention est de créer un format de schéma simple qui contient des métadonnées de vulnérabilité précises, les détails nécessaires un faible fardeau pour l’écosystème open source aux ressources limitées. »
L’espoir est qu’avec ce schéma, les développeurs puissent définir un format que toutes les bases de données de vulnérabilités peuvent exporter. Un tel format unifié signifierait que les programmeurs et les chercheurs en sécurité peuvent facilement partager les outils et les données de vulnérabilité dans tous les projets open source.
La spécification du schéma de vulnérabilité a subi plusieurs itérations, mais elle n’est pas encore terminée. Google et ses amis sollicitent d’autres commentaires à l’approche de la finalisation. Un certain nombre de bases de données de vulnérabilités publiques exportent déjà ce format, et d’autres sont en préparation :
Le service OSV a également agrégé toutes ces bases de données de vulnérabilités, qui sont consultables au niveau du projet interface utilisateur Web. Les bases de données peuvent également être interrogées avec une seule commande via son API existantes.
En plus de L’automatisation existante d’OSV, Google a construit plus outils d’automatisation pour la maintenance de la base de données de vulnérabilité et utilisé ces outils pour amorcer la communauté Base de données consultative Python. Cette automatisation prend les flux existants, les associe avec précision aux packages et génère des entrées contenant gammes de versions précises et validées avec une intervention humaine minimale. Google prévoit d’étendre cet outil à d’autres écosystèmes pour lesquels il n’existe aucune base de données de vulnérabilités ou peu de support pour la maintenance continue de la base de données.
Cet effort s’aligne également sur la récente Décret exécutif américain sur l’amélioration de la cybersécurité nationale, qui a souligné la nécessité de supprimer les obstacles au partage des informations sur les menaces afin de renforcer l’infrastructure nationale. Cette base de données de vulnérabilités partagée étendue marque une étape importante vers la création d’un environnement open source plus sécurisé pour tous les utilisateurs.
Vous voulez vous impliquer ? Tu devrais. Cela promet de rendre les logiciels open source, quel que soit votre projet, beaucoup plus faciles à sécuriser.
Histoires liées :