Okta-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Okta-Logs mithilfe der Okta API in Google Security Operations aufnehmen. Der Parser extrahiert Systemprotokolle und verarbeitet sowohl einzelne als auch Batch-Ereignisse in einem JSON-Array. Dabei werden die Daten in das UDM-Format normalisiert, Okta-Felder werden UDM-Äquivalenten zugeordnet, die Daten werden mit geparsten User-Agents, geografischen Informationen und Authentifizierungsdetails angereichert und Sicherheitsereignisse werden basierend auf Ergebnissen und Risikoinformationen generiert.

Hinweise

  • Sie benötigen eine Google SecOps-Instanz.
  • Sie benötigen Berechtigungen für Okta.

Okta konfigurieren

Führen Sie die folgenden Aufgaben aus, um Okta SSO zu konfigurieren:

Okta-Administrator mit Lesezugriff erstellen

  1. Melden Sie sich in der Okta Admin-Konsole an.
  2. Erstellen Sie einen Standardnutzer.

    • Gehen Sie zu Verzeichnis > Personen.
    • Klicken Sie auf Person hinzufügen und füllen Sie die Pflichtfelder aus.
  3. Wählen Sie Sicherheit > Administratoren aus.

  4. Klicken Sie auf Administrator hinzufügen.

  5. Suchen Sie im Feld Administratorzuweisung durch Administrator nach dem Standardnutzer.

  6. Wählen Sie im Bereich Rollen die Option Lesezugriffsberechtigter Administrator aus der Liste aus.

  7. Melden Sie sich vom Administratorkonto ab.

API-Schlüssel abrufen

  1. Melden Sie sich mit dem Nutzer Lesezugriffs-Administrator in der Okta Admin-Konsole an.
  2. Klicken Sie auf Sicherheit > API > Tokens.
  3. Klicken Sie auf Token erstellen.
  4. Geben Sie einen aussagekräftigen Namen für das Token ein.
  5. Geben Sie die IP-Zone an, in der die API verwendet wird. Wenn Sie sich nicht sicher sind, können Sie eine beliebige IP auswählen.
  6. Klicken Sie auf Token erstellen.
  7. Kopieren Sie den API-Schlüssel.
  8. Klicken Sie auf Ok.

Feed in Google SecOps für die Aufnahme von Okta-Protokollen konfigurieren

  1. Gehen Sie zu SIEM-Einstellungen > Feeds.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Okta-Protokolle.
  4. Wählen Sie API eines Drittanbieters als Quelltyp aus.
  5. Wählen Sie Okta als Protokolltyp aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie Werte für die folgenden Eingabeparameter an:
    • HTTP-Authentifizierungsheader: Geben Sie den Okta API-Schlüssel im folgenden Format ein: Authorization:<API_KEY>.
    • API-Hostname: Geben Sie den Domainnamen Ihres Okta-Hosts an, z. B. <your-domain>.okta.com.
    • Asset-Namespace: der Asset-Namespace.
    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
  8. Klicken Sie auf Weiter.
  9. Überprüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
