Utiliser des modules personnalisés avec Security Health Analytics

Cette page explique comment créer, afficher, mettre à jour et supprimer des modules personnalisés pour l'analyse de l'état de sécurité à l'aide de la console Google Cloud ou de Google Cloud CLI.

Pour en savoir plus, consultez la présentation des modules personnalisés pour Security Health Analytics.

Avant de commencer

Avant de pouvoir utiliser des modules personnalisés, vous devez remplir les conditions préalables suivantes:

  • Vous devez disposer du niveau Premium de Security Command Center. Pour en savoir plus sur les niveaux de Security Command Center, consultez la page Présentation de l'activation de Security Command Center.
  • Security Health Analytics doit être activé. Pour savoir comment activer l'analyse de l'état de sécurité, consultez la section Activer ou désactiver un service intégré.
  • Votre compte utilisateur doit disposer d'un ou de plusieurs rôles IAM (Identity and Access Management) contenant les autorisations requises. Pour en savoir plus, consultez la section Autorisations IAM requises.
  • Si vous souhaitez écrire vos propres modules personnalisés et les importer dans Security Command Center à l'aide de commandes gcloud, vous avez besoin de la Google Cloud CLI. Pour en savoir plus sur l'installation de gcloud CLI, consultez la page Installer la CLI gcloud.
  • Si l'API Security Command Center n'est pas déjà activée, vous devez l'activer avant de pouvoir utiliser des modules personnalisés pour Security Health Analytics. Vous pouvez activer l'API Security Command Center sur la page Bibliothèque d'API de la console Google Cloud.
  • Pour connaître les limites d'utilisation de Security Health Analytics, consultez la section Quotas de modules personnalisés.

Autorisations IAM requises

Pour utiliser des modules personnalisés, vous avez besoin des autorisations IAM (Identity and Access Management) suivantes:

Autorisation Rôle
securitycenter.securityhealthanalyticscustommodules.create
securitycenter.securityhealthanalyticscustommodules.update
securitycenter.securityhealthanalyticscustommodules.delete
roles/securitycenter.settingsEditor
roles/securitycenter.admin
securitycenter.securityhealthanalyticscustommodules.get
securitycenter.securityhealthanalyticscustommodules.list
roles/securitycenter.settingsViewer
roles/securitycenter.adminViewer
roles/securitycenter.admin
securitycenter.securityhealthanalyticscustommodules.test roles/securitycenter.securityHealthAnalyticsCustomModulesTester
roles/securitycenter.adminViewer
roles/securitycenter.adminEditor
roles/securitycenter.admin

Pour en savoir plus sur les autorisations et les rôles IAM, et découvrir comment les attribuer, consultez Attribuer un rôle IAM à l'aide de la console Google Cloud.

Créer un module personnalisé

Cette section explique comment créer des modules personnalisés à l'aide de la console Google Cloud ou de gcloud CLI.

Pour tester votre module personnalisé au cours du processus de création, vous devez préparer des définitions de ressources de test dans un fichier YAML. Pour obtenir des instructions, consultez la section Créer des ressources de test dans un fichier YAML.

Pour créer un module personnalisé, sélectionnez la méthode que vous souhaitez utiliser dans l'un des onglets suivants:

Console Google Cloud

