Intégrer Security Command Center à Google SecOps
Ce document explique comment intégrer Security Command Center à Google Security Operations.
Avant de commencer
Avant de configurer l'intégration Security Command Center dans Google SecOps, effectuez les étapes préalables suivantes :
Créez un rôle Identity and Access Management personnalisé avec les autorisations nécessaires.
Choisissez et configurez l'une des méthodes d'authentification suivantes :
Option 1 : Workload Identity (recommandée) : cette méthode utilise des jetons d'accès temporaires de courte durée via l'emprunt d'identité de compte de service, ce qui élimine la nécessité de stocker des secrets.
Option 2 : clé JSON du compte de service : cette méthode repose sur un fichier de clé secrète statique et durable. N'utilisez cette méthode que si Workload Identity n'est pas disponible dans votre environnement.
Créer et configurer un rôle IAM
Pour créer et configurer un rôle personnalisé pour l'intégration, procédez comme suit :
Dans la console Google Cloud , accédez à IAM et administration > Rôles.
Cliquez sur Créer un rôle pour créer un rôle personnalisé doté des autorisations requises pour l'intégration.
Saisissez un titre, une description et un ID unique.
Définissez l'étape de lancement du rôle sur
General Availability.Ajoutez les autorisations suivantes au rôle créé :
securitycenter.assets.listsecuritycenter.findings.listsecuritycenter.findings.setMutesecuritycenter.findings.setStateserviceusage.services.use(obligatoire pour l'utilisation de l'API et l'attribution du quota)
Cliquez sur Créer.
Créer un compte de service
Pour créer un compte de service pour l'intégration, procédez comme suit :
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.
Cliquez sur Créer un compte de service.
Saisissez un nom et une description, puis cliquez sur Créer et continuer.
À l'étape Autoriser ce compte de service à accéder au projet, ajoutez le rôle personnalisé que vous avez créé.
Cliquez sur OK pour terminer la création du compte. L'adresse e-mail de ce compte de service est utilisée lors de la configuration de l'authentification.
Configurer les identifiants Workload Identity
Choisissez cette méthode ou la méthode de clé JSON pour authentifier l'intégration. Workload Identity est l'approche recommandée et la plus sécurisée, car elle utilise des jetons d'accès temporaires et éphémères grâce à l'emprunt d'identité de compte de service. Il n'est donc pas nécessaire de stocker ni de faire tourner des secrets de longue durée.
Identifier l'identité unique de l'instance
Pour utiliser Workload Identity, vous devez autoriser votre instance Google SecOps à emprunter l'identité de votre compte de service. Il s'agit de la dernière étape qui permet à l'instance d'accéder de manière sécurisée aux ressources Google Cloud .
Dans Google SecOps, accédez à Content Hub > Intégrations de réponse.
Sélectionnez l'intégration que vous configurez, puis saisissez l'adresse e-mail de votre compte de service dans le champ
Workload Identity Email.Saisissez un ID de projet valide dans le champ
Quota Project ID.Cliquez sur Enregistrer > Tester. Le test devrait échouer.
Cliquez sur close_small à droite de Test, puis recherchez le message d'erreur pour l'adresse e-mail d'identité commençant par
gke-init-python@...ousoar-python@....Copiez cette adresse e-mail unique et collez-la dans
Workload Identity Emaillors de la configuration de l'intégration.
Autoriser l'identité de l'instance dans Google Cloud
Une fois que vous avez récupéré l'identité unique de votre instance Google SecOps, vous devez l'autoriser à accéder à vos ressources Google Cloud . Cette étape permet d'emprunter l'identité d'un compte de service, ce qui permet à la plate-forme de générer des jetons éphémères et d'agir en votre nom sans avoir besoin de clés statiques.
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.
Sélectionnez le compte de service cible, puis accédez à Autorisations > Accorder l'accès.
Collez l'adresse e-mail unique dans le champ Nouveaux comptes principaux.
Attribuez le rôle Créateur de jetons du compte de service (
roles/iam.serviceAccountTokenCreator).
Accorder l'accès au projet de quota
Lorsque vous vous authentifiez avec Workload Identity, vous devez spécifier un Quota Project ID dans les paramètres d'intégration pour suivre l'utilisation de l'API et la facturation.
Pour ce faire, vous devez attribuer le rôle suivant à votre compte de service dans le projet de quota désigné :
Dans la console Google Cloud , accédez à IAM et administration > IAM, puis sélectionnez votre projet.
Recherchez votre compte de service dans la liste des comptes principaux, puis cliquez sur Modifier(Modifier le compte principal) pour ce compte.
Cliquez sur Ajouter un autre rôle, puis sélectionnez Consommateur Service Usage (
roles/serviceusage.serviceUsageConsumer).Cliquez sur Enregistrer.
Configurer une clé JSON
Choisissez cette méthode ou la méthode Workload Identity pour authentifier l'intégration. N'utilisez la méthode de clé JSON que si Workload Identity n'est pas disponible dans votre environnement, car il s'agit de l'approche recommandée et la plus sécurisée. Cette méthode repose sur un fichier de clé secrète statique et de longue durée qui nécessite une gestion et une rotation manuelles.
Suivez la procédure ci-dessous pour générer le fichier de clé JSON requis pour authentifier l'intégration :
Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez le compte de service que vous avez créé.
Accédez à l'onglet Clés.
Cliquez sur Ajouter une clé > Créer une clé.
Sélectionnez
JSONcomme type de clé, puis cliquez sur Créer. Le fichier JSON est téléchargé sur votre ordinateur.Copiez l'intégralité du contenu de ce fichier et collez-le dans
User's service accountlors de la configuration de l'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. Ce paramètre est obligatoire si vous vous authentifiez à l'aide d'une identité de charge de travail. |
User's Service Account |
Facultatif. Contenu complet du fichier JSON de clé de compte de service. Ne configurez 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. Ne configurez 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 |
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.
Si nécessaire, vous pourrez apporter des modifications ultérieurement. 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 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 des cas | 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 résultat :
{
{
"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 |
|---|---|
|
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 :
La valeur par défaut est |
Record Types |
Facultatif. Type d'enregistrement à renvoyer. Les valeurs possibles sont les suivantes :
La valeur par défaut est |
Output Type |
Facultatif. Type de résultat à renvoyer dans le résultat JSON pour chaque élément. Les valeurs possibles sont les suivantes :
La valeur par défaut est |
Max Records To Return |
Facultatif. Nombre maximal d'enregistrements à renvoyer pour chaque type d'enregistrement. La valeur par défaut est |
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 des cas | 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 |
|---|---|
|
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 des cas | 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 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 :
|
State Status |
Facultatif. État du problème. Les valeurs possibles sont les suivantes :
|
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 des cas | 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 |
|---|---|
|
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 en savoir plus sur la configuration 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 un impact majeur 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 dans le 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 |
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 Utilisez la valeur par défaut 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. |
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. |
Location ID |
Facultatif. ID de l'établissement à utiliser. La valeur par défaut est |
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 |
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 :
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 :
Si un résultat dont la gravité n'est pas définie est associé au niveau 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 provenant de la source. Les valeurs possibles sont les suivantes :
La valeur par défaut est |
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 La valeur par défaut est |
Max Findings To Fetch |
Facultatif. Nombre de résultats à traiter à chaque itération du connecteur. La valeur maximale est de La valeur par défaut est |
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. |
PythonProcessTime |
Obligatoire. Délai avant expiration, en secondes, du processus Python qui exécute le script actuel. La valeur par défaut est |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.