Intégrer Security Command Center à Google SecOps

Version de l'intégration : 14.0

Ce document explique comment intégrer Security Command Center à Google Security Operations.

Avant de commencer

Pour intégrer Security Command Center, vous devez effectuer les étapes suivantes :

  1. Créez un rôle IAM (Identity and Access Management) personnalisé avec les autorisations nécessaires.

  2. Configurez l'authentification à l'aide de l'une des options suivantes :

Créer et configurer un rôle IAM

Pour créer et configurer un rôle IAM personnalisé pour l'intégration, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Rôles d'IAM.

    Accéder à la page "Rôles"

  2. Cliquez sur Créer un rôle pour créer un rôle personnalisé doté des autorisations requises pour l'intégration.

  3. Saisissez un titre, une description et un ID unique.

  4. Définissez l'étape de lancement du rôle sur General Availability.

  5. Ajoutez les autorisations suivantes au rôle créé :

    • securitycenter.assets.list

    • securitycenter.findings.list

    • securitycenter.findings.setMute

    • securitycenter.findings.setState

  6. Cliquez sur Créer.

Configurer l'authentification

Pour authentifier l'intégration, utilisez un compte de service avec une clé JSON ou avec Workload Identity.

Authentification avec une clé JSON

Cette méthode utilise un fichier de clé JSON statique pour authentifier le compte de service.

Créer un compte de service

Pour vous authentifier à l'aide d'une clé JSON, vous devez d'abord créer un compte de service :

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.

  2. Sélectionnez le projet dans lequel vous souhaitez créer le compte de service.

  3. Cliquez sur Créer un compte de service.

    Si vous préférez utiliser un compte de service existant, sélectionnez celui de votre choix et générez une clé JSON.

  4. Indiquez un nom et une description, puis cliquez sur Créer et continuer.

  5. À l'étape Autoriser ce compte de service à accéder au projet, ajoutez le rôle personnalisé que vous avez créé.

  6. Cliquez sur OK pour terminer la création du compte.

Générer une clé JSON

Pour générer le fichier de clé JSON requis, procédez comme suit :

  1. Dans la liste des comptes de service, sélectionnez l'adresse e-mail du compte de service que vous avez créé (ou sélectionné) pour ouvrir ses détails.

  2. Cliquez sur l'onglet Clés.

  3. Cliquez sur Ajouter une clé > Créer une clé.

  4. Sélectionnez le type de clé JSON, puis cliquez sur Créer.

  5. Le fichier de clé JSON est téléchargé sur votre ordinateur. Stockez ce fichier de manière sécurisée et collez l'intégralité de son contenu dans User's Service Account lorsque vous configurez les paramètres d'intégration.

Authentification avec Workload Identity (recommandé)

Cette méthode permet à l'intégration d'emprunter l'identité d'un compte de service sans avoir à gérer les secrets de longue durée.

Pour configurer Workload Identity, procédez comme suit :

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.

  2. Sélectionnez un compte de service existant ou créez-en un.

  3. Attribuez le rôle personnalisé que vous avez créé au compte de service.

  4. Attribuez le rôle Consommateur de l'utilisation du service au compte de service. Cette autorisation est requise pour associer l'utilisation de l'API au projet défini dans Quota Project ID.

  5. Attribuez le rôle Créateur de jetons du compte de service au compte de service.

    Cette autorisation permet à l'intégration de générer les identifiants éphémères nécessaires à l'authentification.

  6. Notez l'adresse e-mail du client du compte de service et utilisez cette valeur dans Adresse e-mail Workload Identity lorsque vous configurez les paramètres d'intégration.

Paramètres d'intégration

L'intégration de Security Command Center nécessite les paramètres suivants :

Paramètre Description
API Root

Obligatoire.

Racine de l'API de l'instance Security Command Center.

Organization ID

Facultatif.

ID de l'organisation Google Cloud à utiliser pour définir le champ d'application des requêtes d'intégration Security Command Center.

