Detection rules › Kusto
BitSight - new breach found
'Rule helps to detect a new breach generated in BitSight.'
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Initial Access | T1190 Exploit Public-Facing Application |
| Impact | T1491 Defacement |
Rule body kusto
id: a5526ba9-5997-47c6-bf2e-60a08b681e9b
name: BitSight - new breach found
description: |
'Rule helps to detect a new breach generated in BitSight.'
severity: Medium
status: Available
requiredDataConnectors:
- connectorId: BitSight
dataTypes:
- BitSightBreaches
queryFrequency: 1d
queryPeriod: 24h
triggerOperator: GreaterThan
triggerThreshold: 0
tactics:
- Impact
- InitialAccess
relevantTechniques:
- T1491
- T1190
query: |
let timeframe = 24h;
BitSightBreaches
| where ingestion_time() > ago(timeframe)
| extend Severity = toreal(Severity)
| extend Severity = case( Severity == 1, "Low",
Severity == 2, "Medium",
Severity == 3, "High",
"Informational")
| project DateCreated, Companyname, Severity, PreviwURL, GUID
incidentConfiguration:
createIncident: false
eventGroupingSettings:
aggregationKind: AlertPerResult
alertDetailsOverride:
alertDisplayNameFormat: 'BitSight: Alert for new breach in {{Companyname}}.'
alertDescriptionFormat: 'Alert is generated on {{DateCreated}} at BitSight.\n\nGUID: {{GUID}}\nPreview URL: {{PreviwURL}}'
alertSeverityColumnName: Severity
entityMappings:
- entityType: URL
fieldMappings:
- identifier: Url
columnName: PreviwURL
version: 1.0.1
kind: Scheduled
Stages and Predicates
Parameters
let timeframe = 24h;
Stage 1: source
BitSightBreaches
Stage 2: where
| where ingestion_time() > ago(timeframe)
Stage 3: extend
| extend Severity = toreal(Severity)
Stage 4: extend
| extend Severity = case( Severity == 1, "Low",
Severity == 2, "Medium",
Severity == 3, "High",
"Informational")
Severity =if
Severity == 1"Low"elif
Severity == 2"Medium"elif
Severity == 3"High"else
"Informational"Stage 5: project
| project DateCreated, Companyname, Severity, PreviwURL, GUID
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 |
|---|---|
Companyname | project |
DateCreated | project |
GUID | project |
PreviwURL | project |
Severity | project |