Utiliser l’API Snyk pour détecter et corriger les vulnérabilités
Josh Emerson
3 janvier 2018
0 minutes de lecture
Illustration : Lou Reade.
Dans cet article, vous découvrirez comment utiliser l’API Snyk pour récupérer toutes les problématiques associées à un projet donné. Cela peut vous être utile pour plusieurs raisons, notamment pour les intégrer à vos rapports et tableaux de bord, afin que les responsables et les développeurs puissent connaître l’état des vulnérabilités dans les portails et workflows qu’ils utilisent déjà.
Dans les étapes qui suivent, nous allons utiliser l’API pour :
Récupérer la liste des organisations auxquelles vous avez accès
Récupérer tous les projets d’une organisation
Récupérer la liste des problématiques de vos projets
Prérequis
L’API Snyk est accessible aux clients disposant de l’un de nos forfaits payants. Pour commencer à utiliser l’API, connectez-vous ou créez un compte, puis récupérez votre clé API sur https://app.snyk.io. Vous trouverez la liste de tous les points de terminaison de l’API sur https://snyk.docs.apiary.io.
Si vous n’avez pas encore créé de projets, vous pouvez le faire en exécutant snyk monitor via l’outil en ligne de commande Snyk, ou ajouter des projets depuis différentes sources (comme GitHub, GitLab et Heroku) sur le site Web.
Pensez également à copier votre clé API depuis https://snyk.io/account et à l’utiliser partout où elle est indiquée ci-dessous.
Récupérer les organisations
La première étape consiste à utiliser le point de terminaison des organisations : https://snyk.io/api/v1/orgs.
Vous obtiendrez la liste de vos organisations.
Récupérer les projets
Choisissez maintenant l’ID de l’organisation dont vous souhaitez consulter les problématiques de projet et utilisez-le avec le point de terminaison de l’API des projets : https://snyk.io/api/v1/org//projects (remplacez par l’ID de votre organisation).
Vous obtiendrez la liste de vos projets.
Récupérer les problématiques des projets
Maintenant que nous disposons d’une liste de projets, nous pouvons récupérer les problématiques de n’importe quel projet qui nous intéresse en appelant le point de terminaison des problématiques présenté ci-dessous. Remplacez par l’ID du projet dont vous souhaitez obtenir la liste des problématiques :
La réponse au format JSON inclura un objet issues contenant un tableau de vulnérabilités et, si les licences sont activées pour votre organisation, un tableau de problématiques de licence détectées dans le projet lors du dernier instantané.
Le point de terminaison de l’API des problématiques des projets permet également de filtrer par type de problématique (vulnérabilité ou problème de licence), par gravité (élevée, moyenne ou faible) et selon que la problématique a été ignorée ou corrigée. Pour n’afficher que les vulnérabilités de gravité élevée qui n’ont été ni corrigées ni ignorées, vous pouvez envoyer la requête suivante :
La réponse ne renverra alors aucun problème de licence et affichera uniquement les vulnérabilités de gravité élevée qui n’ont été ni ignorées ni corrigées.
Utiliser la réponse
Une fois les problématiques du projet récupérées, vous disposerez d’une charge utile JSON semblable à celle-ci :
Imaginons que vous souhaitiez afficher le nom de la vulnérabilité, le package vulnérable et l’URL permettant d’en savoir plus. Avec jq, par exemple, vous pourriez procéder ainsi :
Vous obtiendriez le résultat suivant :
L’API Reporting
Dans un prochain article, nous vous montrerons comment utiliser l’API Reporting Enterprise pour aller au-delà des possibilités offertes par le point de terminaison des problématiques des projets. Pour suivre l’évolution des problématiques dans le temps, mesurer le délai de résolution et profiter de capacités de filtrage plus puissantes, contactez-nous à l’adresse enterprise@snyk.io pour essayer notre API Reporting.