52 lines
3 KiB
Plaintext
52 lines
3 KiB
Plaintext
# Détecter les vulnérabilités dans les dépendances de son projet
|
|
|
|
* 2023-01-13 23:25:00
|
|
* Développement, Informatique
|
|
|
|
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,
|
|
=> https://getcomposer.org/ composer
|
|
, le gestionnaire de dépendances de PHP ne fait pas apparaître le numéro de version mineure tandis que npm (
|
|
=> https://nodejs.org/en/ 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
|
|
=> https://github.com/G-Rath/osv-detector 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
|
|
=> https://github.com/G-Rath/osv-detector Github
|
|
et les
|
|
=> https://github.com/G-Rath/osv-detector/releases 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.
|
|
|
|
```{.window.language-bash}
|
|
$ 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.
|
|
|
|
```{.window.language-bash}
|
|
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é
|
|
=> https://github.com/G-Rath/osv-detector osv-detector
|
|
dans une image docker pour permettre de l'utiliser dans le cadre d'une intégration continue.
|
|
|
|
```{.window.language-bash}
|
|
$ docker run -it -v "$(pwd):/app" deblan/osv-detector Gemfile.lock package-lock.json
|
|
```
|
|
|
|
=> https://github.com/G-Rath/osv-detector 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é.
|