Bonnes pratiques de sécurité d’entreprise pour gérer les vulnérabilités à grande échelle
9 novembre 2020
0 minutes de lectureQu’est-ce que la sécurité d’entreprise ?
À grande échelle, la sécurité d’entreprise consiste, entre autres, à répondre aux préoccupations suivantes :
Vous êtes confronté à une accumulation de problèmes de sécurité, qui fait perdre du temps aux développeurs et aux ingénieurs en sécurité.
Les développeurs et les ingénieurs en sécurité collaborent difficilement, car la confiance entre eux s’est érodée.
Les vulnérabilités critiques restent exposées trop longtemps, faute de hiérarchiser les problèmes de sécurité les plus importants et les plus faciles à corriger.
Comment garantir une conformité efficace en matière de sécurité dans plusieurs équipes lorsqu’elles doivent traiter un nombre écrasant de vulnérabilités ?
Cette fiche de bonnes pratiques de sécurité d’entreprise est là pour vous aider !
Téléchargez la fiche pratique.
Que vous mettiez en place une architecture de sécurité d’entreprise ou une solution de cybersécurité d’entreprise, vous devrez relever des défis liés à la sécurité des applications, notamment veiller à ce que vos équipes de développement ne soient ni ralenties, ni soumises à des contrôles bloquants, ni paralysées.
Snyk a récemment annoncé ses solutions Enterprise Security Management at Scale, qui mettent en avant des fonctionnalités de gestion de projet pensées d’abord pour les développeurs et axées sur la productivité de vos équipes de sécurité et de développement. Des fonctionnalités comme les attributs et les balises de projet, les politiques au niveau des projets et les conditions d’échec des pull requests sont autant d’exemples qui aident les développeurs à agir et permettent à l’équipe de sécurité de se concentrer sur l’essentiel.
Agissez pour améliorer votre architecture de sécurité d’entreprise :
ne faites échouer la compilation que lorsqu’un correctif est disponible
attribuez automatiquement les problèmes au référent sécurité pour examen
créez des pull requests prioritaires pour corriger les vulnérabilités
Conformité des licences
Vulnérabilités accessibles

Créez des pull requests prioritaires pour corriger les vulnérabilités
Défi : le backlog contient de nombreuses vulnérabilités et les développeurs peinent à repérer les problèmes de sécurité parmi toutes ces tâches.
Solution : réduisez le risque global en vous concentrant sur les vulnérabilités les plus importantes et pouvant être corrigées.
Snyk a lancé le score de priorité des vulnérabilités pour contribuer à résoudre le problème de longue date de l’évaluation des vulnérabilités, notamment avec des méthodes standardisées comme le CVSS, qui compliquent considérablement la tâche des développeurs et des ingénieurs en sécurité des applications lorsqu’il s’agit d’en déterminer le véritable impact dans le contexte approprié d’une vulnérabilité. Nous avons détaillé les défis liés à l’évaluation des vulnérabilités avec le CVSS, un bon point de départ pour comprendre les bases du CVSS.
Le score de priorité de Snyk prend en compte des données telles que la maturité de l’exploitation, la disponibilité d’un correctif, le score CVSS et d’autres critères, pour attribuer à chaque vulnérabilité un score de priorité compris entre 0 et 1 000. Plus le score est élevé, plus il est urgent de corriger la vulnérabilité.
Pour vous aider à faire le tri parmi les nombreuses vulnérabilités et celles qui s’accumulent au fil du temps, nous voulons vous permettre de vous concentrer sur les plus importantes afin de réduire le risque global et la durée d’exposition.
Comment y parvenir de manière utile et concrète pour les développeurs ?
Accédez aux paramètres d’intégration de Snyk et activez la création de pull requests pour toutes les vulnérabilités corrigibles les plus prioritaires du projet. Pas d’inquiétude : les développeurs ne seront pas submergés par un grand nombre de pull requests et n’y passeront pas tout leur temps ! Nous n’en ouvrirons qu’une nouvelle par jour. Ces pull requests proposent des actions concrètes et reposent sur des versions de packages disponibles en amont pour lesquelles une mise à niveau est possible. L’équipe de développement n’aura donc qu’un minimum d’efforts à consacrer à leur examen et à leur fusion.

