Skip to main content

Trouver des projets pour The Big Fix avec Snyk Vulnerability Database

Écrit par
Headshot of DeveloperSteve Coochin

DeveloperSteve Coochin

blog hero the big fix

30 mars 2022

0 minutes de lecture

En tant que développeurs, nous avons tous notre rituel matinal : préparer un café, consulter Slack/Discord/e-mail et lire les dernières actualités. Chaque matin, je consulte la Snyk Vulnerability Database pour découvrir les dernières vulnérabilités des projets open source.

Il est particulièrement intéressant d’observer les types d’exploits et de vulnérabilités qui apparaissent dans différents écosystèmes. Je suis l’apparition de vulnérabilités dans les bibliothèques Tensorflow depuis mai 2021 et, au moment où j’écris ces lignes, elles sont réapparues (près de deux pages entières !). Des vulnérabilités dans ElectronJS, l’écosystème qui alimente Slack, VS Code, Twitch et de nombreuses autres applications populaires, ont également été signalées à plusieurs reprises dans les derniers rapports.

La Snyk Vulnerability Database simplifie le développement sécurisé au quotidien, mais contribue aussi à rendre Internet plus sûr dans son ensemble. Le sprint de correction des vulnérabilités d’un mois organisé par Snyk, The Big Fix, a réuni des développeurs, des équipes DevOps et des spécialistes de la sécurité pour corriger autant de vulnérabilités que possible, avec pour point d’orgue le livestream de 24 heures Big Fix-A-Thon. De nombreux participants ont utilisé la base de données des vulnérabilités de Snyk pour trouver et corriger des packages malveillants dans divers projets open source.

L’événement officiel est peut-être terminé, mais la communauté The Big Fix est toujours aussi active. Aujourd’hui, je vais vous montrer comment trouver un projet dans la base de données des vulnérabilités open source, afin que vous puissiez contribuer à protéger les utilisateurs et repartir avec un t-shirt #thebigfix en édition limitée.

Premiers pas avec The Big Fix

La première étape consiste à créer un compte Snyk gratuit. Si vous n’en avez pas encore, rendez-vous sur la page de démarrage et renseignez les informations habituelles (aucune carte bancaire n’est requise). Ensuite, rendez-vous sur le site de The Big Fix et cliquez sur Inscrivez-vous maintenant. Enfin, indiquez votre nom et votre adresse e-mail : vous êtes prêt à commencer.

Une fois votre inscription terminée, l’étape suivante consiste à trouver un projet. Plusieurs méthodes s’offrent à vous.

Connecter un dépôt existant

Si vous avez déjà un dépôt de projet en tête, vous pouvez le connecter rapidement et facilement. Accédez à votre tableau de bord Snyk et cliquez sur Ajouter un projet. Si le dépôt de votre choix ne figure pas dans le menu rapide, cliquez sur Autre pour accéder à une liste complète d’options d’intégration.

Sélectionnez le dépôt de votre choix, puis suivez les étapes pour le connecter et le configurer.

Tableau de bord des intégrations de gestion du code source affichant les cartes GitHub, GitHub Enterprise, GitLab, Bitbucket et Azure Repos

Une fois le dépôt connecté, cliquez à nouveau sur Ajouter un projet et sélectionnez celui dans lequel vous souhaitez rechercher des vulnérabilités open source. Vous pouvez même analyser des dépôts privés.

Interface de sélection de dépôts avec un champ de recherche et une liste dépliable de dépôts personnels et d’organisation.

Une fois le dépôt connecté à Snyk, l’analyse détecte les packages vulnérables dans son manifeste de packages. Vous pouvez ensuite sélectionner ces packages pour consulter les correctifs recommandés et les mesures de correction possibles. Snyk permet également de créer automatiquement une pull request avec les correctifs recommandés. Pensez simplement à tester l’application pour vérifier que tout fonctionne comme prévu dans le projet.

Trouver un projet

Si vous cherchez un projet pour contribuer à corriger une vulnérabilité, vous pouvez utiliser la Snyk Vulnerability Database pour rechercher des projets dans le package ou l’écosystème de votre choix.

Pendant The Big Fix, j’ai contribué à Invoice Ninja, l’un de mes projets préférés de l’écosystème open source PHP. Ce projet open source aide des entreprises du monde entier à gérer leur facturation et leur comptabilité en se connectant à divers outils professionnels tiers.

J’ai d’abord forké le dépôt principal dans mon propre compte. Ensuite, en suivant la méthode décrite plus haut, j’ai connecté le dépôt à Snyk.

Dépôt GitHub en mode sombre affichant un commit dans lequel une vulnérabilité a été détectée, ainsi que des dossiers comme app, bootstrap, config, database, docs et tests

L’analyse a détecté quelques vulnérabilités dans le manifeste de packages PHP Composer, dont l’une était introduite par la bibliothèque de dépendance DOMPDF 0.6.2.

Tableau de bord des vulnérabilités affichant une faille de script intersites de gravité moyenne dans phenx/php-font-lib, corrigée dans la version 0.3.1

En examinant de plus près certains résultats, j’ai relevé plusieurs problèmes, notamment un chemin vulnérable aux scripts intersites (XSS) dans PHP-Font-Lib — une vulnérabilité datant de 2014. En remontant son origine dans le projet, j’ai pu identifier non seulement le problème lui-même, mais aussi le correctif nécessaire.

Lorsque vous déployez des correctifs, vous devez garder quelques points à l’esprit. Le plus important est de vous assurer que le projet continue de fonctionner dans son ensemble. C’est particulièrement important lors des mises à niveau des bibliothèques et des dépendances. De nombreuses personnes s’appuient sur ces projets au quotidien dans leur activité, et aucun projet ne souhaite introduire une modification qui casse leur fonctionnement.

J’ai récupéré le dépôt forké en local à l’aide d’une requête Git pull, puis j’ai lancé VS Code. Une fois le plugin Snyk installé, j’ai pu mettre à niveau les packages concernés et déboguer le code. Je l’ai ensuite exécuté sur ma machine locale pour le tester à l’aide d’un serveur local (vous pouvez également utiliser le serveur intégré à PHP).

Enfin, après avoir validé les modifications dans mon dépôt forké, j’ai soumis une pull request Git, que la communauté a vérifiée avant sa fusion.

La joie de contribuer

J’aime rendre la pareille, surtout lorsque je peux aider à protéger une autre communauté et à la préserver des vulnérabilités. En tant que membres de la communauté open source, il est important de contribuer et d’aider à protéger toutes celles et ceux qui utilisent des projets open source. Alors, unissons nos efforts pour rendre le monde numérique plus sûr.