Pour créer un module personnalisé dans la console Google Cloud, procédez comme suit:

  1. Accédez à la page Paramètres de Security Command Center dans la console Google Cloud.

    Accéder aux paramètres

  2. Si vous y êtes invité, sélectionnez l'organisation, le dossier ou le projet dans lequel vous devez créer le module personnalisé.

  3. Sur la fiche Security Health Analytics, cliquez sur Gérer les paramètres.

  4. Cliquez sur l'onglet Modules.

  5. Cliquez sur Créer un module. La page Créer un module pour Security Health Analytics s'ouvre.

  6. Dans le panneau Configurer le module, définissez le nom à afficher, les ressources à analyser et la logique de détection:

    1. Dans le champ Module name (Nom du module), spécifiez un nom pour le module. Le nom doit comporter entre 1 et 128 caractères, commencer par une lettre minuscule et ne contenir que des caractères alphanumériques et des traits de soulignement. Ce nom devient la catégorie des résultats générés par ce détecteur. Une fois le module créé, vous ne pouvez plus modifier son nom.

    2. Sous Ajouter un type de ressource, spécifiez un à cinq types de ressources à analyser. Vous ne pouvez pas spécifier un type de ressource plusieurs fois.

      Pour obtenir la liste des types de ressources compatibles, consultez la section Types de ressources acceptés.

    3. Dans l'éditeur d'expressions, écrivez des expressions CEL pour exécuter des vérifications booléennes sur une ou plusieurs propriétés de la ressource que vous avez spécifiée à l'étape précédente. Pour déclencher une analyse, l'expression doit se résoudre en TRUE. Par exemple, l'expression suivante déclenche une détection si une ressource CryptoKey a une période de rotation définie et que cette période est supérieure à 2 592 000 secondes (30 jours):

      has(resource.rotationPeriod) && (resource.rotationPeriod > duration('2592000s'))
      

      Pour en savoir plus, consultez les ressources suivantes :

    4. Cliquez sur Suivant. Le panneau Définir les détails du résultat s'ouvre.

  7. Dans le panneau Définir les détails des résultats, décrivez le problème détecté par le module personnalisé, y compris sa gravité, son origine, la procédure à suivre pour le résoudre et toutes les données que vous souhaitez inclure dans les résultats en tant que propriétés sources personnalisées:

    1. Dans le champ Gravité, indiquez la gravité du problème. Vous pouvez spécifier Low, Medium, High ou Critical. Medium est la valeur par défaut.

      Pour en savoir plus sur les niveaux de gravité, consultez la section Classements des résultats par niveau de gravité.

    2. Dans le champ Description de la recherche, expliquez le problème détecté par le module personnalisé. Cette explication s'affiche dans chaque instance de résultat pour aider les équipes de sécurité à comprendre et à résoudre le problème détecté.

    3. Dans le champ Étapes suivantes, expliquez les étapes que votre équipe de sécurité peut suivre pour résoudre le problème détecté ou y remédier.

      Les étapes s'affichent avec chaque instance de résultat. Incluez les mesures spécifiques que l'équipe de sécurité peut prendre pour résoudre le problème le plus rapidement possible.

    4. Facultatif: dans le champ Propriétés de résultat personnalisées, spécifiez jusqu'à 10 paires nom-valeur pour définir les propriétés de source personnalisées à renvoyer avec chaque instance de résultat. Les informations sont renvoyées en tant que propriétés source dans le résultat JSON et s'affichent dans l'onglet Propriétés source des détails du résultat dans la console Google Cloud. Spécifiez les valeurs de texte ou de propriété sous forme de paires clé-valeur:

      • Dans le champ Nom de la propriété, spécifiez un nom pour la propriété de source personnalisée. Le nom doit respecter les règles suivantes :
        • Le nom doit commencer par une lettre minuscule.
        • Le nom ne doit contenir que des caractères alphanumériques ou des traits de soulignement.
        • Le nom doit comporter entre 1 et 128 caractères.
        • Chaque nom doit être unique parmi les autres propriétés de source.
      • Dans le champ Valeur de la propriété, spécifiez l'une des valeurs suivantes, avec un maximum de 1 024 caractères :
        • Chaîne de texte entre guillemets. Les guillemets sont inclus dans la limite de 1 024 caractères. Par exemple, "This string provides additional useful information.".
        • Toute propriété de la ressource analysée. Par exemple, si vous vérifiez la ressource CryptoKey, vous pouvez spécifier resource.rotationPeriod. La valeur de la propriété rotationPeriod est renvoyée.
    5. Cliquez sur Suivant. Le panneau Activer le module s'ouvre.

  8. Facultatif: Utilisez le menu déroulant du panneau Activer le module pour spécifier si le module personnalisé est activé ou désactivé lors de sa création. Par défaut, les modules personnalisés sont activés lors de leur création. Si vous spécifiez Désactiver, vous pourrez activer le module ultérieurement dans l'onglet Modules de la page des paramètres de Security Health Analytics.

  9. Cliquez sur Suivant. Le panneau Test module (Module de test) s'ouvre.

  10. Facultatif: Avant de créer votre module personnalisé, nous vous recommandons de le tester.

    Pour tester un module personnalisé, procédez comme suit:

    1. Créez un fichier YAML contenant des définitions de ressources de test pour les ressources que votre module personnalisé vérifie.

      Pour savoir comment créer un fichier de données de test, consultez la section Créer des ressources de test dans un fichier YAML.

    2. Sous Importer le fichier YAML, cliquez sur Parcourir pour importer le fichier YAML contenant les définitions de ressources de test. Le test démarre automatiquement lorsque le fichier est mis en ligne.

    3. Sous Aperçu des résultats de test, examinez les résultats.

      • Si votre fichier YAML comporte des erreurs de syntaxe ou d'autres erreurs, un message d'erreur flottant s'affiche en bas de la page du navigateur.
      • Si le test réussit, il renvoie les informations suivantes:

        • Nom à afficher du module personnalisé.
        • Nom arbitraire que vous avez spécifié sur la propriété resource dans le fichier de données de test.
        • Organisation, dossier ou projet dans lesquels le module personnalisé a été ou sera créé.

    Les résultats des tests ne sont pas stockés ni écrits dans Security Command Center.

    Pour en savoir plus, consultez la section Tester les modules personnalisés.

  11. Cliquez sur Créer. Vous êtes redirigé vers la page Modules. Le module que vous avez créé devrait s'afficher avec l'état Enabled (Activé).

