Aujourd’hui, les entreprises du numérique s’appuient sur des applications commerciales, internes et open source pour gérer leur activité, mais elles utilisent aussi de plus en plus une infrastructure informatique et des méthodologies DevOps automatisées pour accélérer le développement et l’innovation. Alors que les environnements applicatifs et informatiques varient considérablement d’une entreprise à l’autre, une chose reste constante : chaque application, script, outil d’automatisation ou autre entité non humaine s’appuie sur une forme d’identifiant à privilèges pour accéder aux autres outils, applications et données.
Qu’est-ce qu’un secret ?
Ces identifiants à privilèges non humains sont souvent appelés « secrets » et font référence à une information privée qui sert de clé pour accéder à des ressources protégées ou à des informations sensibles contenues dans les outils, les applications, les conteneurs, les environnements DevOps et cloud.
Parmi les types de secrets les plus courants, on trouve les éléments suivants :
- Identifiants des comptes à privilèges
- Mots de passe
- Certificats
- Clés SSH
- Clés API
- Clés de chiffrement
Problèmes clés de la gestion des secrets
Chaque utilisateur non humain doté d’un accès à un secret dispose automatiquement des permissions nécessaires pour accéder en temps réel à toutes les ressources qui appartiennent au propriétaire dudit secret. Les cybercriminels le savent bien et ils ciblent les secrets afin d’obtenir l’accès à d’autres secrets et d’autres hôtes pour accomplir leur mission. Une cyberattaque visant des secrets peut souvent s’étendre bien au-delà de la faille initiale.
Les secrets sont très répandus.
Ils incluent les identifiants codés dans les applications conteneurisées (par ex. Red Hat OpenShift, Kubernetes ou Pivotal) ; les processus d’automatisation (par ex. Ansible Playbooks, Puppet ou Chef) ; les application métier critiques, y compris celles développées en interne et les solutions commerciales disponibles (COTS) ; les logiciels de sécurité, comme les outils d’analyse de vulnérabilités ; les serveurs applicatifs et les logiciels de gestion informatique, les plateformes d’automatisation des processus par la robotique (RPA) et la chaîne d’outils CI/CD.
Les processus automatisés sont extrêmement puissants.
Ils peuvent simultanément accéder à des données protégées, monter en charge à une vitesse incomparable, utiliser les ressources du cloud et exécuter des processus métier. Cependant, et les failles de sécurité qui font parler d’elles le montrent bien, les processus automatisés sont vulnérables aux cyberattaques sophistiquées, qui peuvent se produire soudainement et se propager rapidement. Les organisations doivent protéger les secrets attribués à des entités machines pour se protéger des attaques et réduire les risques.
Qu’est-ce que la gestion des secrets ?
Bonne pratique de cybersécurité pour les entreprises du numérique, la gestion des secrets permet aux organisations d’appliquer de façon homogène les politiques de sécurité pour les identités des machines. La gestion des secrets offre l’assurance que les ressources issues de tous les outils, plateformes et environnements cloud sont uniquement accessibles à des entités authentifiées et autorisées.
Une initiative de gestion des secrets comprend généralement les étapes suivantes : Bon nombre de ces approches et techniques sont également utilisées pour protéger les accès à privilèges des utilisateurs humains.
- Authentifier toutes les demandes d’accès qui utilisent des identifiants non humains.
- Appliquer le principe du moindre privilège.
- Appliquer le contrôle des accès basé sur les rôles et renouveler régulièrement les secrets et les identifiants.
- Automatiser la gestion des secrets et appliquer des politiques d’accès homogènes.
- Suivre tous les accès et maintenir une piste d’audit exhaustive.
- Supprimer les secrets du code, des fichiers de configuration et autres zones non protégées.
Quels sont des cas d’utilisation courants pour la gestion des secrets ?
Gestion des secrets pour protéger les pipelines CI/CD.
Les outils de CI/CD populaires comme Jenkins, Ansible, Puppet et Chef sont conçus dans une optique d’efficacité et de rapidité, mais ils posent de nouveaux problèmes de sécurité. Ces outils automatisés de gestion de la configuration requièrent l’utilisation de secrets pour accéder à des ressources protégées comme des bases de données, des serveurs SSH et des services HTTPs. Malheureusement, ces secrets sont souvent codés ou stockés dans des fichiers de configuration ou dans le code de ces outils (par ex., JenkinsFiles, Playbooks, scripts ou code source). La gestion efficace des secrets permettent aux entreprises de supprimer ces secrets dans les outils DevOps au sein du pipeline CI/CD tout en fournissant des journaux d’audit complets, un contrôle des accès basé sur les rôles intégré dans des politiques et le renouvellement des secrets.
La gestion des secrets pour protéger les conteneurs.
Les équipes DevOps et d’ingénierie s’appuient sur des conteneurs pour accélérer le développement et améliorer la portabilité et la productivité. Les conteneurs utilisent des secrets pour accéder à des informations critiques et sensibles. Cependant, comme les conteneurs sont de nature éphémère (ou présentent une courte durée de vie), ils peuvent être difficiles à suivre et l’accès à des ressources spécifique peut être difficile à gérer et à sécuriser. Les mesures de sécurité relatives à la gestion des secrets permet aux équipes d’authentifier les demandes de secrets de la part des conteneurs à l’aide d’attributs natifs des plateformes de conteneurs et de gérer les secrets à l’aide d’une politique d’accès basée sur les rôles pour un contrôle granulaire.
La gestion des secrets pour gérer les environnements élastiques et à montée en charge automatique.
Les fournisseurs de cloud proposent des fonctionnalités de montée en charge automatique pour prendre en charge les modèles économiques élastiques (éphémères) et facturation à la consommation. Ces fonctionnalités améliorent l’efficacité, mais elles créent de nouveaux défis en matière de gestion de la sécurité, en particulier vis-à-vis de l’évolutivité. En mettant en œuvre de bonnes pratiques de gestion des secrets, les organisations peuvent éliminer le recours à des opérateurs humains pour appliquer manuellement les politiques à chaque nouvel hôte : affecter une identité à l’hôte en temps réel et authentifier de façon sécurisée l’application émettrice de la demande en fonction d’une politique de sécurité prédéfinie.
La gestion des secrets pour sécuriser les applications développées en interne et les applications COTS
Les applications et les scripts développés en interne, à l’image des outils et solutions tierces comme les outils de sécurité, de RPA et de gestion informatique, requièrent souvent un niveau élevé d’accès à privilèges dans toute l’infrastructure de l’entreprise pour mener à bien les tâches qui leur sont attribuées. Les pratiques efficaces de gestion des secrets requièrent de supprimer les identifiants codés dans les applications et les scripts développés en interne. Il est également nécessaire de centraliser le stockage, la gestion et le renouvellement des secrets afin de réduire le risque.