Lancée tout récemment lors de la conférence des développeurs GitHub Universe, l’idée semble assez simple : créer une plateforme mondiale permettant de signaler et de traiter les vulnérabilités de sécurité présentes dans les projets open source avant qu’elles ne causent de graves dommages.
Cette idée semble tellement évidente qu’il est étonnant que personne n’y ait pensé avant. Un tel constat pourrait bien avoir un lien avec l’ampleur de la tâche, a admis le vice president security product management de GitHub sur le blog de lancement de Security Lab :
Sécuriser les logiciels open source au niveau mondial est une tâche véritablement ardue.
L’écosystème JavaScript englobe à lui seul plus d’un million de projets, et n’est malheureusement pas aidé par le ratio effrayant et très faible (500:1) des développeurs pouvant être considérés comme de véritables experts en sécurité, avec les connaissances nécessaires pour résoudre les problèmes.
Un grand nombre de développeurs produisent du code vulnérable, laissant ainsi une minuscule petite équipe de nettoyage s’occuper de traiter les problèmes de sécurité qui sont susceptibles de toucher plusieurs milliers d’entreprises.
Vous vous sentez toujours déprimé ? N’ayez crainte, c’est là justement que le Security Lab de GitHub entre en jeu.
Pour renforcer sa crédibilité, GitHub a déjà obtenu l’adhésion de grandes entreprises : Google, Oracle, Mozilla, Intel, Uber, VMWare, J.P. Morgan, F5, Groupe NCC, IOActive, Trail of Bits, HackerOne, ainsi que Microsoft et LinkedIn.
Cette initiative a déjà porté ses fruits puisque ces entreprises ont collectivement découvert plus de 100 vulnérabilités de sécurité de niveau CVE dans du code open source. Tous ceux qui se joindront à eux seront éligibles à des primes bug bounty pouvant aller jusqu’à 3 000 $ (environ 2700€), a déclaré GitHub.
Le comptage des vulnérabilités
La liste des avantages s’allonge, tels que ce moteur d’analyse gratuit mis à disposition par Security Lab, CodeQL, que GitHub a acquis lors de l’achat de Semmle en septembre dernier :
Si vous connaissez une erreur de code qui a généré une vulnérabilité, vous pouvez envoyer une requête pour rechercher toutes les variantes de ce code, supprimant ainsi toute une classe de vulnérabilités.
L’innovation la plus simple de toutes est peut-être que Security Lab fonctionnera comme une CNA (CVE Numbering Authority), élément essentiel de l’architecture de sécurité d’un projet visant à mettre en lumière les problèmes de sécurité dans les projets open source.
Actuellement, GitHub indique qu’au moins 40% des failles de sécurité affectant l’univers open source ne reçoivent pas de CVE lorsqu’elles sont signalées, signifiant ainsi qu’elles sont exclues des bases de données publiques qui indiquent aux internautes qu’ils ont des composants à corriger.
Security Lab va combler ce manque grâce à des avis de sécurité pour les utilisateurs de projets open source affectés, soutenus par des mises à jour de sécurité automatisées lorsque des correctifs sont disponibles et par une API Security Advisory pour intégrer la base de données des failles dans des outils tiers.
Il existe même un système bien structuré d’analyse de jetons permettant de repérer les identifiants hardcodés dans les formats utilisés par 20 fournisseurs Cloud différents :
Lorsque nous détectons une correspondance, nous en informons le fournisseur de service approprié et celui-ci prend les mesures adéquates, en révoquant généralement les jetons et en avertissant les utilisateurs concernés.
Est-ce que ce système va fonctionner ?
Revenons à l’ampleur du problème de sécurité de l’open source et à la difficulté d’obtenir suffisamment d’adhésion à cette base pour faire véritablement la différence.
L’open source est, et a toujours été, une énorme machine difficile à contrôler. GitHub espère que son Security Lab lui permettra d’enrayer cette tendance, mais cela risque de laisser de nombreux projets open source, très peu contrôlés, dans la nature.
Un autre petit problème est de savoir si les développeurs open source vont faire confiance à une collaboration avec Microsoft et avec de nombreux autres éditeurs de logiciels propriétaires de grandes marques.
L’argument optimiste est que la véritable innovation n’est pas simplement la mise en place d’une plateforme de gestion unique des vulnérabilités open source, mais la manière avec laquelle elle pourrait intégrer l’utilisation d’outils et de méthodologies d’analyse.
Le meilleur moyen de sécuriser un composant, quel qu’il soit, est de le sécuriser avant sa publication et d’accélérer le processus de recherche, de publication et de correction des failles lorsqu’elles sont détectées.
Sur un autre front, GitHub a également annoncé le lancement de son Archive Code Vault, une sorte de coffre-fort pour le stockage à froid du code open source situé dans un bunker souterrain Arctique.
Tout comme les formes de vie, il s’avère que le code pourrait également disparaître. Si les développeurs ne trouvent pas toutes les failles aujourd’hui, au moins dans les années à venir, ils sauront où chercher.
Billet inspiré de GitHub launches Security Lab to boost open source security, sur Sophos nakedsecurity.