Au cœur de chaque application se trouvent des secrets. Des informations d’identification qui permettent la communication entre l’homme et la machine et entre les machines. Les identités des machines sont bien plus nombreuses que celles des humains. facteur de 45 à 1 et représentent la majorité des secrets dont nous devons nous soucier. Selon Les recherches récentes de CyberArk93 % des organisations ont subi au moins deux violations liées à l’identité au cours de l’année écoulée. Il est clair que nous devons nous attaquer à ce problème croissant. De plus, il est clair que de nombreuses organisations acceptent d’utiliser des identifiants en texte clair pour ces identités dans des référentiels privés, pensant qu’ils resteront privés. Cependant, une mauvaise hygiène du code privé conduit à des fuites publiques, comme nous le voyons trop souvent dans les médias. Étant donné l’ampleur du problème, que pouvons-nous faire ?
Ce dont nous avons réellement besoin, c’est d’un changement dans nos processus, notamment en ce qui concerne la création, le stockage et l’utilisation des identités des machines. Heureusement, il existe une voie claire à suivre, combinant les solutions de gestion des secrets existantes et les outils de détection et de correction des secrets, tout en allant à la rencontre des développeurs là où ils se trouvent.
Élaboration d’un plan de sécurité de bout en bout pour les secrets
Lorsque nous réfléchissons à la manière de remédier au problème d’identité des machines, également connu sous le nom de prolifération des secrets, nous pouvons exposer le problème en quelques phrases.
« Nous disposons d’un nombre inconnu de secrets en texte clair valides et de longue durée, répartis dans notre code, nos configurations, nos pipelines CI, nos systèmes de gestion de projet et d’autres sources, dont nous ne pouvons pas tenir compte et sans stratégie de rotation cohérente. Pendant ce temps, les développeurs continuent de travailler avec des secrets en texte clair, car c’est un moyen fiable, bien que problématique, de faire fonctionner l’application. »
En réfléchissant à cette définition pratique, nous pouvons élaborer un plan en plusieurs étapes pour répondre à chaque préoccupation.
- Détection de secrets – Recherchez dans le code et les systèmes impliqués dans le cycle de vie du développement logiciel pour identifier les informations d’identification en texte clair existantes, en collectant autant d’informations que possible sur chacune d’elles.
- Gestion des secrets – Comptabilisation de tous les secrets connus via une plateforme de coffre-fort centralisée.
- Workflows des développeurs : ajustez les processus et les outils pour faciliter la création, le stockage et l’appel sécurisé des secrets.
- Analyse des secrets – Surveillance continue de tous les nouveaux secrets ajoutés en texte brut.
- Rotation automatique – Le remplacement régulier des secrets valides réduit leur exploitation potentielle par des acteurs malveillants.
Vous pouvez procéder étape par étape, en procédant par étapes. En un rien de temps, vous serez bien plus près d’éliminer la prolifération des secrets et de sécuriser toutes les identités de vos machines.
Trouver vos secrets
Le premier problème auquel chaque équipe est confrontée lorsqu’elle tente de maîtriser la prolifération des secrets est de déterminer quels secrets elle détient. Une recherche manuelle pour retrouver des secrets inconnus submergerait rapidement n’importe quelle équipe, mais heureusement, il existe des outils d’analyse des secrets, tels que GitGuardianqui peut automatiser ce processus et donner un aperçu des détails critiques. À partir d’une plateforme stable, vous devez fournir un chemin de communication pour travailler avec les développeurs pour la correction.
Mise en place d’un coffre-fort centralisé de secrets
Au cœur de toute bonne stratégie de gestion des secrets se trouve la gestion de la manière dont les secrets sont stockés et utilisés. Les coffres-forts d’entreprise vous permettent de comptabiliser de manière transparente tous les secrets connus, en les chiffrant au repos et en transit. Une bonne solution de coffre-fort, comprenant Invocation depuis Cyberark et Hashicorp Vault Entreprise. Si toute votre infrastructure provient du même fournisseur, par exemple AWS ou GCP, ce sont de très bonnes options aussi.
Sécuriser le flux de travail du développeur
La gestion des secrets a toujours été laissée aux développeurs, ce qui a donné lieu à une grande variété de solutions telles que les fichiers « .env » et, malheureusement, le codage en dur des secrets dans la base de code. L’utilisation d’une solution de coffre-fort centralisée offre aux développeurs un moyen cohérent d’invoquer en toute sécurité les informations d’identification de leurs applications dans tous les environnements. Si vous pouvez proposer une approche standardisée aussi simple à mettre en œuvre que ce qu’ils font actuellement, vous constaterez que de nombreux développeurs saisiront l’occasion de garantir que leurs déploiements ne sont pas bloqués en raison de ce problème de sécurité.
Vous devrez également envisager de déplacer le curseur vers la gauche. Les outils de ligne de commande, tels que ggshield, permettent aux développeurs d’ajouter des hooks Git automatiques pour rechercher des informations d’identification en texte clair avant toute validation. Empêcher un secret d’atteindre une validation signifie qu’il n’y a aucun incident à gérer plus tard et que le problème est résolu au moment le moins coûteux du cycle de vie du développement logiciel.
Analyse secrète à chaque interaction partagée
Vous devez également trouver un moyen de tenir compte du fait que des accidents peuvent parfois se produire. Une surveillance continue est nécessaire pour détecter tout nouveau problème provenant d’erreurs commises par des développeurs existants ou lorsque de nouvelles équipes ou sous-traitants sont embauchés alors qu’ils ne connaissent tout simplement pas encore vos processus. Tout comme lors de la première détection de secrets, l’utilisation d’une plateforme qui rassemble les informations dans un incident cohérent vous aidera à réagir rapidement à ces nouveaux problèmes. GitGuardian, par exemple, s’intègre au niveau du référentiel de code pour détecter les nouvelles informations d’identification en texte clair en quelques secondes, automatiquement à chaque push ou commentaire.
Les titres de compétences à durée de vie courte devraient être l’objectif de la rotation automatique
Si un attaquant trouve un secret valide, cela simplifie grandement son travail, car il peut simplement déverrouiller toutes les portes qu’il rencontre. Si ce même attaquant trouve un secret invalide, il ne peut pas en faire grand-chose. Avec un coffre-fort centralisé en place, vous pouvez mettre en place des plans de rotation automatique. La plupart des plateformes et services modernes ont un moyen de générer de nouvelles informations d’identification via un appel API et un moyen d’invalider les secrets existants. Avec un peu de script, en suivant l’un des nombreux guides publiés par des plateformes telles qu’AWS ou CyberArk, il est possible d’automatiser le remplacement sécurisé de n’importe quelle information d’identification selon un calendrier régulier, voire quotidien.
La sécurité des secrets de bout en bout nécessite un plan
Le meilleur moment pour aborder les problèmes liés à la sécurité des secrets de bout en bout est maintenant. Si vous n’avez pas encore de plan d’action en place, c’est le meilleur moment pour entamer ces discussions. Commencez par poser des questions telles que « Quels secrets avons-nous ? » ou « Avez-vous un coffre-fort en place ? » En fin de compte, nous devons donner aux développeurs les moyens de se concentrer sur leur flux de développement.
Rester vigilant afin que de nouveaux secrets soient découverts et traités immédiatement est un processus continu. Cela demandera des efforts, notamment en matière de sensibilisation et d’adoption des processus et des technologies appropriés, mais toute entreprise peut mieux maîtriser les identités et les secrets des machines, de bout en bout, dans toute l’organisation.