Priorisez vos corrections plus efficacement avec Reachable Vulnerabilities pour GitHub
21 janvier 2021
0 minutes de lectureNous sommes ravis de commencer la nouvelle année en annonçant la disponibilité en version bêta de Reachable Vulnerabilities pour GitHub. Cette fonctionnalité fournit aux équipes de développement et de sécurité un contexte détaillé, au niveau de l’application, sur les vulnérabilités détectées dans les applications hébergées sur GitHub, afin de les aider à prioriser leurs corrections plus efficacement.
Annoncée en juillet dernier, Reachable Vulnerabilities analyse le chemin d’exécution d’une application pour déterminer si la partie vulnérable d’une dépendance est effectivement atteinte. Ce contexte au niveau de l’application permet ensuite de concentrer les efforts de correction sur les bonnes vulnérabilités, celles qui présentent le plus grand risque pour l’organisation.
Les utilisateurs de Snyk CLI utilisent déjà Reachable Vulnerabilities pour prioriser la correction de leurs vulnérabilités. Nous sommes heureux d’annoncer que cette fonctionnalité est désormais également disponible avec notre intégration GitHub, ce qui facilite considérablement la priorisation dans les dépôts gérés sur GitHub.

La « joignabilité » : de quoi s’agit-il et pourquoi est-ce important ?
La plupart des solutions SCA (analyse de la composition logicielle) analysent votre application pour déterminer quelles dépendances open source elle utilise, puis comparent ces résultats à une base de données de vulnérabilités afin de produire un rapport sur les dépendances vulnérables.
Ces rapports finissent par compter des centaines, voire des milliers de problèmes. Comme les organisations ne peuvent pas corriger toutes ces vulnérabilités — et ne devraient pas le faire —, elles doivent les prioriser. La plupart des solutions du marché fournissent des niveaux de gravité fondés sur le score CVSS pour guider cette priorisation. Mais face à des centaines de vulnérabilités de gravité élevée, ou à cinq vulnérabilités ayant le même score CVSS, cette approche n’est tout simplement pas efficace.
C’est là qu’intervient la « joignabilité » : elle vous apporte le contexte détaillé, au niveau de l’application, dont vous avez besoin pour évaluer les risques plus rapidement et avec davantage de précision. Comme on peut manger les parties saines d’un fruit pourri, la présence d’une vulnérabilité dans une partie de votre code ne signifie pas nécessairement que toute la bibliothèque est vulnérable. Les vulnérabilités qui ne sont pas atteintes ne compromettront généralement pas l’application dans son ensemble et présentent donc moins de risques que celles qui le sont.
Reachable Vulnerabilities réduit considérablement le nombre de vulnérabilités nécessitant une attention urgente. Environ 3 % des vulnérabilités détectées dans les projets Java Maven que nous avons testés avec Reachable Vulnerabilities sont effectivement « joignables ». Cela signifie-t-il que vous pouvez écarter les autres vulnérabilités ? Bien sûr que non. Elles sont également importantes et doivent être évaluées, mais c’est là que réside la différence entre urgent et important.
Comment fonctionne Reachable Vulnerabilities ?
Vous souhaitez savoir comment fonctionne Reachable Vulnerabilities ? Cet article de blog vous propose une analyse technique approfondie de la manière dont Snyk associe ses recherches propriétaires en sécurité à l’analyse statique automatisée pour analyser les vulnérabilités détectées et fournir un contexte détaillé et précis au niveau de l’application.
L’extension de cette fonctionnalité à notre intégration GitHub a nécessité quelques travaux d’ingénierie supplémentaires. L’analyse repose principalement sur la création d’un graphe d’appels qui représente les différentes interactions entre votre application et ses dépendances. Pour les applications hébergées sur GitHub, Snyk clone votre dépôt, crée l’application et génère le graphe d’appels nécessaire pour déterminer la joignabilité. Une fois ce graphe créé, tout le code source est supprimé des serveurs de Snyk.
Activer Reachable Vulnerabilities pour vos projets GitHub
L’intégration de Snyk à GitHub vous permet d’effectuer en continu des tests de sécurité sur tous vos dépôts de code hébergés sur GitHub, afin de détecter les vulnérabilités dans vos dépendances open source, puis de les corriger grâce à des workflows automatisés de correction et de mise à niveau. Si ce n’est pas déjà fait, suivez les étapes décrites dans notre documentation pour configurer votre première intégration à GitHub.
Reachable Vulnerabilities pour GitHub n’est PAS activé par défaut. Parce que nous accordons une grande importance aux exigences en matière de sécurité des données, vous devez activer manuellement cette fonctionnalité pour lancer l’analyse.
Pour activer Reachable Vulnerabilities dans vos projets GitHub, ouvrez les paramètres de l’organisation pour l’intégration GitHub, puis activez simplement l’interrupteur dans la section Analyse des vulnérabilités joignables.

