Detection rules › Panther

Okta User MFA Own Reset

Severity
informational
Log types
Okta.SystemLog
Reference
https://support.okta.com/help/s/article/How-to-avoid-lockouts-and-reset-your-Multifactor-Authentication-MFA-for-Okta-Admins?language=en_US
Source
github.com/panther-labs/panther-analysis

User has reset one of their own MFA factors

Rule body yaml

AnalysisType: rule
Description: "User has reset one of their own MFA factors"
DisplayName: "Okta User MFA Own Reset"
RuleID: "Okta.User.MFA.Reset.Single"
Enabled: true
Filename: okta_user_mfa_reset.py
Reference: https://support.okta.com/help/s/article/How-to-avoid-lockouts-and-reset-your-Multifactor-Authentication-MFA-for-Okta-Admins?language=en_US
Severity: Info
Tests:
  - ExpectedResult: true
    Name: User reset own MFA factor
    LogType: Okta.SystemLog
    Log:
      {
        "eventtype": "user.mfa.factor.deactivate",
        "version": "0",
        "severity": "INFO",
        "displaymessage": "Reset factor for user",
        "actor":
          {
            "alternateId": "homer@springfield.gov",
            "displayName": "Homer Simpson",
            "id": "11111111111",
            "type": "User",
          },
        "client":
          {
            "device": "Computer",
            "ipAddress": "1.1.1.1",
            "userAgent":
              {
                "browser": "CHROME",
                "os": "Mac OS X",
                "rawUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36",
              },
            "zone": "null",
          },
        "outcome":
          { "reason": "User reset FIDO_WEBAUTHN factor", "result": "SUCCESS" },
        "target":
          [
            {
              "alternateId": "homer@springfield.gov",
              "displayName": "Homer Simpson",
              "id": "1111111",
              "type": "User",
            },
          ],
        "authenticationcontext":
          { "authenticationStep": 0, "externalSessionId": "1111111" },
        "p_log_type": "Okta.SystemLog",
      }
  - ExpectedResult: false
    Name: Other Event
    Log:
      p_log_type: "Okta.SystemLog"
      actor:
        alternateId: homer.simpson@duff.com
        displayName: Homer Simpson
        id: 00abc456
        type: User
      authenticationcontext:
        authenticationStep: 0
        externalSessionId: abc12345
      client:
        device: Unknown
        ipAddress: 1.2.3.4
        userAgent:
          browser: UNKNOWN
          os: Unknown
          rawUserAgent: Chrome
        zone: "null"
      debugcontext:
        debugData: {}
      eventtype: application.integration.rate_limit_exceeded
      legacyeventtype: app.api.error.rate.limit.exceeded
      outcome:
        result: SUCCESS
      published: "2022-06-10 17:19:58.423"
      request: {}
      securitycontext: {}
      severity: INFO
      target:
        - alternateId: "App "
          displayName: App
          id: "12345"
          type: AppInstance
      transaction:
        detail: {}
        id: sdfg
        type: JOB
      uuid: aaa-bb-ccc
      version: "0"
DedupPeriodMinutes: 60
LogTypes:
  - Okta.SystemLog
Threshold: 1

Detection logic

Condition

event_type eq "mfa_reset"

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
event_typeeq
  • mfa_reset

Output fields

Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.

FieldSource
event_typeeventtype
severity
actor
client
request
outcome
target
debug_contextdebugcontext
authentication_contextauthenticationcontext
security_contextsecuritycontext
ipsp_any_ip_addresses
alternateIdactor.alternateId