Detection rules › Kusto
SAP ETD - No new data received
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 a complete gap in the SAP Enterprise Threat Detection (ETD) feed when no records have been ingested into the SAPETDAlerts_CL table within the configured time window (default 1 hour). A full-feed blackout may indicate that an adversary is tampering with the security telemetry pipeline (for example by stopping the SAP ETD collector, disabling the data connector, or blocking network egress to Microsoft Sentinel) to hide follow-on activity in the SAP landscape. Benign causes such as a service outage, connector failure, or maintenance window are also possible and should be ruled out during triage. This rule is complementary to the per-SAP-system rule "SAP ETD - SAP system stopped reporting data", which can help distinguish a targeted silencing of a single system from a full-feed blackout. To change the freshness threshold, update the LookbackPeriod variable in the query and align queryFrequency / queryPeriod accordingly.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Stealth | T1562.006 Impair Defenses: Indicator Blocking |
Rule body kusto
id: a9206c5a-3e72-4c10-807f-313a56075b20
kind: Scheduled
name: SAP ETD - No new data received
description: |
Identifies a complete gap in the SAP Enterprise Threat Detection (ETD) feed when no records have been ingested into the SAPETDAlerts_CL table within the configured time window (default 1 hour). A full-feed blackout may indicate that an adversary is tampering with the security telemetry pipeline (for example by stopping the SAP ETD collector, disabling the data connector, or blocking network egress to Microsoft Sentinel) to hide follow-on activity in the SAP landscape. Benign causes such as a service outage, connector failure, or maintenance window are also possible and should be ruled out during triage. This rule is complementary to the per-SAP-system rule "SAP ETD - SAP system stopped reporting data", which can help distinguish a targeted silencing of a single system from a full-feed blackout. To change the freshness threshold, update the `LookbackPeriod` variable in the query and align `queryFrequency` / `queryPeriod` accordingly.
severity: High
status: Available
requiredDataConnectors:
- connectorId: SAPETDAlerts
dataTypes:
- SAPETDAlerts_CL
queryFrequency: 1h
queryPeriod: 1h
triggerOperator: gt
triggerThreshold: 0
tactics:
- DefenseEvasion
relevantTechniques:
- T1562
- T1562.006
query: |
// Configurable freshness threshold for the entire SAP ETD data feed.
// When changing this value also update queryFrequency and queryPeriod accordingly.
let LookbackPeriod = 1h;
SAPETDAlerts_CL
| summarize
LastIngestionTime = max(TimeGenerated),
RecordsInWindow = countif(TimeGenerated > ago(LookbackPeriod))
| where RecordsInWindow == 0 or isnull(LastIngestionTime)
| extend
LookbackPeriod = LookbackPeriod,
TimeSinceLastIngestion = now() - coalesce(LastIngestionTime, datetime(null)),
FeedName = "SAPETD",
Reason = iff(isnull(LastIngestionTime),
"No SAPETDAlerts_CL records have ever been ingested.",
strcat("No SAPETDAlerts_CL records ingested in the last ", tostring(LookbackPeriod), " (last ingestion: ", tostring(LastIngestionTime), ")."))
eventGroupingSettings:
aggregationKind: SingleAlert
entityMappings:
- entityType: CloudApplication
fieldMappings:
- identifier: Name
columnName: FeedName
alertDetailsOverride:
alertDisplayNameFormat: 'SAP ETD - No new data received in the last {{LookbackPeriod}}'
alertDescriptionFormat: |
{{Reason}}
A complete gap in the SAP ETD feed may indicate that an adversary is tampering with the security telemetry pipeline (for example by stopping the SAP ETD collector, disabling the data connector, or blocking network egress to Microsoft Sentinel) in order to hide malicious activity in the SAP landscape. Treat the silence as suspicious until proven otherwise: validate the integrity and runtime state of the SAP ETD data connector, the SAP ETD service, and the network path between them, and review recent change / admin activity on those components before concluding the cause is a benign outage.
customDetails:
LookbackPeriod: LookbackPeriod
LastIngestion: LastIngestionTime
LastIngestionGap: TimeSinceLastIngestion
version: 1.0.0
Stages and Predicates
Parameters
let LookbackPeriod = 1h;
Stage 1: source
SAPETDAlerts_CL
Stage 2: summarize
| summarize
LastIngestionTime = max(TimeGenerated),
RecordsInWindow = countif(TimeGenerated > ago(LookbackPeriod))
Stage 3: where
| where RecordsInWindow == 0 or isnull(LastIngestionTime)
Stage 4: extend
| extend
LookbackPeriod = LookbackPeriod,
TimeSinceLastIngestion = now() - coalesce(LastIngestionTime, datetime(null)),
FeedName = "SAPETD",
Reason = iff(isnull(LastIngestionTime),
"No SAPETDAlerts_CL records have ever been ingested.",
strcat("No SAPETDAlerts_CL records ingested in the last ", tostring(LookbackPeriod), " (last ingestion: ", tostring(LastIngestionTime), ")."))
Reason =isempty(LastIngestionTime)"No SAPETDAlerts_CL records have ever been ingested."strcat("No SAPETDAlerts_CL records ingested in the last ", tostring(LookbackPeriod), " (last ingestion: ", tostring(LastIngestionTime), ").")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 |
|---|---|---|
LastIngestionTime | is_null | |
RecordsInWindow | 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 |
|---|---|
LastIngestionTime | summarize |
RecordsInWindow | summarize |
FeedName | extend |
LookbackPeriod | extend |
Reason | extend |
TimeSinceLastIngestion | extend |