Okta Support Reset Credential


Description

A Password or MFA factor was reset by Okta Support

Query · python

from panther_okta_helpers import okta_alert_context

OKTA_SUPPORT_RESET_EVENTS = [
    "user.account.reset_password",
    "user.mfa.factor.update",
    "system.mfa.factor.deactivate",
    "user.mfa.attempt_bypass",
]


def rule(event):
    if event.get("eventType") not in OKTA_SUPPORT_RESET_EVENTS:
        return False
    return (
        event.deep_get("actor", "alternateId") == "system@okta.com"
        and event.deep_get("transaction", "id") == "unknown"
        and event.deep_get("client", "userAgent", "rawUserAgent") is None
        and event.deep_get("client", "geographicalContext", "country") is None
    )


def title(event):
    targets = event.get("target") or []
    impacted = next((t for t in targets if t.get("type") == "User"), None) or {}
    user = impacted.get("alternateId") or impacted.get("displayName") or "<unknown-user>"
    return f"Okta Support Reset Password or MFA for user {user}"


def alert_context(event):
    return okta_alert_context(event)

Analyst notes

Contact Admin to ensure this was sanctioned activity

Raw source Okta Support Reset Credential · Panther Python
Esc
Published by panther-labs/panther-analysis ↗, licensed under Apache 2.0 ↗. Reproduced here unmodified.
AnalysisType: rule
Filename: okta_support_reset.py
RuleID: "Okta.Support.Reset"
DisplayName: "Okta Support Reset Credential"
Enabled: true
LogTypes:
  - Okta.SystemLog
Tags:
  - Identity & Access Management
  - DataModel
  - Okta
  - Initial Access:Trusted Relationship
Reports:
  MITRE ATT&CK:
    - TA0001:T1199
Severity: High
Description: A Password or MFA factor was reset by Okta Support
Reference: https://help.okta.com/en/prod/Content/Topics/Directory/get-support.htm#:~:text=Visit%20the%20Okta%20Help%20Center,1%2D800%2D219%2D0964
Runbook: Contact Admin to ensure this was sanctioned activity
DedupPeriodMinutes: 15
SummaryAttributes:
  - eventType
  - severity
  - p_any_ip_addresses
Tests:
  - Name: Support Reset Credential
    ExpectedResult: true
    Log:
      {
        "uuid": "12343",
        "published": "2021-11-29 18:56:40.014",
        "eventType": "user.account.reset_password",
        "version": "0",
        "severity": "INFO",
        "legacyEventType": "core.user.config.user_status.password_reset",
        "displayMessage": "Fired when the user's Okta password is reset",
        "actor":
          {
            "alternateId": "system@okta.com",
            "displayName": "system@okta.com",
            "id": "1111111",
            "type": "User",
          },
        "client":
          {
            "device": "Computer",
            "ipAddress": "1.1.1.1",
            "userAgent": { "browser": "CHROME", "os": "Mac OS X" },
            "zone": "null",
          },
        "outcome": { "result": "SUCCESS" },
        "target":
          [
            {
              "alternateId": "homer@springfield.gov",
              "displayName": "Homer Simpson",
              "id": "1111111",
              "type": "User",
            },
          ],
        "transaction": { "detail": {}, "id": "unknown", "type": "WEB" },
        "p_log_type": "Okta.SystemLog",
      }
  - Name: Reset by Company Admin
    ExpectedResult: false
    Log:
      {
        "uuid": "2aaaaaaaaaabbbbbbbbbbbbddddddddddd",
        "eventType": "user.account.reset_password",
        "version": "0",
        "severity": "INFO",
        "legacyEventType": "core.user.config.user_status.password_reset",
        "displayMessage": "Fired when the user's Okta password is reset",
        "actor":
          {
            "alternateId": "marge@springfield.gov",
            "displayName": "Marge Simpson",
            "id": "1111",
            "type": "User",
          },
        "client":
          {
            "device": "Computer",
            "geographicalContext":
              {
                "city": "Springfield",
                "country": "United States",
                "postalCode": "80014",
                "state": "Debated",
              },
            "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": { "result": "SUCCESS" },
        "target":
          [
            {
              "alternateId": "homer@springfield.gov",
              "displayName": "Homer Simpson",
              "id": "1.1.1.1",
              "type": "User",
            },
          ],
        "transaction": { "detail": {}, "id": "1111", "type": "WEB" },
        "p_log_type": "Okta.SystemLog",
      }


# ------ paired body: okta_support_reset.py ------

from panther_okta_helpers import okta_alert_context

OKTA_SUPPORT_RESET_EVENTS = [
    "user.account.reset_password",
    "user.mfa.factor.update",
    "system.mfa.factor.deactivate",
    "user.mfa.attempt_bypass",
]


def rule(event):
    if event.get("eventType") not in OKTA_SUPPORT_RESET_EVENTS:
        return False
    return (
        event.deep_get("actor", "alternateId") == "system@okta.com"
        and event.deep_get("transaction", "id") == "unknown"
        and event.deep_get("client", "userAgent", "rawUserAgent") is None
        and event.deep_get("client", "geographicalContext", "country") is None
    )


def title(event):
    targets = event.get("target") or []
    impacted = next((t for t in targets if t.get("type") == "User"), None) or {}
    user = impacted.get("alternateId") or impacted.get("displayName") or "<unknown-user>"
    return f"Okta Support Reset Password or MFA for user {user}"


def alert_context(event):
    return okta_alert_context(event)

Detection rules belong to the projects that publish them and remain under their own licenses. This site indexes and links to them; it claims no rights in them.