Gestion de la surface d’attaque externe : Qu’est-ce qui échappe aux entreprises ?
novembre 2023 par Thomas Segura - expert en cybersécurité @ GitGuardian
Selon Sun Tzu, l’ancien stratège militaire chinois, "Si vous connaissez l’ennemi et si vous vous connaissez vous-même, vous n’avez pas à craindre le résultat de cent batailles". Dans le domaine de la cybersécurité également, où chaque avancée technologique dévoile de nouvelles vulnérabilités, il est essentiel de connaître à la fois l’ennemi et soi-même pour assurer une défense efficace.
Chaque avancée technologique ouvre une porte, laissant derrière elle une "surface d’attaque" que des adversaires rusés exploitent pour percer les défenses. Dans ce monde de cybermenaces, la gestion de la surface d’attaque externe (EASM) est devenue un pilier essentiel de la cybersécurité moderne. De nombreuses évolutions du marché, comme l’acquisition de Mandiant par Google pour 5,4 milliards de dollars, soulignent l’importance croissante de la gestion de la surface d’attaque externe dans les pratiques de cybersécurité.
Des analystes respectés du secteur, notamment Gartner, Forrester et KuppingerCole, ont tous décrit l’expansion rapide de l’EASM, la qualifiant de préoccupation majeure pour les équipes de sécurité dans tous les secteurs. Forrester définit la gestion de la surface d’attaque externe comme étant plus qu’une simple gestion des vulnérabilités - des outils ou des fonctionnalités qui recherchent, découvrent et énumèrent continuellement les actifs publiés sur Internet, établissent les cartes d’identité uniques des actifs découverts et identifient les expositions sur les actifs connus et inconnus. Il s’agit d’une approche holistique de la détection et du traitement des faiblesses qui compromettent les systèmes critiques d’une organisation.
Ce que les entreprises doivent connaître sur leur surface d’attaque externe
Plusieurs éléments fondamentaux doivent être pris en compte.
• Tout d’abord, la découverte des actifs et la gestion de l’inventaire devraient jeter les bases, en permettant d’identifier et de cataloguer tous ses actifs sur internet, tels que les sites web, les applications et les serveurs.
• Une fois identifiés, la gestion des risques de vulnérabilité devient primordiale ; il est essentiel de procéder à des analyses régulières des vulnérabilités pour découvrir les faiblesses, de surveiller les menaces émergentes et de maintenir les actifs à jour avec les derniers correctifs et les dernières configurations.
• À partir de là, il s’agit de procéder d’être stratégique, d’évaluer les applications web et la sécurité du réseau, de se prémunir contre les menaces externes qui pèsent sur son infrastructure cloud et de se préparer à une réaction rapide en cas d’incident.
Ensemble, ces mesures peuvent renforcer la défense et permettre aux équipes de garder une longueur d’avance sur les adversaires qui se cachent dans l’ombre.
Les cyberattaquants exploitent les vulnérabilités pour infiltrer les systèmes et semer le chaos. C’est pourquoi il est essentiel de comprendre la cartographie de l’ensemble d’une surface d’attaque. Il ne s’agit pas seulement des actifs exposés ; les informations exposées à l’extérieur sont tout aussi vulnérables.
Lorsqu’elles sont entre les mains d’acteurs malveillants, ces informations deviennent une arme pour pénétrer les systèmes de défenses mis en place. Les cybercriminels peuvent se déplacer latéralement en obtenant un accès, en compromettant des services critiques et en infligeant des dommages financiers et de réputation considérables. Dans cette optique, la compréhension de tous les actifs et informations exposés à des attaquants potentiels est la clé de voûte de la stratégie de sécurité.
C’est pourquoi les organisations ont besoin d’un plan stratégique pour découvrir l’ensemble de leur surface d’attaque, ce qui vous permet de vous attaquer directement aux vulnérabilités et de réduire la surface d’attaque. En identifiant chaque point faible et en prenant des mesures proactives pour fortifier vos actifs et protéger les informations sensibles, vous pouvez réduire considérablement le risque global d’une cyberattaque réussie.
Les informations sensibles sont en danger sur GitHub public
Les développeurs utilisent GitHub pour collaborer et partager du code, ce qui en fait une surface d’attaque importante. L’envoi accidentel de clés d’API, de jetons OAuth et de mots de passe dans des référentiels publics ouvre la porte à l’exploitation. Il faut garder en tête que les pirates informatiques fouillent le code à la recherche de secrets, laissant les systèmes vulnérables.
La prolifération des secrets accélère chaque année depuis 2020. Les secrets codés en dur ont bondi de 67 % par rapport à l’année précédente, avec un volume de commits scannés en hausse de 20 %.
La protection des informations sensibles, pour qu’elles ne tombent pas entre de mauvaises mains, est une priorité. Il existe plusieurs scénarios dans lesquels des informations sensibles peuvent être exposées, comme du code poussé sur la mauvaise branche ou des outils mal configurés. Même si un développeur ou sous-traitant se rend compte qu’un secret a été supprimé de la version actuelle du code, les cybercriminels peuvent toujours exploiter l’historique des versions pour extraire des informations sensibles qui ont été précédemment publiées et supprimées.
GitHub est une mine d’or de code source ouvert, mais c’est aussi un terrain propice aux failles de sécurité. Les pirates peuvent facilement rechercher dans les dépôts publics du code contenant des vulnérabilités connues ou des dépendances obsolètes, d’où l’importance de gérer votre surface d’attaque sur GitHub public. Un audit régulier pour détecter d’éventuelles failles de sécurité et utiliser des solutions de stockage sécurisées pour les secrets sont indispensables.
Il existe des risques de non-conformité
En fonction de l’organisation ou du type de projet, des exigences réglementaires peuvent régir la manière dont les données sont traitées et stockées. La gestion de la surface d’attaque sur GitHub public est cruciale pour la conformité à ces réglementations, car elle permet de s’assurer que les données sensibles ne sont pas accidentellement exposées dans les référentiels publics.
L’exposition des secrets peut nuire à la réputation des ESN
Les secrets codés en dur sont copiés et partagés à travers les environnements avec peu ou pas de contrôle, et ils représentent une menace majeure pour les entreprises. La protection des données des clients est cruciale pour les fournisseurs de services informatiques (ESN), car l’exposition de secrets peut nuire considérablement à leur réputation. La protection des informations sensibles des clients n’est pas seulement une responsabilité, mais aussi une opportunité d’établir la confiance et de construire des relations durables.
Comment protéger ses secrets sur GitHub public ?
Une entreprise doit former ses développeurs aux meilleures pratiques de sécurisation du code et de gestion des secrets, y compris la formation aux pratiques de codage sécurisé et l’audit régulier du code pour détecter d’éventuelles vulnérabilités en matière de sécurité. Les développeurs peuvent protéger les informations sensibles dans les dépôts Git en créant un fichier ".gitignore" pour exclure les fichiers ou les répertoires, tels que les clés API, les mots de passe et les fichiers de configuration, de la livraison dans le dépôt.
Lorsqu’il s’agit de gérer des projets sur GitHub, les développeurs utilisent souvent un seul compte pour leurs activités personnelles et professionnelles. Bien que pratique, cette habitude peut involontairement conduire à des confusions et à des configurations erronées, exposant potentiellement des informations sensibles. En outre, on pense souvent à tort que la suppression des données sensibles de la version actuelle du code source élimine le risque. Cependant, l’ensemble de l’historique git, y compris les versions précédentes, reste publiquement visible. Cela signifie que même si la version actuelle est sécurisée, des restes de données sensibles peuvent encore se cacher dans des versions antérieures. Il est essentiel de sensibiliser les développeurs à ces risques et de leur donner les moyens de prendre des mesures proactives pour les atténuer.
Il faut aussi limiter l’accès aux dépôts de code aux seules personnes autorisées, en attribuant des permissions à des utilisateurs ou à des équipes spécifiques. L’authentification à deux facteurs ajoute une couche de sécurité supplémentaire pour garantir que seules les personnes autorisées peuvent accéder au code.
Utiliser le chiffrement, la gestion des secrets et l’examen du code
Le chiffrement des données « au repos » et en transit, ainsi que l’utilisation d’outils tels que HashiCorp Vault, AWS Secrets Manager ou Doppler pour le stockage sécurisé et le contrôle d’accès, ajoutent une couche de protection. Ces outils permettent de créer des secrets dynamiques qui tournent automatiquement, ce qui donne un meilleur contrôle sur les personnes qui peuvent accéder aux secrets. Ils proposent également des logs d’accès qui permettent de savoir qui a accédé aux secrets et quand. L’utilisation d’outils tiers pour les révisions de code peut également aider à identifier le code contenant des secrets.
Il faut avoir en tête que lors des revues de code, les contrôleurs se concentrent généralement sur la différence nette entre l’état actuel et l’état proposé, en négligeant l’ensemble de l’historique de la branche. Cela signifie que les problèmes potentiels contenant des informations sensibles qui ont pu être ajoutées puis retirées de la branche pourraient être oubliés.
Même si une organisation prend les mesures ci-dessus pour sécuriser son espace public GitHub, cela reste insuffisant. Elle doit mettre en œuvre des systèmes automatisés de détection des secrets pour garder une longueur d’avance sur les acteurs malveillants qui pourraient la cibler. Ces solutions doivent auditer non seulement les dépôts de code de l’entreprise mais aussi ceux de ses développeurs et sous-traitants.
Moins de 20 % des fuites d’entreprise sur GitHub se produisent dans des dépôts publics appartenant à des organisations. La plupart des fuites restantes se produisent dans les dépôts personnels des développeurs, et une petite partie se produit également dans les dépôts des fournisseurs de services informatiques.
La mise en œuvre des étapes ci-dessus peut considérablement réduire le risque que des informations sensibles se retrouvent accidentellement dans les dépôts publics de GitHub. Il est essentiel de reconnaître que toute discussion sur la gestion de la surface d’attaque cyber doit englober le vaste domaine des secrets sur GitHub public. Si cet aspect critique n’est pas pris en compte, des zones d’ombre peuvent persister, laissant une organisation vulnérable à des violations potentielles. Lorsqu’une entreprise prend connaissance d’un rapport sur la surface d’attaque externe, elle doit prendre le temps de réfléchir et demander si GitHub public a été inclus dans l’évaluation.