Detection rules › Panther

OneLogin Password Access

Severity
medium
Group by
actor_user_name, app_name
Log types
OneLogin.Events
Tags
OneLogin, Credential Access:Unsecured Credentials
Reference
https://onelogin.service-now.com/kb_view_customer.do?sysparm_article=KB0010598
Source
github.com/panther-labs/panther-analysis

User accessed another user's application password

MITRE ATT&CK coverage

TacticTechniques
Credential AccessT1552 Unsecured Credentials

Rule body yaml

AnalysisType: rule
Filename: onelogin_password_accessed.py
RuleID: "OneLogin.PasswordAccess"
DisplayName: "OneLogin Password Access"
Enabled: true
LogTypes:
  - OneLogin.Events
Tags:
  - OneLogin
  - Credential Access:Unsecured Credentials
Reports:
  MITRE ATT&CK:
    - TA0006:T1552
Severity: Medium
Description: >
  User accessed another user's application password
Reference: https://onelogin.service-now.com/kb_view_customer.do?sysparm_article=KB0010598
Runbook: >
  Investigate whether this was authorized access.
SummaryAttributes:
  - account_id
  - user_name
  - user_id
Tests:
  - Name: User accessed their own password
    ExpectedResult: false
    Log:
      {
        "event_type_id": "240",
        "actor_user_id": 123456,
        "actor_user_name": "Bob Cat",
        "user_id": 123456,
        "user_name": "Bob Cat",
      }
  - Name: User accessed another user's password
    ExpectedResult: true
    Log:
      {
        "event_type_id": "240",
        "actor_user_id": 654321,
        "actor_user_name": "Mountain Lion",
        "user_id": 123456,
        "user_name": "Bob Cat",
      }

Detection logic

Condition

not (event_type_id ne "240" or actor_user_id is_null or user_id is_null)
actor_user_id cross_field_compare "user_id"

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
actor_user_idis_null(no value, null check)
event_type_idne240
user_idis_null(no value, null check)

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
actor_user_idcross_field_compare
  • user_id transforms: op:ne

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
actor_user_name
user_name
app_name