let r_tbl = dynamic(['table_name']);
Snowflake
| where QueryType =~ 'SELECT'
| where QueryExecutionStatus =~ 'SUCCESS'
| extend tbl = extract(@'(FROM|from)\s(\S+)\s', 2, QueryText)
| where tbl in~ (r_tbl)
| extend AccountCustomEntity = TargetUsername
relevantTechniques:
- T1119
entityMappings:
- fieldMappings:
- columnName: AccountCustomEntity
identifier: Name
entityType: Account
triggerThreshold: 0
description: |
'Detects query on sensitive or restricted table.'
requiredDataConnectors:
- connectorId: Snowflake
dataTypes:
- Snowflake
triggerOperator: gt
version: 1.0.1
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Snowflake/Analytic Rules/SnowflakeQueryOnSensitiveTable.yaml
id: f258fa0c-e26c-4e2b-94fb-88b6cef0ca6e
queryFrequency: 1h
query: |
let r_tbl = dynamic(['table_name']);
Snowflake
| where QueryType =~ 'SELECT'
| where QueryExecutionStatus =~ 'SUCCESS'
| extend tbl = extract(@'(FROM|from)\s(\S+)\s', 2, QueryText)
| where tbl in~ (r_tbl)
| extend AccountCustomEntity = TargetUsername
severity: Medium
status: Available
queryPeriod: 1h
name: Snowflake - Query on sensitive or restricted table
tactics:
- Collection
kind: Scheduled