Microsoft 365 calendar contacts delegated

Severity highCloud & SaaSSingle eventstablecloud.identity.m365_calendar_contacts_delegated · v1.0.0

A named account was granted read rights on someone's CALENDAR or CONTACTS.

What it detects

A named account was granted read rights on someone's CALENDAR or CONTACTS.

Attention goes to the inbox, so the surveillance goes next door. A calendar gives up who an executive is meeting, when they travel, which deal has a closing date and when the room will be empty — everything needed to time a wire-fraud approach or an in-person visit — and the contact folder supplies the internal names and addresses to make the approach credible. None of it touches mail, so mailbox rules, forwarding rules and message trace stay silent.

The pack already covers a folder opened to Everyone, Default or Anonymous. This covers the quieter version: rights granted to ONE specific principal, which is what an attacker does when they want the access to keep working and not be noticed in a permissions review.

The regex requires a grantee that looks like a real address, which is what separates this from the default entries every mailbox carries — Owner@local, Member@local and the holiday calendars shared to Everyone with no rights are the normal population of these records, and none of them match.

MITRE ATT&CK mapping

  • T1114Email Collection· Collection
  • T1213Data from Information Repositories· Collection
  • T1098.002Account Manipulation: Additional Email Delegate Permissions· Persistence

False positives and triage

Delegation of a calendar is a normal working arrangement — an assistant, a manager, a shared team calendar — so the grant on its own proves nothing. Ask whether the grantee has any business relationship with the mailbox owner, and whether the grantee is an EXTERNAL identity: a guest or a partner address on an executive's calendar is the version worth pursuing immediately. Check who ran the change; a delegation the owner made themselves in Outlook is different from one an administrator or a third account made on their behalf. Finally, look at whether the grantee's own account shows recent sign-in findings — a legitimate delegation to a colleague whose account was taken over is the same evidence with a different victim, and the response is the colleague, not the calendar.

The rule

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

id: cloud.identity.m365_calendar_contacts_delegated
version: 1.0.0
status: stable
severity: high
confidence: 0.6
platforms: [application]
mitre_techniques: [T1114, T1213, T1098.002]
description: |
  A named account was granted read rights on someone's CALENDAR or CONTACTS.

  Attention goes to the inbox, so the surveillance goes next door. A calendar gives
  up who an executive is meeting, when they travel, which deal has a closing date
  and when the room will be empty — everything needed to time a wire-fraud approach
  or an in-person visit — and the contact folder supplies the internal names and
  addresses to make the approach credible. None of it touches mail, so mailbox
  rules, forwarding rules and message trace stay silent.

  The pack already covers a folder opened to `Everyone`, `Default` or `Anonymous`.
  This covers the quieter version: rights granted to ONE specific principal, which
  is what an attacker does when they want the access to keep working and not be
  noticed in a permissions review.

  The regex requires a grantee that looks like a real address, which is what
  separates this from the default entries every mailbox carries — `Owner@local`,
  `Member@local` and the holiday calendars shared to `Everyone` with no rights are
  the normal population of these records, and none of them match.
match:
  provider: Office365
  event_action_contains_any:
    - ModifyFolderPermissions
    - AddFolderPermissions
    - Add-MailboxFolderPermission
    - Set-MailboxFolderPermission
  raw_message_regex: "folder_member=[^ @]+@[^ @]+\\.[A-Za-z]{2,}.*folder_rights=[^=]*(ReadAny|Reviewer|Editor|Author|Owner|Contributor|FreeBusyDetailed).*folder(_path)?=[^ ]*(Calendar|Contacts)"
correlation_keys: [user_name, target_user_name]
false_positive_guidance: |
  Delegation of a calendar is a normal working arrangement — an assistant, a
  manager, a shared team calendar — so the grant on its own proves nothing. Ask
  whether the grantee has any business relationship with the mailbox owner, and
  whether the grantee is an EXTERNAL identity: a guest or a partner address on an
  executive's calendar is the version worth pursuing immediately. Check who ran the
  change; a delegation the owner made themselves in Outlook is different from one
  an administrator or a third account made on their behalf. Finally, look at
  whether the grantee's own account shows recent sign-in findings — a legitimate
  delegation to a colleague whose account was taken over is the same evidence with
  a different victim, and the response is the colleague, not the calendar.

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