Microsoft 365 search export downloaded

Severity criticalCloud & SaaSSingle eventstablecloud.identity.m365_search_export_downloaded · v1.0.0

An eDiscovery search export was DOWNLOADED — the results of a search pulled out of the tenant as one archive.

What it detects

An eDiscovery search export was DOWNLOADED — the results of a search pulled out of the tenant as one archive.

This is the exfiltration step that defeats volume-based detection by design. Opening five hundred files trips a mass-access rule; pooling those same files into a compliance export and downloading one archive produces a handful of events. The data leaves in bulk while the per-item telemetry stays quiet.

The pack alerts on searches being created and run; this is the moment the results actually leave, which is the last point at which anything can be done about it. Critical because by the time this event exists the data is already outside the tenant.

MITRE ATT&CK mapping

  • T1213.002Data from Information Repositories: Sharepoint· Collection
  • T1530Data from Cloud Storage· Collection

False positives and triage

Legal and compliance teams download exports as their job, so the presence of this event is not itself the finding — WHO and WHEN are. Check the actor against the people who run eDiscovery in this tenant, the time against their working hours, and the source address against the corporate range. An export downloaded outside business hours, from an unfamiliar address, or by an account with no compliance role should be treated as data already gone. Pull the originating search's terms and scope: they say what was taken, which is the first thing an incident report needs.

The rule

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

id: cloud.identity.m365_search_export_downloaded
version: 1.0.0
status: stable
severity: critical
confidence: 0.7
platforms: [application]
mitre_techniques: [T1213.002, T1530]
description: |
  An eDiscovery search export was DOWNLOADED — the results of a search pulled out
  of the tenant as one archive.

  This is the exfiltration step that defeats volume-based detection by design.
  Opening five hundred files trips a mass-access rule; pooling those same files
  into a compliance export and downloading one archive produces a handful of
  events. The data leaves in bulk while the per-item telemetry stays quiet.

  The pack alerts on searches being created and run; this is the moment the results
  actually leave, which is the last point at which anything can be done about it.
  Critical because by the time this event exists the data is already outside the
  tenant.
match:
  provider: Office365
  event_action_any:
    - SearchExportDownloaded
    - ViewedSearchExported
    - SearchExported
correlation_keys: [user_name, source_ip]
false_positive_guidance: |
  Legal and compliance teams download exports as their job, so the presence of this
  event is not itself the finding — WHO and WHEN are. Check the actor against the
  people who run eDiscovery in this tenant, the time against their working hours,
  and the source address against the corporate range. An export downloaded outside
  business hours, from an unfamiliar address, or by an account with no compliance
  role should be treated as data already gone. Pull the originating search's terms
  and scope: they say what was taken, which is the first thing an incident report
  needs.

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