Detection rules › Kusto

Cloud Replica Permanent Failover Performed by Tenant

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

Detects permanent failover of a cloud replica initiated by a tenant. This might indicate disaster recovery activity or issues with primary systems.

Rule body

id: 1f1634e5-585e-4187-ac5b-6d0e157bd2ea
name: Cloud Replica Permanent Failover Performed by Tenant
description: Detects permanent failover of a cloud replica initiated by a tenant.
  This might indicate disaster recovery activity or issues with primary systems.
severity: High
status: Available
requiredDataConnectors:
- connectorId: Syslog
  dataTypes:
  - Syslog
- connectorId: SyslogAma
  dataTypes:
  - Syslog
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
eventGroupingSettings:
  aggregationKind: AlertPerResult
tactics: []
relevantTechniques: []
query: "Veeam_GetSecurityEvents\n| where instanceId == 27000\n| extend VmRef = extract(\"\
  VmRef=\\\"([^\\\"]*)\\\"\", 1, SyslogMessage)\n| extend TenantID = extract(\"TenantID=\\\
  \"([^\\\"]*)\\\"\", 1, SyslogMessage)\n| extend TenantID = extract(\"TenantID=\\\
  \"([^\\\"]*)\\\"\", 1, SyslogMessage)\n| extend HostID = extract(\"HostID=\\\"([^\\\
  \"]*)\\\"\", 1, SyslogMessage)\n| project\n    Date = format_datetime(TimeGenerated,\
  \ 'dd.MM.yyyy HH:mm'),\n    DataSource = original_host,\n    EventId = instanceId,\n\
  \    [\"Replica Name\"] = VmRef,\n    [\"Tenant ID\"] = TenantID,\n    [\"Data SourceID\"\
  ] = HostID,\n    MessageDetails = Description,\n    Severity = SeverityDescription"
version: 1.0.1
kind: Scheduled
customDetails:
  Date: Date
  VbrHostName: DataSource
  EventId: EventId
  MessageDetails: MessageDetails
  Severity: Severity

Stages and Predicates

Stage 1: source

Veeam_GetSecurityEvents

Stage 2: where

| where instanceId == 27000

Stage 3: extend (4 consecutive steps)

| extend VmRef = extract("VmRef=\"([^\"]*)\"", 1, SyslogMessage)
| extend TenantID = extract("TenantID=\"([^\"]*)\"", 1, SyslogMessage)
| extend TenantID = extract("TenantID=\"([^\"]*)\"", 1, SyslogMessage)
| extend HostID = extract("HostID=\"([^\"]*)\"", 1, SyslogMessage)

Stage 4: project

| project
    Date = format_datetime(TimeGenerated, 'dd.MM.yyyy HH:mm'),
    DataSource = original_host,
    EventId = instanceId,
    ["Replica Name"] = VmRef,
    ["Tenant ID"] = TenantID,
    ["Data SourceID"] = HostID,
    MessageDetails = Description,
    Severity = SeverityDescription

Indicators

These rows show field, operator, and value matches.

Output fields

These fields are emitted when the rule matches.

FieldSource
Data SourceIDproject
DataSourceproject
Dateproject
EventIdproject
MessageDetailsproject
Replica Nameproject
Severityproject
Tenant IDproject