Project ID

Facultatif.

ID du projet Google Cloud utilisé pour définir le champ d'application des requêtes d'instance Security Command Center.

Quota Project ID

Facultatif.

ID du projet Google Cloud utilisé pour l'utilisation de l'API et la facturation.

User's Service Account

Facultatif.

Contenu complet du fichier JSON de clé de compte de service.

N'utilisez ce paramètre que si vous vous authentifiez à l'aide d'une clé JSON.

Workload Identity Email

Facultatif.

Adresse e-mail du client de votre compte de service.

N'utilisez ce paramètre que si vous vous authentifiez à l'aide d'une identité de charge de travail.

Si vous configurez ce paramètre, vous devez également configurer Quota Project ID.

Verify SSL

Obligatoire.

Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion au serveur Security Command Center.

Cette option est activée par défaut.

Pour obtenir des instructions sur la configuration d'une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement, si nécessaire. Une fois que vous avez configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour savoir comment configurer et prendre en charge plusieurs instances, consultez Prise en charge de plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis Votre bureau et Effectuer une action manuelle.

Obtenir les détails d'un résultat

Utilisez l'action Obtenir les détails d'un résultat pour récupérer des informations sur un résultat dans Security Command Center.

Cette action ne s'applique pas aux entités Google SecOps.

Entrées d'action

L'action Obtenir les détails du résultat nécessite les paramètres suivants :

Paramètre Description
Finding Name

Obligatoire.

Noms complets des ressources des résultats dont vous souhaitez afficher les détails, au format organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID.

Ce paramètre accepte plusieurs valeurs sous forme de liste d'éléments séparés par une virgule.

Sorties d'action

L'action Obtenir les détails du résultat fournit les sorties suivantes :

Type de sortie de l'action Disponibilité
Pièce jointe au mur de la demande Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Tableau du mur des cas

L'action Obtenir les détails du résultat peut renvoyer le tableau suivant :

Titre du tableau : Détails du résultat

Colonnes du tableau :

  • Catégorie
  • État
  • Gravité
  • Type
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Obtenir les détails du problème :

{
   {
      "finding_name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
      "finding": {
        "name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
        "parent": "organizations/ORGANIZATION_ID/sources/2678067631293752869",
        "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "state": "ACTIVE",
        "category": "Discovery: Service Account Self-Investigation",
        "sourceProperties": {
          "sourceId": {
            "projectNumber": "PROJECT_ID",
            "customerOrganizationNumber": "ORGANIZATION_ID"
          },
          "detectionCategory": {
            "technique": "discovery",
            "indicator": "audit_log",
            "ruleName": "iam_anomalous_behavior",
            "subRuleName": "service_account_gets_own_iam_policy"
          },
          "detectionPriority": "LOW",
          "affectedResources": [
            {
              "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID"
            }
          ],
          "evidence": [
            {
              "sourceLogId": {
                "projectId": "PROJECT_ID",
                "resourceContainer": "projects/PROJECT_ID",
                "timestamp": {
                  "seconds": "1622678907",
                  "nanos": 448368000
                },
                "insertId": "ID"
              }
            }
          ],
          "properties": {
            "serviceAccountGetsOwnIamPolicy": {
              "principalEmail": "prisma-cloud-serv@PROJECT_ID.iam.gserviceaccount.com",
              "projectId": "PROJECT_ID",
              "callerIp": "192.0.2.41",
              "callerUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)",
              "rawUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)"
            }
          },
          "contextUris": {
            "mitreUri": {
              "displayName": "Permission Groups Discovery: Cloud Groups",
              "url": "https://attack.mitre.org/techniques/ID/003/"
            },
            "cloudLoggingQueryUri": [
              {
                "displayName": "Cloud Logging Query Link",
                "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222021-06-03T00:08:27.448368Z%22%0AinsertId%3D%22ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
              }
            ]
          }
        },
        "securityMarks": {
          "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
        },
        "eventTime": "2021-06-03T00:08:27.448Z",
        "createTime": "2021-06-03T00:08:31.074Z",
        "severity": "LOW",
        "canonicalName": "projects/PROJECT_ID/sources/SOURCE_ID/findings/FINDING_ID",
        "mute": "UNDEFINED",
        "findingClass": "THREAT",
        "mitreAttack": {
          "primaryTactic": "DISCOVERY",
          "primaryTechniques": [
            "PERMISSION_GROUPS_DISCOVERY",
            "CLOUD_GROUPS"
          ]
        }
      },
      "resource": {
        "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectDisplayName": "PROJECT_ID",
        "parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
        "parentDisplayName": "example.net",
        "type": "google.cloud.resourcemanager.Project",
        "displayName": "PROJECT_ID"
      }
    }
}
Messages de sortie

