Détecter les vulnérabilités dans les dépendances de son projet

La gestion des dépendances dans un projet est quelque chose de complexe. Il y a autant de gestionnaires qu'il y a de langages et leur politique de gestion des versions varient beaucoup. Par exemple, composer, le gestionnaire de dépendances de PHP ne fait pas apparaître le numéro de version mineure tandis que npm (NodeJS) le fait. Par ailleurs, dès lors qu'un projet est installé et qu'il n'est pas à jour alors il peut avoir un décalage entre les déclarations et la réalité. Il n'est donc pas fiable de regarder ces déclarations de versions pour analyser un projet.

Les gestionnaires de dépendances génèrent (presque) tous des fichiers de lock qui listent les versions installées. Open Source Vulnerability Detector aka osv-detector s'appuie sur ces fichiers pour lancer des détections de vulnérabilités. Il s'agit d'un projet écrit en Go, léger et très simple d'utilisation. Les sources sont disponibles sur Github et les binaires y sont également publiés.
Pour l'utiliser, il suffit de lui passer au moins un fichier de lock et il s'occupe du reste.

$ osv-detector Gemfile.lock package-lock.json

Si des vulnérabilités sont détectées alors elles sont listées et le programme retourne un code de sortie à 1. Les vulnérabilités sont accompagnées d'un lien pour en apprendre un peu plus comme par exemple les versions corrigées.

Loaded the following OSV databases:
  npm (2774 vulnerabilities, including withdrawn - last updated Fri, 13 Jan 2023 20:30:13 GMT)

package-lock.json: found 932 packages
  Using db npm (2774 vulnerabilities, including withdrawn - last updated Fri, 13 Jan 2023 20:30:13 GMT)

  ansi-html@0.0.7 is affected by the following vulnerabilities:
    GHSA-whgm-jr23-g3j9: Uncontrolled Resource Consumption in ansi-html (https://github.com/advisories/GHSA-whgm-jr23-g3j9)
  ansi-regex@3.0.0 is affected by the following vulnerabilities:
    GHSA-93q8-gq69-wqmw: Inefficient Regular Expression Complexity in chalk/ansi-regex (https://github.com/advisories/GHSA-93q8-gq69-wqmw)

[...]

J'ai packagé osv-detector dans une image docker pour permettre de l'utiliser dans le cadre d'une intégration continue.

$ docker run -it -v "$(pwd):/app" deblan/osv-detector Gemfile.lock package-lock.json

osv-detector est un outil très pratique pour analyser rapidement les dépendances d'un projet et identifier rapidement les vulnérabilités. Il s'intègre parfaitement dans une chaîne de production et peut ainsi aider à s'assurer que le code est sécurisé.

Simon Vieille

Woodpecker CI, envoyer du mail dans certaines conditions

Woodpecker CI, envoyer du mail dans certaines conditions

En juin dernier, j'ai migré ma plateforme d'intégration continue vers Woodpecker CI et j'en …

Un an d'utilisation de AdGuard comme DNS

Un an d'utilisation de AdGuard comme DNS

Au moment où j'ai commencé à utiliser Wireguard, je me suis aperçu que le principal usage qu…

Supprimer les mots de passe d'un fichier Excel

Supprimer les mots de passe d'un fichier Excel

Dans le cadre de mon travail, je vais devoir supprimer les mots de passe définis dans plusie…


Ajouter un commentaire

Votre commentaire - Vous pouvez utiliser du markdown

Renouveler