Signaler les secrets dans les variables d'environnement à Security Command Center

Cette page explique comment utiliser le service de découverte de la protection des données sensibles pour déterminer si des secrets sont présents dans vos variables d'environnement Cloud Run. Le service de protection des données sensibles signale tous les résultats à Security Command Center en tant que failles.

À propos de Security Command Center

Security Command Center est le service centralisé de signalement des failles et des menaces de Google Cloud. Security Command Center vous aide à renforcer votre stratégie de sécurité en identifiant les erreurs de configuration, les failles, les observations et les menaces. Il fournit également des recommandations pour examiner et corriger les résultats.

Pourquoi rechercher des secrets dans les variables d'environnement ?

Stocker des secrets, tels que des mots de passe, dans des variables d'environnement n'est pas une pratique sécurisée, car les variables d'environnement ne sont pas chiffrées. Leurs valeurs peuvent être collectées et exposées dans divers systèmes, tels que des journaux. Nous vous recommandons d'utiliser Secret Manager pour stocker vos secrets. Pour en savoir plus, consultez la documentation sur la configuration des secrets dans Cloud Run et Cloud Run Functions.

Fonctionnement

Pour effectuer la découverte de secrets, vous devez créer une configuration d'analyse de découverte au niveau de l'organisation ou du projet. Dans le champ d'application que vous avez sélectionné, la protection des données sensibles analyse régulièrement Cloud Run à la recherche de secrets dans les variables d'environnement de compilation et d'exécution.

Si un secret est présent dans une variable d'environnement, le service de protection des données sensibles envoie un résultat de faille Secrets in environment variables à Security Command Center. Aucun profil de données n'est généré. Les résultats ne sont disponibles que via Security Command Center.

La protection des données sensibles génère un maximum d'un résultat par ressource. Par exemple, si des secrets sont détectés dans deux variables d'environnement de la même fonction Cloud Run, un seul résultat est généré dans Security Command Center.

Dans Security Command Center, vous pouvez consulter les résultats Secrets in environment variables lorsque vous effectuez les opérations suivantes:

Les résultats générés dans la liste des résultats de Security Command Center dans la console Google Cloud

Le code JSON suivant est un exemple de résultat Secrets in environment variables. Cet exemple n'affiche que les champs pertinents pour cette fonctionnalité. Il ne fournit pas de liste exhaustive des champs.

Secrets dans les variables d'environnement

{
  "finding": {
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "category": "SECRETS_IN_ENVIRONMENT_VARIABLES",
    "compliances": [
      {
        "standard": "cis",
        "version": "1.3",
        "ids": [
          "1.18"
        ]
      }
    ],
    "createTime": "DATE_TIME",
    "description": "The affected resource is storing credentials or other secret information in its environment variables. This is a security vulnerability because environment variables are stored unencrypted, and accessible to all users who have access to the code.",
    "eventTime": "DATE_TIME",
    "findingClass": "VULNERABILITY",
    "findingProviderId": "organizations/ORGANIZATION_ID/firstPartyFindingProviders/dlp",
    "mute": "MUTE_STATUS",
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "parentDisplayName": "Sensitive Data Protection",
    "resourceName": "//cloudfunctions.googleapis.com/projects/PROJECT_ID/locations/REGION/functions/FUNCTION_ID",
  },
  "resource": {
    "name": "//cloudfunctions.googleapis.com/projects/PROJECT_ID/locations/REGION/functions/FUNCTION_ID",
    "display_name": "projects/PROJECT_ID/locations/REGION/functions/FUNCTION_ID",
    "type": "google.cloudfunctions.CloudFunction",
    "project_name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "project_display_name": "PROJECT_DISPLAY_NAME",
    "parent_name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "parent_display_name": "PARENT_DISPLAY_NAME"
  }
}
    

Latence de génération de résultats

À partir du moment où vous activez la découverte de secrets dans la protection des données sensibles, l'analyse initiale des variables d'environnement peut prendre jusqu'à 12 heures et les résultats Secrets in environment variables peuvent mettre jusqu'à 12 heures à apparaître dans Security Command Center. Par la suite, Sensitive Data Protection analyse les variables d'environnement toutes les 24 heures. En pratique, les analyses peuvent s'exécuter plus fréquemment.

Types de secrets signalés

