Microsoft 365 audit license downgrade

Severity mediumCloud & SaaSSingle eventstablecloud.identity.m365_audit_license_downgrade · v1.0.0

A user's Microsoft 365 licence was changed ("Change user license").

What it detects

A user's Microsoft 365 licence was changed ("Change user license").

Licence changes are mundane, with one consequential exception: the mailbox-access audit records an investigation depends on — MailItemsAccessed, the only evidence that says WHICH messages an intruder read — are a Purview Audit (Premium) feature. Removing that licence from an account silently stops the logging for it. Nothing is disabled, no audit setting changes, and the account keeps working; the evidence simply stops being generated. It is defence evasion disguised as licence administration, which is why it is worth surfacing at all.

MITRE ATT&CK mapping

  • T1562.008Impair Defenses: Disable or Modify Cloud Logs· Defense Evasion

False positives and triage

Licence assignment is routine — onboarding, offboarding, and cost-driven reassignment all produce this, in bulk, and it will usually be exactly that. Rated medium/low-confidence for that reason: this is timeline context, not a verdict. The signal is a licence REMOVED from an account that is already under investigation, a change made by an account that does not normally administer licensing, or a change immediately before mailbox activity that then has no MailItemsAccessed records to explain it.

The rule

Declarative YAML read by the detection engine — data, never executed. Confidence 50%. Source: rules/cloud/m365_audit_license_downgrade.yaml, licensed under the Apache License 2.0.

id: cloud.identity.m365_audit_license_downgrade
version: 1.0.0
status: stable
severity: medium
confidence: 0.5
platforms: [application]
mitre_techniques: [T1562.008]
description: |
  A user's Microsoft 365 licence was changed ("Change user license").

  Licence changes are mundane, with one consequential exception: the mailbox-access
  audit records an investigation depends on — `MailItemsAccessed`, the only evidence
  that says WHICH messages an intruder read — are a Purview Audit (Premium) feature.
  Removing that licence from an account silently stops the logging for it. Nothing is
  disabled, no audit setting changes, and the account keeps working; the evidence
  simply stops being generated. It is defence evasion disguised as licence
  administration, which is why it is worth surfacing at all.
match:
  provider_any: [Office365, AzureAD]
  event_action_contains_any:
    - "Change user license"
    - "Change user licenses"
correlation_keys: [target_user_name]
false_positive_guidance: |
  Licence assignment is routine — onboarding, offboarding, and cost-driven
  reassignment all produce this, in bulk, and it will usually be exactly that. Rated
  medium/low-confidence for that reason: this is timeline context, not a verdict.
  The signal is a licence REMOVED from an account that is already under
  investigation, a change made by an account that does not normally administer
  licensing, or a change immediately before mailbox activity that then has no
  `MailItemsAccessed` records to explain it.

Related detections

Run this rule on your own logs — offline

KIROSEC runs this rule and the rest of the library over Windows, Linux, macOS and cloud audit logs on the analyst's own machine. Every alert links to the events that raised it, and nothing leaves the device.

Browse all detections