Detection rules › Kusto

Critical Threat Detected

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
medium
Time window
1h
Group by
Device_Name, External_IP, Internal_IP, Threat_Name, Threat_Score, eventTime
Source
github.com/Azure/Azure-Sentinel

'This creates an incident in the event a critical threat was identified on a Carbon Black managed endpoint.'

MITRE ATT&CK coverage

TacticTechniques
Lateral MovementT1210 Exploitation of Remote Services

Rule body kusto

id: 2ca4e7fc-c61a-49e5-9736-5da8035c47e0
name: Critical Threat Detected
description: |
  'This creates an incident in the event a critical threat was identified on a Carbon Black managed endpoint.'
severity: Medium
status: Available
requiredDataConnectors:
  - connectorId: VMwareCarbonBlack
    dataTypes:
      - CarbonBlackNotifications_CL
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
  - LateralMovement
relevantTechniques:
  - T1210
query: |
  let threshold = 8;
  CarbonBlackNotifications_CL
  | where threatHunterInfo_score_d >= threshold
  | extend eventTime = datetime(1970-01-01) + tolong(threatHunterInfo_time_d/1000) * 1sec
  | summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), count() by eventTime, Threat_Name = threatHunterInfo_reportName_s, Device_Name = deviceInfo_deviceName_s,  Internal_IP = deviceInfo_internalIpAddress_s, External_IP = deviceInfo_externalIpAddress_s, Threat_Score = threatHunterInfo_score_d
  | project-away count_
entityMappings:
  - entityType: Host
    fieldMappings:
      - identifier: FullName
        columnName: Device_Name
  - entityType: IP
    fieldMappings:
      - identifier: Address
        columnName: Internal_IP
version: 1.0.2
kind: Scheduled

Stages and Predicates

Parameters

let threshold = 8;

Stage 1: source

CarbonBlackNotifications_CL

Stage 2: where

| where threatHunterInfo_score_d >= threshold

Stage 3: extend

| extend eventTime = datetime(1970-01-01) + tolong(threatHunterInfo_time_d/1000) * 1sec

Stage 4: summarize

| summarize StartTime = min(TimeGenerated), EndTime = max(TimeGenerated), count() by eventTime, Threat_Name = threatHunterInfo_reportName_s, Device_Name = deviceInfo_deviceName_s,  Internal_IP = deviceInfo_internalIpAddress_s, External_IP = deviceInfo_externalIpAddress_s, Threat_Score = threatHunterInfo_score_d

Stage 5: project-away

| project-away count_

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
threatHunterInfo_score_dge
  • 8 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
Device_Namesummarize
EndTimesummarize
External_IPsummarize
Internal_IPsummarize
StartTimesummarize
Threat_Namesummarize
Threat_Scoresummarize
eventTimesummarize