actor.alternateId principal.user.email_addresses Wird aus actor.alternateId extrahiert, wenn es sich um eine E-Mail-Adresse handelt. Wenn keine E-Mail-Adresse, wird als principal.user.userid verwendet.
actor.displayName principal.user.user_display_name Direkt zugeordnet.
actor.id principal.user.product_object_id Direkt zugeordnet.
actor.type principal.user.attribute.roles.name Direkt zugeordnet.
authenticationContext.authenticationProvider security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel authenticationProvider.
authenticationContext.credentialProvider security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel credentialProvider.
authenticationContext.credentialType extensions.auth.mechanism Wird verwendet, um den Authentifizierungsmechanismus abzuleiten (OTP, USERNAME_PASSWORD, LOCAL).
authenticationContext.externalSessionId network.parent_session_id Direkt zugeordnet.
client.device principal.asset.type/additional.fields.value.string_value Wird basierend auf dem Wert auf principal.asset.type (WORKSTATION, MOBILE, ROLE_UNSPECIFIED) zugeordnet. Wird auch als Stringwert mit dem Schlüssel device in additional.fields zugeordnet.
client.geographicalContext.city principal.location.city Direkt zugeordnet.
client.geographicalContext.country principal.location.country_or_region Direkt zugeordnet.
client.geographicalContext.geolocation.lat principal.location.region_latitude Direkt zugeordnet.
client.geographicalContext.geolocation.lon principal.location.region_longitude Direkt zugeordnet.
client.geographicalContext.postalCode additional.fields.value.string_value Wird direkt als Stringwert mit dem Schlüssel Postal code in additional.fields zugeordnet.
client.geographicalContext.state principal.location.state Direkt zugeordnet.
client.ipAddress principal.ip, principal.asset.ip Direkt zugeordnet.
client.userAgent.browser target.resource.attribute.labels.value Direkt zugeordnet, mit Schlüssel Browser.
client.userAgent.os principal.platform Wird basierend auf dem Wert der Plattform (LINUX, WINDOWS, MAC) zugeordnet.
client.userAgent.rawUserAgent network.http.user_agent, network.http.parsed_user_agent Direkt zugeordnet und geparst.
client.zone additional.fields.value.string_value Wird direkt als Stringwert mit dem Schlüssel zone in additional.fields zugeordnet.
debugContext.debugData.behaviors security_result.description, security_result.detection_fields Direkt der Beschreibung zugeordnet. Einzelne Verhaltensweisen werden extrahiert und als Erkennungsfelder hinzugefügt.
debugContext.debugData.changedAttributes security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel changedAttributes.
debugContext.debugData.clientAddress principal.ip, principal.asset.ip Wird direkt zugeordnet, wenn request.ipChain und client.ipAddress fehlen.
debugContext.debugData.deviceFingerprint target.asset.asset_id Direkt zugeordnet, Präfix device_finger_print:.
debugContext.debugData.dtHash security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel dtHash.
debugContext.debugData.factor security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel factor.
debugContext.debugData.factorIntent security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel factorIntent.
debugContext.debugData.logOnlySecurityData.risk.reasons security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel Risk Reasons.
debugContext.debugData.privilegeGranted target.user.attribute.roles Sie werden in einzelne Berechtigungen unterteilt und als Rollen mit Name und Beschreibung hinzugefügt.
debugContext.debugData.pushOnlyResponseType security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel pushOnlyResponseType.
debugContext.debugData.pushWithNumberChallengeResponseType security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel pushWithNumberChallengeResponseType.
debugContext.debugData.requestUri extensions.auth.auth_details Direkt zugeordnet.
debugContext.debugData.suspiciousActivityEventId security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel suspiciousActivityEventId.
debugContext.debugData.suspiciousActivityEventType security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel suspiciousActivityEventType.
debugContext.debugData.threatDetections security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel threatDetections.
debugContext.debugData.threatSuspected security_result.detection_fields.value, security_result.threat_status Wird als Erkennungsfeld mit dem Schlüssel threatSuspected zugeordnet. Wird verwendet, um den Bedrohungsstatus (AKTIV oder FALSE_POSITIVE) abzuleiten.
debugContext.debugData.url target.url Direkt zugeordnet.
displayMessage security_result.summary Direkt zugeordnet.
eventType metadata.product_event_type, metadata.event_type Direkt product_event_type zugeordnet. Wird verwendet, um event_type (USER_LOGIN, USER_LOGOUT, USER_CHANGE_PASSWORD, USER_CHANGE_PERMISSIONS, USER_DELETION, GROUP_MODIFICATION, SETTING_MODIFICATION, SCHEDULED_TASK_ENABLE, RESOURCE_CREATION, USER_UNCATEGORIZED) abzuleiten.
legacyEventType security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel legacyEventType.
outcome.reason security_result.category_details Direkt zugeordnet.
outcome.result security_result.action Wird basierend auf dem Wert einer Aktion zugeordnet (ZULASSEN, ANZÜCKEN, BLOCKIEREN).
published metadata.event_timestamp In einen Zeitstempel geparst.
request.ipChain.n.geographicalContext intermediary.location Geografische Kontext der Zwischen-IPs in der Anfragekette.
request.ipChain.n.ip intermediary.ip IP-Adressen von Intermediären in der Anfragekette.
securityContext.asNumber security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel asNumber.
securityContext.asOrg security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel asOrg.
securityContext.domain security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel domain.
securityContext.isp security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel isp.
securityContext.isProxy security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel anonymized IP.
target.n.alternateId target.user.email_addresses/target.user.userid Wenn es sich um eine E-Mail-Adresse handelt, die target.user.email_addresses zugeordnet ist. Wenn keine E-Mail-Adresse, wird als target.user.userid verwendet.
target.n.detailEntry.clientAppId target.asset_id Direkt zugeordnet, Präfix Client_app_id:.
target.n.detailEntry.methodTypeUsed target.resource_ancestors.attribute.labels.value Direkt zugeordnet, mit dem Schlüssel methodTypeUsed, wenn der Zieltyp „AuthenticatorEnrollment“ ist.
target.n.detailEntry.methodUsedVerifiedProperties target.resource_ancestors.attribute.labels.value Direkt zugeordnet, mit Schlüssel methodUsedVerifiedProperties, wenn der Zieltyp „AuthenticatorEnrollment“ ist.
target.n.detailEntry.policyType target.resource_ancestors.attribute.labels.value Direkt zugeordnet, mit Schlüssel Policy Type.
target.n.detailEntry.signOnModeType security_result.detection_fields.value Direkt zugeordnet, mit Schlüssel signOnModeType.
target.n.displayName target.user.user_display_name / target.application / target.resource.name Zuordnung nach Zieltyp.
target.n.id target.user.product_object_id / target.resource.product_object_id / target.resource_ancestors.product_object_id Zuordnung nach Zieltyp.
target.n.type target.user.attribute.roles.name / target.resource.resource_subtype / target.resource_ancestors.resource_subtype Zuordnung nach Zieltyp.
transaction.id network.session_id Direkt zugeordnet.
transaction.type additional.fields.value.string_value Wird direkt als Stringwert mit dem Schlüssel type in additional.fields zugeordnet.
uuid metadata.product_log_id Direkt zugeordnet.
metadata.vendor_name Legen Sie Okta fest.
metadata.product_name Legen Sie Okta fest.
extensions.auth.type Legen Sie SSO fest.
is_alert Für security.threat.detected- und user.account.report_suspicious_activity_by_enduser-Ereignisse auf „true“ setzen.
is_significant Für security.threat.detected- und user.account.report_suspicious_activity_by_enduser-Ereignisse auf „true“ setzen.