L'action Obtenir les détails du résultat peut renvoyer les messages de sortie suivants :

Message de sortie Description du message

Successfully returned details about the following findings in Security Command Center: FINDING_NAMES.

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES.

None of the provided findings were found in Security Command Center.

L'action a réussi.
Error executing action "Get Finding Details". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant liste la valeur de la sortie des résultats du script lorsque vous utilisez l'action Get Finding Details (Obtenir les détails de la découverte) :

Nom du résultat du script Valeur
is_success true ou false

Lister les failles des composants

Utilisez l'action Lister les failles des éléments pour lister les failles liées aux entités dans Security Command Center.

Cette action ne s'applique pas aux entités Google SecOps.

Entrées d'action

L'action Lister les failles de sécurité des composants nécessite les paramètres suivants :

Paramètre Description
Asset Resource Names

Obligatoire.

Liste d'identifiants uniques (noms de ressources complets) des composants pour lesquels récupérer des données, séparés par une virgule.

Timeframe

Facultatif.

Période de recherche des failles ou des erreurs de configuration.

Les valeurs possibles sont les suivantes :

  • Last Week
  • Last Month
  • Last Year
  • All Time

La valeur par défaut est All Time.

Record Types

Facultatif.

Type d'enregistrement à renvoyer.

Les valeurs possibles sont les suivantes :

  • Vulnerabilities + Misconfigurations
  • Vulnerabilities
  • Misconfigurations

La valeur par défaut est Vulnerabilities + Misconfigurations.

Output Type

Facultatif.

Type de résultat à renvoyer dans le résultat JSON pour chaque élément.

Les valeurs possibles sont les suivantes :

  • Statistics
  • Data
  • Statistics + Data

La valeur par défaut est Statistics.

Max Records To Return

Facultatif.

Nombre maximal d'enregistrements à renvoyer pour chaque type d'enregistrement.

La valeur par défaut est 100.

Sorties d'action

L'action Lister les failles des composants fournit les sorties suivantes :

Type de sortie de l'action Disponibilité
Pièce jointe au mur de la demande Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Disponible
Table d'enrichissement Non disponible
Résultat JSON Disponible
Messages de sortie Disponible
Résultat du script Disponible
Tableau du mur des cas

L'action Lister les failles des composants peut renvoyer les tableaux suivants :

Titre du tableau : ASSET_ID Failles

Colonnes du tableau :

  • Catégorie
  • Description
  • Gravité
  • Heure de l'événement
  • CVE

Titre du tableau : ASSET_ID Configurations incorrectes

Colonnes du tableau :

  • Catégorie
  • Description
  • Gravité
  • Heure de l'événement
  • Recommandation
Résultat JSON

L'exemple suivant montre le résultat JSON reçu lors de l'utilisation de l'action Lister les failles des composants :

{
   ."siemplify_asset_display_name":[1] [2]  ""
"vulnerabilities": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "cve_id": "CVE_ID"
                "event_time": "EVENT_TIME"
                "related_references": "RELATED_REFERENCES"
                "severity": "SEVERITY"
            }
        ]
    },
    "misconfigurations": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "recommendation": "RECOMMENDATION"
                "event_time": "EVENT_TIME"
                "severity": "SEVERITY"
            }
        ]
    },
}
Messages de sortie

