Detection rules › Kusto
Vaikora - Anomaly detection
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.
Identifies actions flagged as anomalies or confirmed threats by Vaikora. Catches behavioral anomalies that fall below high/critical severity but still represent statistically unusual activity worth investigating.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Discovery | No specific technique |
| Lateral Movement | No specific technique |
| Collection | No specific technique |
| Exfiltration | No specific technique |
Rule body kusto
id: c0984707-0855-430e-9c36-5e2d0d0ce56f
name: Vaikora - Anomaly detection
description: |
Identifies actions flagged as anomalies or confirmed threats by Vaikora. Catches behavioral anomalies that fall below high/critical severity but still represent statistically unusual activity worth investigating.
severity: Medium
requiredDataConnectors:
- connectorId: VaikoraSecurityCenter
dataTypes:
- Vaikora_SecurityAlerts_CL
queryFrequency: 6h
queryPeriod: 6h
triggerOperator: gt
triggerThreshold: 0
status: Available
tactics:
- Discovery
- LateralMovement
- Collection
- Exfiltration
relevantTechniques: []
query: |
Vaikora_SecurityAlerts_CL
| where TimeGenerated >= ago(6h)
| where IsAnomaly_b == true or ThreatDetected_b == true
| 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 Confidence desc, TimeGenerated desc
entityMappings:
- entityType: IP
fieldMappings:
- identifier: Address
columnName: SourceIP
- entityType: Host
fieldMappings:
- identifier: HostName
columnName: SourceHost
- entityType: Account
fieldMappings:
- identifier: Name
columnName: UserName
alertDetailsOverride:
alertDisplayNameFormat: "Vaikora Anomaly: {{Title_s}} (confidence: {{ConfidenceScore_d}})"
alertDescriptionFormat: "Vaikora AI detected a threat on agent {{AgentId_s}} (ThreatDetected={{ThreatDetected_b}}). {{Description_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 IsAnomaly_b == true or ThreatDetected_b == true
Stage 4: where
| where Severity_s !in ("high", "critical")
Stage 5: 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 6: project
| project
TimeGenerated, AlertId, AgentId, ActionType, Severity, Title, Description,
SourceIP, DestinationIP, SourceHost, DestHost, ProcessName, UserName, FilePath,
Confidence, ThreatFlag, AnomalyFlag
Stage 7: sort
| order by Confidence desc, TimeGenerated desc
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
Severity_s | in | critical, high |
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.
| Field | Kind | Values |
|---|---|---|
IsAnomaly_b | eq |
|
ThreatDetected_b | eq |
|
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 | Source |
|---|---|
ActionType | project |
AgentId | project |
AlertId | project |
AnomalyFlag | project |
Confidence | project |
Description | project |
DestHost | project |
DestinationIP | project |
FilePath | project |
ProcessName | project |
Severity | project |
SourceHost | project |
SourceIP | project |
ThreatFlag | project |
TimeGenerated | project |
Title | project |
UserName | project |