Raccogliere i log di Okta

Supportato in:

Questo documento spiega come importare i log di Okta in Google Security Operations utilizzando l'API Okta. Il parser estrae i log di sistema, gestendo sia i singoli eventi sia gli eventi batch all'interno di un array JSON. Normalizza i dati nel formato UDM, mappando i campi Okta con gli equivalenti UDM, arricchendo i dati con user agent analizzati, informazioni geografiche e dettagli di autenticazione e generando eventi di risultati di sicurezza in base agli esiti e alle informazioni sui rischi.

Prima di iniziare

  • Istanza Google SecOps
  • Accesso privilegiato a Okta

Come configurare Okta

Per configurare l'accesso SSO di Okta, completa le seguenti attività:

Creare un utente amministrativo Okta con privilegi di sola lettura

  1. Accedi alla console di amministrazione Okta.
  2. Crea un utente standard.

    • Vai a Directory > Persone.
    • Fai clic su Aggiungi persona e compila i campi obbligatori.
  3. Seleziona Sicurezza > Amministratori.

  4. Fai clic su Aggiungi amministratore.

  5. Nel campo Assegnazione dell'amministratore da parte dell'amministratore, individua l'utente standard.

  6. Nella sezione Ruoli, seleziona Amministratore di sola lettura dall'elenco.

  7. Esci dall'account amministratore.

Recupera chiave API

  1. Accedi alla console di amministrazione di Okta con l'utente amministratore di sola lettura.
  2. Vai a Sicurezza > API > Token.
  3. Fai clic su Crea token.
  4. Fornisci un nome significativo per il token.
  5. Fornisci la zona IP in cui verrà utilizzata l'API (se non sai quale scegliere, puoi selezionare qualsiasi IP).
  6. Fai clic su Crea token.
  7. Copia la chiave API.
  8. Fai clic su Ok.

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed
  • Hub dei contenuti > Pacchetti di contenuti

Configurare i feed da Impostazioni SIEM > Feed

Per configurare più feed per diversi tipi di log all'interno di questa famiglia di prodotti, consulta Configurare i feed per prodotto.

Per configurare un singolo feed:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed, ad esempio Okta Logs.
  5. Seleziona API di terze parti come Tipo di origine.
  6. Seleziona Okta come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:
    • Intestazione HTTP di autenticazione: inserisci la chiave API Okta nel seguente formato: Authorization:<API_KEY>.
    • Nome host API: specifica il nome di dominio dell'host Okta (ad esempio, <your-domain>.okta.com).
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
  9. Fai clic su Avanti.
  10. Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • Intestazioni HTTP di autenticazione: utilizzate per l'autenticazione rispetto all'API SentinelOne Alerts/Threats & static-indicator nel formato key:value.
  • Nome host API: il nome di dominio completo dell'API SentinelOne.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