L'action List Asset Vulnerabilities (Lister les failles des composants) peut renvoyer les messages de sortie suivants :

Message de sortie Description du message

Successfully returned related vulnerabilities and misconfigurations to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found for the provided assets in Security Command Center.

L'action a réussi.
Error executing action "List Asset Vulnerabilities". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Lister les failles des composants :

Nom du résultat du script Valeur
is_success true ou false

Ping

Utilisez l'action Ping pour tester la connectivité à Security Command Center.

Cette action ne s'applique pas aux entités Google SecOps.

Entrées d'action

Aucune.

Sorties d'action

L'action Ping fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe au mur de la demande Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Messages de sortie Disponible
Résultat du script Disponible
Messages de sortie

L'action Ping peut renvoyer les messages de résultat suivants :

Message de sortie Description du message
Successfully connected to the Security Command Center server with the provided connection parameters! L'action a réussi.
Failed to connect to the Security Command Center server! Error is ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant répertorie la valeur du résultat du script lorsque vous utilisez l'action Ping :

Nom du résultat du script Valeur
is_success true ou false

Mettre à jour le résultat

Utilisez l'action Mettre à jour le résultat pour mettre à jour un résultat existant dans Security Command Center.

Cette action ne s'applique pas aux entités Google SecOps.

Entrées d'action

L'action Mettre à jour le résultat nécessite les paramètres suivants :

Paramètre Description
Finding Name

Obligatoire.

Noms complets des ressources des résultats dont vous souhaitez afficher les détails, au format organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID.

Ce paramètre accepte plusieurs valeurs sous forme de liste d'éléments séparés par une virgule.

Mute Status

Facultatif.

État Ignorer du résultat.

Les valeurs possibles sont les suivantes :

  • Mute
  • Unmute
State Status

Facultatif.

État du problème.

Les valeurs possibles sont les suivantes :

  • Active
  • Inactive

Sorties d'action

L'action Mettre à jour le résultat fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe au mur de la demande Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Messages de sortie Disponible
Résultat du script Disponible
Messages de sortie

L'action Mettre à jour le résultat peut renvoyer les messages de résultat suivants :

Message de sortie Description du message

Successfully updated the following findings in Security Command Center: FINDING_NAMES

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES

None of the provided findings were found in Security Command Center.

L'action a réussi.
Error executing action "Update Finding". Reason: ERROR_REASON

Échec de l'action.

Vérifiez la connexion au serveur, les paramètres d'entrée ou les identifiants.

Résultat du script

Le tableau suivant répertorie la valeur de la sortie du résultat du script lorsque vous utilisez l'action Mettre à jour le résultat :

Nom du résultat du script Valeur
is_success true ou false

Connecteurs

Pour savoir comment configurer des connecteurs dans Google SecOps, consultez Ingérer vos données (connecteurs).

Security Command Center – Connecteur de résultats

Utilisez le connecteur de résultats Security Command Center pour récupérer des informations sur les résultats de Security Command Center.

Ce connecteur permet de filtrer les résultats par catégorie à l'aide de la liste dynamique.

Entrées du connecteur

Le connecteur de résultats Security Command Center nécessite les paramètres suivants :

Paramètre Description
Product Field Name

Obligatoire.

Nom du champ dans lequel le nom du produit est stocké.

Le nom du produit a principalement un impact sur le mappage. Pour simplifier et améliorer le processus de mappage du connecteur, la valeur par défaut est résolue en une valeur de remplacement référencée à partir du code. Toute entrée non valide pour ce paramètre est résolue par défaut sur une valeur de remplacement.

La valeur par défaut est Product Name.

Event Field Name

Obligatoire.

Nom du champ qui détermine le nom (sous-type) de l'événement.

Environment Field Name

Facultatif.

Nom du champ dans lequel le nom de l'environnement est stocké.

