The File Was Never Downloaded — It Was Synchronised
The investigators searched for bulk downloads.
Nothing unusual appeared.
No 4GB browser download. No obvious file-transfer spike. No malware alert.
But thousands of company files had still arrived on the user's device.
The files were never downloaded one by one.
OneDrive had synchronised the library.

Cloud Data Investigation
The hunt was correct. The assumption was wrong.
The download hunt returned almost nothing
The clue was the question nobody had asked
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Bulk browser download: Not found OneDrive client: Active SharePoint library: Recently synchronised
Start by inspecting the user's cloud activity
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
CloudAppEvents
| where Timestamp > ago(30d)
| where AccountDisplayName == "Alex Morgan"
| project Timestamp,
Application,
ActionType,
ObjectName,
IPAddress,
RawEventData
Discover the activity names before filtering
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
CloudAppEvents
| where Timestamp > ago(30d)
| where AccountDisplayName == "Alex Morgan"
| summarize Events = count()
by Application, ActionType
| order by Events desc
Search for sync-related behaviour
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
CloudAppEvents
| where Timestamp > ago(30d)
| where AccountDisplayName == "Alex Morgan"
| where Application has_any ("OneDrive", "SharePoint")
| where ActionType has_any ("sync", "file", "access")
| project Timestamp, Application, ActionType,
ObjectName, IPAddress
| order by Timestamp asc
Now check the endpoint
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
DeviceProcessEvents
| where Timestamp > ago(30d)
| where AccountName =~ "alex.morgan"
| where FileName =~ "OneDrive.exe"
| project Timestamp, DeviceName, AccountName,
FileName, ProcessCommandLine
| order by Timestamp asc
Correlate the cloud and device timelines
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
DeviceFileEvents
| where Timestamp > ago(7d)
| where DeviceName == "LAPTOP-042"
| where FolderPath has "OneDrive"
| summarize FileEvents = count(),
FirstSeen = min(Timestamp),
LastSeen = max(Timestamp)
by FolderPath
| order by FileEvents desc

