Okta MFA push bombing

Severity highCloud & SaaSThresholdstablecloud.identity.okta_mfa_push_bombing · v1.0.0

Okta sent a burst of verification pushes to one account.

What it detects

Okta sent a burst of verification pushes to one account.

Push bombing works on attrition. The attacker already has the password; what stands between them and the account is a prompt on someone's phone. So they trigger it again, and again, until the person taps approve to make it stop — often assuming a glitch, often at night.

Okta records every prompt it sends as system.push.send_factor_verify_push, and those records succeed whether or not the human approves, so counting them measures the ATTACK rather than its outcome. A real sign-in produces one.

Keyed on the send events rather than on failures, which is what makes it work before the account is taken: the failures only appear if the user keeps refusing, and the whole point of the technique is that eventually they stop.

MITRE ATT&CK mapping

  • T1621Multi-Factor Authentication Request Generation· Credential Access
  • T1078Valid Accounts· Defense Evasion

False positives and triage

A user whose phone is offline or whose Okta Verify has lost its push token can generate a genuine burst — they tap "send again" until something arrives, and the log looks identical. Two things separate it. First, the ADDRESS: legitimate retries come from wherever the user is signing in, while push bombing usually shows the prompts triggered from one address and the sign-in attempts from another. Second, what FOLLOWS: a user with a broken phone gives up or calls the helpdesk, whereas this technique ends either in user.account.lock or in a successful authentication that no one initiated.

Ask the user directly before treating an approval as compromise — and if they did not approve it, treat every session for that account as hostile, because the attacker had the password already.

The rule

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

id: cloud.identity.okta_mfa_push_bombing
version: 1.0.0
status: stable
severity: high
confidence: 0.7
platforms: [application]
mitre_techniques: [T1621, T1078]
description: |
  Okta sent a burst of verification pushes to one account.

  Push bombing works on attrition. The attacker already has the password; what
  stands between them and the account is a prompt on someone's phone. So they
  trigger it again, and again, until the person taps approve to make it stop —
  often assuming a glitch, often at night.

  Okta records every prompt it sends as `system.push.send_factor_verify_push`,
  and those records succeed whether or not the human approves, so counting them
  measures the ATTACK rather than its outcome. A real sign-in produces one.

  Keyed on the send events rather than on failures, which is what makes it work
  before the account is taken: the failures only appear if the user keeps
  refusing, and the whole point of the technique is that eventually they stop.
match:
  provider: Okta
  event_action: system.push.send_factor_verify_push
threshold:
  # Four prompts in two minutes. A person retries a legitimate sign-in once or
  # twice; four is the tool. The corpus capture that motivated this fires four
  # inside fifty-five seconds.
  count: 4
  window_seconds: 120
  group_by: [user_name]
correlation_keys: [user_name, source_ip]
false_positive_guidance: |
  A user whose phone is offline or whose Okta Verify has lost its push token can
  generate a genuine burst — they tap "send again" until something arrives, and
  the log looks identical. Two things separate it. First, the ADDRESS: legitimate
  retries come from wherever the user is signing in, while push bombing usually
  shows the prompts triggered from one address and the sign-in attempts from
  another. Second, what FOLLOWS: a user with a broken phone gives up or calls the
  helpdesk, whereas this technique ends either in `user.account.lock` or in a
  successful authentication that no one initiated.

  Ask the user directly before treating an approval as compromise — and if they
  did not approve it, treat every session for that account as hostile, because the
  attacker had the password already.

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