Detection rules › Kusto

Ransomware Attack Detected

Status
available
Severity
high
Time window
5m
Source
github.com/Azure/Azure-Sentinel

Identifies ransomware attacks detected by the Ransomware Protection service running on a Nasuni Edge Appliance.

MITRE ATT&CK coverage

TacticTechniques
ImpactT1486 Data Encrypted for Impact

Rule body kusto

id: 6c8770fb-c854-403e-a64d-0293ba344d5f
name: Ransomware Attack Detected
description: 'Identifies ransomware attacks detected by the Ransomware Protection service running on a Nasuni Edge Appliance.'
kind: Scheduled
severity: High
requiredDataConnectors:
  - connectorId: SyslogAma
    datatypes:
      - Syslog
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
status: Available
tactics:
  - Impact
relevantTechniques:
  - T1486
query: |-
  Syslog
  | project TimeGenerated, Computer, SyslogMessage
  | where SyslogMessage has "The Filer has detected a new ransomware attack"
  | extend pattern = substring(SyslogMessage, indexof(SyslogMessage, "(")+1, indexof(SyslogMessage, ")") - indexof(SyslogMessage,"(")-1)
  | extend volume_name = substring(SyslogMessage, indexof(SyslogMessage, "volume")+7, indexof(SyslogMessage,". Visit") - (indexof(SyslogMessage, "volume")+7))
  | sort by TimeGenerated desc
incidentConfiguration:
  createIncident: true
  groupingConfiguration:
    enabled: false
    reopenClosedIncident: false
    lookbackDuration: PT5H
    matchingMethod: AllEntities
eventGroupingSettings:
  aggregationKind: AlertPerResult
alertDetailsOverride:
  alertnameFormat: 'Nasuni: Ransomware Attack Detected'
  alertDescriptionFormat: Ransomware attack detected by Nasuni at {{TimeGenerated}}.
  alertDynamicProperties:
  - alertProperty: RemediationSteps
    value: SyslogMessage
customDetails:
  VolumeName: volume_name
entityMappings:
- entityType: Malware
  fieldMappings:
  - identifier: Name
    columnName: pattern
suppressionDuration: 5h
suppressionEnabled: false
version: 1.0.3

Stages and Predicates

Stage 1: source

Syslog

Stage 2: project

| project TimeGenerated, Computer, SyslogMessage

Stage 3: where

| where SyslogMessage has "The Filer has detected a new ransomware attack"

Stage 4: extend

| extend pattern = substring(SyslogMessage, indexof(SyslogMessage, "(")+1, indexof(SyslogMessage, ")") - indexof(SyslogMessage,"(")-1)

Stage 5: extend

| extend volume_name = substring(SyslogMessage, indexof(SyslogMessage, "volume")+7, indexof(SyslogMessage,". Visit") - (indexof(SyslogMessage, "volume")+7))

Stage 6: sort

| sort by TimeGenerated desc

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
SyslogMessagematch
  • The Filer has detected a new ransomware attack transforms: term

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.

FieldSource
Computerproject
SyslogMessageproject
TimeGeneratedproject
patternextend
volume_nameextend