Les mots de passe, les jetons d'authentification et les identifiants Google Cloud sont des exemples de secrets. Pour obtenir la liste complète des types de secrets que la protection des données sensibles recherche dans cette fonctionnalité, consultez Identifiants et secrets.

Ressources compatibles

Pour la découverte de secrets, la protection des données sensibles est compatible avec les fonctions Cloud Run (y compris les fonctions Cloud Functions de 1re génération) et les versions du service Cloud Run.

Tarifs

Cette fonctionnalité est gratuite pour les clients de la protection des données sensibles. Des frais Security Command Center peuvent s'appliquer, en fonction de votre niveau de service. Sensitive Data Protection est compatible avec Security Command Center dans tous les niveaux de service.

Résidence des données

La première fois que vous créez une configuration d'analyse, vous spécifiez l'emplacement où vous souhaitez que Sensitive Data Protection la stocke. Toutes les configurations d'analyse ultérieures que vous créez sont stockées dans cette même région. La protection des données sensibles exporte vos métadonnées Cloud Run vers la région où votre configuration d'analyse est stockée, mais la révision de la fonction ou du service elle-même n'est pas exportée.

Si la protection des données sensibles détecte des secrets dans des variables d'environnement, les résultats sont envoyés à Security Command Center et sont soumis à ses processus de gestion des données.

Rôles IAM requis

Pour effectuer la découverte de secrets, vous avez besoin des rôles Identity and Access Management requis pour profiler les données:

De plus, vous devez disposer des rôles appropriés pour travailler avec les résultats de Security Command Center. Pour en savoir plus, consultez la section IAM pour les activations au niveau de l'organisation dans la documentation de Security Command Center.

Avant de commencer

  1. Vérifiez le niveau d'activation de Security Command Center pour votre organisation. Pour envoyer des profils de données à Security Command Center, vous devez activer Security Command Center au niveau de l'organisation dans n'importe quel niveau de service. Pour en savoir plus, consultez la page Activer Security Command Center pour une organisation.

    Si Security Command Center est activé au niveau du projet uniquement, les résultats de la protection des données sensibles n'apparaissent pas dans Security Command Center.

  2. Dans Security Command Center, assurez-vous que la protection des données sensibles est activée en tant que service intégré. Pour en savoir plus, consultez Ajouter un service intégré Google Cloud.

Configurer la découverte de secrets au niveau de l'organisation

Suivez cette procédure si vous souhaitez activer la découverte de secrets dans l'ensemble d'une organisation. Pour la découverte au niveau du projet, consultez Configurer la découverte de secrets au niveau du projet.

Si vous ne disposez pas du rôle Administrateur de l'organisation (roles/resourcemanager.organizationAdmin) ou Administrateur de sécurité (roles/iam.securityAdmin), vous pouvez toujours créer une configuration d'analyse. Toutefois, une fois la configuration d'analyse créée, une personne disposant de l'un de ces rôles doit accorder l'accès à la découverte à votre agent de service.

  1. Accédez à la page Créer une configuration d'analyse.

    Accéder à la page "Créer une configuration d'analyse"

  2. Accédez à votre organisation. Dans la barre d'outils, cliquez sur le sélecteur de projet, puis sélectionnez votre organisation.

    À la fin de chaque étape de cette page, cliquez sur Continuer.

  3. Dans Sélectionner un type de détection, sélectionnez Failles de secrets/identifiants.

  4. Pour Sélectionner le champ d'application, indiquez si vous souhaitez analyser l'ensemble de l'organisation.

  5. Pour le champ Gérer le conteneur et la facturation de l'agent de service, spécifiez le projet à utiliser en tant que conteneur d'agent de service. Vous pouvez demander à la protection des données sensibles de créer automatiquement un projet, ou bien sélectionner un projet existant.

    • Si vous ne disposez pas d'un projet à utiliser comme conteneur d'agent de service, sélectionnez Créer un projet faisant office de conteneur d'agent de service. La protection des données sensibles crée un projet nommé Conteneur d'agent de service DLP. L'agent de service de ce projet sera utilisé pour s'authentifier auprès de la protection des données sensibles et d'autres API. Le système vous invite à sélectionner le compte à facturer pour toutes les opérations facturables associées à ce projet, y compris les opérations non liées à la découverte.

      Si vous ne disposez pas des autorisations nécessaires pour créer des projets, l'option Créer un projet en tant que conteneur d'agent de service est désactivée. Dans ce cas, vous devez sélectionner un projet existant ou demander à votre administrateur Google Cloud de vous accorder le rôle Créateur de projet (roles/resourcemanager.projectCreator).

    • Si vous disposez d'un conteneur d'agent de service existant que vous souhaitez réutiliser, sélectionnez Sélectionner un conteneur d'agent de service existant. Cliquez ensuite sur Parcourir pour sélectionner l'ID de projet du conteneur de l'agent de service.

  6. Pour Définir l'emplacement de stockage de la configuration, sélectionnez la région dans laquelle vous souhaitez stocker la configuration d'analyse. Toutes les configurations d'analyse que vous créerez ultérieurement seront également stockées à cet emplacement. Pour en savoir plus sur les considérations liées à la résidence des données, consultez la section Résidence des données sur cette page.

  7. Facultatif: Si vous ne souhaitez pas que l'analyse commence peu de temps après la création de la configuration d'analyse, sélectionnez Créer une analyse en mode suspendu.

    Cette option est utile dans les cas suivants:

    • Votre administrateur Google Cloud doit toujours accorder l'accès à la découverte à l'agent de service.
    • Vous souhaitez créer plusieurs configurations d'analyse et que certaines d'entre elles doivent remplacer d'autres.
  8. Cliquez sur Créer.

