Qu'est-ce que la gestion des secrets ?

Personne tenant un smartphone à côté d’un grand écran

Gestion des secrets, définition

La gestion des secrets est la protection des identifiants (y compris les certificats, les clés, les mots de passe et les jetons) pour les utilisateurs non humains, tels que les applications, les serveurs et les workloads.

Les entreprises utilisent de plus en plus des identités non humaines pour automatiser leurs processus et workflows clés. Ces identités peuvent inclure des comptes de service, des pipelines d’intégration continue et de livraison continue (CI/CD), des conteneurs, des microservices et des outils d’orchestration. Ils peuvent également inclure l’automatisation robotisée des processus (RPA) (des bots qui imitent les actions humaines) et, plus récemment, des agents IA.

Comme les utilisateurs humains, les entités non humaines ont besoin d’identifiants, ou « secrets », pour s’authentifier auprès des systèmes et des services et accéder aux ressources de l’entreprise, souvent avec des privilèges élevés. Par exemple, un processus de sauvegarde automatisé peut lire les fichiers confidentiels et modifier les paramètres système.

Pour les pirates informatiques, ces comptes non humains privilégiés sont des cibles de grande valeur. Ils permettent aux acteurs de la menace d’abuser des droits d’accès pour voler des données et endommager les systèmes critiques, tout en échappant à la détection. Selon l’IBM® X-Force Threat Intelligence Index, le détournement de comptes valides est le deuxième vecteur de cyberattaque le plus courant, représentant 32 % des incidents auxquels X-Force a répondu l’année dernière.

Les systèmes de gestion des secrets permettent aux entreprises de lutter contre ces cybermenaces en créant, en contrôlant et en sécurisant les secrets que les entités non humaines utilisent pour accéder aux ressources informatiques. Avec les outils de gestion des secrets, les équipes informatiques peuvent protéger les identifiants non humains tout au long de leur cycle de vie et rationaliser les workflows automatisés tout en empêchant les violations de données, la falsification, le vol et d’autres types d’accès non autorisés.

Qu’est-ce qu’un secret ?

Un secret est un identifiant numérique contenu dans une application ou un service qui permet aux utilisateurs non humains de communiquer avec un service, une base de données, une application ou une autre ressource informatique, et d’y effectuer des actions. Les secrets aident les entreprises à renforcer leur posture de sécurité en garantissant que seuls les utilisateurs autorisés ont accès aux données et aux systèmes sensibles.

Voici quelques exemples de secrets :

  • Identifiants des comptes de service : les comptes de service permettent aux applications et aux workflows automatisés d’interagir avec les systèmes d’exploitation. Les identifiants des comptes de service incluent notamment les mots de passe, les tokens de sécurité, les tickets Kerberos et d’autres secrets.

  • Clés d’API : les clés d’API permettent aux utilisateurs, aux applications et aux services de s’identifier auprès des interfaces de programmation d’application (API).

  • Clés de chiffrement : les clés de chiffrement permettent aux utilisateurs de chiffrer et de déchiffrer les données.

  • Tokens d’authentification et d’autorisation : les tokens, comme ceux utilisés dans le protocole OAuth, sont des éléments d’information qui permettent de vérifier l’identité d’un utilisateur et de déterminer les ressources auxquelles il peut accéder.

  • Clés SSH (Secure Shell) : les clés SSH sont utilisées par les serveurs SSH pour identifier un utilisateur ou un appareil grâce à la cryptographie à clé publique.
  • Certificats PKI et clés privées (SSL/TLS/mTLS) : les certificats émis par une autorité de certification et les clés privées associées authentifient les points de terminaison et établissent des certificats et connexions SSL/TLS chiffrés, notamment l’authentification TLS mutuelle (mTLS).
  • Secrets arbitraires : les données sensibles, y compris tout type de données structurées ou non structurées, qui peuvent être utilisées pour accéder à une application ou à une ressource.
  • Chaînes de connexion : une chaîne de texte contenant les instructions dont un programme informatique a besoin pour se connecter à une source de données comme les bases de données, les fichiers ou les feuilles de calcul.
  • Autres clés cryptographiques : il peut s’agir de clés HMAC (code d’authentification des messages basés par hachage), de clés de signature de code et d’autres clés privées utilisées pour la signature ou la vérification.

