Come Esportare i Log di Sistema di Okta

Come Esportare i Log di Sistema di Okta

SOC Prime Team
SOC Prime Team linkedin icon Segui

Nel pannello di amministrazione di Okta, Report → Registro del sistema consente di cercare eventi e scaricare i risultati. Per JSON, utilizzare l’API del Registro del sistema: GET /api/v1/logs con since e until, seguendo il collegamento successivo finché non si esaurisce. Uno script breve è mostrato di seguito. Okta conserva gli eventi del Registro del sistema per 90 giorni.

Quando l’identità è il perimetro, il Registro del sistema di Okta è il registro di accesso. Registra ogni accesso, ogni push MFA, ogni reset dei fattori e ogni cambio di ruolo amministrativo. Prime Core ha 58 regole di rilevamento per i dati di Okta, mappate su 32 tecniche MITRE ATT&CK. Tra queste: password spraying (T1110.003), affaticamento MFA (T1621) e manomissioni da parte degli attaccanti con l’iscrizione MFA (T1556.006).

Inizia gratis

Prima di iniziare

La conservazione è di 90 giorni. Qualunque cosa più vecchia esiste solo dove si è stati instradando o inoltrando i log di Okta, come un SIEM.

È necessario un token. Un token API (Sicurezza → API → Token) eredita i permessi dell’amministratore che lo ha creato. Un amministratore in sola lettura è sufficiente per i log. Per qualsiasi cosa automatizzata, un’app di servizio OAuth con l’ambito okta.logs.read è la scelta più pulita. In ogni caso, il token è una credenziale. Mantenerlo fuori dalla cronologia della shell e revocarlo quando si è finito.

Si applicano i limiti di frequenza. Il punto finale dei log ha il proprio limite di frequenza. Finestre grandi sono accettabili, ma non istantaneamente.

Esporta con l’API del Registro del sistema

Questo script Python scorre una finestra temporale e scrive un evento per linea. Ha bisogno di 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 # il collegamento successivo porta già la query

Imposta sempre until. Senza di esso, Okta tratta la richiesta come un sondaggio live e continua a fornire un collegamento successivo. Il tuo ciclo andrebbe avanti all’infinito, in attesa di nuovi eventi.

Per restringere il campo, aggiungi un filtro ai parametri, ad esempio “filter”: ‘eventType eq “user.session.start”‘. Oppure usa “q”: “jane” per una ricerca per parola chiave.

Cosa cercare

eventTypePerché è importante
user.session.start con outcome.result: FAILUREAccessi falliti; molti utenti da un intervallo IP significa spraying
user.mfa.okta_verify.deny_pushUtente che ha rifiutato un push; un’esplosione di questi è l’affaticamento MFA in corso
user.mfa.factor.deactivate, user.mfa.factor.reset_allFattori rimossi, spesso subito dopo una chiamata di ingegneria sociale all’helpdesk
user.account.privilege.grantRuolo amministrativo concesso
policy.rule.update, policy.lifecycle.updateModificata la policy di accesso o MFA, possibilmente indebolita
system.api_token.createUn nuovo token API, un modo silenzioso per mantenere l’accesso

I campi che raccontano la storia: actor.alternateId (chi), client.ipAddress e client.geographicalContext (da dove), outcome (cosa è successo), e debugContext.debugData (i dettagli).

Carica, sanitizza e rivedi in LogTotal

  1. Carica. Apri logtotal.com e carica il file .jsonl. [PROVA: schermo di caricamento, limite di dimensione]
  2. Sanitizza. [PROOF: what gets masked: usernames and emails, IPs, device and session IDs]. Look it over before you continue.
  3. Rivedi. [PROOF: what the results screen shows]

Quando qualcosa va storto

SintomoCausa probabileFix
401Token errato o revocato, o prefisso SSWS mancanteControllare il formato dell’intestazione; creare un nuovo token
403Il creatore del token non ha i diritti per leggere i logUsa un token da un amministratore con accesso ai log
429Raggiunto il limite di frequenzaAttendere il tempo in X-Rate-Limit-Reset, quindi continuare
Lo script non termina maiNo until nella queryImposta until
Niente più vecchio di 90 giorniConservazione OktaControlla il tuo SIEM o la destinazione dello streaming dei log

FAQ

Non posso semplicemente usare il pannello di amministrazione?

Per uno sguardo rapido a una finestra temporale breve, sì. Per tutto ciò che si desidera analizzare o conservare, l’API fornisce il JSON completo con ogni campo.

Questo copre anche Auth0?

No. Questa guida riguarda l’Okta Workforce Identity. Auth0 ha il proprio formato di log e API.

Unisciti alla piattaforma Detection as Code di SOC Prime per migliorare la visibilità sulle minacce più rilevanti per il tuo business. Per aiutarti a iniziare e aumentare immediatamente il valore, prenota ora un incontro con gli esperti di SOC Prime.