Sensitive Data Protection commence à analyser vos variables d'environnement Cloud Run peu de temps après avoir créé une configuration d'analyse ou repris une configuration mise en veille. Pour en savoir plus sur le délai d'affichage des résultats dans Security Command Center, consultez la section Latence de génération des résultats sur cette page.

Si vous ne disposez pas du rôle Administrateur de l'organisation (roles/resourcemanager.organizationAdmin) ou Administrateur de sécurité (roles/iam.securityAdmin), une personne disposant de l'un de ces rôles doit accorder l'accès à la découverte à votre agent de service avant que la découverte ne puisse commencer.

Configurer la découverte de secrets au niveau du projet

Suivez ces étapes si vous souhaitez activer la découverte de secrets pour un seul projet. Pour la découverte au niveau de l'organisation, consultez Configurer la découverte de secrets au niveau de l'organisation.

  1. Accédez à la page Créer une configuration d'analyse.

    Accéder à la page "Créer une configuration d'analyse"

  2. Accédez à votre projet. Dans la barre d'outils, cliquez sur le sélecteur de projet, puis sélectionnez votre projet.

    À la fin de chaque étape de cette page, cliquez sur Continuer.

  3. Dans Sélectionner un type de détection, sélectionnez Failles de secrets/identifiants.

  4. Pour Select scope (Sélectionner le champ d'application), assurez-vous que Scan entire project (Analyser l'intégralité du projet) est sélectionné. Si ce n'est pas le cas, assurez-vous d'être dans la vue du projet.

  5. Pour Définir l'emplacement de stockage de la configuration, sélectionnez la région dans laquelle vous souhaitez stocker la configuration d'analyse. Toutes les configurations d'analyse que vous créerez ultérieurement seront également stockées à cet emplacement. Pour en savoir plus sur les considérations liées à la résidence des données, consultez la section Résidence des données sur cette page.

  6. Cliquez sur Créer.

Sensitive Data Protection commence à analyser vos variables d'environnement Cloud Run peu de temps après avoir créé une configuration d'analyse ou repris une configuration mise en veille. Pour en savoir plus sur le délai d'affichage des résultats dans Security Command Center, consultez la section Latence de génération des résultats sur cette page.

Interroger les résultats Secrets in environment variables

Voici des exemples de requêtes que vous pouvez utiliser pour rechercher des résultats Secrets in environment variables dans Security Command Center. Vous pouvez saisir ces requêtes dans le champ Query editor (Éditeur de requête). Pour en savoir plus sur l'éditeur de requêtes, consultez Modifier une requête de résultats dans le tableau de bord Security Command Center.

Lister tous les résultats Secrets in environment variables

state="ACTIVE"
AND NOT mute="MUTED"
AND category="SECRETS_IN_ENVIRONMENT_VARIABLES"

Répertorier toutes les conclusions Secrets in environment variables pour un projet spécifique

state="ACTIVE"
AND NOT mute="MUTED"
AND category="SECRETS_IN_ENVIRONMENT_VARIABLES"
AND resource.project_name="//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"

Remplacez les éléments suivants :

  • PROJECT_NUMBER: ID numérique du projet pour lequel vous souhaitez effectuer une requête