Recopila registros de Okta

Compatible con:

En este documento, se explica cómo transferir registros de Okta a Google Security Operations con la API de Okta. El analizador extrae registros del sistema y controla tanto eventos únicos como eventos por lotes dentro de un array JSON. Normaliza los datos en el formato del UDM, asigna los campos de Okta a sus equivalentes en el UDM, enriquece los datos con los detalles de autenticación, la información geográfica y los agentes de usuario analizados, y genera eventos de resultados de seguridad según los resultados y la información de riesgo.

Antes de comenzar

  • Instancia de Google SecOps
  • Acceso con privilegios a Okta

Cómo configurar Okta

Para configurar el SSO de Okta, completa las siguientes tareas:

Crea un usuario administrativo de Okta con privilegios de solo lectura

  1. Accede a la consola del administrador de Okta.
  2. Crea un usuario estándar.

    • Ve a Directorio > Personas.
    • Haz clic en Agregar a una persona y completa los campos obligatorios.
  3. Selecciona Seguridad > Administradores.

  4. Haz clic en Agregar administrador.

  5. En el campo Asignación de administrador por parte del administrador, busca el usuario estándar.

  6. En la sección roles, selecciona Administrador de solo lectura en la lista.

  7. Sal de la cuenta de administrador.

Obtén una clave de API

  1. Accede a la Consola del administrador de Okta con el usuario administrador de solo lectura.
  2. Ve a Seguridad > API > Tokens.
  3. Haz clic en Create Token.
  4. Proporciona un nombre significativo para el token.
  5. Proporciona la zona de IP en la que se usará la API (puedes seleccionar cualquier IP si no lo sabes).
  6. Haz clic en Create Token.
  7. Copie la clave de API.
  8. Haz clic en Entendido.

Configura feeds

Existen dos puntos de entrada diferentes para configurar feeds en la plataforma de Google SecOps:

  • Configuración de SIEM > Feeds
  • Centro de contenido > Paquetes de contenido

Configura feeds desde Configuración del SIEM > Feeds

Para configurar varios feeds para diferentes tipos de registros dentro de esta familia de productos, consulta Cómo configurar feeds por producto.

Para configurar un solo feed, sigue estos pasos:

  1. Ve a SIEM Settings > Feeds.
  2. Haz clic en Agregar feed nuevo.
  3. En la siguiente página, haz clic en Configurar un solo feed.
  4. En el campo Nombre del feed, ingresa un nombre para el feed, por ejemplo, Registros de Okta.
  5. Selecciona API de terceros como el Tipo de origen.
  6. Selecciona Okta como el Tipo de registro.
  7. Haz clic en Siguiente.
  8. Especifica valores para los siguientes parámetros de entrada:
    • Encabezado HTTP de autenticación: Ingresa la clave de API de Okta con el siguiente formato: Authorization:<API_KEY>.
    • Nombre de host de la API: Especifica el nombre de dominio de tu host de Okta (por ejemplo, <your-domain>.okta.com).
    • Espacio de nombres del recurso: Es el espacio de nombres del recurso.
    • Etiquetas de transferencia: Es la etiqueta que se aplica a los eventos de este feed.
  9. Haz clic en Siguiente.
  10. Revisa la configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.

Configura feeds desde el Centro de contenido

Especifica valores para los siguientes campos:

  • Encabezados HTTP de autenticación: Se usan para autenticar la API de SentinelOne Alerts/Threats & static-indicator en formato key:value.
  • Nombre de host de la API: Es el nombre de dominio completamente calificado de la API de SentinelOne.

Opciones avanzadas

  • Nombre del feed: Es un valor completado previamente que identifica el feed.
  • Tipo de fuente: Es el método que se usa para recopilar registros en Google SecOps.
  • Espacio de nombres del recurso: Espacio de nombres asociado al feed.
  • Etiquetas de transferencia: Son las etiquetas que se aplican a todos los eventos de este feed.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
