Ce que fait cet outil
Le System Log d'Okta enregistre chaque connexion, défi MFA, session, modification d'administration et accès applicatif d'une organisation Okta sous forme d'enregistrements LogEvent (eventType, actor, client, target, outcome, authenticationContext, securityContext, debugContext).
Cet outil lit un export du System Log dans votre navigateur, corrèle les événements entre utilisateurs, sessions et adresses IP, et vous dit s'ils révèlent une attaque d'identité — avec un verdict, les constats et leurs preuves, une chronologie de l'incident et une liste de remédiation.
Ce qu'il détecte
- Fatigue MFA / bombardement push : rafales de notifications Okta Verify ou de refus, aggravées quand une notification finit par être acceptée.
- Ingénierie sociale du helpdesk : une réinitialisation de mot de passe ou de facteurs par un administrateur, suivie de l'enrôlement d'un nouveau facteur — critique quand il provient d'un nouveau réseau, d'un hébergeur ou d'un anonymiseur.
- Vol de session : le même externalSessionId utilisé depuis plusieurs réseaux (ASN) ou navigateurs, détections d'itinérance d'Okta, alertes ThreatInsight, connexions via proxy / Tor.
- Abus d'administration et persistance : attributions de Super administrateur et de rôles d'administration, création de jetons d'API, fournisseurs d'identité nouveaux ou modifiés (fédération entrante), authentificateurs et politiques désactivés, paramètres de sécurité affaiblis.
- Password spraying et devinette : de nombreux comptes essayés depuis une IP avec peu de tentatives chacun, ou de nombreux échecs sur un compte — aggravé quand une connexion réussit.
- Accès à des applications sensibles après une activité suspecte (AWS, Microsoft 365, Google Workspace, GitHub, Salesforce, la console d'administration Okta…), avec un lien vers l'outil d'analyse de journaux correspondant.
Règles de détection
Les détections sont des données, pas du code : chaque règle est un filtre de type Sigma, un seuil, une séquence ou une condition de suivi sur les champs du System Log, avec une sévérité et des techniques MITRE ATT&CK. Le jeu de règles est versionné avec l'outil.
| Règle | Sévérité de base | ATT&CK |
|---|---|---|
Fatigue MFA / bombardement de notifications pushmfa.push_fatigue | Élevée | T1621 |
Réinitialisation par le helpdesk, puis nouveau facteur enrôlémfa.helpdesk_reset_then_enroll | Élevée | T1656, T1098.005, T1556.006 |
Mot de passe ou facteurs réinitialisés par un autre utilisateurmfa.factor_reset_by_admin | Faible | T1098 |
Tentative de contournement MFAmfa.bypass_attempt | Moyenne | T1556.006 |
Session utilisée depuis plusieurs réseauxsession.multi_asn | Élevée | T1539, T1550.004 |
Session utilisée par plusieurs navigateurssession.multi_user_agent | Moyenne | T1539, T1550.004 |
Itinérance de session détectée par Oktasession.roaming | Moyenne | T1550.004 |
Password sprayingaccess.password_spray | Élevée | T1110.003 |
Devinette de mot de passe sur un compteaccess.brute_force | Moyenne | T1110.001 |
Connexion via un anonymiseuraccess.anonymizer | Moyenne | T1090.003, T1078.004 |
Connexion depuis un hébergeuraccess.hosting_provider | Moyenne | T1078.004 |
Alerte Okta ThreatInsightthreat.threatinsight | Moyenne | T1110 |
Activité suspecte signalée par l'utilisateurthreat.user_reported | Élevée | |
Identifiant divulgué utiliséthreat.breached_credential | Moyenne | T1078 |
Rôle Super administrateur attribuéadmin.super_admin_granted | Élevée | T1098.003 |
Rôle d'administration attribuéadmin.role_granted | Moyenne | T1098.003 |
Jeton d'API crééadmin.api_token_created | Moyenne | T1098.001 |
Accès du support Okta / usurpationadmin.support_access | Moyenne | T1078.004 |
Nouveau fournisseur d'identité (fédération entrante)persistence.idp_created | Élevée | T1484.002 |
Fournisseur d'identité modifiépersistence.idp_modified | Moyenne | T1484.002 |
Authentificateur désactivédefense.authenticator_disabled | Élevée | T1556.006 |
Politique ou règle désactivéedefense.policy_disabled | Moyenne | T1556.006 |
Politique modifiéedefense.policy_modified | Faible | T1556 |
Paramètres de sécurité modifiésdefense.security_settings_changed | Moyenne | T1562 |
Application sensible ouverte après une activité suspecteapp.sso_after_suspicious | Élevée | T1021.007, T1550.001 |
Limites
- Le System Log est conservé 90 jours : l'activité plus ancienne est perdue sauf si elle a été diffusée ou exportée.
- Un verdict sans compromission ne couvre que ce qui est dans l'export : un export filtré ou partiel peut manquer l'attaque.
- Les détections sont des heuristiques : utilisateurs de VPN, salariés en déplacement et travail du helpdesk peuvent déclencher des constats. Confirmez chacun avec les personnes concernées.
- Les références (nouveau pays, nouvel appareil) sont calculées à partir de l'export lui-même : un export court donne peu d'historique.
- Les champs debugContext.debugData (risk, behaviors, threatSuspected) ne sont pas un contrat stable et varient selon les organisations et les versions d'Okta.
FAQ
Mes journaux sont-ils envoyés quelque part ?
Non. L'analyseur est écrit en Rust, compilé en WebAssembly et exécuté dans un Web Worker de votre navigateur ; les fichiers sont lus localement par morceaux. Il n'existe aucun point d'envoi.
Quelle taille d'export peut-il traiter ?
Les exports sont lus en flux par morceaux de 4 Mo (le gzip est décompressé à la volée), donc les fichiers de plusieurs Go passent ; la limite est la mémoire nécessaire aux événements eux-mêmes. Pour les très gros exports, les preuves et les événements les plus récents sont listés.
Quels événements Okta comptent le plus lors d'une compromission ?
user.session.start et user.authentication.auth_via_mfa (connexions), system.push.send_factor_verify_push et user.mfa.okta_verify.deny_push (fatigue MFA), user.mfa.factor.reset_all / activate (changements de facteurs), user.account.privilege.grant (rôles d'administration), system.api_token.create, system.idp.lifecycle.create (fédération entrante) et user.authentication.sso (accès aux applications).
Comment repérer un vol de session dans Okta ?
Regroupez les événements par authenticationContext.externalSessionId : une session utilisée depuis deux réseaux (securityContext.asNumber) ou deux navigateurs est suspecte, surtout juste après la connexion. Okta journalise aussi security.session.detect_client_roaming.
Est-ce un outil officiel d'Okta ?
Non. C'est un outil indépendant, ni affilié à Okta, Inc., ni approuvé par elle. Il lit le format de journal décrit dans la documentation publique pour les développeurs d'Okta.
Le verdict indique une compromission — que faire ?
Préservez les journaux, confinez les comptes concernés (fermeture des sessions, réinitialisation des facteurs et mots de passe, révocation des rôles d'administration, jetons et IdP inconnus), puis examinez les applications accédées. L'onglet Remédiation liste les étapes correspondant à vos constats, et les recommandations de sécurité d'Okta (sec.okta.com) décrivent détections et durcissement face à ces attaques.