Como Exportar Logs do Sistema Okta

Como Exportar Logs do Sistema Okta

SOC Prime Team
SOC Prime Team linkedin icon Seguir

No Console do Administrador do Okta, Relatórios → Log do Sistema permite que você procure eventos e baixe os resultados. Para JSON, use a API de Log do Sistema: GET /api/v1/logs com since e until, seguindo o próximo link até que acabe. Um pequeno script está abaixo. O Okta mantém eventos do Log do Sistema por 90 dias.

Quando a identidade é o perímetro, o Log do Sistema do Okta é o registro do portão. Ele registra cada login, cada push de MFA, cada redefinição de fator e cada alteração de função de administrador. Prime Core possui 58 regras de detecção para dados Okta, mapeadas para 32 técnicas MITRE ATT&CK. Dentre elas: ataque de pulverização de senhas (T1110.003), fadiga de MFA (T1621) e invasores adulterando o registro de MFA (T1556.006).

Comece Grátis

Antes de começar

Retenção é de 90 dias. Qualquer coisa mais antiga existe somente onde você tem transmitido ou encaminhado logs Okta, como para um SIEM.

Você precisa de um token. Um token de API (Segurança → API → Tokens) herda as permissões do administrador que o criou. Um administrador de leitura apenas é suficiente para logs. Para qualquer coisa automatizada, um aplicativo de serviço OAuth com o escopo okta.logs.read é a escolha mais limpa. De qualquer modo, o token é uma credencial. Mantenha-o fora do histórico do shell e revogue-o quando terminar.

Limites de taxa se aplicam. O endpoint de logs possui seu próprio limite de taxa. Grandes janelas são permitidas, só não instantaneamente.

Exportar com a API de Log do Sistema

Este script Python percorre uma janela de tempo e escreve um evento por linha. Ele precisa de requests (pip install requests):

import json, os, requests



org = "https://yourorg.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}



with open("okta_1019.jsonl", "w") as out:

    while url:

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

        r.raise_for_status()

        events = r.json()

        for e in events:

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

        if not events:

            break

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

        params = None  # o próximo link já carrega a consulta

Sempre defina until. Sem isso, Okta trata a requisição como uma enquete ao vivo e continua fornecendo um próximo link. Seu loop rodaria para sempre, esperando por novos eventos.

Para restringir, adicione um filtro aos params, por exemplo “filter”: ‘eventType eq “user.session.start”‘. Ou use “q”: “jane” para uma busca por palavra-chave.

O que procurar

eventTypePor que é importante
user.session.start com outcome.result: FAILURELogins falhos; muitos usuários de uma faixa de IP significa pulverização
user.mfa.okta_verify.deny_pushUsuário rejeitou um push; uma explosão desses é fadiga de MFA em progresso
user.mfa.factor.deactivate, user.mfa.factor.reset_allFatores removidos, geralmente logo após uma ligação de engenharia social para o helpdesk
user.account.privilege.grantPapel de administrador concedido
policy.rule.update, policy.lifecycle.updatePolítica de login ou MFA alterada, possivelmente enfraquecida
system.api_token.createUm novo token de API, uma maneira discreta de manter o acesso

Os campos que contam a história: actor.alternateId (quem), client.ipAddress e client.geographicalContext (de onde), outcome (o que aconteceu) e debugContext.debugData (os detalhes).

Envie, saneie e revise no LogTotal

  1. Envie. Abrir logtotal.com e solte o arquivo .jsonl. [PROVA: tela de upload, limite de tamanho]
  2. Sanitize. [PROOF: what gets masked: usernames and emails, IPs, device and session IDs]. Look it over before you continue.
  3. Rever. [PROOF: what the results screen shows]

Quando algo dá errado

SintomaCausa provávelFix
401Token errado ou revogado, ou prefixo SSWS ausenteVerifique o formato do cabeçalho; crie um novo token
403Criador do token não tem direitos para ler logsUse um token de um administrador com acesso a logs
429Limite de taxa atingidoAguarde o tempo em X-Rate-Limit-Reset, então continue
O script nunca terminaSem until na consultaDefina until
Nada mais antigo do que 90 diasRetenção do OktaVerifique seu SIEM ou destino de transmissão de logs

FAQ

Não posso simplesmente usar o Console de Administração?

Para uma olhada rápida em uma janela curta, sim. Para qualquer coisa que você queira analisar ou manter, a API fornece JSON completo com todos os campos.

Isso cobre o Auth0?

Não. Este guia é sobre Okta Workforce Identity. Auth0 tem seu próprio formato de log e API.

Junte-se à plataforma Detection as Code da SOC Prime para melhorar a visibilidade das ameaças mais relevantes para o seu negócio. Para ajudá-lo a começar e gerar valor imediato, agende uma reunião agora com os especialistas da SOC Prime.