Skip to main content

Utilisez les règles de sécurité Snyk pour hiérarchiser les corrections plus efficacement

Écrit par
blog feature snyk security policies

11 août 2021

0 minutes de lecture

Les règles de sécurité Snyk gagnent en puissance grâce à une nouvelle action et deux nouvelles conditions, qui aident vos équipes de développement et de sécurité à évaluer les risques et à mieux cibler leurs efforts.

Pour les développeurs, moins il y a de « bruit », mieux c’est. Leur demander de corriger des problèmes qui ne sont tout simplement ni importants ni pertinents leur fait perdre un temps de développement précieux et risque fort de susciter frustration et méfiance. Cela ne les incitera certainement pas à assumer davantage de responsabilités et à prendre en charge la sécurité au sein de leur organisation.

Les règles de sécurité peuvent vous aider : elles permettent de hiérarchiser les problèmes à traiter et ceux qui peuvent être ignorés jusqu’à la résolution des problèmes les plus critiques. Appliquées aux différentes étapes du cycle de développement logiciel (SDLC), elles permettent aussi d’éviter que des composants vulnérables ou non conformes passent entre les mailles du filet. Les règles font partie intégrante du cadre de gouvernance de l’organisation et respectent les normes de sécurité et de conformité adoptées en interne.

Le moteur de règles amélioré intégré aux règles de sécurité Snyk comprend une nouvelle action Ignore, ainsi que de nouvelles conditions (CVE et ID Snyk). Vous disposez ainsi d’une gouvernance plus souple et plus précise, et pouvez mettre en place des stratégies de hiérarchisation plus efficaces dans toute votre organisation. 

Ignorer plusieurs vulnérabilités à la fois

Une règle de sécurité Snyk contient une ou plusieurs règles qui définissent précisément la manière de traiter les vulnérabilités de sécurité. Les règles déclenchent des actions en fonction d’une ou plusieurs conditions. Jusqu’à présent, elles ne proposaient qu’une seule action : ajuster le niveau de gravité des vulnérabilités. Selon le CWE d’une vulnérabilité et/ou la présence d’un exploit, les utilisateurs pouvaient modifier son niveau de gravité.

Vous pouvez désormais aussi ignorer complètement certaines vulnérabilités. Vous pouvez le faire en fonction des conditions déjà prises en charge, mais aussi des deux nouvelles conditions que nous venons d’ajouter : CVE et ID Snyk. Cet outil vous permet de résorber votre backlog de vulnérabilités de plusieurs façons.

Par exemple, vous pouvez configurer une règle de sécurité pour ignorer les vulnérabilités sans exploit connu :

Formulaire de stratégie de sécurité Snyk pour les projets internes, présentant les attributs de la stratégie de développement et une règle CWE-400 indiquée comme non vulnérable

En associant la nouvelle condition CVE aux attributs de projet, vous pouvez également ignorer une vulnérabilité précise que vous savez non pertinente pour certains types d’applications :

Formulaire de stratégie de sécurité Snyk définissant une stratégie de développement pour les projets frontend de criticité moyenne, avec une règle CVE indiquée comme non vulnérable.

Vous pouvez également ignorer toute une catégorie de vulnérabilités à l’aide de la condition CWE :

Formulaire de stratégie de sécurité Snyk pour les projets de développement internes, avec « Interne » sélectionné et une règle pour CWE-400 indiquée comme non vulnérable

Gestion précise des règles

Les projets diffèrent les uns des autres et nécessitent probablement des limites de sécurité et de conformité différentes. Un projet essentiel à l’activité de l’entreprise, par exemple, exige un contrôle plus étroit et plus strict qu’un projet interne isolé dans un environnement de développement et de test.

Snyk vous offre la précision nécessaire pour décider exactement comment appliquer les règles au sein de votre organisation. Vous pouvez les appliquer à un projet ou à un groupe de projets à l’aide de tags et d’attributs de projet : ces deux types de métadonnées peuvent être ajoutés manuellement ou automatiquement via l’API Snyk. Ils permettent de regrouper les projets en fonction de caractéristiques communes. Vous pouvez également appliquer des règles à des organisations spécifiques au sein d’un groupe Snyk (consultez notre documentation pour en savoir plus sur la hiérarchie des groupes, des organisations et des projets Snyk).

Prenons un exemple, cette fois avec les règles de licence Snyk.

