Okta account lockouts

Severity mediumCloud & SaaSThresholdstablecloud.okta.account_lockouts · v1.0.0

Several Okta accounts locked out in a short window (user.account.lock).

What it detects

Several Okta accounts locked out in a short window (user.account.lock).

A single lockout is a forgotten password. Several across DIFFERENT accounts at once is a password-guessing run hitting the lockout threshold — and it is often the only trace left, because the individual failures may be spread thinly enough per account to stay under any per-user rule. The lockouts are the aggregate the attacker cannot avoid producing.

MITRE ATT&CK mapping

  • T1110Brute Force· Credential Access

False positives and triage

A misconfigured application or a service account with a stale password will lock itself repeatedly and produce this from one source — check whether the accounts are distinct or the same one retrying. Grouping is by source IP, so a shared corporate NAT can gather unrelated user error into one group; a Monday-morning cluster after a password-policy change is expected. The signal is many DISTINCT accounts from one IP, especially accounts with no other relationship to each other.

The rule

Declarative YAML read by the detection engine — data, never executed. Confidence 65%. Source: rules/cloud/okta_account_lockouts.yaml, licensed under the Apache License 2.0.

id: cloud.okta.account_lockouts
version: 1.0.0
status: stable
severity: medium
confidence: 0.65
platforms: [application]
mitre_techniques: [T1110]
description: |
  Several Okta accounts locked out in a short window (`user.account.lock`).

  A single lockout is a forgotten password. Several across DIFFERENT accounts at once
  is a password-guessing run hitting the lockout threshold — and it is often the only
  trace left, because the individual failures may be spread thinly enough per account
  to stay under any per-user rule. The lockouts are the aggregate the attacker cannot
  avoid producing.
match:
  provider: Okta
  event_action_contains_any:
    - user.account.lock
threshold:
  count: 3
  window_seconds: 600
  group_by: [source_ip]
correlation_keys: [source_ip]
false_positive_guidance: |
  A misconfigured application or a service account with a stale password will lock
  itself repeatedly and produce this from one source — check whether the accounts are
  distinct or the same one retrying. Grouping is by source IP, so a shared corporate
  NAT can gather unrelated user error into one group; a Monday-morning cluster after a
  password-policy change is expected. The signal is many DISTINCT accounts from one
  IP, especially accounts with no other relationship to each other.

Related detections

Run this rule on your own logs — offline

KIROSEC runs this rule and the rest of the library over Windows, Linux, macOS and cloud audit logs on the analyst's own machine. Every alert links to the events that raised it, and nothing leaves the device.

Browse all detections