Si le champ "environment" est manquant, le connecteur utilise la valeur par défaut.

La valeur par défaut est "".

Environment Regex Pattern

Facultatif.

Modèle d'expression régulière à exécuter sur la valeur trouvée dans le champ Environment Field Name. Ce paramètre vous permet de manipuler le champ "environment" à l'aide de la logique d'expression régulière.

Utilisez la valeur par défaut .* pour récupérer la valeur Environment Field Name brute requise.

Si le modèle d'expression régulière est nul ou vide, ou si la valeur de l'environnement est nulle, l'environnement par défaut est sélectionné comme résultat final.

PythonProcessTime

Obligatoire.

Délai avant expiration, en secondes, du processus Python qui exécute le script actuel.

La valeur par défaut est 180.

API Root

Obligatoire.

Racine de l'API de l'instance Security Command Center.

Organization ID

Facultatif.

ID de l'organisation Google Cloud à utiliser

Project ID

Facultatif.

ID du projet Google Cloud à utiliser.

Quota Project ID

Facultatif.

ID du projet Google Cloud à utiliser.

User's Service Account

Obligatoire.

Contenu complet du fichier JSON de clé de compte de service.

N'utilisez ce paramètre que si vous vous authentifiez à l'aide d'une clé JSON.

Workload Identity Email

Facultatif.

Adresse e-mail du client de votre compte de service.

N'utilisez ce paramètre que si vous vous authentifiez à l'aide d'une identité de charge de travail.

Si vous configurez ce paramètre, vous devez également configurer Quota Project ID.

Finding Class Filter

Facultatif.

Liste des types de résultats de sécurité à inclure lors de l'ingestion des données à partir de la source, séparés par une virgule.

Les valeurs possibles sont les suivantes :

  • Threat
  • Vulnerability
  • Misconfiguration
  • SCC_Error
  • Observation
  • Toxic Combination
  • Chokepoint

Si aucune valeur n'est fournie, les résultats de toutes les classes sont ingérés.

Lowest Severity To Fetch

Facultatif.

Niveau de gravité le plus faible des alertes à récupérer.

Si vous ne configurez pas ce paramètre, le connecteur ingère les alertes de tous les niveaux de gravité.

Les valeurs possibles sont les suivantes :

  • Low
  • Medium
  • High
  • Critical

Si un résultat dont la gravité n'est pas définie est associé au niveau Fallback Severity, il est exempté du filtrage par ce paramètre.

Si aucune valeur n'est fournie, tous les types de gravité sont ingérés.

Fallback Severity

Facultatif.

Niveau de gravité à attribuer à tout résultat de sécurité ingéré sans niveau de gravité défini ou reconnaissable à partir de la source.

Les valeurs possibles sont les suivantes :

  • Low
  • Medium
  • High
  • Critical

La valeur par défaut est Medium.

Max Hours Backwards

Facultatif.

Nombre d'heures avant l'heure actuelle pour récupérer les résultats.

Ce paramètre peut s'appliquer à l'itération initiale du connecteur après l'avoir activé pour la première fois, ou à la valeur de remplacement pour un code temporel de connecteur expiré.

La valeur maximale est de 24.

La valeur par défaut est 1.

Max Findings To Fetch

Facultatif.

Nombre de résultats à traiter à chaque itération du connecteur.

La valeur maximale est de 1000.

La valeur par défaut est 100.

Use dynamic list as a blacklist

Obligatoire.

Si cette option est sélectionnée, le connecteur utilise la liste dynamique comme liste de blocage.

Désactivé par défaut

Verify SSL

Obligatoire.

Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de la connexion au serveur Security Command Center.

Désactivé par défaut

Proxy Server Address

Facultatif.

Adresse du serveur proxy à utiliser.

Proxy Username

Facultatif.

Nom d'utilisateur du proxy pour l'authentification.

Proxy Password

Facultatif.

Mot de passe du proxy pour l'authentification.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.