Les nouveaux modules personnalisés ne sont pas immédiatement disponibles pour Security Health Analytics dans les analyses. Pour en savoir plus, consultez la section Latence de détection.

CLI gcloud

Pour créer un module personnalisé à l'aide de commandes gcloud, vous devez d'abord coder la définition du module personnalisé dans un fichier YAML qui inclut des expressions CEL pour la logique de détection et les propriétés de sortie.

Une fois la définition terminée, vous l'importez dans Security Command Center à l'aide de commandes gcloud CLI.

  1. Codez une définition de module personnalisé dans un fichier YAML en suivant les instructions de la section Coder un module personnalisé pour Security Health Analytics.
  2. Enregistrez le fichier YAML dans un emplacement accessible à votre instance de gcloud CLI.
  3. Importez la définition personnalisée dans Security Command Center:

    gcloud scc custom-modules sha create \
        PARENT_FLAG=PARENT_ID \
        --display-name="MODULE_DISPLAY_NAME" \
        --enablement-state="ENABLEMENT_STATE" \
        --custom-config-from-file=MODULE_FILE_NAME.yaml
    

    Remplacez les éléments suivants :

    • PARENT_FLAG: niveau auquel vous créez le module personnalisé, soit --organization, --folder ou --project.
    • PARENT_ID: ID de l'organisation, du dossier ou du projet dans lequel vous créez le module personnalisé.
    • ENABLEMENT_STATE: enabled ou disabled.
    • MODULE_DISPLAY_NAME: nom de la catégorie de résultats que vous souhaitez afficher lorsque le module personnalisé renvoie un résultat. Le nom doit comporter entre 1 et 128 caractères, commencer par une lettre minuscule et ne contenir que des caractères alphanumériques et des traits de soulignement.
    • MODULE_FILE_NAME: chemin d'accès et nom du fichier YAML contenant la définition du module personnalisé.

Latence de détection

Une fois que vous avez créé ou mis à jour la définition d'un module personnalisé, un délai pouvant aller jusqu'à plusieurs heures peut être nécessaire avant que le nouveau module personnalisé ou mis à jour soit disponible pour les analyses.

La création ou la modification d'un module personnalisé ne déclenche pas d'analyse. Une fois qu'un module personnalisé est disponible, Security Health Analytics ne commence à l'utiliser qu'une fois que la première analyse par lot ou une modification de la configuration de la ressource cible déclenche une analyse en temps réel.

Pour en savoir plus sur les types d'analyses de Security Health Analytics, consultez la page Types d'analyses de Security Health Analytics.

Mettre à jour un module personnalisé

Vous pouvez mettre à jour la plupart des propriétés des modules personnalisés de Security Health Analytics.