Pourquoi la gestion des secrets est-elle importante ?

La gestion des secrets est une solution de sécurité critique qui aide les entreprises à stocker, à contrôler et à renouveler en toute sécurité les identifiants sensibles et autres secrets tels que les mots de passe, les clés d’API et les tokens. 

C’est l’une des quatre fonctionnalités principales de la gestion des accès privilégiés (PAM), une branche de la gestion des identités et des accès (IAM) qui se concentre sur la sécurisation des comptes et utilisateurs privilégiés.

Les trois autres fonctionnalités PAM sont les suivantes :

  • La gestion des comptes et des sessions privilégiés (PASM), qui est la gestion du cycle de vie des comptes privilégiés, la gestion des mots de passe et la surveillance des sessions. 

  • La gestion de l’élévation et de la délégation des privilèges (PEDM), qui consiste à évaluer, à approuver ou à refuser automatiquement les demandes d’accès privilégié. 

  • La gestion des droits d’infrastructure cloud (CIEM), qui supervise les autorisations et droits dans les environnements de cloud computing.

La gestion des secrets est importante pour la méthode DevOps, qui met l’accent sur un développement et une livraison automatisés et continus de logiciels.

Les équipes DevOps utilisent souvent plusieurs outils de gestion des configurations ou d’orchestration pour gérer des écosystèmes numériques entiers, des workflows et des points de terminaison. Ces outils font souvent appel à l’automatisation et à des scripts qui exigent l’accès à des secrets pour être lancés. Sans un service de gestion des secrets dédié aux entreprises, l’usage hasardeux des secrets peut accroître la vulnérabilité du système.

De nombreuses entreprises intègrent des fonctions de gestion des secrets dans le pipeline CI/CD. Ainsi, toutes les parties mobiles (développeurs, outils et processus automatisés) disposent d’un accès sécurisé aux systèmes sensibles dont elles ont besoin, au moment où elles en ont besoin.

La gestion des secrets est considérée comme un élément central du DevSecOps, inspiré de la méthode DevOps, qui intègre et automatise en permanence la sécurité tout au long du cycle de vie DevOps.

Gestion des secrets : fonctionnement

Le processus de gestion des secrets repose généralement sur des outils de gestion des secrets. Ces outils, qui peuvent être déployés sur site ou sous forme de services cloud, permettent de centraliser, d’automatiser et de rationaliser la création, l’utilisation, la rotation et la protection des secrets.

Il existe des solutions de gestion des secrets commerciales, mais aussi des solutions open source. Parmi les solutions open source figure Infisical, tandis que les options commerciales comprennent CyberArk Conjur (qui propose également une édition open source) et HashiCorp Vault (de HashiCorp, une entreprise IBM).

Les fonctionnalités les plus courantes des outils de gestion des secrets sont notamment :

  • La gestion centralisée et standardisée des secrets
  • La création dynamique et la rotation automatique des secrets
  • Les contrôles d’accès
  • Le suivi et l’audit des activités

Gestion centralisée et standardisée des secrets

Avec un service de gestion des secrets dédié aux entreprises, les entreprises peuvent gérer plusieurs types de secrets dans une vue unifiée.

Plutôt que de laisser les utilisateurs individuels gérer les secrets dans de petits silos, les solutions de gestion des secrets peuvent stocker les secrets dans un endroit central et sécurisé appelé « coffre-fort des secrets ».

Lorsqu’un utilisateur autorisé doit accéder à un système sensible, il peut obtenir le secret correspondant à partir du coffre-fort. L’outil de gestion des secrets peut automatiquement vérifier et approuver la demande, puis libérer le secret nécessaire à l’authentification pour le workflow.

