Detection rules › Kusto
BitSight - drop in company ratings
'Rule helps to detect when there is a drop of 10% or more in BitSight company ratings.'
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Reconnaissance | T1591 Gather Victim Org Information |
| Command & Control | T1090 Proxy |
Rule body kusto
id: d8844f11-3a36-4b97-9062-1e6d57c00e37
name: BitSight - drop in company ratings
description: |
'Rule helps to detect when there is a drop of 10% or more in BitSight company ratings.'
severity: High
status: Available
requiredDataConnectors:
- connectorId: BitSight
dataTypes:
- BitSightGraphData
queryFrequency: 1d
queryPeriod: 24h
triggerOperator: GreaterThan
triggerThreshold: 0
tactics:
- Reconnaissance
- CommandAndControl
relevantTechniques:
- T1591
- T1090
query: |
let timeframe = 24h;
BitSightGraphData
| where ingestion_time() > ago(timeframe)and toint(RatingDifferance) < 0
| extend percentage = -(toreal(RatingDifferance)/toreal(Rating))*100
| where percentage >= 10
| project RatingDate, Rating, CompanyName, percentage
incidentConfiguration:
createIncident: false
eventGroupingSettings:
aggregationKind: AlertPerResult
alertDetailsOverride:
alertDisplayNameFormat: 'BitSight : Alert for >10% drop in ratings of {{CompanyName}}.'
alertDescriptionFormat: 'Alert is generated for {{CompanyName}}.\n\nRating Date: {{RatingDate}}\nPercentage Drop: {{percentage}}%'
customDetails:
CompanyName: CompanyName
CompanyRating: Rating
version: 1.0.2
kind: Scheduled
Stages and Predicates
Parameters
let timeframe = 24h;
Stage 1: source
BitSightGraphData
Stage 2: where
| where ingestion_time() > ago(timeframe)and toint(RatingDifferance) < 0
Stage 3: extend
| extend percentage = -(toreal(RatingDifferance)/toreal(Rating))*100
Stage 4: where
| where percentage >= 10
Stage 5: project
| project RatingDate, Rating, CompanyName, percentage
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 |
|---|---|---|
RatingDifferance | lt |
|
percentage | ge |
|
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 |
Rating | project |
RatingDate | project |
percentage | project |