Attribuez automatiquement les problèmes au référent sécurité pour examen
Défi : les correctifs de sécurité sont automatisés et donnent lieu à une pull request dans le dépôt du projet, ce qui est une excellente chose. Mais qui doit les examiner ?
Solution : standardisez l’examen des correctifs automatisés et des mises à niveau automatiques des dépendances en attribuant automatiquement un réviseur à la pull request créée. Vous pouvez attribuer cette tâche à la personne qui a modifié le fichier manifeste en dernier, qu’il s’agisse de pom.xml ou de package.json, ou désigner précisément le référent sécurité ou une autre personne de votre équipe pour examiner les modifications proposées dans la pull request.

Ne faites échouer la compilation que lorsqu’un correctif est disponible
Défi : vous voulez aider les développeurs à créer des logiciels sécurisés à l’aide de l’open source, mais vous finissez par les bloquer complètement et, bien souvent, ils ne peuvent même pas agir sur les résultats de vos analyses.
Un développeur découvre que le pipeline CI a échoué à cause d’un problème de sécurité peu grave et ne peut plus avancer sur son projet.
Un développeur peine à traiter une vulnérabilité détectée par le pipeline CI, qui a fait échouer la compilation alors qu’aucun correctif n’existe.
Solution : pour aider les développeurs à intégrer la sécurité et à gérer les échecs sans les balayer comme du bruit ou des faux positifs, vous devez leur fournir des outils utiles et adaptés à leurs workflows.
Snyk propose une configuration détaillée qui vous permet de faire échouer la compilation CI uniquement si les vulnérabilités détectées dépassent un seuil de gravité élevé. Ainsi, lorsque les développeurs doivent consacrer du temps à une vulnérabilité parce que la compilation a échoué, ils commencent par traiter les problèmes les plus importants.
Que voulez-vous que les développeurs fassent lorsqu’un pipeline CI échoue en raison d’une vulnérabilité ? Vous vous attendez probablement à ce qu’ils la corrigent. C’est bien, mais la plupart des outils et des intégrations font simplement échouer la compilation, quel que soit le contexte. C’est là que l’approche de Snyk, pensée d’abord pour les développeurs, entre en jeu. L’intégration CI comporte une option qui permet de ne faire échouer la compilation que lorsque les problèmes détectés peuvent être corrigés. Les développeurs peuvent ainsi remédier aux problèmes de sécurité au lieu de passer un temps interminable à trier les vulnérabilités avant de découvrir qu’aucun correctif n’est disponible.
Pour profiter de toutes ces fonctionnalités de sécurité, accédez aux paramètres d’intégration correspondant à votre configuration, par exemple GitHub, et ajustez les conditions d’échec de la compilation lorsque snyk teste les pull requests, par exemple :

Hiérarchisez les vulnérabilités accessibles depuis votre propre code
Défi : vous avez du mal à déterminer quels composants open source corriger en premier, par exemple :
Mes bibliothèques open source comportent de nombreuses vulnérabilités, mais comment savoir lesquelles sont utilisées dans le code en production ?
Les développeurs disent : « Oui, nous utilisons cette bibliothèque open source, mais comment savoir si nous utilisons la classe ou la méthode concernée par la vulnérabilité ? »
Solution : Snyk sait que les développeurs et les ingénieurs en sécurité ont besoin d’un meilleur moyen de hiérarchiser le travail de tri de centaines de vulnérabilités. Pour les aider, Snyk applique une analyse statique du code afin de déterminer si une vulnérabilité dans une bibliothèque open source tierce que vous utilisez est accessible depuis votre propre code (code interne).
Snyk comprend le contexte dans lequel une vulnérabilité a été détectée et hiérarchise les tâches de correction afin de réduire les risques pour l’entreprise et les périodes d’exposition.
D’un point de vue technique, la fonctionnalité de détection des vulnérabilités accessibles s’appuie sur l’algorithme de Snyk, qui génère un graphe d’appels reliant le code source de votre application aux dépendances open source du projet.
Pour le moment, la prise en charge par Snyk de l’analyse des vulnérabilités accessibles concerne uniquement les projets Java, Maven et Gradle. Elle est disponible avec les tests CLI ou dans l’interface Snyk lorsque vous testez un projet. La prise en charge de Git arrive bientôt !
Identifiez les vulnérabilités de sécurité en fonction de leur accessibilité depuis votre code :
Vérifiez que vous utilisez la dernière version de Snyk CLI
Accédez au dossier de votre application et aux fichiers manifestes correspondants
Exécutez
snyk test --reachable
Si des vulnérabilités accessibles sont détectées, le résultat du test ressemblera à la capture d’écran suivante :

