Signaler des secrets dans des 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 Functions. La protection des données sensibles signale les résultats à Security Command Center en tant que failles.

À propos de Security Command Center

Security Command Center est le service centralisé de création de rapports sur les failles et les 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 étudier et corriger les résultats.

Pourquoi analyser les secrets dans des variables d'environnement ?

Le stockage de codes 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 les journaux. Nous vous recommandons d'utiliser Secret Manager pour stocker vos secrets. Pour en savoir plus, consultez la section Configurer des secrets dans la documentation Cloud 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 sélectionné, la protection des données sensibles analyse régulièrement Cloud Functions à 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, la 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é. Tous les résultats ne sont disponibles que via Security Command Center.

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

Dans Security Command Center, vous pouvez afficher les résultats de Secrets in environment variables en procédant comme suit:

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 montre un exemple de résultat Secrets in environment variables. Cet exemple ne montre que les champs pertinents pour cet élément géographique. Il ne fournit pas une liste exhaustive de 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 des résultats

Une fois que 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. Ensuite, la protection des données sensibles analyse les variables d'environnement toutes les 24 heures. En pratique, les analyses peuvent être exécutées plus souvent.

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 analysés par la protection des données sensibles dans cette fonctionnalité, consultez Identifiants et secrets.

Ressources compatibles

Pour la découverte de secrets, la protection des données sensibles est compatible avec Cloud Functions (1re et 2e générations).

Tarification

Cette fonctionnalité est exempte de frais liés à la protection des données sensibles. Des frais pour Security Command Center peuvent s'appliquer en fonction de votre niveau de service (Standard ou Premium). La protection des données sensibles fonctionne avec Security Command Center aux niveaux Standard et Premium.

Résidence des données

La première fois que vous créez une configuration d'analyse, vous indiquez l'emplacement où vous souhaitez que la protection des données sensibles la stocke. Toutes les configurations d'analyse ultérieures que vous créerez seront stockées dans cette même région. La protection des données sensibles exporte vos métadonnées Cloud Functions vers la région où votre configuration d'analyse est stockée, mais la fonction 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 traitement des données.

Rôles IAM requis

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

En outre, vous avez besoin des rôles appropriés pour exploiter 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, Security Command Center doit être activé au niveau de l'organisation au niveau Standard ou Premium. Pour en savoir plus, consultez la section Activer Security Command Center pour une organisation.

    Si Security Command Center n'est activé qu'au niveau du projet, les résultats de la protection des données sensibles n'apparaîtront 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 la section Ajouter un service intégré Google Cloud.

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

Procédez comme suit si vous souhaitez activer la découverte de secrets pour l'ensemble d'une organisation. Pour la découverte au niveau du projet, consultez la section 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 que vous avez créé la configuration d'analyse, une personne disposant de l'un de ces rôles doit accorder l'accès à la détection à 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.

    Après chaque étape de cette page, cliquez sur Continuer.

  3. Dans le champ Sélectionner un type de découverte, sélectionnez failles des secrets/identifiants.

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

  5. Sous Gérer le conteneur et la facturation de l'agent de service, spécifiez le projet à utiliser comme conteneur d'agent de service. Vous pouvez demander à la protection des données sensibles de créer automatiquement un projet ou choisir un projet existant.

    • Si vous n'avez pas de projet à utiliser comme conteneur d'agent de service, sélectionnez Créer un projet en tant que conteneur d'agent de service. La protection des données sensibles crée un projet nommé Conteneur de l'agent de service DLP. L'agent de service de ce projet permettra de s'authentifier auprès du service de 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 liées à ce projet, y compris les opérations qui ne sont pas 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 attribuer le rôle de créateur de projet (roles/resourcemanager.projectCreator).

    • Si vous souhaitez réutiliser un conteneur d'agent de service existant, 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. Dans le champ Définir l'emplacement de stockage de la configuration, sélectionnez la région dans laquelle vous souhaitez stocker cette 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 relatives à 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 démarre peu de temps après avoir créé la configuration d'analyse, sélectionnez Create scan in paused mode (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 souhaitez que certaines d'entre elles remplacent d'autres.
  8. Cliquez sur Créer.

La protection des données sensibles commence à analyser vos variables d'environnement Cloud Functions peu de temps après la création d'une configuration d'analyse ou la reprise d'une configuration suspendue. Pour en savoir plus sur le délai d'affichage des résultats dans Security Command Center, consultez la section Trouver la latence de génération 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étection à votre agent de service pour que la recherche puisse commencer.

Configurer la découverte de secrets au niveau du projet

Procédez comme suit si vous souhaitez activer la découverte de secrets pour un seul projet. Pour une découverte au niveau de l'organisation, consultez la section 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.

    Après chaque étape de cette page, cliquez sur Continuer.

  3. Dans le champ Sélectionner un type de découverte, sélectionnez failles des secrets/identifiants.

  4. Pour Sélectionner un champ d'application, assurez-vous que l'option Analyser l'intégralité du projet est sélectionnée. Si elle n'est pas sélectionnée, assurez-vous que vous vous trouvez dans la vue du projet.

  5. Dans le champ Définir l'emplacement de stockage de la configuration, sélectionnez la région dans laquelle vous souhaitez stocker cette 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 relatives à la résidence des données, consultez la section Résidence des données sur cette page.

  6. Cliquez sur Créer.

La protection des données sensibles commence à analyser vos variables d'environnement Cloud Functions peu de temps après la création d'une configuration d'analyse ou la reprise d'une configuration suspendue. Pour en savoir plus sur le délai d'affichage des résultats dans Security Command Center, consultez la section Trouver la latence de génération sur cette page.

Requête pour Secrets in environment variables résultats

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 Éditeur de requête. Pour en savoir plus sur l'éditeur de requête, consultez la page Modifier une requête de résultat dans le tableau de bord Security Command Center.

Répertorier les Secrets in environment variables résultats

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

Répertorier tous les résultats Secrets in environment variables pour un projet particulier

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 que vous souhaitez interroger