Skip to main content

Une priorisation surboostée avec le nouveau Priority Score de Snyk

Écrit par
Headshot of Dan Mckean

Dan Mckean

Prioritisation header feature

4 août 2020

0 minutes de lecture

Le nouveau Priority Score de Snyk simplifie considérablement l’un des grands défis de la sécurisation de l’open source : déterminer quelles vulnérabilités traiter en premier.

Pour la plupart des organisations, corriger toutes les vulnérabilités n’est tout simplement pas réaliste. Chaque modification a un coût, qui augmente souvent avec l’ancienneté et la complexité du logiciel. En moyenne, un dépôt compte plus de 35 vulnérabilités le jour de sa première importation dans Snyk, et les projets de conteneurs en comptent plus de 130 chacun.

Fonctionnement du score

Notre algorithme Priority Score traite un ensemble de points de données (facteurs) pour générer un score compris entre 0 et 1 000. Nous avons commencé avec une échelle de 0 à 100, avant de réaliser rapidement que les entreprises ne priorisent pas seulement les vulnérabilités au sein d’un projet, mais aussi dans _tous_ leurs projets. La granularité est essentielle pour éviter le problème rencontré avec la seule gravité, ou même le CVSS : tout devient prioritaire ! Nous avons calculé la pondération des différents facteurs afin d’obtenir une répartition homogène des scores, tout en attribuant les scores les plus élevés aux risques les plus importants.

Les scores sont affichés pour chaque problème dans la vue Projects. Tous les problèmes sont désormais triés selon le Priority Score, afin de faire ressortir les plus urgents. Vous pouvez également filtrer les problèmes par plage de scores.

Tableau de bord de sécurité affichant une vulnérabilité de désérialisation critique et exploitable, avec des informations sur sa correction et des options de filtrage.

Les scores sont également affichés dans l’onglet Issues de la section Reports (pour les clients disposant d’un forfait payant), dans une colonne Priority Score que vous pouvez trier. Par défaut, le tableau est déjà trié par score, ce qui vous permet de prioriser immédiatement votre travail. Vous pouvez également filtrer les problèmes par score.

Tableau de bord des problèmes de Snyk Reports affichant les vulnérabilités classées par score, avec les problèmes de gravité élevée mis en évidence et notés 899, 786 et 756.

Les scores des problèmes sont également accessibles via les différents appels d’API associés aux problèmes (pour les clients disposant d’un forfait payant) : ils sont désormais renvoyés dans la réponse et permettent de filtrer par score.

En savoir plus sur les appels d’API concernés :

Calcul du score

La première version de l’algorithme traite jusqu’à 10 facteurs par problème. Une tâche décourageante si l’on devait s’en charger manuellement (ou même dans des feuilles de calcul) pour les milliers de vulnérabilités que comptent souvent les projets d’une entreprise. À l’avenir, Snyk prévoit d’ajouter de nombreux autres facteurs pour mieux vous aider à déterminer où consacrer votre temps afin de réduire au mieux les risques de sécurité.

Voici quelques-uns des facteurs déjà pris en compte, sans que cette liste soit exhaustive !

Le CVSS est à la base de la plupart des processus de triage des vulnérabilités. Bien qu’il prenne déjà en compte un large éventail de facteurs, il ne tient pas compte de la vulnérabilité dans le contexte spécifique de votre projet. De plus, il est difficile de prioriser avec le seul CVSS lorsque plus de 23 % des vulnérabilités détectées par Snyk ont un CVSS supérieur à 8,0. À l’inverse, notre Priority Score offre une répartition bien plus équilibrée : moins de 5 % des vulnérabilités obtiennent un score supérieur à 800 sur 1 000. Le CVSS n’en reste pas moins incontournable et pèse donc lourd dans l’algorithme de notation de Snyk.

Vient ensuite la gravité. Bien qu’elle soit étroitement corrélée au CVSS, le CVSS n’est pas disponible dans certains écosystèmes et, dans certains cas, n’est plus à jour. Les Security Policies de Snyk permettent de modifier la gravité d’un problème en fonction d’informations que Snyk ne peut pas déterminer, par exemple si le service est critique pour l’activité de l’entreprise. Modifier la gravité permet d’en tenir compte dans la priorisation et de réduire le score attribué.

L’Exploit Maturity de Snyk s’impose naturellement parmi les facteurs. L’équipe de sécurité de Snyk, reconnue dans le secteur, utilise des méthodes manuelles et automatisées pour suivre les vulnérabilités exploitables et évaluer leur degré d’exploitabilité. Ces informations jouent un rôle crucial dans l’évaluation du risque associé à une vulnérabilité.

Également intégré au Priority Score, un nouvel indicateur pour Snyk : les informations sur les vulnérabilités atteignables. En examinant les chemins d’exécution du code dans un projet, nous aidons nos utilisateurs à déterminer quelles vulnérabilités sont réellement atteignables dans le code.

La disponibilité d’un correctif ne modifie pas le risque associé à une vulnérabilité, mais elle change considérablement le coût de sa correction. Sans version plus sûre vers laquelle effectuer une mise à niveau, ni correctif Snyk prêt à l’emploi, il ne reste qu’à corriger la vulnérabilité vous-même ou à utiliser un autre package dans votre logiciel. Aucune de ces options n’est simple ni rapide, et les vulnérabilités impossibles à corriger sont souvent considérées comme un risque inévitable.

Enfin, le temps, l’un des facteurs dont l’impact est le plus difficile à évaluer. Avant d’analyser les données, nous avons émis l’hypothèse que les vulnérabilités pouvaient présenter un risque plus élevé au moment de leur publication, mais aussi gagner en « popularité » avec le temps. En réalité, le premier facteur a un impact bien plus important sur le risque associé à une vulnérabilité et entre donc lui aussi dans le calcul du score.

Nous travaillons également sur d’autres facteurs pour l’algorithme, comme l’analyse statique du code, afin d’identifier les vulnérabilités qui se trouvent dans des chemins de code réellement utilisés.

Pour commencer

Le Priority Score de Snyk est désormais disponible pour tous les utilisateurs de Snyk. Pour commencer, examinez les vulnérabilités de l’un de vos projets ou consultez l’onglet Issues de la section Reporting pour savoir quels problèmes traiter en premier.

Pour en savoir plus, consultez le Snyk Knowledge Center.