Detection rules › Kusto
BitSight - new alert found
'Rule helps to detect a new alerts generated in BitSight.'
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Initial Access | T1190 Exploit Public-Facing Application |
| Impact | T1491 Defacement |
Rule body kusto
id: a1275c5e-0ff4-4d15-a7b7-96018cd979f5
name: BitSight - new alert found
description: |
'Rule helps to detect a new alerts generated in BitSight.'
severity: High
status: Available
requiredDataConnectors:
- connectorId: BitSight
dataTypes:
- BitSightAlerts
queryFrequency: 1d
queryPeriod: 24h
triggerOperator: GreaterThan
triggerThreshold: 0
tactics:
- Impact
- InitialAccess
relevantTechniques:
- T1491
- T1190
query: |
let timeframe = 24h;
BitSightAlerts
| where ingestion_time() > ago(timeframe)
| extend Severity = case( Severity contains "INCREASE", "Low",
Severity contains "WARN" or Severity contains "DECREASE", "Medium",
Severity contains "CRITICAL", "High",
"Informational")
| extend CompanyURL = strcat("https://service.bitsighttech.com/app/spm",CompanyURL)
| project CompanyName, Severity, Trigger, CompanyURL, AlertDate, GUID
incidentConfiguration:
createIncident: false
eventGroupingSettings:
aggregationKind: AlertPerResult
alertDetailsOverride:
alertDisplayNameFormat: 'BitSight: Alert for {{Trigger}} in {{CompanyName}} from bitsight.'
alertDescriptionFormat: 'Alert generated on {{AlertDate}} in BitSight.\n\nCompany URL: {{CompanyURL}}\nAlert GUID: {{GUID}}'
alertSeverityColumnName: Severity
entityMappings:
- entityType: URL
fieldMappings:
- identifier: Url
columnName: CompanyURL
version: 1.0.1
kind: Scheduled
Stages and Predicates
Parameters
let timeframe = 24h;
Stage 1: source
BitSightAlerts
Stage 2: where
| where ingestion_time() > ago(timeframe)
Stage 3: extend
| extend Severity = case( Severity contains "INCREASE", "Low",
Severity contains "WARN" or Severity contains "DECREASE", "Medium",
Severity contains "CRITICAL", "High",
"Informational")
Severity =if
Severity contains "INCREASE""Low"elif
(Severity contains "WARN" or Severity contains "DECREASE")"Medium"elif
Severity contains "CRITICAL""High"else
"Informational"Stage 4: extend
| extend CompanyURL = strcat("https://service.bitsighttech.com/app/spm",CompanyURL)
Stage 5: project
| project CompanyName, Severity, Trigger, CompanyURL, AlertDate, 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 |
|---|---|
AlertDate | project |
CompanyName | project |
CompanyURL | project |
GUID | project |
Severity | project |
Trigger | project |