Änderungen

2024-05-16

  • Wenn is_alert und is_significant wahr sind, legen Sie security_result.alert_state als ALERTING fest.

2024-03-05

  • Das Feld security_result.action wurde aktualisiert, um anzugeben, ob der Traffic zugelassen oder blockiert wurde.

2024-02-16

Fehlerkorrektur:

  • Wenn target.0.type User oder AppUser ist, wird target.0.alternateId target.user.userid zugeordnet.
  • Wenn target.1.type User oder AppUser ist, wird target.1.alternateId target.user.userid zugeordnet.

2023-12-14

  • securityContext.asNumber wurde security_result.detection_fields zugeordnet.
  • legacyEventType wurde security_result.detection_fields zugeordnet.
  • conditional_check wurde vor dem Festlegen von metadata.event_type hinzugefügt.

2023-06-28

  • Der vollständige Wert von debugContext.debugData.suspiciousActivityEventType wurde security_result.detection_fields zugeordnet.
  • Der vollständige Wert von debugContext.debugData.logOnlySecurityData.behaviors.New Device wurde security_result.detection_fields zugeordnet.

2023-06-09

  • Das Feld debugContext.debugData.deviceFingerprint ist target.asset.asset_id zugeordnet.
  • Der vollständige Wert von debugContext.debugData.risk.reasons wurde security_result.detection_fields zugeordnet.

