So exportieren Sie Okta-Systemprotokolle

So exportieren Sie Okta-Systemprotokolle

SOC Prime Team
SOC Prime Team linkedin icon Folgen

In der Okta Admin-Konsole, Berichte → Systemprotokoll ermöglicht Ihnen die Suche nach Ereignissen und das Herunterladen der Ergebnisse. Für JSON verwenden Sie die System Log API: GET /api/v1/logs mit seit und bis, wobei Sie dem nächsten Link folgen, bis er aufgebraucht ist. Ein kurzes Skript finden Sie unten. Okta speichert Systemprotokollereignisse für 90 Tage.

Wenn Identität die Grenze ist, ist Okta’s System Log das Torprotokoll. Es zeichnet jede Anmeldung, jeden MFA-Push, jeden Faktor-Reset und jede Administratorrollenänderung auf. Prime Core hat 58 Erkennungsregeln für Okta-Daten, die 32 MITRE ATT&CK-Techniken zugeordnet sind. Darunter: Passwort-Spraying (T1110.003), MFA-Müdigkeit (T1621) und Angreifer, die sich in die MFA-Registrierung einmischen (T1556.006).

Jetzt kostenlos starten

Bevor Sie anfangen

Aufbewahrung beträgt 90 Tage. Alles Ältere existiert nur dort, wo Sie Okta-Protokolle gestreamt oder weitergeleitet haben, wie z. B. ein SIEM.

Sie benötigen ein Token. Ein API-Token (Sicherheit → API → Tokens) übernimmt die Berechtigungen des Administrators, der es erstellt hat. Ein nur-lese Admin reicht für Protokolle. Für alles Automatisierte ist eine OAuth-Dienste-App mit dem okta.logs.read-Bereich die sauberere Wahl. So oder so ist das Token ein Anmeldeinformationen. Halten Sie es aus der Shell-Historie heraus und widerrufen Sie es, wenn Sie fertig sind.

Ratenbegrenzungen gelten. Der Protokoll-Endpunkt hat seine eigene Ratenbegrenzung. Große Fenster sind in Ordnung, nur nicht sofort.

Exportieren mit der Systemprotokoll-API

Dieses Python-Skript durchsucht ein Zeitfenster und schreibt ein Ereignis pro Zeile. Es benötigt Anfragen (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  # der nächste Link enthält bereits die Abfrage

Immer setzen bis. Ohne dies behandelt Okta die Anfrage als eine Live-Abfrage und gibt ständig einen nächsten Link zurück. Ihre Schleife würde für immer laufen und auf neue Ereignisse warten.

Um es einzugrenzen, fügen Sie einen Filter zu den Parametern hinzu, z. B. „filter“: ‚eventType eq „user.session.start“‚. Oder verwenden Sie „q“: „jane“ für eine Stichwortsuche.

Was zu suchen ist

eventTypeWarum es wichtig ist
user.session.start mit outcome.result: FAILUREFehlgeschlagene Anmeldungen; viele Benutzer aus einem IP-Bereich bedeutet Spraying
user.mfa.okta_verify.deny_pushBenutzer hat einen Push abgelehnt; ein Schwall davon ist fortschreitende MFA-Müdigkeit
user.mfa.factor.deactivate, user.mfa.factor.reset_allFaktoren entfernt, oft direkt nach einem Social-Engineering-Anruf beim Helpdesk
user.account.privilege.grantAdministratorrolle gewährt
policy.rule.update, policy.lifecycle.updateAnmelde- oder MFA-Richtlinie geändert, möglicherweise geschwächt
system.api_token.createEin neues API-Token, eine leise Möglichkeit, den Zugang zu behalten

Die Felder, die die Geschichte erzählen: actor.alternateId (wer), client.ipAddress und client.geographicalContext (von wo aus), outcome (was passiert ist) und debugContext.debugData (die Details).

Hochladen, bereinigen und überprüfen in LogTotal

  1. Hochladen. Öffnen logtotal.com und die .jsonl-Datei einfügen. [PROOF: Upload-Bildschirm, Größengrenze]
  2. Bereinigen. [PROOF: what gets masked: usernames and emails, IPs, device and session IDs]. Look it over before you continue.
  3. Prüfen. [PROOF: what the results screen shows]

Wenn es schief geht

SymptomWahrscheinliche UrsacheFix
401Falsches oder widerrufenes Token oder ein fehlendes SSWS-PräfixÜberprüfen Sie das Header-Format; erstellen Sie ein neues Token
403Der Token-Ersteller hat keine Rechte, Protokolle zu lesenVerwenden Sie ein Token von einem Administrator mit Protokollzugriff
429Rate Limit erreichtWarten Sie auf die Zeit in X-Rate-Limit-Reset und fahren Sie dann fort
Das Skript wird nie fertigKein bis in der AbfrageBis setzen
Nichts älter als 90 TageOkta-AufbewahrungPrüfen Sie Ihr SIEM oder Ihr Ziel für das Log-Streaming

FAQ

Kann ich nicht einfach die Admin-Konsole verwenden?

Für einen kurzen Blick auf ein kurzes Fenster, ja. Für alles, was Sie analysieren oder behalten möchten, bietet die API Ihnen vollständiges JSON mit jedem Feld.

Deckt dies auch Auth0 ab?

Nein. Diese Anleitung bezieht sich auf Okta Workforce Identity. Auth0 hat sein eigenes Protokollformat und API.

Treten Sie der Detection as Code-Plattform von SOC Prime bei um die Sichtbarkeit der für Ihr Unternehmen relevantesten Bedrohungen zu verbessern. Um Ihnen den Einstieg zu erleichtern und unmittelbaren Mehrwert zu erzielen, buchen Sie jetzt ein Treffen mit den Experten von SOC Prime.