Detection rules › Kusto
HackerView - Any Issue Detected
Generic alert that triggers when ANY HackerView issue/incident is detected in the logs. Extracts nested metadata from RawPayload.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Reconnaissance | T1592 Gather Victim Host Information, T1598 Phishing for Information |
Rule body kusto
id: abe1a663-d00d-482e-aa68-9394622ae03e
name: HackerView - Any Issue Detected
description: Generic alert that triggers when ANY HackerView issue/incident is detected in the logs. Extracts nested metadata from RawPayload.
severity: Informational
status: Available
requiredDataConnectors:
- connectorId: CTM360HackerViewConnectorDefinition
dataTypes:
- HackerViewLog_AzureV2_CL
tactics:
- Reconnaissance
- Discovery
relevantTechniques:
- T1592
- T1598
query: |
HackerViewLog
| extend RawPayloadDyn = todynamic(RawPayload)
| extend
AssetName = coalesce(AssetName, tostring(RawPayloadDyn.meta.asset), tostring(RawPayloadDyn.meta.host)),
AssetType = coalesce(AssetType, tostring(RawPayloadDyn.meta.asset_type)),
IpAddress = coalesce(IpAddress, tostring(RawPayloadDyn.meta.resolved_ip)),
ExternalLink = coalesce(ExternalLink, tostring(RawPayloadDyn.hackerview_link))
| project TimeGenerated, Title, Severity, AssetName, AssetType, IpAddress, ExternalLink
eventGroupingSettings:
aggregationKind: AlertPerResult
customDetails:
AssetName: AssetName
IpAddress: IpAddress
Severity: Severity
alertDetailsOverride:
alertDisplayNameFormat: HackerView Alert - {{Title}}
alertDescriptionFormat: HackerView detected {{Severity}} issue {{Title}} on asset {{AssetName}}
entityMappings:
- entityType: Host
fieldMappings:
- identifier: HostName
columnName: AssetName
- entityType: IP
fieldMappings:
- identifier: Address
columnName: IpAddress
kind: Scheduled
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: GreaterThan
triggerThreshold: 0
suppressionDuration: PT5H
suppressionEnabled: false
version: 1.0.0
Stages and Predicates
Stage 1: source
HackerViewLog
Stage 2: extend
| extend RawPayloadDyn = todynamic(RawPayload)
Stage 3: extend
| extend
AssetName = coalesce(AssetName, tostring(RawPayloadDyn.meta.asset), tostring(RawPayloadDyn.meta.host)),
AssetType = coalesce(AssetType, tostring(RawPayloadDyn.meta.asset_type)),
IpAddress = coalesce(IpAddress, tostring(RawPayloadDyn.meta.resolved_ip)),
ExternalLink = coalesce(ExternalLink, tostring(RawPayloadDyn.hackerview_link))
Stage 4: project
| project TimeGenerated, Title, Severity, AssetName, AssetType, IpAddress, ExternalLink
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 |
|---|---|
AssetName | project |
AssetType | project |
ExternalLink | project |
IpAddress | project |
Severity | project |
TimeGenerated | project |
Title | project |