Qu’est-ce que l’analyse des secrets ?
L’analyse des secrets consiste à exécuter des analyses automatisées sur les référentiels de code, les pipelines d’exécution, les fichiers de configuration, les validations et d’autres sources de données afin de prévenir les menaces de sécurité potentielles posées par les secrets exposés.
L’analyse des secrets fait partie du champ d’application plus large de la gestion des secrets, qui englobe les processus et les outils impliqués dans le stockage et la protection des secrets contre les entités non autorisées.
The Secure Coding Best Practices [Cheat Sheet]
With curated insights and easy-to-follow code snippets, this 11-page cheat sheet simplifies complex security concepts, empowering every developer to build secure, reliable applications.
Download Cheat SheetQue sont les secrets ?
Les secrets sont des informations d’identification utilisées pour s’authentifier ou obtenir un accès autorisé pour effectuer des actions sensibles dans les systèmes informatiques d’une entreprise.
Les projets logiciels s’appuient souvent sur des composants tiers : conteneurs et plateformes d’orchestration de conteneurs, outils DevOps et CI/CD, bases de données, référentiels, etc. Pour se connecter à ces services tiers et permettre la communication entre les différents composants de l’application, votre environnement logiciel a besoin d’un moyen d’authentifier le service ou le composant de l’application. Cela se produit généralement sous la forme d’un « secret », c’est-à-dire d’une clé, d’un mot de passe, d’un certificat ou d’un jeton.
En quoi les secrets diffèrent-ils des données sensibles ?
Contrairement aux données sensibles (par exemple, les numéros de sécurité sociale et les informations de carte de crédit), qui appartiennent généralement aux utilisateurs finaux, les secrets appartiennent aux entreprises. Voici quelques exemples de secrets :
Mots de passe LDAP
Certificats PKI/TLS
Clés de chiffrement
Informations d’identification du conteneur
Clés SSH
Jetons API
Les développeurs utilisent des secrets pour authentifier et établir une communication entre leurs systèmes et d’autres services cloud, ou pour contrôler l’accès humain et machine aux systèmes sensibles.
As digital authentication credentials, secrets—if exposed—can grant adversaries unauthorized access to a company’s code bases, databases, and other sensitive digital infrastructure.
Pourquoi l’analyse des secrets est-elle importante ?
En tant qu’identifiants d’authentification numérique, les secrets, s’ils sont exposés, peuvent accorder à des adversaires un accès non autorisé aux bases de code, aux bases de données et à d’autres infrastructures numériques sensibles d’une entreprise.
Malheureusement, la sécurisation des secrets n’est pas une tâche facile. Bien que les secrets doivent être chiffrés et étroitement contrôlés, ils doivent également être rendus accessibles aux équipes d’ingénierie, aux applications et à l’ensemble d’un environnement.
Par conséquent, à un moment ou à un autre du cycle de vie du développement logiciel (SDLC), les secrets se retrouvent souvent dans des espaces potentiellement exposés : informations d’identification codées en dur dans les pipelines d’intégration et de livraison continues (CI/CD), dépôts de code, Systèmes de contrôle de version (VCS), les logiciels de sécurité, les environnements de conteneurisation ou les canaux de communication sur le lieu de travail (par exemple, Slack, Teams).
Cela se produit parce que les développeurs se concentrent sur l’écriture et la livraison de code de qualité à une vitesse vertigineuse. Ainsi, lorsque le logiciel est encore en phase de développement et de test, ils peuvent considérer qu’il est idéal de stocker les secrets dans des machines locales pour accélérer le développement et faciliter des boucles de rétroaction plus rapides.
C’est là qu’intervient l’analyse des secrets. Discutons des quatre principales raisons pour lesquelles les développeurs devraient l’implémenter.
Protection des données sensibles et des secrets
Pour protéger Données sensibles, nous les cryptons, en transit et au repos, et les stockons dans des bases de données. Les secrets sont ensuite utilisés pour contrôler les bases de données, limitant ainsi l’accès aux seuls humains et machines autorisés.
Par exemple, pour confirmer les paires nom d’utilisateur/mot de passe saisies par les utilisateurs finaux, votre portail de connexion doit établir une connexion automatique à votre base de données. Cette connexion est authentifiée par un secret, autorisant l’accès du portail aux informations sensibles de la base de données. Si ce secret est divulgué en cours de route ou se retrouve dans un espace non sécurisé, des personnes non autorisées peuvent accéder, voler, exposer ou chiffrer les données pour des attaques de ransomware.
Le Incident d’exposition des données Microsoft 2023 découvert par l’équipe de recherche de Wiz est une démonstration parfaite de l’importance de la numérisation secrète. Dans le but de publier des données d’entraînement basées sur l’IA sur GitHub, une équipe de recherche Microsoft a accidentellement partagé un lien qui a exposé 38 To de données privées, y compris des clés privées, des secrets, des mots de passe et plus de 30 000 messages internes Microsoft Teams, stockés dans un compte de stockage Microsoft Azure.
Cet incident aurait pu être évité si l’équipe avait analysé le compte à la recherche de secrets avant de publier le lien vers GitHub.
Déjouer les cyberattaques
Le L’équipe de recherche Wiz a également trouvé des secrets oubliés à plusieurs endroits négligés dans les pipelines CI/CD, en particulier les couches de base d’images de conteneur et les fichiers d’historique Linux bash. Les attaquants peuvent exploiter ces secrets exposés pour mener des cyberattaques à l’aide de divers scénarios. Les secrets oubliés peuvent faciliter les mouvements latéraux et Exécution de code à distance dans les attaques de la chaîne d’approvisionnement logicielle, permettant aux pirates de modifier les codes sources d’une entreprise, d’installer du code malveillant dans des artefacts prêts à la production ou d’altérer les processus de construction des images.
En trouvant des secrets oubliés ou codés en dur avant qu’ils ne soient exposés, les outils d’analyse des secrets aident à étouffer dans l’œuf diverses formes de cyberattaquants.
Many companies are subject to regulatory standards designed to protect end users’ sensitive personal, financial, and health-related information. As secrets guard this data, any accidental release of secrets may result in a data breach that could result in hefty noncompliance fines.
Améliorer la conformité
De nombreuses entreprises sont soumises à des normes réglementaires conçues pour protéger les informations personnelles, financières et de santé sensibles des utilisateurs finaux. Comme les secrets protègent ces données, toute divulgation accidentelle de secrets peut entraîner une violation de données pouvant entraîner de lourdes amendes pour non-conformité.
L’analyse des secrets peut aider à détecter et à empêcher la compromission des secrets.
Protection contre les atteintes à la réputation et les pertes financières
Les violations et les cyberattaques causent des dommages importants à la réputation, ce qui a un impact négatif sur les revenus et augmente les coûts tels que les amendes, les frais juridiques et les règlements.
L’analyse et la protection proactives des secrets permettront d’éviter des conséquences aussi lourdes.
Comment fonctionne l’analyse des secrets ?
L’analyse des secrets comporte quelques étapes, effectuées à l’aide d’outils et de méthodes spécialisés. Voici comment cela fonctionne.
Étape 1 : Numérisation
Une fois qu’un scanner secret est installé et connecté à toutes les parties pertinentes de votre pile informatique, il effectue des analyses en temps réel ou au repos de votre pile.
Les analyses en temps réel sont pilotées par des événements, déclenchées par des demandes de tirage dans votre système de contrôle de version (VCS) ou des modifications de code dans l’un des composants suivants de votre pile :
Code: Dépôts de code, fichiers de configuration
Conteneurs: Images de conteneur et architecture Kubernetes
Pile technologique DevOps : Construire des systèmes, des systèmes de tickets, des canaux de communication, des systèmes de gestion des connaissances, des logiciels de suivi des bugs, une pile de support, etc.
Pipelines d’observabilité : Logiciel d’observabilité/journalisation et magasins de données
Les analyses au repos effectuent des analyses historiques des mêmes composants à intervalles réguliers.
Techniques d’analyse secrète
Comme les secrets sont souvent intégrés dans le code, les journaux, etc., leur identification peut être délicate. Le tableau ci-dessous détaille quatre techniques d’analyse secrètes.
If the scanner detects a potential secret, it either corresponds with the service provider or extracts metadata within your stack to identify the service that the secret pattern matches; it then detects if it is still valid.
Étape 2 : Identifier et vérifier les secrets
Si l’analyseur détecte un secret potentiel, il correspond soit au fournisseur de services, soit extrait les métadonnées de votre pile pour identifier le service auquel le modèle de secret correspond. Il détecte alors s’il est toujours valide.
Étape 3 : Rapports et alertes
Si une correspondance est confirmée, l’analyseur vous informe que le secret est exposé. Selon l’exhaustivité de l’outillage, il peut également fournir des recommandations pour résoudre le problème. Note: Assurez-vous que seules les parties autorisées ont accès à ce rapport, car il contiendrait des données sensibles.
Outils d’analyse de secrets open source
Ci-dessous, nous explorons cinq outils d’analyse de secrets open source courants.
Détecter-secrets
Detect-secrets est un projet Microsoft qui analyse l’historique Git de votre projet à l’aide d’heuristiques et d’expressions régulières.
Gitleaks scans repos, directories, files, and entire Git histories to detect past and present exposed secrets. It can be installed using Docker, Go, or Homebrew.
Gitleaks
Gitleaks analyse les dépôts, les répertoires, les fichiers et l’intégralité de l’historique Git pour détecter les secrets exposés passés et présents. Il peut être installé à l’aide de Docker, Go ou Homebrew.
Whispers scans static structured text files such as configs, XML, JSON, and Python3 for hard-coded secrets. Unlike the others, it doesn't scan code but instead parses known data formats and extracts key-value pairs to detect secrets.
Murmure
Whispers analyse les fichiers texte structurés statiques tels que les configurations, XML, JSON et Python3 à la recherche de secrets codés en dur. Contrairement aux autres, il'T analyse le code, mais analyse les formats de données connus et extrait les paires clé-valeur pour détecter les secrets.
Git-secrets is an AWS command-line tool for scanning commits, commit messages, and “–no-ff” merges.
Git-secrets
Git-secrets est un outil de ligne de commande AWS permettant d’analyser les validations, les messages de validation et les fusions « –no-ff ».
Git-all-secrets is an aggregation of multiple secret scanners, including TruffleHog (a regular expression-based scanner) and repo-supervisor (a high entropy-based scanner).
Git-all-secrets
Git-all-secrets est une agrégation de plusieurs scanners de secrets, y compris TruffleHog (un scanner basé sur des expressions régulières) et repo-supervisor (un scanner basé sur une entropie élevée).
Secret scanning can be approached in a few different ways, including open-source and commercial options. Each brings strengths that can be valuable depending on your environment and use case.
Qu’en est-il des outils propriétaires ?
L’analyse des secrets peut également être effectuée à l’aide d’outils propriétaires. Les outils open source n’ont que peu ou pas de coûts financiers, mais ils peuvent également ne pas offrir autant de couverture que les outils propriétaires. À l’inverse, les outils propriétaires nécessitent des degrés variables d’engagement financier, mais ont généralement plus de fonctionnalités et d’offres.
Quel que soit votre choix, assurez-vous de faire attention à la technique de numérisation utilisée par l’outil ; Par exemple, un scanner hybride permet de réduire les faux positifs et de détecter davantage de types de secrets. De plus, tenez compte de la réputation du fournisseur et de la capacité de l’outil à effectuer une surveillance/alerte en temps réel, Réponse aux incidentset la hiérarchisation des risques.
6 bonnes pratiques pour la gestion des secrets
En plus d’analyser les secrets, il est également important de mettre en œuvre les bonnes pratiques suivantes pour les gérer correctement.
1. Stockez et chiffrez les secrets à l’aide d’un gestionnaire de secrets
Évitez de stocker des secrets dans des images de conteneur, des fichiers de configuration, du code et d’autres endroits non protégés pour éviter la prolifération des secrets. Utilisez plutôt des outils de gestion des secrets dédiés (par exemple, HashiCorp Vault ou AWS Secrets Manager) qui chiffrent les secrets au repos et en transit.
2. Adoptez la rotation (régulière) des secrets et les secrets dynamiques
La rotation des secrets implique de modifier périodiquement les secrets à des intervalles préconfigurés ou de déclencher manuellement une modification. L’utilisation de secrets dynamiques est un moyen d’implémenter la rotation des secrets. Contrairement aux secrets statiques, ceux-ci sont de courte durée, ce qui signifie qu’ils expirent après une période spécifique ou après que certaines conditions sont remplies.
La rotation régulière des secrets limite la fenêtre d’opportunité d’un pirate, réduisant ainsi la possibilité que des secrets compromis soient utilisés pour mener des cyberattaques.
3. Restreindre l’accès aux secrets
Créez des politiques d’accès secrètes cohérentes dans toute votre pile et automatisez leur application. Cela comprend l’application de la principe du moindre privilège (PoLP), les listes de contrôle d’accès (ACL) et le contrôle d’accès basé sur les rôles (RBAC) ; Celles-ci limiteront l’accès des utilisateurs et des applications aux secrets, aux données et à l’infrastructure en fonction du besoin d’utilisation.
Si les informations d’identification sont accidentellement compromises, les PoLP, les ACL et les RBAC peuvent contribuer à réduire la surface d’attaque, limitant ainsi la capacité d’un acteur malveillant à se déplacer latéralement dans votre environnement.
4. Utiliser des espaces réservés
Évitez de coder en dur les secrets, car vous devrez peut-être partager du code dans des dépôts publics. L’incident de Microsoft évoqué ci-dessus en est un exemple. Au lieu de secrets codés en dur, utilisez Variables d’environnement pour référencer des secrets dans votre code.
5. Suivre le cycle de vie des secrets
Gardez une trace des secrets actuellement utilisés, révoquez les secrets compromis et enregistrez les événements d’accès (qui accède à quoi et quand) dans un journal d’audit complet.
6. Mettre en œuvre l’analyse du chemin des menaces
Choisissez un outil d’analyse secrète avec Analyse avancée du chemin d’attaque; Cela permettra de détecter les secrets, de les corréler avec les systèmes pertinents et de vous donner une carte claire des ressources et des systèmes sur le chemin de l’attaque.
What is the Principle of Least Privilege (PoLP)? Use Cases, Benefits, and Implementation
En savoir plusÀ la recherche de secrets avec Wiz
Wiz Code améliore vos efforts d’analyse des secrets en détectant les informations d’identification, les clés API et les informations sensibles exposées dans votre base de code, en veillant à ce qu’elles soient interceptées avant d’atteindre les environnements de production.
Dans le cadre de Wiz'plate-forme complète de sécurité cloud, Wiz Code analyse l’ensemble de votre flux de travail à la recherche de menaces et de vulnérabilités à l’aide de 35+ cadres de conformité pris en charge sur Terraform, CloudFormation, Ansible, Google Deployment Manager, ARM, Kubernetes, Helm et Docker.
Wiz s’intègre automatiquement aux dépôts de code pour :
Analysez les volumes système et détectez les secrets exposés tels que les clés d’accès à la plate-forme cloud, les certificats de domaine et les clés SSH
Recherchez des données connues liées aux secrets et extrayez les métadonnées pour fournir un contexte
Extraire les informations de l’algorithme et de la longueur des bits pour lier les clés privées SSH à leur configuration de clés autorisées
Extrayez des détails tels que les sujets, les dates d’expiration et les attributs importants pour lier un certificat à la ressource pour laquelle il est utilisé
Fournir des graphiques de sécurité pour suivre les chemins d’attaque potentiels
Alerter les parties prenantes lorsque des secrets sont détectés
Wiz déploie des scanners natifs du cloud pour garantir la vitesse, l’efficacité et une numérisation complète, une combinaison rare.
Demander un manif aujourd’hui pour voir comment Wiz peut vous aider à protéger vos secrets.