2023-05-17

  • Das Feld „authenticationContext.externalSessionId“ ist „network.parent_session_id“ zugeordnet.
  • Das Feld „debugContext.debugData.pushOnlyResponseType“ wird „security_result.detection_fields.key/value“ zugeordnet.
  • Das Feld „debugContext.debugData.factor“ wird „security_result.detection_fields.key/value“ zugeordnet.
  • Das Feld „debugContext.debugData.factorIntent“ ist „security_result.detection_fields.key/value“ zugeordnet.
  • Das Feld „debugContext.debugData.pushWithNumberChallengeResponseType“ wird „security_result.detection_fields.key/value“ zugeordnet.
  • Das Feld „debugContext.debugData.dtHash“ ist „security_result.detection_fields.key/value“ zugeordnet.
  • Das Feld „client.userAgent.rawUserAgent“ wird „network.http.user_agent“ zugeordnet.
  • Die Zuordnung unter „security_result.action“ wurde von „ALLOW_WITH_MODIFICATION“ in den enum-Wert „CHALLENGE“ geändert.
  • Für den Ereignistyp „system.api_token.create“ wurde „metadata.event_type“ von „USER_UNCATEGORIZED“ in „RESOURCE_CREATION“ geändert.

2023-04-28

Fehlerkorrektur:

  • Modifizierte Zuordnung von security_result.threat_status zu ACTIVE, wenn debugContext.debugData.threatSuspected = true, andernfalls zu FALSE_POSITIVE.

2023-03-24

  • logOnlySecurityData-Felder wurden security_result.detection_fields zugeordnet.
  • Außerdem wurde der Parsefehler behoben, indem DEFERRED zur Aktionsliste hinzugefügt wurde.

2023-04-11

  • Die Felder, die http.user_agent zugeordnet waren, wurden auf http.parsed_user_agent umgestellt.
  • target.displayName wurde target.resource_ancestors.name zugeordnet.
  • targetfield.detailEntry.methodTypeUsed wurde target.resource_ancestors.attribute.labels zugeordnet.
  • targetfield.detailEntry.methodUsedVerifiedProperties wurde target.resource_ancestors.attribute.labels zugeordnet.

2023-02-20

  • metadata.event_type wurde von USER_LOGIN in STATUS_UPDATE geändert, wobei eventType = user.authentication.auth_via_AD_agent ist

2022-12-14

  • debugContext.debugData.changedAttributes wurde security_result.detection_fields zugeordnet.
  • Null-Prüfung für detail.actor.alternateId hinzugefügt.

2022-11-17

  • Das Feld target[n].alternateId ist target.resource.attribute.labels zugeordnet.
  • Das Feld detail.target.0.alternateId ist target.resource.attribute.labels zugeordnet.

2022-11-08

Fehlerkorrektur:

  • Es wurde eine Bedingung für die korrekte E-Mail-Prüfung für das Feld user_email hinzugefügt.
  • Es wurde eine Prüfung hinzugefügt, ob das Feld Action1 nicht in RATE_LIMIT enthalten ist.
  • Null- und Unbekannt-Prüfung für actor.displayName hinzugefügt.

2022-11-04

  • Unterstützung für Protokolle mit mehreren Ereignissen hinzugefügt

2022-10-15

  • signOnModeType wurde security_result.detection_fields zugeordnet.
  • authenticationProvider wurde security_result.detection_fields zugeordnet.
  • credentialProvider wurde security_result.detection_fields zugeordnet.
  • device wurde additional.fields zugeordnet.
  • zone wurde additional.fields zugeordnet.
  • type wurde additional.fields zugeordnet.

2022-10-14

Fehlerkorrektur:

  • Bedingte Prüfung für „principal.user.email_addresses“ und „target.user.email_addresses“ hinzugefügt.
  • Grok-Regel hinzugefügt, um für das Feld „request.ipChain.0.ip“, das „principal.ip“ zugeordnet ist, eine gültige IP-Adresse zu prüfen.
  • Die Bedingung „on_error“ für das Feld „debugContext.debugData.url“, das auf „target.url“ zugeordnet ist, wurde hinzugefügt.

2022-10-03

  • client.userAgent.os wurde principal.platform zugeordnet.
  • client.device wurde principal.asset.type zugeordnet.
  • anonymized IP (hartcodierter String) wurde auf security_result.detection_fields.key und der Wert „securityContext.isProxy“ auf den entsprechenden Wert von security_result.detection_fields.value abgebildet.

