Ce document décrit un type de résultat de détection de menace dans Security Command Center. Ces résultats sont générés par les détecteurs de menaces lorsqu'ils détectent une menace potentielle dans vos ressources cloud. Pour obtenir la liste complète des résultats de détection de menace disponibles, consultez cet index.
Présentation
Un compte principal extérieur à votre organisation s'est vu attribuer un rôle IAM qui lui donne accès aux applications ou ressources IA Gemini Enterprise. Par défaut, les résultats sont classés dans le niveau de gravité moyen.
Ce résultat est généré lorsqu'un utilisateur, un compte de service ou un agent IA extérieur à votre organisation se voit attribuer l'un des rôles Gemini Enterprise (Discovery Engine) suivants :
roles/discoveryengine.adminroles/discoveryengine.agentAdminroles/discoveryengine.agentOwnerroles/discoveryengine.agentUserroles/discoveryengine.agentspaceAdminroles/discoveryengine.agentspaceUserroles/discoveryengine.editorroles/discoveryengine.user
Event Threat Detection est la source de ce résultat.
Actions à mettre en place
Pour traiter ce résultat, procédez comme suit :
Étape 1 : Examiner les détails du résultat
Ouvrez le résultat
Persistence: External Access Granted to Gemini Discovery Engine API Appscomme indiqué dans Examiner un résultat. Le panneau des détails du résultat s'ouvre dans l'onglet Résumé.Dans l'onglet Résumé, examinez les informations des sections suivantes :
- Risque détecté, en particulier les champs suivants :
- Adresse e-mail du compte principal : adresse e-mail de l'utilisateur ou du compte de service qui a attribué le rôle.
- Autorisations d'accès incriminées : détails des rôles Gemini Enterprise et des membres externes qui ont été ajoutés (
iamBindings).
- Ressource concernée
- Liens associés, en particulier les champs suivants :
- URI Cloud Logging : lien vers les entrées de journal.
- Méthode MITRE ATT&CK : lien vers la documentation MITRE ATT&CK.
- Risque détecté, en particulier les champs suivants :
Étape 2 : Vérifier les journaux
- Dans l'onglet Résumé du panneau de détails du résultat, cliquez sur le lien URI Cloud Logging pour ouvrir l'explorateur de journaux.
- Sur la page qui s'affiche, recherchez les liaisons de stratégie IAM nouvelles ou mises à jour à l'aide du filtre suivant :
protoPayload.methodName="SetIamPolicy"
Étape 3 : Rechercher des méthodes d'attaque et de réponse
- Consultez les entrées du framework MITRE ATT&CK pour le type de résultat Manipulation de compte : rôles cloud supplémentaires.
- Pour élaborer votre plan de réponse, combinez les résultats de votre enquête aux recherches de MITRE.
Étape 4 : Mettre en œuvre votre réponse
Le plan de réponse suivant peut être adapté à ce résultat, mais il peut également avoir un impact sur vos opérations. Veillez à bien évaluer les informations que vous collectez dans votre enquête pour déterminer quelle est la meilleure réponse à apporter aux problèmes soulevés par les résultats.
- Contactez le propriétaire du projet ou de la ressource où l'attribution de rôle externe a eu lieu pour vérifier si l'accès a été autorisé.
- Révoquez la liaison de rôle IAM non autorisée du compte principal externe.
- Si le compte qui a accordé le rôle (
principalEmail) a été compromis, révoquez son accès ou supprimez le compte de service compromis et effectuez une rotation de ses clés. - Pour limiter l'ajout de comptes principaux externes à vos ressources, utilisez la contrainte de règle d'administration de partage restreint au domaine.
Pour obtenir des recommandations de réponse, consultez Répondre aux résultats de détection des menaces liées à l'IA.
Exemple de résultat JSON
Voici un exemple de résultat JSON, sans les valeurs par défaut.
{ "finding": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID", "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global", "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "state": "ACTIVE", "category": "Persistence: External Access Granted to Gemini Discovery Engine API Apps", "securityMarks": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID/securityMarks" }, "eventTime": "TIMESTAMP", "createTime": "TIMESTAMP", "severity": "MEDIUM", "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/locations/global/findings/FINDING_ID", "findingClass": "THREAT", "access": { "principalEmail": "PRINCIPAL_EMAIL", "callerIp": "IP_ADDRESS", "callerIpGeo": { "regionCode": "COUNTRY_CODE" }, "userAgent": "USER_AGENT", "serviceName": "cloudresourcemanager.googleapis.com", "methodName": "SetIamPolicy", "principalSubject": "user:PRINCIPAL_EMAIL" }, "mitreAttack": { "primaryTactic": "PERSISTENCE", "primaryTechniques": [ "ADDITIONAL_CLOUD_ROLES", "ACCOUNT_MANIPULATION" ], "additionalTactics": [ "PRIVILEGE_ESCALATION" ] }, "iamBindings": [ { "action": "ADD", "role": "roles/discoveryengine.agentspaceUser", "member": "user:EXTERNAL_USER_EMAIL" } ], "parentDisplayName": "Event Threat Detection", "domains": [ { "category": "AI" }, { "category": "IDENTITY_AND_ACCESS" } ], "logEntries": [ { "cloudLoggingEntry": { "insertId": "INSERT_ID", "logId": "cloudaudit.googleapis.com/activity", "resourceContainer": "projects/PROJECT_ID", "timestamp": "TIMESTAMP" } } ] }, "resource": { "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "displayName": "PROJECT_ID", "type": "google.cloud.resourcemanager.Project", "cloudProvider": "GOOGLE_CLOUD_PLATFORM", "service": "cloudresourcemanager.googleapis.com", "gcpMetadata": { "project": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parent": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID", "parentDisplayName": "ORGANIZATION_DISPLAY_NAME", "organization": "organizations/ORGANIZATION_ID" }, "resourcePath": { "nodes": [ { "nodeType": "GCP_PROJECT", "id": "projects/PROJECT_NUMBER", "displayName": "PROJECT_ID" }, { "nodeType": "GCP_ORGANIZATION", "id": "organizations/ORGANIZATION_ID" } ] }, "resourcePathString": "organizations/ORGANIZATION_ID/projects/PROJECT_NUMBER" }, "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_ID" }, "detectionCategory": { "ruleName": "granting_external_access_to_gemini_enterprise_ai_apps" }, "detectionPriority": "MEDIUM", "affectedResources": [ { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" } ], "evidence": [ { "sourceLogId": { "projectId": "PROJECT_ID", "resourceContainer": "projects/PROJECT_ID", "timestamp": { "seconds": "TIMESTAMP_SECONDS", "nanos": TIMESTAMP_NANOS }, "insertId": "INSERT_ID", "logId": "cloudaudit.googleapis.com/activity" } } ], "findingId": "FINDING_ID", "contextUris": { "mitreUri": { "displayName": "MITRE Link", "url": "https://attack.mitre.org/techniques/T1098/003/" }, "cloudLoggingQueryUri": [ { "displayName": "Cloud Logging Query Link", "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%22TIMESTAMP%22%0AinsertId%3D%22INSERT_ID%22?project=PROJECT_ID" } ] }, "domains": [ { "category": "AI" }, { "category": "IDENTITY_AND_ACCESS" } ] } }
Étapes suivantes
- Découvrez comment travailler avec les résultats de détection de menace dans Security Command Center.
- Consultez l'index des résultats de détection de menace.
- Découvrez comment examiner un résultat dans la console Google Cloud .
- Apprenez-en plus sur les services qui génèrent des résultats de détection de menace.