Bonnes pratiques de gestion des vulnérabilités des applications
6 août 2024
0 minutes de lectureDepuis des années, la gestion des vulnérabilités des applications joue un rôle essentiel dans le DevSecOps, qui repose sur une responsabilité partagée de la sécurité entre les équipes.
Toutefois, l’évolution des pratiques de développement oblige les équipes de sécurité à s’adapter et à s’intégrer aux workflows existants des développeurs. La conteneurisation, l’infrastructure as code (IaC), les assistants de codage IA et le recours accru au code tiers font désormais partie du cycle de développement classique. Ces pratiques n’existaient pas il y a dix ans : les équipes de sécurité ont donc dû s’adapter progressivement à ces « nouvelles normes ».
Pour s’adapter, les équipes de sécurité ont dû trouver un équilibre entre les anciennes et les nouvelles techniques. Dans bien des cas, les méthodes éprouvées restent pertinentes, mais doivent être complétées par des pratiques plus récentes, adaptées à l’évolution des méthodes de développement logiciel.
La gestion des vulnérabilités en est un exemple. Bien qu’elle existe depuis de nombreuses années et qu’elle ait sa place dans les pratiques de sécurité modernes, les équipes doivent la compléter par d’autres bonnes pratiques.
Cet article présente les bases de la gestion des vulnérabilités des applications : sa définition, ses limites et les bonnes pratiques qui permettent de la renforcer dans des cycles de développement logiciel (SDLC) en constante évolution.
Comprendre la gestion des vulnérabilités des applications
La gestion des vulnérabilités des applications est une approche globale qui consiste à identifier, classer, corriger et atténuer les vulnérabilités des applications. Ses principaux éléments sont les suivants :
Identifier les vulnérabilités tout au long du cycle de vie de l’application.
Classer et analyser les vulnérabilités détectées pour comprendre leur nature, leur gravité et leur impact potentiel.
Corriger et atténuer les vulnérabilités détectées en appliquant des correctifs, en modifiant les configurations ou en mettant en place des mesures de contournement.
Rendre compte de tous les processus et résultats de gestion des vulnérabilités et les documenter.
Surveiller et examiner en continu les applications de l’organisation afin de s’adapter aux nouvelles menaces.
Pour déployer ces étapes à grande échelle et les améliorer, les grandes organisations peuvent également s’appuyer sur des pratiques de gestion des vulnérabilités en entreprise, notamment :
Utiliser des outils de gestion d’entreprise comme les bases de données de gestion des configurations (CMDB), les systèmes de gestion des correctifs et les systèmes de gestion des informations et des événements de sécurité (SIEM).
Automatiser les activités clés, comme l’analyse, l’évaluation des menaces, le déploiement des correctifs et la création de rapports.
Associer les activités aux exigences réglementaires (par exemple, RGPD, HIPAA ou PCI-DSS).
S’appuyer sur des bases de données avancées de renseignements sur les menaces.
Centraliser la visibilité sur les données de vulnérabilité à l’échelle de toute l’organisation.
Deux bonnes pratiques de gestion des vulnérabilités
Les équipes peuvent s’appuyer sur la gestion des vulnérabilités pour soutenir leurs initiatives de sécurité des applications de plusieurs façons. Voici les deux bonnes pratiques à privilégier pour en tirer le meilleur parti et renforcer l’AppSec :
Automatiser autant que possible
Compte tenu du volume et de la fréquence des nouvelles vulnérabilités et des mises à jour, leur gestion manuelle peut être écrasante, source d’erreurs et peu réaliste pour toute organisation. L’automatisation limite les erreurs humaines, accélère les processus de gestion des vulnérabilités et permet aux équipes de sécurité de se concentrer sur des tâches plus stratégiques.
Voici quelques domaines particulièrement propices à l’automatisation :
L’analyse des vulnérabilités à l’aide d’un outil comme Snyk, qui peut effectuer des analyses à intervalles réguliers.
La gestion des correctifs avec des outils comme Microsoft Intune ou SolarWinds Patch Manager.
La création de rapports et la surveillance, notamment l’envoi d’alertes en temps réel aux bonnes personnes.
L’automatisation accélère les processus et réduit le risque d’erreur humaine, mais une supervision humaine reste nécessaire pour mettre à jour de temps à autre les règles de vos outils d’automatisation.
Donner aux développeurs les moyens de contribuer à la gestion des vulnérabilités.
Comme indiqué précédemment, le DevSecOps est essentiel à la sécurité des applications. Plusieurs stratégies permettent aux équipes de développement de contribuer plus facilement à la gestion des vulnérabilités, notamment :
Organiser des sessions de modélisation des menaces afin de définir une orientation claire pour votre programme de sécurité.
Faire respecter les normes et pratiques de codage sécurisé à l’aide du policy-as-code (PaC) tout au long du cycle de développement logiciel.
Former les développeurs aux pièges de sécurité courants dans le code et à leur résolution.
Utiliser des outils de test de sécurité statique des applications (SAST) et d’analyse de la composition logicielle (SCA) dès que les développeurs valident leur code. Plus vos outils détectent rapidement un problème de sécurité, plus il est facile pour les développeurs de le corriger.
Les limites de la gestion des vulnérabilités
La gestion des vulnérabilités joue un rôle essentiel dans la sécurité des applications, mais elle présente encore certaines lacunes. Elle repose souvent sur des hypothèses qui ne sont tout simplement plus valables dans les environnements de développement complexes et rapides d’aujourd’hui :
Limite n° 1 : la gestion traditionnelle des vulnérabilités considère chaque vulnérabilité isolément.
Historiquement, la gestion des vulnérabilités s’est attachée à corriger chacune d’elles séparément. Mais la correction d’une vulnérabilité peut aussi vous amener à modifier d’autres parties du code et déclencher un effet domino qui fait apparaître de nouvelles vulnérabilités. Cette situation peut nuire aux équipes plutôt que les aider à renforcer progressivement la sécurité de leurs applications.
La gestion classique des vulnérabilités des applications ne tient pas compte du contexte global de l’application. Les corrections ignorent donc l’application dans son ensemble et peuvent entraîner l’apparition de nouvelles vulnérabilités.
Limite n° 2 : la gestion traditionnelle des vulnérabilités évalue le risque au moyen d’un score standard, comme le système Common Vulnerability Scoring System (CVSS).
En règle générale, la gestion des vulnérabilités des applications s’appuie sur des scores standard comme le CVSS pour évaluer le risque associé à chaque vulnérabilité. Les développeurs donnent alors la priorité à la correction des vulnérabilités dont le score CVSS est élevé ou critique. Or, ces scores standard ne tiennent pas compte d’autres facteurs essentiels, comme l’application concernée. Par exemple, les équipes devraient traiter en priorité une vulnérabilité de sévérité moyenne selon le CVSS dans une application critique pour l’entreprise, plutôt qu’une vulnérabilité de sévérité critique dans une application à usage interne.
La gestion classique des vulnérabilités des applications s’appuie uniquement sur le CVSS, qui ne suffit pas à évaluer pleinement une vulnérabilité.
Limite n° 3 : la gestion traditionnelle des vulnérabilités oblige les développeurs à quitter leur environnement de travail pour lancer des analyses.
La gestion des vulnérabilités existe depuis si longtemps qu’elle comporte encore certains éléments hérités. L’une de ces pratiques obsolètes consiste à obliger les développeurs à accéder à une plateforme de sécurité distincte pour effectuer des tests dès les premières étapes du SDLC.
Ces changements de contexte ne sont pas efficaces : les développeurs doivent déjà assumer de nombreuses autres responsabilités liées au développement des applications. Les équipes doivent plutôt chercher à mieux intégrer les tests et les autres piliers de la gestion des vulnérabilités aux workflows natifs, par exemple en proposant l’analyse ainsi que des conseils pratiques et des recommandations de correction directement dans les plateformes de développement.
La gestion classique des vulnérabilités des applications part du principe que les développeurs doivent analyser et corriger leur code sur une plateforme de sécurité distincte. Or, ils n’ont ni le temps ni les ressources nécessaires pour effectuer efficacement ce changement de contexte.
Limite n° 4 : la gestion traditionnelle des vulnérabilités vise à regrouper toutes les vulnérabilités dans une vue unique.
La gestion des vulnérabilités montre aussi ses limites en cherchant à regrouper toutes les vulnérabilités dans une vue unique. Cet objectif est irréaliste dans un environnement de développement complexe, où de nouvelles vulnérabilités apparaissent constamment. Les équipes devraient plutôt commencer par mieux comprendre le contexte des applications critiques pour l’entreprise, puis élargir leur approche. Dans la plupart des cas, il n’est pas nécessaire de recenser de manière exhaustive toutes les vulnérabilités d’une organisation.
La gestion classique des vulnérabilités des applications vise à regrouper toutes les vulnérabilités dans une vue unique. Cet objectif irréaliste ne permet pas de comprendre réellement le contexte des risques.
Comment Snyk facilite la gestion des vulnérabilités
L’approche de Snyk en matière de sécurité des applications est contextuelle, fondée sur les risques et centrée sur les développeurs. Elle répond directement aux limites de la gestion traditionnelle des vulnérabilités. Nos outils proposent les pratiques et perspectives suivantes :
Réaliser des tests de sécurité, comme le SAST et le SCA, dans l’environnement de travail natif des développeurs. Les équipes de développement peuvent détecter et corriger les vulnérabilités, tout en se formant sur chaque problème signalé, directement depuis leur interface de ligne de commande (CLI).
La gestion de la posture de sécurité des applications propose aux entreprises une approche axée sur les actifs, afin de hiérarchiser les actifs les plus critiques selon leur importance pour l’entreprise, plutôt qu’en fonction d’un score CVSS générique.
Des corrections de sécurité tenant compte du contexte, qui ne compromettent pas d’autres éléments essentiels de votre application, grâce à la connaissance approfondie du contexte de l’entreprise et de l’application fournie par l’ASPM.
Découvrez comment l’ASPM peut faire passer votre gestion des vulnérabilités à la vitesse supérieure.