Vous pouvez aussi suivre toutes ces informations dans l’interface Snyk.
Envoyez ensuite un instantané de ce manifeste à Snyk afin que nous puissions le surveiller en continu et vous envoyer des alertes. Pour surveiller le projet, exécutez :
Vous pouvez maintenant filtrer tous les problèmes de sécurité selon les vulnérabilités accessibles et les traiter en priorité :

Pour en savoir plus sur la fonctionnalité de détection des vulnérabilités accessibles, consultez les articles de blog suivants :
Analyse technique approfondie : Vulnérabilités accessibles : comment hiérarchiser efficacement la sécurité de l’open source, par Krysztof Huszcza
L’importance de la hiérarchisation des vulnérabilités dans les logiciels d’analyse de composition : Optimiser la hiérarchisation grâce à un contexte approfondi au niveau de l’application, par Daniel Berman et Michael Komraz, ainsi que l’article de Daniel consacré à l’annonce des fonctionnalités de hiérarchisation pensées d’abord pour les développeurs.
Politiques de conformité des licences
Défi : vous êtes confronté aux difficultés liées aux logiciels de sécurité d’entreprise si le service juridique vous demande :
Nous avons besoin d’une liste de toutes vos bibliothèques open source, pour l’ensemble des projets d’application.
Il est impératif de ne pas enfreindre les lois sur les licences et le droit d’auteur en distribuant, sans le savoir, des logiciels copyleft qui ne respectent pas leurs conditions de licence.
Solution : Snyk vous permet de traiter les problèmes de sécurité d’entreprise et de conformité des licences de deux façons :
Snyk vous fournit un rapport sur l’utilisation des licences dans l’ensemble de vos projets, que vous pouvez exporter au format CSV.
Snyk vous permet de définir des politiques de licence pour les logiciels open source, applicables au niveau des projets et de l’organisation, afin de respecter les directives du service juridique de votre entreprise.
Gestion des licences logicielles
L’onglet Reports de Snyk vous permet de consulter toutes les licences utilisées par vos projets, parmi l’ensemble des projets et des organisations importés, si nécessaire.
Vous pouvez ensuite filtrer la liste selon vos besoins ou la trier en fonction du nombre de dépendances ou de projets concernés par certaines licences. Cela vous aidera à hiérarchiser rapidement les exigences juridiques à traiter en cas de non-conformité à certaines licences.
Pour exporter la liste afin de collaborer avec une autre équipe dans un tableur, cliquez sur le bouton Exporter au format CSV pour créer une nomenclature logicielle qui inclut vos licences.

Politiques de licence
Il est courant d’établir une politique de licence à l’échelle d’une organisation afin d’éviter que l’entreprise s’expose à des poursuites pour une mauvaise utilisation de bibliothèques logicielles, voire, plus grave encore, pour leur utilisation en violation des conditions de licence.
Pour répondre à cette préoccupation, Snyk vous permet de définir une politique de licence pour vos projets, afin que le contrôle des licences fasse échouer la compilation ou un pipeline d’intégration continue.
Vous pouvez définir ces politiques de sécurité de manière très détaillée et les appliquer aux projets correspondant à des attributs spécifiques. Les équipes disposent ainsi d’une liberté suffisante pour travailler de façon autonome, tout en respectant des garde-fous adaptés.
Comment définir une politique dans l’interface Snyk ?
Les politiques se définissent au niveau du groupe. Vous devez donc être administrateur de groupe. Elles s’appliquent à toutes les organisations et à tous les projets appartenant aux groupes concernés.

