Back
Idda243bf4-382b-46b9-9b4d-ce6ffe9e7beb
RulenameAbnormal Security - Account Takeover case opened
DescriptionCreates an incident when Abnormal Security opens an Account Takeover (ATO) case,

indicating a mailbox or user account is suspected to be compromised. The ATO case

severity, status, and observed indicators are surfaced for triage.
SeverityHigh
TacticsInitialAccess
CredentialAccess
TechniquesT1078
T1110
Required data connectorsAbnormalSecurityPush
KindScheduled
Query frequency1h
Query period1h
Trigger threshold0
Trigger operatorgt
Source Urihttps://github.com/Azure/Azure-Sentinel/blob/master/Solutions/AbnormalSecurity/Analytic%20Rules/AbnormalSecurity_AccountTakeover.yaml
Version1.0.0
Arm templateda243bf4-382b-46b9-9b4d-ce6ffe9e7beb.json
Deploy To Azure
ABNORMAL_SECURITY_ATO_CASE_CL
| where isnotempty(abx_body_abx_body_ato_case_id_s)
// Collapse to one row per ATO case (earliest event in the window) so repeated
// events for the same case do not raise duplicate alerts.
| summarize arg_min(TimeGenerated, *) by CaseId = abx_body_abx_body_ato_case_id_s
| extend
    CompromisedAccount = abx_body_abx_body_compromised_account_s,
    CaseSeverity = abx_body_abx_body_severity_s,
    CaseStatus = abx_body_abx_body_status_s,
    Indicators = abx_body_abx_body_indicators_s,
    FirstDetected = abx_body_abx_body_first_detected_t
| project TimeGenerated, CompromisedAccount, CaseId, CaseSeverity, CaseStatus, Indicators, FirstDetected
requiredDataConnectors:
- dataTypes:
  - ABNORMAL_SECURITY_ATO_CASE_CL
  connectorId: AbnormalSecurityPush
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/AbnormalSecurity/Analytic%20Rules/AbnormalSecurity_AccountTakeover.yaml
version: 1.0.0
status: Available
suppressionDuration: PT5H
alertDetailsOverride:
  alertDescriptionFormat: Abnormal Security opened ATO case {{CaseId}} (severity {{CaseSeverity}}) for the compromised account {{CompromisedAccount}}.
  alertDisplayNameFormat: 'Abnormal Security: Account Takeover case for {{CompromisedAccount}}'
incidentConfiguration:
  groupingConfiguration:
    reopenClosedIncident: false
    matchingMethod: AllEntities
    enabled: true
    lookbackDuration: PT5H
  createIncident: true
customDetails:
  CaseStatus: CaseStatus
  AtoCaseId: CaseId
  CaseSeverity: CaseSeverity
queryFrequency: 1h
query: |
  ABNORMAL_SECURITY_ATO_CASE_CL
  | where isnotempty(abx_body_abx_body_ato_case_id_s)
  // Collapse to one row per ATO case (earliest event in the window) so repeated
  // events for the same case do not raise duplicate alerts.
  | summarize arg_min(TimeGenerated, *) by CaseId = abx_body_abx_body_ato_case_id_s
  | extend
      CompromisedAccount = abx_body_abx_body_compromised_account_s,
      CaseSeverity = abx_body_abx_body_severity_s,
      CaseStatus = abx_body_abx_body_status_s,
      Indicators = abx_body_abx_body_indicators_s,
      FirstDetected = abx_body_abx_body_first_detected_t
  | project TimeGenerated, CompromisedAccount, CaseId, CaseSeverity, CaseStatus, Indicators, FirstDetected
tactics:
- InitialAccess
- CredentialAccess
relevantTechniques:
- T1078
- T1110
id: da243bf4-382b-46b9-9b4d-ce6ffe9e7beb
triggerThreshold: 0
triggerOperator: gt
suppressionEnabled: false
name: Abnormal Security - Account Takeover case opened
queryPeriod: 1h
severity: High
entityMappings:
- fieldMappings:
  - columnName: CompromisedAccount
    identifier: FullName
  entityType: Account