actor.alternateId principal.user.email_addresses Estratto da actor.alternateId se è un indirizzo email. Se non è un indirizzo email, viene utilizzato come principal.user.userid.
actor.displayName principal.user.user_display_name Mappato direttamente.
actor.id principal.user.product_object_id Mappato direttamente.
actor.type principal.user.attribute.roles.name Mappato direttamente.
authenticationContext.authenticationProvider security_result.detection_fields.value Mappato direttamente, con la chiave authenticationProvider.
authenticationContext.credentialProvider security_result.detection_fields.value Mappato direttamente, con la chiave credentialProvider.
authenticationContext.credentialType extensions.auth.mechanism Utilizzato per derivare il meccanismo di autenticazione (OTP, USERNAME_PASSWORD, LOCAL).
authenticationContext.externalSessionId network.parent_session_id Mappato direttamente.
client.device principal.asset.type/additional.fields.value.string_value Mappato a principal.asset.type (WORKSTATION, MOBILE, ROLE_UNSPECIFIED) in base al valore. Mappato anche come valore stringa con la chiave device in additional.fields.
client.geographicalContext.city principal.location.city Mappato direttamente.
client.geographicalContext.country principal.location.country_or_region Mappato direttamente.
client.geographicalContext.geolocation.lat principal.location.region_latitude Mappato direttamente.
client.geographicalContext.geolocation.lon principal.location.region_longitude Mappato direttamente.
client.geographicalContext.postalCode additional.fields.value.string_value Mappato direttamente come valore stringa con la chiave Postal code in additional.fields.
client.geographicalContext.state principal.location.state Mappato direttamente.
client.ipAddress principal.ip, principal.asset.ip Mappato direttamente.
client.userAgent.browser target.resource.attribute.labels.value Mappato direttamente, con la chiave Browser.
client.userAgent.os principal.platform Mappato alla piattaforma (LINUX, WINDOWS, MAC) in base al valore.
client.userAgent.rawUserAgent network.http.user_agent, network.http.parsed_user_agent Mappato e analizzato direttamente.
client.zone additional.fields.value.string_value Mappato direttamente come valore stringa con la chiave zone in additional.fields.
debugContext.debugData.behaviors security_result.description, security_result.detection_fields Mappato direttamente sulla descrizione. I comportamenti individuali vengono estratti e aggiunti come campi di rilevamento.
debugContext.debugData.changedAttributes security_result.detection_fields.value Mappato direttamente, con la chiave changedAttributes.
debugContext.debugData.clientAddress principal.ip, principal.asset.ip Mappato direttamente se mancano request.ipChain e client.ipAddress.
debugContext.debugData.deviceFingerprint target.asset.asset_id Mappato direttamente, con il prefisso device_finger_print:.
debugContext.debugData.dtHash security_result.detection_fields.value Mappato direttamente, con la chiave dtHash.
debugContext.debugData.factor security_result.detection_fields.value Mappato direttamente, con la chiave factor.
debugContext.debugData.factorIntent security_result.detection_fields.value Mappato direttamente, con la chiave factorIntent.
debugContext.debugData.logOnlySecurityData.risk.reasons security_result.detection_fields.value Mappato direttamente, con la chiave Risk Reasons.
debugContext.debugData.privilegeGranted target.user.attribute.roles Suddivisi in singoli privilegi e aggiunti come ruoli con nome e descrizione.
debugContext.debugData.pushOnlyResponseType security_result.detection_fields.value Mappato direttamente, con la chiave pushOnlyResponseType.
debugContext.debugData.pushWithNumberChallengeResponseType security_result.detection_fields.value Mappato direttamente, con la chiave pushWithNumberChallengeResponseType.
debugContext.debugData.requestUri extensions.auth.auth_details Mappato direttamente.
debugContext.debugData.suspiciousActivityEventId security_result.detection_fields.value Mappato direttamente, con la chiave suspiciousActivityEventId.
debugContext.debugData.suspiciousActivityEventType security_result.detection_fields.value Mappato direttamente, con la chiave suspiciousActivityEventType.
debugContext.debugData.threatDetections security_result.detection_fields.value Mappato direttamente, con la chiave threatDetections.
debugContext.debugData.threatSuspected security_result.detection_fields.value, security_result.threat_status Mappato come campo di rilevamento con la chiave threatSuspected. Utilizzato per derivare lo stato della minaccia (ACTIVE o FALSE_POSITIVE).
debugContext.debugData.url target.url Mappato direttamente.
displayMessage security_result.summary Mappato direttamente.
eventType metadata.product_event_type, metadata.event_type Mappato direttamente a product_event_type. Utilizzato per derivare 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).
legacyEventType security_result.detection_fields.value Mappato direttamente, con la chiave legacyEventType.
outcome.reason security_result.category_details Mappato direttamente.
outcome.result security_result.action Mappato all'azione (ALLOW, CHALLENGE, BLOCK) in base al valore.
published metadata.event_timestamp Analizzato in base al timestamp.
request.ipChain.n.geographicalContext intermediary.location Contesto geografico degli IP intermedi nella catena di richieste.
request.ipChain.n.ip intermediary.ip Indirizzi IP degli intermediari nella catena di richieste.
securityContext.asNumber security_result.detection_fields.value Mappato direttamente, con la chiave asNumber.
securityContext.asOrg security_result.detection_fields.value Mappato direttamente, con la chiave asOrg.
securityContext.domain security_result.detection_fields.value Mappato direttamente, con la chiave domain.
securityContext.isp security_result.detection_fields.value Mappato direttamente, con la chiave isp.
securityContext.isProxy security_result.detection_fields.value Mappato direttamente, con la chiave anonymized IP.
target.n.alternateId target.user.email_addresses/target.user.userid Se si tratta di un indirizzo email, mappato a target.user.email_addresses. Se non è un indirizzo email, viene utilizzato come target.user.userid.
target.n.detailEntry.clientAppId target.asset_id Mappato direttamente, con il prefisso Client_app_id:.
target.n.detailEntry.methodTypeUsed target.resource_ancestors.attribute.labels.value Mappato direttamente, con la chiave methodTypeUsed quando il tipo di destinazione è AuthenticatorEnrollment.
target.n.detailEntry.methodUsedVerifiedProperties target.resource_ancestors.attribute.labels.value Mappato direttamente, con la chiave methodUsedVerifiedProperties quando il tipo di destinazione è AuthenticatorEnrollment.
target.n.detailEntry.policyType target.resource_ancestors.attribute.labels.value Mappato direttamente, con la chiave Policy Type.
target.n.detailEntry.signOnModeType security_result.detection_fields.value Mappato direttamente, con la chiave signOnModeType.
target.n.displayName target.user.user_display_name / target.application / target.resource.name Mappatura eseguita in base al tipo di destinazione.
target.n.id target.user.product_object_id / target.resource.product_object_id / target.resource_ancestors.product_object_id Mappatura eseguita in base al tipo di destinazione.
target.n.type target.user.attribute.roles.name / target.resource.resource_subtype / target.resource_ancestors.resource_subtype Mappatura eseguita in base al tipo di destinazione.
transaction.id network.session_id Mappato direttamente.
transaction.type additional.fields.value.string_value Mappato direttamente come valore stringa con la chiave type in additional.fields.
uuid metadata.product_log_id Mappato direttamente.
N/D metadata.vendor_name Imposta su Okta.
N/D metadata.product_name Imposta su Okta.
N/D extensions.auth.type Imposta su SSO.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.