Comme vous pouvez le constater, Snyk applique déjà par défaut une politique de conformité des licences adaptée aux exigences des entreprises. Vous pouvez la modifier pour qu’elle corresponde à vos propres exigences juridiques.

Classez efficacement vos projets
Défi : voici comment savoir si vous avez un besoin pressant de solutions de sécurité d’entreprise :
Les développeurs et les ingénieurs en sécurité consacrent beaucoup de temps à retrouver les projets sur lesquels ils doivent intervenir.
Vous croulez sous les vulnérabilités de sécurité et ne savez pas par où commencer.
Solution : configurez les projets avec des attributs liés à leur impact métier et des métadonnées sur leur pile technologique. Le service bénéficie ainsi d’un niveau de criticité adapté et d’informations sur l’environnement de déploiement et les caractéristiques de l’application. L’appartenance au frontend ou au backend est également clairement indiquée.
Un petit plus : avec Snyk, les solutions de sécurité pour les entreprises tiennent compte des retours de nos clients. Nous les écoutons vraiment, et c’est pourquoi nous savons quoi développer. Voici donc une autre fonctionnalité qui vous aide à identifier le responsable d’une application au sein de votre organisation : un champ dédié _Project owner_field que vous pouvez attribuer à tout utilisateur ou développeur ayant accès au projet Snyk.
Vous préférez regarder une vidéo sur le sujet ? Voici un bref récapitulatif vidéo sur la gestion de vos projets à l’aide d’attributs et de tags de projet :


La liste de projets suivante peut sembler intimidante, n’est-ce pas ?
Par quel projet commencer ? Comment filtrer cette liste de projets à l’échelle de toute mon organisation ou de toute mon unité commerciale ?

Si vous travaillez dans les SecOps, ou les opérations de sécurité, ces défis vous sont probablement familiers. En tant que partie prenante de la sécurité dans votre organisation, par exemple en tant que référent sécurité ou responsable d’équipe, vous avez probablement besoin d’aide pour traiter efficacement les enjeux de sécurité de l’entreprise.
Voici comment résoudre ce problème avec Snyk. Une image vaut mille mots : en voici une qui présente les filtres à gauche, lesquels vous permettent de filtrer vos projets selon les critères suivants :
Problèmes et correctifs applicables : un filtre très puissant. Vous pouvez veiller à ce que vos développeurs se concentrent d’abord sur les vulnérabilités de sécurité qui peuvent réellement être corrigées, sans perdre de temps à trier et à valider celles qui ne le peuvent pas. Les solutions de sécurité pour les entreprises en toute simplicité !
Intégrations : parcourez les projets selon leur source. Vous recherchez un projet surveillé via la CLI Snyk ? Vous souhaitez rechercher tous les projets issus de l’intégration GitLab ou Bitbucket Cloud ?
Environnement : de quel type de projet s’agit-il ? Frontend ? Backend ? Peut-être s’agit-il d’une application mobile que vous surveillez avec la toute nouvelle prise en charge du plugin Gradle de Snyk ? Filtrez rapidement ici.
Cycle de vie : l’architecture de sécurité d’entreprise doit souvent appliquer des politiques de sécurité en fonction de l’exposition de l’application au public. Par exemple, une application accessible uniquement en interne aux employés d’une entreprise peut présenter une criticité moindre. Cet attribut de cycle de vie vous permet de définir et de filtrer les projets selon qu’ils sont déployés en production, en préproduction ou dans un autre environnement.

Voici comment j’ai configuré l’un de mes projets pour le retrouver facilement dans la liste des projets à l’aide des filtres liés à la sécurité :

Téléchargez le guide des bonnes pratiques de sécurité pour les entreprises.
Envie d’en savoir plus ?
Découvrez comment réussir votre montée en charge avec Snyk auprès de l’équipe produit de Snyk.
Consultez la documentation de la base de connaissances Snyk sur les attributs de projet et leur configuration.
Lancez-vous dans les compétitions Capture The Flag
Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.
