Detection rules › Kusto
blacklens Insights
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.
'Creates incidents from blacklens.io Attack Surface Management alerts ingested into the blacklens_CL table. Alert severity is mapped dynamically from the source data.'
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Reconnaissance | T1595 Active Scanning |
| Resource Development | T1583 Acquire Infrastructure |
| Initial Access | T1190 Exploit Public-Facing Application |
| Stealth | T1562 Impair Defenses |
| Credential Access | T1110 Brute Force |
| Collection | T1005 Data from Local System |
| Command & Control | T1071 Application Layer Protocol |
| Exfiltration | T1041 Exfiltration Over C2 Channel |
Rule body kusto
id: e261b70a-3005-4a1b-a7a2-2c8147fafed7
name: blacklens Insights
description: |
'Creates incidents from blacklens.io Attack Surface Management alerts ingested into the blacklens_CL table. Alert severity is mapped dynamically from the source data.'
severity: High
status: Available
tactics:
- Reconnaissance
- ResourceDevelopment
- InitialAccess
- CredentialAccess
- Collection
- Exfiltration
- DefenseEvasion
- CommandAndControl
relevantTechniques:
- T1595
- T1583
- T1190
- T1110
- T1005
- T1041
- T1562
- T1071
requiredDataConnectors:
- connectorId: blacklens_io
dataTypes:
- blacklens_CL
kind: NRT
query: |
blacklens_CL
| summarize arg_max(TimeGenerated, *) by id
| extend AlertSeverity = case(
tolower(severity) == "critical", "High",
tolower(severity) == "high", "High",
tolower(severity) == "medium", "Medium",
tolower(severity) == "low", "Low",
"Informational"
)
suppressionDuration: PT1H
suppressionEnabled: false
incidentConfiguration:
createIncident: true
groupingConfiguration:
enabled: false
reopenClosedIncident: false
lookbackDuration: PT5H
matchingMethod: AllEntities
eventGroupingSettings:
aggregationKind: AlertPerResult
alertDetailsOverride:
alertDisplayNameFormat: "{{alert_title}}"
alertDescriptionFormat: "{{message}}"
alertSeverityColumnName: AlertSeverity
entityMappings:
- entityType: URL
fieldMappings:
- identifier: Url
columnName: link
version: 1.0.0
Stages and Predicates
Stage 1: source
blacklens_CL
Stage 2: summarize
| summarize arg_max(TimeGenerated, *) by id
Stage 3: extend
| extend AlertSeverity = case(
tolower(severity) == "critical", "High",
tolower(severity) == "high", "High",
tolower(severity) == "medium", "Medium",
tolower(severity) == "low", "Low",
"Informational"
)
AlertSeverity =severity == "critical""High"severity == "high""High"severity == "medium""Medium"severity == "low""Low""Informational"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 |
|---|---|
id | summarize |
AlertSeverity | extend |