La standardisation peut aider à prévenir la prolifération des secrets. On parle de prolifération des secrets lorsque ceux-ci sont stockés à divers endroits dans une organisation, souvent codés en dur dans des applications ou sous forme de texte brut dans un document partagé. Ce phénomène nuit à la protection des secrets contre les acteurs malveillants et au suivi de l’utilisation des secrets.  

Création dynamique et rotation automatisée des secrets

Les secrets créés dans un gestionnaire de secrets peuvent être statiques ou dynamiques. Un secret statique reste valide pendant une longue période, généralement jusqu’à ce qu’il soit modifié manuellement ou qu’il atteigne une date d’expiration prédéfinie.

En revanche, un secret dynamique est créé par le gestionnaire de secrets à la demande, au moment où il est nécessaire. Les secrets dynamiques expirent assez rapidement, voire sont à usage unique.

Un cas d’utilisation des secrets dynamiques serait de protéger une ressource confidentielle telle qu’une base de données ou un environnement cloud comme AWS ou Microsoft Azure, en générant dynamiquement des clés d’API à chaque lecture ou accès. Cela permet d’empêcher les acteurs malveillants de voler et de réutiliser les clés d’API.

De nombreux gestionnaires de secrets peuvent également automatiser la rotation des secrets, c’est-à-dire l’action de changer les secrets régulièrement. Celle-ci peut être automatisée selon un calendrier ou à la demande, sans qu’il soit nécessaire de redéployer ou de perturber les applications. Il est possible de définir une durée de vie (TTL) ou une durée de location pour un secret lors de sa création afin de réduire la période d’existence du secret.

Contrôles d’accès

Les secrets peuvent être accordés à des entités ou à des groupes spécifiques afin d’organiser et de restreindre l’accès. L’accès à ces secrets est souvent accordé selon le principe du moindre privilège, c’est-à-dire que chaque processus ne se voit accorder que l’ensemble de privilèges le plus restrictif nécessaire à l’accomplissement d’une tâche. Les utilisateurs ne peuvent accéder qu’aux secrets nécessaires à l’exécution de leurs tâches autorisées.

Les architectures Zero Trust, qui consistent à « ne jamais faire confiance, toujours vérifier », régissent souvent l’accès aux systèmes de gestion des secrets. Cela permet de garantir que chaque demande de secret est authentifiée et autorisée, même si elle provient de l’intérieur du réseau.

Surveillance et audit de l’activité

De nombreux gestionnaires de secrets peuvent suivre la manière dont les utilisateurs et les applications interagissent avec les secrets et les utilisent, afin de vérifier qu’ils sont correctement exploités tout au long de leur cycle de vie. Cela permet à l’entreprise de surveiller en temps quasi réel les événements d’accès par secret, y compris les authentifications et les autorisations auprès du gestionnaire de secrets.

Les gestionnaires de secrets peuvent rapidement empêcher toute tentative non autorisée de consultation ou d’utilisation de secrets et révoquer l’accès si nécessaire. Cela permet une résolution plus rapide avant que les pirates, menaces internes et autres acteurs malveillants ne causent des dégâts.

Un outil d’automatisation des secrets performant conservera des journaux d’audit détaillés, qui suivent les événements d’authentification utilisateur et d’accès aux secrets.

La surveillance des secrets est souvent beaucoup plus facile à mettre en œuvre une fois que l’entreprise a commencé à utiliser des outils d’automatisation dynamique des secrets. Ces pistes d’audit détaillées permettent de valider l’utilisation approuvée des secrets ou de détecter et de suivre les menaces.

Pratiques courantes de gestion des secrets