2022-09-16

  • „securityContext.asOrg“ wurde „security_result.category_details“ zugeordnet.
  • „securityContext.isProxy“ ist auf „security_result.detection_fields“ zugeordnet.
  • „securityContext.domain“ ist auf „security_result.detection_fields“ zugeordnet.
  • „securityContext.isp“ ist auf „security_result.detection_fields“ zugeordnet.
  • „debugContext.debugData.risk.level“ wird auf „security_result.severity“ zugeordnet.
  • „debugContext.debugData.risk.reasons“ wird auf „security_result.detection_fields“ zugeordnet.

2022-08-12

  • Die neu aufgenommenen Protokolle wurden analysiert und den folgenden Feldern zugeordnet:
  • „detail.uuid“ ist mit „metadata.product_log_id“ verknüpft.
  • „detail.eventType“ wird auf „metadata.product_event_type“ zugeordnet
  • „detail.actor.id“ ist auf „principal.user.product_object_id“ zugeordnet.
  • if 'detail.actor.alternateId' mapped to 'principal.user.userid' else
  • „detail.actor.alternateId“ ist auf „principal.user.email_addresses“ zugeordnet.
  • „detail.actor.displayName“ ist „principal.user.user_display_name“ zugeordnet.
  • „detail.actor.type“ ist auf „.principal.user.attribute.roles“ zugeordnet.
  • „detail.client.ipChain.0.ip“ ist „principal.ip“ zugeordnet.
  • „detail.client.ipChain.0.geographicalContext.state“ wird auf „principal.location.state“ zugeordnet.
  • „detail.client.ipChain.0.geographicalContext.city“ wird auf „principal.location.city“ zugeordnet.
  • „detail.client.ipChain.0.geographicalContext.country“ wird auf „principal.location.country_or_region“ zugeordnet.
  • „detail.debugContext.debugData.requestUri“ ist auf „target.url“ zugeordnet.
  • „detail.target.0.type“ ist auf „target.resource.resource_subtype“ zugeordnet.
  • „detail.target.0.id“ ist auf „target.resource.resource.product_object_id“ zugeordnet.
  • „detail.target.0.displayName“ ist auf „target.resource.resource_subtype“ zugeordnet.
  • „detail.target.0.detailEntry.policyType“ ist auf „target.resource_ancestors.attribute.labels“ zugeordnet.
  • „detail.outcome.reason“ wurde „security_result.category_details“ zugeordnet.
  • „detail.debugContext.debugData.threatSuspected“ wurde in „security_result.detection_fields“ umgewandelt.
  • „detail.displayMessage“ wurde „security_result.summary“ zugeordnet.
  • „detail.outcome.result“ wurde „security_result.action“ zugeordnet.
  • „detail.severity“ ist „security_result.severity“ zugeordnet.
  • „detail.transaction.id“ ist mit „network.session_id“ verknüpft.
  • „detail.debugContext.debugData.requestUri“ ist auf „extensions.auth.auth_details“ zugeordnet.

2022-07-08

  • Die Zuordnung für actor.type wurde von principal.user.role_name zu principal.user.attribute.roles geändert.
  • Die Zuordnung für target.0.type wurde von target.user.role_name zu target.user.attribute.roles geändert.
  • Die Zuordnung für target.1.type wurde von target.user.role_name zu target.user.attribute.roles geändert.

2022-06-15

Optimierung:

  • für target.0.type = Token.
  • target.0.detailEntry.clientAppId wurde target.asset_id zugeordnet.
  • Bedingte Prüfung für das Feld „transaction.id“, das dem UDM-Feld „network.session_id“ zugeordnet ist, hinzugefügt.

2022-06-03

Optimierung:

  • debugContext.debugData.privilegeGranted wurde zusätzlich zu target.user.attribute.roles.name zugeordnet.
  • debugContext.debugData.requestUri wurde in extensions.auth.auth_details geändert.
  • debugContext.debugData.suspiciousActivityEventId, debugContext.debugData.threatDetections und debugContext.debugData.threatSuspected wurden security_result.detection_fields zugeordnet.

2022-03-22

Optimierung:

  • debugContext.debugData.behaviors mapped to security_result.description.
  • debugContext.debugData.threatSuspected wird security_result.threat_status zugeordnet.
  • debugContext.debugData.risk wird auf security_result.severity zugeordnet.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten