Detection rules › Panther

Snowflake Account Admin Granted

Severity
medium
Log types
Snowflake.GrantsToUsers
Tags
Snowflake, [MITRE] Privilege Escalation, [MITRE] Valid Accounts
Source
github.com/panther-labs/panther-analysis

Detect when account admin is granted.

MITRE ATT&CK coverage

TacticTechniques
Privilege EscalationT1078 Valid Accounts

Rule body yaml

AnalysisType: rule
Filename: snowflake_stream_account_admin_assigned.py
RuleID: "Snowflake.Stream.AccountAdminGranted"
DisplayName: Snowflake Account Admin Granted
Enabled: true
LogTypes:
  - Snowflake.GrantsToUsers
Severity: Medium
Reports:
  MITRE ATT&CK:
    - TA0004:T1078
Description: Detect when account admin is granted.
Tags:
  - Snowflake
  - '[MITRE] Privilege Escalation'
  - '[MITRE] Valid Accounts'
Tests:
  - Name: Admin Role Assigned
    ExpectedResult: true
    Log:
      {
        "p_event_time": "2024-10-08 11:24:50.682000000",
        "p_log_type": "Snowflake.GrantsToUsers",
        "p_source_label": "Snowflake Prod",
        "CREATED_ON": "2024-10-08 11:24:50.682000000",
        "GRANTED_BY": "SNOWFLAKE",
        "GRANTED_TO": "APPLICATION_ROLE",
        "GRANTEE_NAME": "TRUST_CENTER_ADMIN"
      }
  - Name: Non-Admin Role Assigned
    ExpectedResult: false
    Log:
      {
        "p_event_time": "2024-10-08 11:24:50.682000000",
        "p_log_type": "Snowflake.GrantsToUsers",
        "p_source_label": "Snowflake Prod",
        "CREATED_ON": "2024-10-08 11:24:50.682000000",
        "GRANTED_BY": "SNOWFLAKE",
        "GRANTED_TO": "APPLICATION_ROLE",
        "GRANTEE_NAME": "TRUST_CENTER_VIEWER"
      }

Detection logic

Condition

DELETED_ON is_null
GRANTEE_NAME contains "admin"

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
DELETED_ONis_null
  • (no value, null check)
GRANTEE_NAMEcontains
  • admin

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
p_source_label
GRANTED_BY
GRANTEE_NAME
GRANTED_TO