Reachable Vulnerabilities sera alors activé pour tout nouveau projet GitHub que vous importerez ET pour les projets GitHub existants, qui seront analysés lors de la prochaine analyse quotidienne ou nocturne.
Prioriser avec Reachable Vulnerabilities
Une fois la fonctionnalité activée, différentes indications et informations sur la joignabilité s’affichent sur les pages des projets concernés dans Snyk. Vous pouvez alors les utiliser pour filtrer rapidement les différents problèmes détectés dans le projet.

Reachable Vulnerabilities entre également dans le calcul du Priority Score de Snyk (1), un système de notation avancé intégré, basé sur un algorithme propriétaire qui prend en compte de nombreux facteurs : le score CVSS, la disponibilité d’un correctif, les exploits connus, l’ancienneté de la vulnérabilité et, comme indiqué, sa joignabilité. Le score obtenu s’affiche dans le coin supérieur droit de chaque fiche de problème et vous permet de filtrer et de trier rapidement les problèmes en attente.
Une étiquette de joignabilité (2) est ajoutée aux vulnérabilités concernées. Vous pouvez utiliser les filtres de joignabilité (3) pour parcourir rapidement les problèmes détectés dans le projet et vous concentrer sur ceux qui présentent le plus grand risque. Snyk affiche également des informations détaillées (4) sur le chemin exact par lequel l’application appelle la fonction vulnérable.
Corriger avec Reachable Vulnerabilities
L’intégration GitHub de Snyk vous permet non seulement de détecter les problèmes, mais aussi de les corriger dans le cadre de votre workflow basé sur Git.
Vous pouvez déclencher manuellement une pull request directement à partir de la vulnérabilité dans l’interface Snyk. Pour vous simplifier encore la tâche, Snyk déclenche automatiquement une pull request dans plusieurs situations : lorsqu’il détecte une nouvelle vulnérabilité pouvant être corrigée ou qu’un nouveau correctif est disponible pour une vulnérabilité existante. Backlog Management de Snyk déclenche également une pull request en fonction du Priority Score (pour en savoir plus sur Backlog Management, cliquez ici).
Toutes ces pull requests affichent les informations de joignabilité ainsi que les autres conseils de correction fournis par Snyk, dans l’onglet Conversation de la pull request. Ce contexte vous aide à décider plus facilement si vous devez la fusionner.

Les données de joignabilité sont également disponibles sur la page Rapports Problèmes, pour vous permettre de surveiller et de suivre plus facilement l’évolution de vos vulnérabilités.

Commencez dès maintenant !
Une évaluation des risques précise et rapide est essentielle pour une priorisation efficace. Le score CVSS peut constituer un bon point de départ, mais il ne suffit pas à lui seul et ne fournit pas de contexte détaillé sur les facteurs subjectifs propres à une vulnérabilité.
En analysant le chemin d’exécution de l’application et en le recoupant avec les riches données de sécurité de Snyk, Reachable Vulnerabilities de Snyk — désormais aussi disponible pour les applications hébergées sur GitHub — fournit le contexte détaillé au niveau de l’application nécessaire à une priorisation efficace.
Reachable Vulnerabilities pour GitHub est progressivement déployé en version bêta pour tous les forfaits Snyk. La prise en charge concerne pour l’instant les projets Java (Maven). Si vous souhaitez y accéder sans attendre, contactez-nous à l’adresse suivante : support@snyk.io. Pour en savoir plus, consultez la documentation principale.



