Detection rules › Kusto

BitSight - drop in the headline rating

Status
available
Severity
high
Time window
1d
Source
github.com/Azure/Azure-Sentinel

'Rule helps to detect if headline ratings is drop in BitSight.'

MITRE ATT&CK coverage

TacticTechniques
ReconnaissanceT1591 Gather Victim Org Information
Command & ControlT1090 Proxy

Rule body kusto

id: b11fdc35-6368-4cc0-8128-52cd2e2cdda0
name: BitSight - drop in the headline rating
description: |
  'Rule helps to detect if headline ratings is drop in BitSight.'
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)
    | where toint(RatingDifferance) < 0
    | project RatingDate, Rating, CompanyName, RatingDifferance
incidentConfiguration:
    createIncident: false
eventGroupingSettings:
    aggregationKind: AlertPerResult
alertDetailsOverride:
    alertDisplayNameFormat: 'BitSight : Alert for drop in the headline rating of {{CompanyName}}.'
    alertDescriptionFormat: 'Alert is generated for {{CompanyName}}.\n\nRating Date: {{RatingDate}}\nRating Drop: {{RatingDifferance}}'
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)

Stage 3: where

| where toint(RatingDifferance) < 0

Stage 4: project

| project RatingDate, Rating, CompanyName, RatingDifferance

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.

FieldKindValues
RatingDifferancelt
  • 0 transforms: toint, cased

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.

FieldSource
CompanyNameproject
Ratingproject
RatingDateproject
RatingDifferanceproject