Persistenz: Externer Zugriff auf Gemini Discovery Engine API-Anwendungen gewährt

In diesem Dokument wird ein bestimmter Typ von Bedrohungsergebnissen in Security Command Center beschrieben. Bedrohungsergebnisse werden von Bedrohungsdetektoren generiert, wenn sie eine potenzielle Bedrohung in Ihren Cloud-Ressourcen erkennen. Eine vollständige Liste der verfügbaren Bedrohungsergebnisse finden Sie im Index der Bedrohungsergebnisse.

Übersicht

Einem Hauptkonto außerhalb Ihrer Organisation wurde eine IAM-Rolle gewährt, die Zugriff auf Gemini Enterprise-KI-Anwendungen oder ‑Ressourcen bietet. Ergebnisse werden standardmäßig als Mittel eingestuft.

Dieses Ergebnis wird generiert, wenn einem Nutzer, Dienstkonto oder KI-Agenten außerhalb Ihrer Organisation eine der folgenden Gemini Enterprise-Rollen (Discovery Engine) zugewiesen wird:

  • roles/discoveryengine.admin
  • roles/discoveryengine.agentAdmin
  • roles/discoveryengine.agentOwner
  • roles/discoveryengine.agentUser
  • roles/discoveryengine.agentspaceAdmin
  • roles/discoveryengine.agentspaceUser
  • roles/discoveryengine.editor
  • roles/discoveryengine.user

Die Quelle dieses Ergebnisses ist Event Threat Detection.

Maßnahmen

So reagieren Sie auf dieses Ergebnis:

Schritt 1: Ergebnisdetails prüfen

  1. Öffnen Sie das Persistence: External Access Granted to Gemini Discovery Engine API Apps-Ergebnis, wie unter Ergebnisse prüfen beschrieben. Der Detailbereich für das Ergebnis wird geöffnet und der Tab Zusammenfassung wird angezeigt.

  2. Sehen Sie sich auf dem Tab Zusammenfassung die Informationen in den folgenden Abschnitten an:

    • Was erkannt wurde, insbesondere die folgenden Felder:
      • E-Mail-Adresse des Hauptkontos: Die E-Mail-Adresse des Nutzers oder Dienstkontos, dem die Rolle zugewiesen wurde.
      • Übermäßig freizügige Zugriffserteilungen: Die Details der Gemini Enterprise-Rollen und externen Mitglieder, die hinzugefügt wurden (iamBindings).
    • Betroffene Ressource
    • Weitere Informationen, insbesondere die folgenden Felder:
      • Cloud Logging-URI: ein Link zu Logging-Einträgen.
      • MITRE ATT&CK-Methode: Ein Link zur MITRE ATT&CK-Dokumentation.

Schritt 2: Protokolle prüfen

  1. Klicken Sie auf dem Tab Zusammenfassung des Detailbereichs für das Ergebnis auf den Link Cloud Logging-URI, um den Log-Explorer zu öffnen.
  2. Suchen Sie auf der Seite, die geladen wird, mithilfe des folgenden Filters nach neuen oder aktualisierten IAM-Richtlinienbindungen:
    • protoPayload.methodName="SetIamPolicy"

Schritt 3: Forschungsangriffe und Reaktionsmethoden

  1. Prüfen Sie die MITRE ATT&CK-Framework-Einträge für diesen Ergebnistyp: Account Manipulation: Additional Cloud Roles.
  2. Um einen Reaktionsplan zu entwickeln, kombinieren Sie die Prüfungsergebnisse mit der MITRE-Studie.

Schritt 4: Antwort implementieren

Der folgende Reaktionplan ist möglicherweise für dieses Ergebnis geeignet, kann sich jedoch auch auf Abläufe auswirken. Prüfen Sie die Informationen, die Sie im Rahmen Ihrer Untersuchung erfasst haben, sorgfältig, um die beste Lösung für die Behebung der Ergebnisse zu finden.

  1. Wenden Sie sich an den Inhaber des Projekts oder der Ressource, in der die externe Rolle zugewiesen wurde, um zu prüfen, ob der Zugriff autorisiert wurde.
  2. Widerrufen Sie die nicht autorisierte IAM-Rollenbindung vom externen Hauptkonto.
  3. Wenn das Konto, das die Rolle (principalEmail) gewährt hat, manipuliert wurde, entziehen Sie ihm den Zugriff oder löschen Sie das manipulierte Dienstkonto und rotieren Sie seine Schlüssel.
  4. Wenn Sie das Hinzufügen externer Hauptkonten zu Ihren Ressourcen einschränken möchten, verwenden Sie die Organisationsrichtlinien-Einschränkung „Domaineingeschränkte Freigabe“.

Informationen zu Reaktionsempfehlungen finden Sie unter Auf KI-Bedrohungsbefunde reagieren.

Beispiel für JSON-Ergebnis

Im Folgenden finden Sie ein Beispiel für das Ergebnis-JSON, wobei die Standardwerte weggelassen wurden.

{
  "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"
      }
    ]
  }
}

Nächste Schritte