Les propriétés suivantes d'un module personnalisé ne peuvent pas être modifiées:

  • Nom à afficher.
  • ID du module personnalisé.
  • Nom de ressource complet du module personnalisé.

Lorsque vous mettez à jour un module personnalisé, les résultats qu'il a générés précédemment ne sont pas mis à jour en même temps. Si les modifications apportées au module entraînent des modifications des résultats émis, les résultats ne reflèteront les modifications qu'après l'analyse par lot ou en temps réel suivante de Security Health Analytics.

Pour modifier un module personnalisé, vous pouvez utiliser la console Google Cloud ou gcloud CLI. Cliquez sur l'un des onglets suivants pour obtenir des instructions.

Console Google Cloud

Pour mettre à jour un module personnalisé existant dans la console Google Cloud, procédez comme suit:

  1. Accédez à la page Paramètres de Security Command Center dans la console Google Cloud.

    Accéder aux paramètres

  2. Dans le sélecteur de projet, sélectionnez l'organisation, le dossier ou le projet dans lequel le module personnalisé a été créé à l'origine. Vous ne pouvez pas modifier un module personnalisé ailleurs.

  3. Sur la fiche Security Health Analytics, cliquez sur Gérer les paramètres.

  4. Sélectionnez l'onglet Modules. Tous les modules de détection de Security Health Analytics s'affichent.

  5. Utilisez le champ de filtre en haut de la liste des modules ou faites défiler la page pour trouver le module personnalisé que vous devez modifier.

  6. À droite de la ligne de votre module personnalisé, cliquez sur l'icône Menu d'actions .

  7. Dans le menu Action, cliquez sur l'icône Modifier (). La page Afficher le module s'ouvre et affiche l'onglet Configurer le module.

  8. Modifiez les champs du module personnalisé de chaque onglet de la page Afficher le module si nécessaire.

  9. Facultatif: Avant d'enregistrer vos modifications, nous vous recommandons de les tester.

    Pour tester un module personnalisé, procédez comme suit:

    1. Créez un fichier YAML contenant des définitions de ressources de test pour les ressources que votre module personnalisé vérifie.

      Pour savoir comment créer un fichier de données de test, consultez la section Créer des ressources de test dans un fichier YAML.

    2. Sous Importer le fichier YAML, cliquez sur Parcourir pour importer le fichier YAML contenant les définitions de ressources de test. Le test démarre automatiquement lorsque le fichier est mis en ligne.

    3. Sous Aperçu des résultats de test, examinez les résultats.

      • Si votre fichier YAML comporte des erreurs de syntaxe ou d'autres erreurs, un message d'erreur flottant s'affiche en bas de la page du navigateur.
      • Si le test réussit, il renvoie les informations suivantes:

        • Nom à afficher du module personnalisé.
        • Nom arbitraire que vous avez spécifié sur la propriété resource dans le fichier de données de test.
        • Organisation, dossier ou projet dans lesquels le module personnalisé a été ou sera créé.

    Les résultats des tests ne sont pas stockés ni écrits dans Security Command Center.

    Pour en savoir plus, consultez la section Tester les modules personnalisés.

  10. Cliquez sur Enregistrer au bas de la page. Vos modifications sont appliquées au module personnalisé.

CLI gcloud

Pour mettre à jour un module personnalisé à l'aide de gcloud CLI, vous devez d'abord modifier la définition YAML du module personnalisé, puis utiliser des commandes gcloud pour le mettre à jour dans Security Health Analytics.

  1. Modifiez la définition du module personnalisé. Pour savoir comment coder une définition de module personnalisé, consultez Coder un module personnalisé pour Security Health Analytics.

  2. Enregistrez le fichier YAML modifié dans un emplacement accessible à gcloud CLI.

  3. Mettez à jour le module personnalisé dans Security Health Analytics en exécutant la commande suivante:

    gcloud scc custom-modules sha update MODULE_ID \
       PARENT_FLAG=PARENT_ID \
       --enablement-state="ENABLED" \
       --custom-config-from-file=MODULE_FILE_NAME.yaml
    

    Remplacez les éléments suivants :

    • MODULE_ID: ID ou nom de ressource complet du module personnalisé.
    • PARENT_FLAG: niveau auquel le module personnalisé a été créé, soit --organization, --folder ou --project.
    • PARENT_ID: ID de l'organisation, du dossier ou du projet dans lequel le module personnalisé a été créé.
    • MODULE_FILE_NAME: chemin d'accès et nom du fichier YAML contenant la définition du module personnalisé.