kind: Scheduled
eventGroupingSettings:
  aggregationKind: AlertPerResult
description: |
  'Creates an incident when Abnormal Security opens an Account Takeover (ATO) case,
  indicating a mailbox or user account is suspected to be compromised. The ATO case
  severity, status, and observed indicators are surfaced for triage.'
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workspace": {
      "type": "String"
    }
  },
  "resources": [
    {
      "apiVersion": "2024-01-01-preview",
      "id": "[concat(resourceId('Microsoft.OperationalInsights/workspaces/providers', parameters('workspace'), 'Microsoft.SecurityInsights'),'/alertRules/da243bf4-382b-46b9-9b4d-ce6ffe9e7beb')]",
      "kind": "Scheduled",
      "name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/da243bf4-382b-46b9-9b4d-ce6ffe9e7beb')]",
      "properties": {
        "alertDetailsOverride": {
          "alertDescriptionFormat": "Abnormal Security opened ATO case {{CaseId}} (severity {{CaseSeverity}}) for the compromised account {{CompromisedAccount}}.",
          "alertDisplayNameFormat": "Abnormal Security: Account Takeover case for {{CompromisedAccount}}"
        },
        "alertRuleTemplateName": "da243bf4-382b-46b9-9b4d-ce6ffe9e7beb",
        "customDetails": {
          "AtoCaseId": "CaseId",
          "CaseSeverity": "CaseSeverity",
          "CaseStatus": "CaseStatus"
        },
        "description": "'Creates an incident when Abnormal Security opens an Account Takeover (ATO) case,\nindicating a mailbox or user account is suspected to be compromised. The ATO case\nseverity, status, and observed indicators are surfaced for triage.'\n",
        "displayName": "Abnormal Security - Account Takeover case opened",
        "enabled": true,
        "entityMappings": [
          {
            "entityType": "Account",
            "fieldMappings": [
              {
                "columnName": "CompromisedAccount",
                "identifier": "FullName"
              }
            ]
          }
        ],
        "eventGroupingSettings": {
          "aggregationKind": "AlertPerResult"
        },
        "incidentConfiguration": {
          "createIncident": true,
          "groupingConfiguration": {
            "enabled": true,
            "lookbackDuration": "PT5H",
            "matchingMethod": "AllEntities",
            "reopenClosedIncident": false
          }
        },
        "OriginalUri": "https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/AbnormalSecurity/Analytic%20Rules/AbnormalSecurity_AccountTakeover.yaml",
        "query": "ABNORMAL_SECURITY_ATO_CASE_CL\n| where isnotempty(abx_body_abx_body_ato_case_id_s)\n// Collapse to one row per ATO case (earliest event in the window) so repeated\n// events for the same case do not raise duplicate alerts.\n| summarize arg_min(TimeGenerated, *) by CaseId = abx_body_abx_body_ato_case_id_s\n| extend\n    CompromisedAccount = abx_body_abx_body_compromised_account_s,\n    CaseSeverity = abx_body_abx_body_severity_s,\n    CaseStatus = abx_body_abx_body_status_s,\n    Indicators = abx_body_abx_body_indicators_s,\n    FirstDetected = abx_body_abx_body_first_detected_t\n| project TimeGenerated, CompromisedAccount, CaseId, CaseSeverity, CaseStatus, Indicators, FirstDetected\n",
        "queryFrequency": "PT1H",
        "queryPeriod": "PT1H",
        "severity": "High",
        "status": "Available",
        "subTechniques": [],
        "suppressionDuration": "PT5H",
        "suppressionEnabled": false,
        "tactics": [
          "CredentialAccess",
          "InitialAccess"
        ],
        "techniques": [
          "T1078",
          "T1110"
        ],
        "templateVersion": "1.0.0",
        "triggerOperator": "GreaterThan",
        "triggerThreshold": 0
      },
      "type": "Microsoft.OperationalInsights/workspaces/providers/alertRules"
    }
  ]
}