L’équipe juridique de l’organisation X a estimé qu’il fallait imposer des exigences de conformité extrêmement strictes à tous les services frontend essentiels à l’activité et en production. En revanche, elle se montre moins préoccupée par la conformité des projets internes en cours de développement.

Dans un premier temps, l’organisation X ajoute les attributs Critical, Production et Frontend aux projets concernés dans Snyk.

Écran des paramètres de projet Snyk affichant les métadonnées de package.json et le menu déroulant « Environnement » ouvert, avec « Frontend » sélectionné.

Dans un deuxième temps, une nouvelle règle de licence est créée. Les attributs nouvellement ajoutés permettent de l’affecter aux projets concernés. Dans la règle, un niveau de gravité élevé peut être appliqué à toute licence copyleft détectée dans les projets, comme les licences GPL-3.0 et AGPL-3.0. 

Formulaire de politique de licence Snyk présentant les attributs du projet et les licences logicielles, avec leurs niveaux de gravité et un avertissement de conformité

Appliquées à chaque étape du SDLC

Une fois créées, les règles de sécurité et de licence Snyk s’appliquent à tous les projets concernés et sont appliquées aux différentes étapes du SDLC. Cela commence dès l’environnement de développement local du développeur, dans l’IDE ou la CLI, puis se poursuit dans les workflows basés sur Git, la CI/CD et jusqu’en production. Ces différents points de contrôle de sécurité et de conformité permettent de signaler les problèmes le plus tôt possible dans le processus de développement, lorsque leur correction demande moins de temps et d’efforts.

Par exemple, pour les projets GitHub surveillés par Snyk, toute nouvelle pull request soumise par un contributeur est vérifiée par rapport aux règles de sécurité et de licence affectées au projet. Le code vulnérable ou non conforme ne peut ainsi pas être intégré au dépôt, et les normes internes de l’organisation sont respectées.

Dans l’exemple ci-dessous, j’essaie d’ajouter le package fullpage.js pour permettre le défilement plein écran dans mon application JavaScript. La vérification de sécurité est réussie (la dernière version du package ne présente aucune vulnérabilité connue), mais la vérification de licence échoue, car la licence GPLv3 incluse enfreint notre règle de licence.

Demande de pull GitHub pour la mise à jour de package.json, indiquant l’échec d’un test de licence, la réussite des tests de sécurité et l’absence de conflits de fusion

En cliquant sur le lien Details, vous obtenez des informations et du contexte plus détaillés sur l’échec du test :

Résultats du test de licence Snyk indiquant un échec et un problème de licence GPL-3.0 de gravité élevée dans fullpage.js@3.1.2

De la même manière, les règles s’appliquent en CI/CD et garantissent la conformité des builds aux exigences de sécurité et de conformité. Dans l’exemple ci-dessous, un workflow de build GitHub Actions échoue en raison d’une vulnérabilité de gravité élevée détectée lors de l’analyse de Snyk.

Tâche de sécurité GitHub Actions affichant l’échec d’une vérification des vulnérabilités Snyk et son journal de commandes développé

Sécurité et rapidité ne sont pas incompatibles

En sécurité des applications, les règles jouent un rôle essentiel : elles permettent de concilier rapidité du développement et sécurité. L’équilibre exact varie d’une organisation à l’autre, mais, lorsqu’elles sont correctement déployées, les règles permettent aux équipes de développement et de sécurité de respecter les exigences de sécurité et de conformité de l’organisation tout en maximisant leur productivité. 

Pour y parvenir, les règles doivent…

  • être suffisamment flexibles pour permettre de définir des règles précises et de les appliquer dans toute l’organisation

  • s’intégrer aux processus et workflows de développement plutôt que de les compliquer

  • permettre de hiérarchiser efficacement les problèmes afin de maximiser l’efficacité et la sécurité

  • offrir aux personnes ou aux équipes qui les gèrent une visibilité claire sur les règles appliquées et leur périmètre

  • prévoir une gouvernance suffisante pour permettre une gestion centralisée et garantir la conformité.

Toutes ces capacités sont au cœur des règles Snyk. Pour en savoir plus sur les règles Snyk et leur utilisation, consultez notre documentation technique.

Sécurisez vos dépendances open source

Les outils Snyk, conçus pour les développeurs, génèrent en un clic des pull requests correctives pour vos dépendances open source vulnérables et leurs dépendances transitives.