actor.alternateId principal.user.email_addresses Se extrae de actor.alternateId si es una dirección de correo electrónico. Si no es una dirección de correo electrónico, se usa como principal.user.userid.
actor.displayName principal.user.user_display_name Se asigna directamente.
actor.id principal.user.product_object_id Se asigna directamente.
actor.type principal.user.attribute.roles.name Se asigna directamente.
authenticationContext.authenticationProvider security_result.detection_fields.value Se asigna directamente, con la clave authenticationProvider.
authenticationContext.credentialProvider security_result.detection_fields.value Se asigna directamente, con la clave credentialProvider.
authenticationContext.credentialType extensions.auth.mechanism Se usa para derivar el mecanismo de autenticación (OTP, USERNAME_PASSWORD, LOCAL).
authenticationContext.externalSessionId network.parent_session_id Se asigna directamente.
client.device principal.asset.type/additional.fields.value.string_value Se asigna a principal.asset.type (WORKSTATION, MOBILE, ROLE_UNSPECIFIED) según el valor. También se asigna como un valor de cadena con la clave device en additional.fields.
client.geographicalContext.city principal.location.city Se asigna directamente.
client.geographicalContext.country principal.location.country_or_region Se asigna directamente.
client.geographicalContext.geolocation.lat principal.location.region_latitude Se asigna directamente.
client.geographicalContext.geolocation.lon principal.location.region_longitude Se asigna directamente.
client.geographicalContext.postalCode additional.fields.value.string_value Se asigna directamente como un valor de cadena con la clave Postal code en additional.fields.
client.geographicalContext.state principal.location.state Se asigna directamente.
client.ipAddress principal.ip, principal.asset.ip Se asigna directamente.
client.userAgent.browser target.resource.attribute.labels.value Se asigna directamente, con la clave Browser.
client.userAgent.os principal.platform Se asigna a la plataforma (LINUX, WINDOWS, MAC) según el valor.
client.userAgent.rawUserAgent network.http.user_agent, network.http.parsed_user_agent Se asigna y analiza directamente.
client.zone additional.fields.value.string_value Se asigna directamente como un valor de cadena con la clave zone en additional.fields.
debugContext.debugData.behaviors security_result.description, security_result.detection_fields Se asigna directamente a la descripción. Los comportamientos individuales se extraen y se agregan como campos de detección.
debugContext.debugData.changedAttributes security_result.detection_fields.value Se asigna directamente, con la clave changedAttributes.
debugContext.debugData.clientAddress principal.ip, principal.asset.ip Se asigna directamente si faltan request.ipChain y client.ipAddress.
debugContext.debugData.deviceFingerprint target.asset.asset_id Se asigna directamente y tiene el prefijo device_finger_print:.
debugContext.debugData.dtHash security_result.detection_fields.value Se asigna directamente, con la clave dtHash.
debugContext.debugData.factor security_result.detection_fields.value Se asigna directamente, con la clave factor.
debugContext.debugData.factorIntent security_result.detection_fields.value Se asigna directamente, con la clave factorIntent.
debugContext.debugData.logOnlySecurityData.risk.reasons security_result.detection_fields.value Se asigna directamente, con la clave Risk Reasons.
debugContext.debugData.privilegeGranted target.user.attribute.roles Se dividieron en privilegios individuales y se agregaron como roles con nombre y descripción.
debugContext.debugData.pushOnlyResponseType security_result.detection_fields.value Se asigna directamente, con la clave pushOnlyResponseType.
debugContext.debugData.pushWithNumberChallengeResponseType security_result.detection_fields.value Se asigna directamente, con la clave pushWithNumberChallengeResponseType.
debugContext.debugData.requestUri extensions.auth.auth_details Se asigna directamente.
debugContext.debugData.suspiciousActivityEventId security_result.detection_fields.value Se asigna directamente, con la clave suspiciousActivityEventId.
debugContext.debugData.suspiciousActivityEventType security_result.detection_fields.value Se asigna directamente, con la clave suspiciousActivityEventType.
debugContext.debugData.threatDetections security_result.detection_fields.value Se asigna directamente, con la clave threatDetections.
debugContext.debugData.threatSuspected security_result.detection_fields.value, security_result.threat_status Se asigna como un campo de detección con la clave threatSuspected. Se usa para derivar el estado de amenaza (ACTIVE o FALSE_POSITIVE).
debugContext.debugData.url target.url Se asigna directamente.
displayMessage security_result.summary Se asigna directamente.
eventType metadata.product_event_type, metadata.event_type Se asigna directamente a product_event_type. Se usa para derivar 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 Se asigna directamente, con la clave legacyEventType.
outcome.reason security_result.category_details Se asigna directamente.
outcome.result security_result.action Se asigna a la acción (ALLOW, CHALLENGE, BLOCK) según el valor.
published metadata.event_timestamp Se analizó como marca de tiempo.
request.ipChain.n.geographicalContext intermediary.location Es el contexto geográfico de las IPs intermediarias en la cadena de solicitudes.
request.ipChain.n.ip intermediary.ip Son las direcciones IP de los intermediarios en la cadena de solicitudes.
securityContext.asNumber security_result.detection_fields.value Se asigna directamente, con la clave asNumber.
securityContext.asOrg security_result.detection_fields.value Se asigna directamente, con la clave asOrg.
securityContext.domain security_result.detection_fields.value Se asigna directamente, con la clave domain.
securityContext.isp security_result.detection_fields.value Se asigna directamente, con la clave isp.
securityContext.isProxy security_result.detection_fields.value Se asigna directamente, con la clave anonymized IP.
target.n.alternateId target.user.email_addresses/target.user.userid Si es una dirección de correo electrónico, se asigna a target.user.email_addresses. Si no es una dirección de correo electrónico, se usa como target.user.userid.
target.n.detailEntry.clientAppId target.asset_id Se asigna directamente y tiene el prefijo Client_app_id:.
target.n.detailEntry.methodTypeUsed target.resource_ancestors.attribute.labels.value Se asigna directamente, con la clave methodTypeUsed cuando el tipo de destino es AuthenticatorEnrollment.
target.n.detailEntry.methodUsedVerifiedProperties target.resource_ancestors.attribute.labels.value Se asigna directamente, con la clave methodUsedVerifiedProperties cuando el tipo de destino es AuthenticatorEnrollment.
target.n.detailEntry.policyType target.resource_ancestors.attribute.labels.value Se asigna directamente, con la clave Policy Type.
target.n.detailEntry.signOnModeType security_result.detection_fields.value Se asigna directamente, con la clave signOnModeType.
target.n.displayName target.user.user_display_name / target.application / target.resource.name Se asigna según el tipo de objetivo.
target.n.id target.user.product_object_id / target.resource.product_object_id / target.resource_ancestors.product_object_id Se asigna según el tipo de objetivo.
target.n.type target.user.attribute.roles.name / target.resource.resource_subtype / target.resource_ancestors.resource_subtype Se asigna según el tipo de objetivo.
transaction.id network.session_id Se asigna directamente.
transaction.type additional.fields.value.string_value Se asigna directamente como un valor de cadena con la clave type en additional.fields.
uuid metadata.product_log_id Se asigna directamente.
N/A metadata.vendor_name Se define en Okta.
N/A metadata.product_name Se define en Okta.
N/A extensions.auth.type Se define en SSO.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.