The DLP Alert Looked Like a False Positive — Until We Followed the File
The DLP alert looked ordinary.
A user had handled a document containing sensitive information.
The business explanation sounded plausible.
The destination did not immediately look malicious.
It was tempting to classify the alert as noise and move on.
Agent Foskett did something else.
He followed the file.
Where had it been?
Who had touched it?
How had it moved?
And was the DLP event really the beginning of the story?

The Alert Looked Harmless. The File Had a Longer Story.
DLP tells you a policy condition was matched. Investigation determines what happened around the data before and after that event.
Do not investigate the alert in isolation
But Agent Foskett did not let the alert become the boundary of the investigation.
The alert was one observation about the file.
The file itself became the pivot.
Start with the file identity
He also captured identifiers available in the incident and audit evidence rather than relying on the filename alone.
Files can be renamed. Copies can be created. Similar filenames can exist in multiple locations.
A filename is a clue. It is not always a unique identity.
Find the file in Microsoft 365 audit evidence
OfficeActivity to search for activity around the affected file. The exact operations available depend on the workload and auditing configuration, so he first preserved the raw activity rather than assuming a single operation name.- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
let TargetFile = "Quarterly-Customer-Export.xlsx";
OfficeActivity
| where TimeGenerated > ago(14d)
| where OfficeWorkload in ("SharePoint", "OneDrive")
| where SourceFileName =~ TargetFile
or OfficeObjectId has TargetFile
| project TimeGenerated,
UserId,
Operation,
OfficeWorkload,
Site_Url,
SourceFileName,
OfficeObjectId,
ClientIP,
UserAgent
| order by TimeGenerated ascThe DLP event was not the first event
The document had been accessed from SharePoint.
It had been downloaded.
Later activity involved the same file context.
The DLP event was therefore not a standalone action.
It was one point in a longer file timeline.
Now ask what happened on the endpoint
Agent Foskett pivoted from the user and file into endpoint evidence.
The question changed from “Did a DLP policy match?” to “What processes and destinations surrounded the file activity?”
Look for matching endpoint file activity
DeviceFileEvents can provide file-system activity from onboarded devices. Agent Foskett searched the affected filename around the DLP window and preserved the initiating-process context.- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
let TargetFile = "Quarterly-Customer-Export.xlsx";
let StartTime = datetime(2026-10-04 08:00:00);
let EndTime = datetime(2026-10-04 12:00:00);
DeviceFileEvents
| where Timestamp between (StartTime .. EndTime)
| where FileName =~ TargetFile
| project Timestamp,
DeviceName,
ActionType,
FileName,
FolderPath,
SHA1,
InitiatingProcessAccountName,
InitiatingProcessFileName,
InitiatingProcessCommandLine
| order by Timestamp ascThe process context changed the story
Endpoint telemetry showed activity involving another process during the same period.
That did not automatically prove exfiltration.
But it gave Agent Foskett a new pivot: the process, the device and the surrounding network activity.
DLP described the data-policy event. Endpoint telemetry described what the device was doing around it.
Follow the initiating process into network activity
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
let TargetDevice = "LAPTOP-042";
let TargetProcess = "browser.exe";
let StartTime = datetime(2026-10-04 08:00:00);
let EndTime = datetime(2026-10-04 12:00:00);
DeviceNetworkEvents
| where Timestamp between (StartTime .. EndTime)
| where DeviceName =~ TargetDevice
| where InitiatingProcessFileName =~ TargetProcess
| project Timestamp,
DeviceName,
RemoteUrl,
RemoteIP,
RemotePort,
Protocol,
InitiatingProcessAccountName,
InitiatingProcessFileName,
InitiatingProcessCommandLine
| order by Timestamp ascA network connection was still not proof of data transfer
A browser or application connecting to an external service does not by itself prove that the sensitive document was uploaded there.
Agent Foskett looked for corroborating evidence from DLP, audit logs, browser or cloud-app telemetry, file activity and the timing of the connection.
Correlation strengthens the story. One coincident connection does not complete it.
The “false positive” label was being used too early
But a DLP investigation has two separate questions.
Did the policy correctly identify sensitive content and an activity?
And was the activity authorised in its full business and security context?
A legitimate user can still perform an unauthorised data action. A correct DLP match can still require contextual investigation.
Build a user-and-file timeline
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
let TargetFile = "Quarterly-Customer-Export.xlsx";
DeviceFileEvents
| where Timestamp > ago(7d)
| where FileName =~ TargetFile
| project EventTime = Timestamp,
DeviceName,
Account = InitiatingProcessAccountName,
Event = ActionType,
FileName,
FolderPath,
Process = InitiatingProcessFileName,
SHA1
| order by EventTime ascFollow the file beyond the first alert
Had the document been copied?
Renamed?
Downloaded from SharePoint or OneDrive?
Moved to another location?
Handled by another process?
Shared or accessed by another identity?
The most important event may happen before or after the event that generated the alert.
Build the data-exposure timeline
What Agent Foskett checked
What the evidence can and cannot prove
OfficeActivity can provide Microsoft 365 audit evidence when the relevant audit data is connected and retained.DeviceFileEvents and DeviceNetworkEvents can add endpoint context when Defender for Endpoint telemetry is available.None of those signals should be stretched beyond what they record.
A file event, network connection and DLP alert become powerful when their timestamps, identities, devices and actions support the same evidence-based timeline.
The lesson
The user's explanation sounded reasonable.
But Agent Foskett did not investigate the explanation.
He investigated the evidence.
And once the file became the pivot, the alert stopped looking isolated.
A DLP alert tells you where to start. The file can tell you where the data actually went.
Related investigations
Final thought
They package evidence into something an analyst can triage.
But the object at the centre of the alert can have a history that extends far beyond the alert itself.
In this case, that object was the file.
Agent Foskett followed it backwards, forwards and across security products until the data-handling story made sense.
The Logs Already Knew! 🔎

