Rule body yaml
AnalysisType: rule
Description: "All MFA factors have been reset for a user."
DisplayName: "Okta User MFA Reset All"
Enabled: true
Filename: okta_user_mfa_reset_all.py
Reference: https://help.okta.com/en-us/content/topics/security/mfa/mfa-reset-users.htm#:~:text=the%20Admin%20Console%3A-,In%20the%20Admin%20Console%2C%20go%20to%20DirectoryPeople.,Selected%20Factors%20or%20Reset%20All
Severity: Low
Tests:
- ExpectedResult: true
Log:
actor:
alternateId: homer.simpson@duff.com
displayName: Homer Simpson
id: 00abc123
type: User
authenticationcontext:
authenticationStep: 0
externalSessionId: 100-abc-9999
client:
device: Computer
geographicalContext:
city: Springfield
country: United States
geolocation:
lat: 20
lon: -25
postalCode: "12345"
state: Ohio
ipAddress: 1.3.2.4
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/102.0.0.0 Safari/537.36
zone: "null"
debugcontext:
debugData:
requestId: AbCdEf12G
requestUri: /api/v1/users/AbCdEfG/lifecycle/reset_factors
url: /api/v1/users/AbCdEfG/lifecycle/reset_factors?
displaymessage: Reset all factors for user
eventtype: user.mfa.factor.reset_all
legacyeventtype: core.user.factor.reset_all
outcome:
result: SUCCESS
published: "2022-06-22 18:18:29.015"
request:
ipChain:
- geographicalContext:
city: Springfield
country: United States
geolocation:
lat: 20
lon: -25
postalCode: "12345"
state: Ohio
ip: 1.3.2.4
version: V4
securitycontext:
asNumber: 701
asOrg: verizon
domain: verizon.net
isProxy: false
isp: verizon
severity: INFO
target:
- alternateId: peter.griffin@company.com
displayName: Peter Griffin
id: 0002222AAAA
type: User
transaction:
detail: {}
id: ABcDeFgG
type: WEB
uuid: AbC-123-XyZ
version: "0"
Name: Reset All Event
- ExpectedResult: false
Log:
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"
Name: Other Event
DedupPeriodMinutes: 60
LogTypes:
- Okta.SystemLog
RuleID: "Okta.User.MFA.Reset.All"
Threshold: 1
Detection logic
Condition
eventtype eq "user.mfa.factor.reset_all"
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.
| Field | Source |
|---|---|
event_type | eventtype |
severity | |
actor | |
client | |
request | |
outcome | |
target | |
debug_context | debugcontext |
authentication_context | authenticationcontext |
security_context | securitycontext |
ips | p_any_ip_addresses |
alternateId | actor.alternateId |