Au-delà de l’utilisation de solutions de gestion des secrets, de nombreuses organisations suivent des pratiques fondamentales communes dans leurs processus de gestion des secrets. Celles-ci incluent :

  • Les secrets sont générés, stockés et utilisés dans leur environnement correspondant (par exemple, des environnements de développement, de test et de production distincts). Certaines entreprises utilisent différents outils de gestion des secrets pour chaque environnement. D’autres adoptent une solution centrale et isolent les secrets de chaque environnement dans un segment dédié. Les secrets ne sortent jamais de leur environnement et sont sécurisés par des mesures strictes de contrôle d’accès.

  • L’accès des utilisateurs aux secrets est accordé au niveau minimum requis pour qu’ils puissent s’acquitter de leurs responsabilités. Intentionnel ou non, un accès excessif peut conduire à des violations de données.

  • Les secrets font l’objet d’une rotation régulière conformément aux exigences du système.

  • Les utilisateurs ne stockent pas de secrets dans le code source, les fichiers de configuration ou la documentation.

  • Les politiques de sécurité peuvent être renforcées en exigeant le chiffrement des données sensibles. Les clés de chiffrement peuvent être protégées par un service de gestion des clés (KMS).

  • L’entreprise surveille en permanence les secrets, avec des journaux d’audit répertoriant chaque demande : qui a demandé le secret, pour quel système, si la demande a abouti, quand il a été émis ou récupéré, quand il a expiré, si et quand il a été mis à jour. Toute anomalie doit faire l’objet d’une enquête immédiate. 

Défis de la gestion des secrets

La complexité croissante des écosystèmes informatiques rend la gestion des secrets de plus en plus difficile à contrôler efficacement. Voici quelques-uns des défis les plus courants en matière de gestion des secrets :

Gestion décentralisée des secrets

Les écosystèmes décentralisés dans lesquels les administrateurs, les développeurs et les utilisateurs gèrent leurs secrets séparément peuvent présenter des risques, car les lacunes en matière de sécurité et l’utilisation des secrets peuvent ne pas être convenablement contrôlées ou auditées.

Les solutions centralisées de gestion des secrets peuvent apporter aux organisations une visibilité et un contrôle accrus sur les secrets.

Identifiants codés en dur

Lorsque des mots de passe ou d’autres secrets sont intégrés en texte brut dans du code source ou des scripts, les pirates informatiques peuvent facilement les découvrir et en faire usage pour accéder à des informations sensibles.

Les secrets codés en dur peuvent apparaître à de nombreux endroits comme les chaînes d’outils CI/CD, les dépôts de code, les appareils IdO (Internet des objets), les plateformes d’orchestration des conteneurs telles que Kubernetes, les serveurs d’applications, les scanners de vulnérabilités et les plateformes d’automatisation robotisée des processus (RPA).

Rotation peu fréquente 

La rotation régulière des secrets peut contribuer à prévenir le vol et les abus, mais elle risque d’être incohérente ou inefficace en l’absence d’un système de gestion des secrets. Si un secret reste inchangé pendant trop longtemps, un pirate peut parvenir à le déchiffrer par essais et erreurs ou par une attaque par force brute.

Plus un mot de passe est utilisé longtemps, plus le nombre d’utilisateurs y ayant accès est élevé et plus le risque de fuite est grand.

Prolifération des secrets

La croissance des systèmes informatiques peut entraîner une prolifération des secrets, ces derniers étant répartis dans de nombreuses parties cloisonnées du système. Cela peut être particulièrement préoccupant dans les écosystèmes de multicloud hybride, où les entreprises mêlent des environnements de cloud public et de cloud privé proposés par différents fournisseurs.

Les entreprises peuvent avoir des milliers, voire des millions de secrets dans leurs applications cloud natives, leurs conteneurs, leurs microservices et autres ressources informatiques. Cette prolifération entraîne une lourde charge en matière de sécurité et élargit la surface d’attaque.

La visibilité peut être limitée d’un service à l’autre et la gestion des secrets peut rapidement devenir compliquée si elle est suivie manuellement ou par des systèmes disparates. L’absence d’un service centralisé de gestion des secrets peut rendre plus difficile, voire impossible, l’application d’une bonne hygiène des secrets.

Partage manuel des secrets

Lorsque l’entreprise ne dispose pas de système de gestion des secrets, ces derniers peuvent être partagés manuellement (par exemple, par e-mail ou par SMS), ce qui permet aux acteurs malveillants de les intercepter. 

Auteurs

Jim Holdsworth

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Annie Badman

Staff Writer

IBM Think