Afficher un module personnalisé

Sélectionnez un onglet pour découvrir comment afficher la définition d'un module personnalisé.

Console Google Cloud

Pour afficher les modules personnalisés dans la console Google Cloud, procédez comme suit:

  1. Accédez à la page Security Health Analytics dans les paramètres de Security Command Center.

    Accéder aux paramètres

  2. Cliquez sur l'onglet Modules. Le panneau Modules s'ouvre.

  3. Si nécessaire, utilisez le champ de filtre en haut de la liste des modules pour trouver le module personnalisé que vous devez modifier.

  4. Pour afficher les détails de la définition du module personnalisé, cliquez sur l'icône Menu d'actions  à droite de la ligne du module personnalisé.

  5. Dans le menu Action, cliquez sur l'icône Modifier . La page Afficher le module s'ouvre et affiche l'onglet Configurer le module.

  6. Parcourez les onglets de la page Afficher le module pour afficher tous les champs de la définition du module personnalisé.

CLI gcloud

Pour afficher les détails d'un module personnalisé, saisissez la commande suivante:

gcloud scc custom-modules sha get MODULE_ID \
      PARENT_FLAG=PARENT_ID

Remplacez les éléments suivants :

  • MODULE_ID: ID ou nom de ressource complet du module personnalisé.
  • PARENT_FLAG: niveau auquel le module personnalisé a été créé, soit --organization, --folder ou --project.
  • PARENT_ID: ID de l'organisation, du dossier ou du projet dans lequel le module personnalisé a été créé.

Répertorier les modules personnalisés

Sélectionnez un onglet pour découvrir comment afficher la liste des modules personnalisés.

Console Google Cloud

  1. Accédez à la page Security Health Analytics dans les paramètres de Security Command Center.

    Accéder aux paramètres

  2. Cliquez sur l'onglet Modules. Le panneau Modules s'ouvre.

  3. Cliquez dans le champ de filtre en haut de la liste des modules pour afficher la liste des types de filtres.

  4. Sélectionnez Type (Type), puis saisissez Custom. Les listes de modules sont mises à jour pour n'afficher que les modules personnalisés.

CLI gcloud

Pour afficher la liste des modules personnalisés, saisissez la commande suivante:

gcloud scc custom-modules sha list \
    PARENT_FLAG=PARENT_ID

Remplacez les éléments suivants :

  • PARENT_FLAG: niveau auquel le module personnalisé a été créé, soit --organization, --folder ou --project.
  • PARENT_ID: ID de l'organisation, du dossier ou du projet dans lequel le module personnalisé a été créé.

Supprimer un module personnalisé

Vous pouvez supprimer un module personnalisé de l'organisation, du dossier ou du projet dans lequel il a été créé, ou d'une organisation ou d'un dossier parent. Vous ne pouvez pas supprimer un module personnalisé d'un dossier ou d'un projet qui l'hérite.

Pour savoir comment supprimer un module personnalisé, sélectionnez l'un des onglets suivants.

Console Google Cloud

  1. Accédez à la page Paramètres de Security Command Center dans la console Google Cloud.

    Accéder aux paramètres

  2. Si vous y êtes invité, sélectionnez votre organisation, votre dossier ou votre projet.

  3. Sur la fiche Security Health Analytics, cliquez sur Gérer les paramètres.

  4. Sélectionnez l'onglet Modules. Tous les modules de détection de Security Health Analytics s'affichent.

  5. Utilisez le champ de filtre en haut de la liste des modules ou faites défiler la page pour trouver le module personnalisé que vous devez modifier.

  6. À droite de la ligne de votre module personnalisé, cliquez sur l'icône Menu d'actions .

  7. Dans le menu Action, cliquez sur Supprimer. La boîte de dialogue Supprimer le module personnalisé s'ouvre.

  8. Dans la boîte de dialogue, cliquez sur Supprimer.

