Dans le contexte de la sécurité des applications, un secret est toute information qui prouve que le possesseur est bien celui qu'il prétend être et ce qu'il prétend être au cours du processus d'authentification et d'autorisation.  Si des acteurs malveillants parviennent à accéder à des secrets, ils obtiennent un accès involontaire à vos systèmes qu’ils peuvent utiliser à diverses fins, notamment pour voler des secrets d’entreprise et des informations sur les clients, voire pour retenir vos données contre rançon.

Un exemple classique est le nom d'utilisateur et le mot de passe qui permettent à une application d'accéder à sa base de données, mais un secret peut également être des clés API, des informations d'identification, des certificats et des clés privées, entre autres types d'informations. Étant donné que les secrets sont utilisés pour contrôler l’accès aux actifs d’une organisation, leur stockage et leur protection en toute sécurité sont essentiels pour réduire le risque de compromission de l’organisation.

Qu'est-ce que la gestion des secrets ?

La gestion des secrets est le processus qu'une organisation utilise pour :

  • Identifier les données sensibles
  • Classer les données
  • Étiqueter les données
  • Stocker les données en toute sécurité
  • Distribuer des secrets
  • Faire tourner (remplacer) régulièrement les secrets

Lorsque les organisations passent d’architectures monolithiques à des architectures de microservices , le nombre de composants d’application et d’infrastructure indépendants, chacun avec ses propres informations d’identification, augmente, ce qui signifie qu’il y a beaucoup plus de secrets à gérer.

Façons de conserver les secrets

Examinons de plus près deux options pour stocker des secrets en toute sécurité :

Sauter

L’approche du coffre-fort implique l’installation d’un outil de gestion des secrets tiers. La solution de coffre-fort crypte chaque secret pour empêcher les utilisateurs non autorisés d'y accéder. Le coffre-fort expose une API pour donner aux utilisateurs l’accès aux secrets en fonction des politiques établies. Lorsque les utilisateurs de l’API s’authentifient auprès de celle-ci, ils ne peuvent accéder qu’aux secrets pour lesquels ils ont été autorisés.

Inconvénients :

  • Vous devez gérer vous-même la solution et les informations d'identification
  • Nécessite la construction d'une infrastructure autour de celle-ci, sinon il est difficile pour les équipes de travailler de manière indépendante

Avantages :

  • Connaissance du secteur (la plupart des développeurs savent comment utiliser ces outils)
  • S'intègre facilement aux autres outils fournis par le fournisseur du coffre-fort
  • Certains coffres sont disponibles gratuitement

Il existe sur le marché de nombreux outils que les développeurs peuvent utiliser pour stocker et gérer les secrets cryptés. Pour un exemple d'utilisation d'un outil de gestion des secrets automatisé de manière centralisée, lisez notre blog « Protection des clés privées SSL dans NGINX avec HashiCorp Vault ».

Fournisseurs de services cloud

Une autre approche consiste à utiliser un fournisseur de cloud pour la gestion des secrets en tant que service. L’un des avantages est que l’outil de gestion des secrets s’intègre généralement étroitement à d’autres services cloud tels que les bases de données gérées.  Les services des fournisseurs de cloud peuvent également offrir des fonctionnalités telles que la rotation automatique, bien que des recherches futures soient nécessaires pour voir si cette option entraîne des temps d'arrêt.

Escroquer:

  • Généralement pas gratuit

Avantages :

  • L'accès et l'interface utilisateur sont configurés et gérés par le fournisseur de cloud
  • S'intègre parfaitement aux autres services de fournisseurs de cloud
  • Peut être géré avec un outil d'infrastructure en tant que code
Où ne pas conserver les secrets ?

Les secrets doivent être gérés avec soin pour éviter toute perturbation de l'application lorsqu'ils sont déverrouillés et consultés. Une bonne pratique consiste à ne jamais enregistrer de secrets dans un système de contrôle de source. Le stockage de secrets à cet endroit expose une organisation à un éventuel désastre si les secrets sont accidentellement consultés ou compromis lorsqu'une équipe ou un individu met à jour le code ou l'application. Pour cette raison, si un secret est un jour vérifié dans le contrôle de source, même brièvement, il doit être traité comme compromis. Les données sensibles doivent être supprimées du référentiel et effacées de l'historique du système de contrôle de source.