Cómo Exportar Registros del Sistema de Okta

Cómo Exportar Registros del Sistema de Okta

SOC Prime Team
SOC Prime Team linkedin icon Seguir

En la Consola de administración de Okta, Informes → Registro del sistema te permite buscar eventos y descargar los resultados. Para JSON, usa la API del Registro del sistema: GET /api/v1/logs con since y until, siguiendo el siguiente enlace hasta que se agote. Un breve script está a continuación. Okta mantiene los eventos del Registro del sistema durante 90 días.

Cuando la identidad es el perímetro, el Registro del sistema de Okta es el registro de entrada. Registra cada inicio de sesión, cada envío de MFA, cada restablecimiento de factor y cada cambio de rol de administrador. Prime Core tiene 58 reglas de detección para datos de Okta, mapeadas a 32 técnicas de MITRE ATT&CK. Entre ellas: pulverización de contraseñas (T1110.003), fatiga de MFA (T1621) y atacantes manipulando el registro de MFA (T1556.006).

Comienza gratis

Antes de empezar

La retención es de 90 días. Cualquier cosa más antigua existe solo donde has estado transmitiendo o reenviando registros de Okta, como un SIEM.

Necesitas un token. Un token de API (Seguridad → API → Tokens) hereda los permisos del administrador que lo creó. Un administrador de solo lectura es suficiente para los registros. Para cualquier cosa automatizada, una aplicación de servicio OAuth con el alcance okta.logs.read es la opción más limpia. De cualquier manera, el token es una credencial. Mantenlo fuera del historial del shell y revócalo cuando hayas terminado.

Se aplican límites de tasa. El punto final de registros tiene su propio límite de tasa. Ventanas grandes están bien, solo no instantáneas.

Exportar con la API del Registro del sistema

Este script de Python recorre una ventana de tiempo y escribe un evento por línea. Necesita requests (pip install requests):

importar json, os, requests



org = "https://tusorganización.okta.com"

headers = {"Authorization": f"SSWS {os.environ['OKTA_TOKEN']}", "Accept": "application/json"}

url = f"{org}/api/v1/logs"

params = {"since": "2026-10-19T00:00:00Z", "until": "2026-10-20T00:00:00Z", "limit": 1000}



con open("okta_1019.jsonl", "w") como out:

mientras url:

r = requests.get(url, headers=headers, params=params, timeout=60)

r.raise_for_status()

events = r.json()

para e en events:

out.write(json.dumps(e) + "n")

si no events:

break

url = r.links.get("next", {}).get("url")

params = None # el enlace siguiente ya lleva la consulta

Siempre establece until. Sin él, Okta trata la solicitud como una encuesta en vivo y sigue devolviendo un enlace siguiente. Tu bucle se ejecutaría para siempre, esperando nuevos eventos.

Para estrecharlo, agrega un filtro a los params, por ejemplo «filter»: ‘eventType eq «user.session.start»‘. O usa «q»: «jane» para una búsqueda por palabra clave.

Qué buscar

eventTypePor qué importa
user.session.start con outcome.result: FAILUREInicios de sesión fallidos; muchos usuarios de un rango de IP significa pulverización
user.mfa.okta_verify.deny_pushEl usuario rechazó un push; una ráfaga de estos es fatiga de MFA en progreso
user.mfa.factor.deactivate, user.mfa.factor.reset_allFactores eliminados, a menudo justo después de una llamada de ingeniería social al helpdesk
user.account.privilege.grantRol de administrador otorgado
policy.rule.update, policy.lifecycle.updatePolítica de inicio de sesión o de MFA cambiado, posiblemente debilitada
system.api_token.createUn nuevo token de API, una manera silenciosa de mantener el acceso

Los campos que cuentan la historia: actor.alternateId (quién), client.ipAddress y client.geographicalContext (de dónde), outcome (qué sucedió), y debugContext.debugData (los detalles).

Sube, desinfecta y revisa en LogTotal

  1. Sube. Abre logtotal.com y suelta el archivo .jsonl. [PRUEBA: pantalla de carga, límite de tamaño]
  2. Desinfecta. [PROOF: what gets masked: usernames and emails, IPs, device and session IDs]. Look it over before you continue.
  3. Revisa. [PROOF: what the results screen shows]

Cuando algo sale mal

SíntomaCausa probableFix
401Token incorrecto o revocado, o falta prefijo SSWS  Revisa el formato del encabezado; crea un nuevo token
403El creador del token no tiene permisos para leer registrosUsa un token de un administrador con acceso a registros
429Límite de tasa alcanzadoEspera el tiempo en X-Rate-Limit-Reset, luego continúa
El script nunca terminaNo se puso until en la consultaEstablecer until
Nada mayor de 90 díasRetención de OktaRevisa tu SIEM o destino de transmisión de registros

FAQ

¿No puedo simplemente usar la Consola de Administración?

Para una vista rápida de una ventana corta, sí. Para cualquier cosa que desees analizar o conservar, la API te da JSON completo con cada campo.

¿Esto cubre Auth0?

No. Esta guía es sobre Identidad de la Fuerza Laboral de Okta. Auth0 tiene su propio formato de registros y API.

Únete a la plataforma Detection as Code de SOC Prime para mejorar la visibilidad de las amenazas más relevantes para tu negocio. Para ayudarte a comenzar y obtener valor inmediato, programa una reunión ahora con los expertos de SOC Prime.