Detection rules › Kusto

Vaikora - High severity security alerts

This is a third-party alert feed, not a detection over modeled telemetry. The vendor product raised the finding; this rule forwards it into the SIEM. It is searchable for reference but is excluded from the detection-rule browse and the ATT&CK coverage matrix.

Status
available
Severity
high
Time window
6h
Source
github.com/Azure/Azure-Sentinel

Identifies high or critical severity security alerts ingested from Vaikora in the last 6 hours, indicating active threats such as malware activity, intrusion attempts, or policy violations.

MITRE ATT&CK coverage

TacticTechniques
Initial AccessNo specific technique
ExecutionNo specific technique
PersistenceNo specific technique
StealthNo specific technique
Credential AccessNo specific technique
DiscoveryNo specific technique
Lateral MovementNo specific technique
CollectionNo specific technique
Command & ControlNo specific technique
ExfiltrationNo specific technique
ImpactNo specific technique

Rule body kusto

id: ac3ec787-fd49-4e93-88cc-aaa9b31061ac
name: Vaikora - High severity security alerts
description: |
  Identifies high or critical severity security alerts ingested from Vaikora in the last 6 hours, indicating active threats such as malware activity, intrusion attempts, or policy violations.
severity: High
requiredDataConnectors:
  - connectorId: VaikoraSecurityCenter
    dataTypes:
      - Vaikora_SecurityAlerts_CL
queryFrequency: 6h
queryPeriod: 6h
triggerOperator: gt
triggerThreshold: 0
status: Available
tactics:
  - InitialAccess
  - Execution
  - Persistence
  - DefenseEvasion
  - CredentialAccess
  - Discovery
  - LateralMovement
  - Collection
  - CommandAndControl
  - Exfiltration
  - Impact
relevantTechniques: []
query: |
  Vaikora_SecurityAlerts_CL
  | where TimeGenerated >= ago(6h)
  | where Severity_s in ("high", "critical")
  | extend
      AlertId       = AlertId_s,
      AgentId       = AgentId_s,
      ActionType    = ActionType_s,
      Severity      = Severity_s,
      Title         = Title_s,
      Description   = Description_s,
      SourceIP      = SourceIP,
      DestinationIP = DestinationIP_s,
      SourceHost    = SourceHost_s,
      DestHost      = DestinationHost_s,
      ProcessName   = ProcessName_s,
      UserName      = UserName_s,
      FilePath      = FilePath_s,
      Confidence    = ConfidenceScore_d,
      ThreatFlag    = ThreatDetected_b,
      AnomalyFlag   = IsAnomaly_b
  | project
      TimeGenerated, AlertId, AgentId, ActionType, Severity, Title, Description,
      SourceIP, DestinationIP, SourceHost, DestHost, ProcessName, UserName, FilePath,
      Confidence, ThreatFlag, AnomalyFlag
  | order by TimeGenerated desc
entityMappings:
  - entityType: IP
    fieldMappings:
      - identifier: Address
        columnName: SourceIP
  - entityType: IP
    fieldMappings:
      - identifier: Address
        columnName: DestinationIP
  - entityType: Host
    fieldMappings:
      - identifier: HostName
        columnName: SourceHost
  - entityType: Account
    fieldMappings:
      - identifier: Name
        columnName: UserName
  - entityType: Process
    fieldMappings:
      - identifier: ProcessId
        columnName: ProcessName
alertDetailsOverride:
  alertDisplayNameFormat: "Vaikora {{Severity_s}} Alert: {{Title_s}}"
  alertDescriptionFormat: "Vaikora detected a {{Severity_s}} severity event on agent {{AgentId_s}}. {{Description_s}}"
  alertSeverityColumnName: Severity_s
version: 1.0.0
kind: Scheduled

Stages and Predicates

Stage 1: source

Vaikora_SecurityAlerts_CL

Stage 2: where

| where TimeGenerated >= ago(6h)

Stage 3: where

| where Severity_s in ("high", "critical")

Stage 4: extend

| extend
    AlertId       = AlertId_s,
    AgentId       = AgentId_s,
    ActionType    = ActionType_s,
    Severity      = Severity_s,
    Title         = Title_s,
    Description   = Description_s,
    SourceIP      = SourceIP,
    DestinationIP = DestinationIP_s,
    SourceHost    = SourceHost_s,
    DestHost      = DestinationHost_s,
    ProcessName   = ProcessName_s,
    UserName      = UserName_s,
    FilePath      = FilePath_s,
    Confidence    = ConfidenceScore_d,
    ThreatFlag    = ThreatDetected_b,
    AnomalyFlag   = IsAnomaly_b

Stage 5: project

| project
    TimeGenerated, AlertId, AgentId, ActionType, Severity, Title, Description,
    SourceIP, DestinationIP, SourceHost, DestHost, ProcessName, UserName, FilePath,
    Confidence, ThreatFlag, AnomalyFlag

Stage 6: sort

| order 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
Severity_sin
  • critical transforms: cased
  • high transforms: cased

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
ActionTypeproject
AgentIdproject
AlertIdproject
AnomalyFlagproject
Confidenceproject
Descriptionproject
DestHostproject
DestinationIPproject
FilePathproject
ProcessNameproject
Severityproject
SourceHostproject
SourceIPproject
ThreatFlagproject
TimeGeneratedproject
Titleproject
UserNameproject