CLI gcloud

Pour supprimer un module personnalisé, saisissez la commande suivante:

gcloud scc custom-modules sha delete MODULE_ID \
    PARENT_FLAG=PARENT_ID

Remplacez les éléments suivants :

  • MODULE_ID: ID ou nom de ressource complet du module personnalisé.
  • PARENT_FLAG: niveau auquel le module personnalisé a été créé, soit --organization, --folder ou --project.
  • PARENT_ID: ID de l'organisation, du dossier ou du projet dans lequel le module personnalisé a été créé.

Les résultats des modules personnalisés supprimés sont marqués comme inactifs par Security Health Analytics lors de la prochaine analyse par lot.

Examiner les résultats

Les résultats générés par des modules personnalisés peuvent être consultés dans la console Google Cloud, la console Security Operations (pour les clients Enterprise) ou l'API Security Command Center.

Console

Console Google Cloud

  1. Dans la console Google Cloud, accédez à la page Résultats de Security Command Center.

    Accéder

  2. Sélectionnez votre projet ou votre organisation Google Cloud.
  3. Dans la section Filtres rapides, dans la sous-section Nom à afficher pour la source, sélectionnez Personnalisé pour Security Health Analytics. Les résultats de la requête de résultats sont mis à jour pour n'afficher que les résultats de cette source.
  4. Pour afficher les détails d'un résultat spécifique, cliquez sur son nom dans la colonne Catégorie. Le panneau d'informations du résultat s'ouvre et affiche l'onglet Résumé.
  5. Dans l'onglet Récapitulatif, examinez les détails de l'anomalie, y compris les informations sur ce qui a été détecté, la ressource concernée et, le cas échéant, les mesures que vous pouvez prendre pour corriger l'anomalie.
  6. Facultatif: Pour afficher la définition JSON complète du résultat, cliquez sur l'onglet JSON.

Console Security Operations

  1. Dans la console Security Operations, accédez à la page Résultats.
    https://CUSTOMER_SUBDOMAIN.backstory.chronicle.security/posture/findings
    

    Remplacez CUSTOMER_SUBDOMAIN par votre identifiant client.

  2. Dans la section Agrégations, cliquez pour développer la sous-section Nom à afficher de la source.
  3. Sélectionnez Personnalisé pour Security Health Analytics. Les résultats de la requête de résultats sont mis à jour pour n'afficher que les résultats de cette source.
  4. Pour afficher les détails d'un résultat spécifique, cliquez sur son nom dans la colonne Catégorie. Le panneau d'informations du résultat s'ouvre et affiche l'onglet Résumé.
  5. Dans l'onglet Récapitulatif, examinez les détails de l'anomalie, y compris les informations sur ce qui a été détecté, la ressource concernée et, le cas échéant, les mesures que vous pouvez prendre pour corriger l'anomalie.
  6. Facultatif: Pour afficher la définition JSON complète du résultat, cliquez sur l'onglet JSON.

CLI gcloud

Pour afficher les résultats, procédez comme suit:

  1. Ouvrez une fenêtre de terminal.
  2. Pour obtenir l'ID source de Security Health Analytics, exécutez la commande suivante:

    gcloud scc sources describe organizations/ORGANIZATION_ID \
    --source-display-name='Security Health Analytics Custom'
    

    La sortie affichée doit ressembler à la suivante. Dans l'exemple, SOURCE_ID est un ID attribué par le serveur aux sources de sécurité.

    description: ...
    displayName: Security Health Analytics Custom
    name: organizations/ORGANIZATION_ID/sources/SOURCE_ID
    
  3. Pour lister tous les résultats générés par vos modules personnalisés, exécutez la commande suivante :

    gcloud scc findings list ORGANIZATION_ID --source=SOURCE_ID
    
  4. Pour lister les résultats d'un module personnalisé spécifique, exécutez la commande suivante :

    gcloud scc findings list ORGANIZATION_ID --source=SOURCE_ID --filter="category=\"MODULE_NAME\""
    

Étape suivante

Vous pouvez gérer les résultats générés par les modules personnalisés comme tous les résultats dans Security Command Center. Pour obtenir des instructions, consultez les informations suivantes: