Detection rules › Panther
Suspicious Snowflake Sessions - Unusual Application
Detects unusual (non-common) applications and client characteristics that have been used to connect to a Snowflake account
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Initial Access | T1078.004 Valid Accounts: Cloud Accounts |
Rule body yaml
AnalysisType: scheduled_rule
Filename: snowflake_suspicious_session.py
RuleID: "Snowflake.Stream.SuspiciousSession.UnusualApp"
DisplayName: Suspicious Snowflake Sessions - Unusual Application
Enabled: true
ScheduledQueries:
- "Suspicious Snowflake Sessions - Unusual Application"
Severity: Low
Reports:
MITRE ATT&CK:
- TA0001:T1078.004
Description: Detects unusual (non-common) applications and client characteristics
that have been used to connect to a Snowflake account
DedupPeriodMinutes: 1440
Tags:
- Snowflake
- Behavior Analysis
- Initial Access:Valid Accounts:Cloud Accounts
Tests:
- Name: New Session
ExpectedResult: true
Log:
{
"p_source_id": "26c3f2be-005e-443a-90cb-f623522f37a2",
"p_source_label": "SF Prod",
"client_application": "Snowflake Web App",
"first_seen": "2024-10-09 14:48:33.284",
"last_seen": "2024-10-09 15:01:13.492",
"n_sessions": 83
}
Detection logic
Filter
def rule(_):
return True
def title(event):
return f"{event.get('p_source_label', '<UNKNOWN SOURCE>')}: Suspicious Application Session"
def dedup(event):
return "-".join(
(
event.get("client_application", "<UNKNOWN APP>"),
event.get("client_os", "<UNKNOWN OS>"),
event.get("client_os_version", "<UNKNOWN VERSION>"),
)
)
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 |