SOP-07: Data Exfiltration & DLP Alert Response

·

Data exfiltration alerts fire when employees — malicious insiders, compromised accounts, or unknowing policy violators — transfer sensitive data to unauthorized destinations. The same behaviour covers both deliberate theft and accidental exposure. Your job as the analyst is to determine which it is, quantify the scope, and contain it before data leaves the perimeter permanently.

DLP alerts are high false-positive environments. Most fires are legitimate business transfers that tripped a policy. The investigation workflow distinguishes FP from TP with precision — volume, destination, data classification, and process lineage together give the answer. Do not contain based on a single signal alone.

Applicable alert sources: Microsoft Purview DLP, Microsoft Defender for Cloud Apps (MDA) anomaly alerts, Microsoft Defender for Endpoint file/network telemetry, Splunk DLP index, CASB alerts.

◈ Table of Contents

01 Background 02 Identification 03 Containment 04 Eradication 05 Escalation
01

Background

CONTEXT
B1 What Is Data Exfiltration

Data exfiltration is the unauthorized transfer of sensitive data from an organisation's environment to an external or unapproved destination. It covers both intentional insider theft and attacker-driven extraction following a breach. DLP (Data Loss Prevention) tools detect this by inspecting content, volume, destination, and data labels.

Common attacker objectives: sell customer PII, steal intellectual property, stage data for ransom leverage, extract credentials/config for further compromise, exfiltrate before deploying ransomware (double-extortion).

B2 Common Exfiltration Paths & Trigger Sources
MethodMITRE ATT&CKAlert SourceFP Rate
Upload to personal cloud (Dropbox, GDrive, OneDrive personal)T1567.002Defender for Cloud Apps / MDAMedium — employees use personal cloud
Email to personal/external addressT1048.003Microsoft Purview DLP / Exchange transport rulesHigh — legitimate business emails flagged
USB / removable mediaT1052.001Defender for Endpoint DeviceEventsLow — rare in monitored environments
DNS tunnelling / covert channelT1048.001Defender Network Protection / DNS logsVery Low — almost always TP if detected
HTTPS upload to attacker C2 or paste siteT1567Defender for Endpoint DeviceNetworkEventsVery Low — unusual destination, large volume
Screenshot / clipboard exfilT1115 / T1113Defender for Endpoint DeviceEventsLow — specific tool signatures
SeverityCondition
LOWSmall volume (<5MB), non-sensitive file type, known destination (corporate partner), first-time policy hit by senior employee
MEDIUMModerate volume (5–50MB), mixed sensitivity, destination not previously seen, or departing employee
HIGHLarge volume (>50MB), confirmed sensitive data (PII, financial, IP), unusual time or destination, attacker-correlated source device
CRITICALBulk exfil (>500MB), customer PII/health data, regulatory data (GDPR/HIPAA/PCI), attacker-confirmed tool (exfil script, rclone), or pre-ransomware pattern
B3 Log Sources & Tools
SourceTable / IndexKey Fields
Defender for EndpointDeviceFileEvents, DeviceNetworkEvents, DeviceEvents, DeviceProcessEventsFileName, SHA256, RemoteIP, RemoteUrl, FileSize, InitiatingProcessName
Microsoft Purview DLPDLPAllLogs (Sentinel) / Purview Compliance portalPolicyName, SensitiveInfoTypeName, DataClassification, UserPrincipalName
Defender for Cloud Apps (MDA)CloudAppEventsApplication, ActivityType, IPAddress, UserAgent, RawEventData
Entra ID Sign-in LogsSigninLogsUserPrincipalName, AppDisplayName, IPAddress, ConditionalAccessStatus
Splunkindex=dlp, index=windows, index=o365DLP TA for Splunk, O365 TA, Sysmon TA
02

Identification

INVESTIGATE
Investigation Workflow
I1 Alert Triage Checklist First 5 Min

Five questions. Any YES triggers deeper investigation. All NO = probable FP, log and close.

  • 1
    Is the destination external (outside corporate IP space, not a known partner domain, not corporate OneDrive/SharePoint)? Internal-to-internal transfers are almost never exfiltration.
  • 2
    Does the volume exceed 50MB or 500+ files in a single session? Small one-off uploads are almost always FP.
  • 3
    Is the data classified as Confidential, PII, Financial, or IP? Check Purview label in the DLP alert details.
  • 4
    Is the user a departing employee, in a disciplinary process, or recently switched roles? Check HR system or manager confirmation — high-risk indicator.
  • 5
    Did the source device have a prior malware or C2 alert in the last 48 hours? If yes — this is attacker-driven exfil. Escalate immediately (SOP-05).
I2 Get File Details, Volume, and Destination KQL + SPL

Pull the full picture of what was transferred: file names, sizes, types, destination, and the process that initiated the transfer. Replace USER_UPN and DEVICE_NAME from the alert.

KQL — Defender Advanced Hunting
// All file uploads from user/device in last 24h — external destinations DeviceNetworkEvents | where Timestamp > ago(24h) | where DeviceName == "DEVICE_NAME" or InitiatingProcessAccountUpn =~ "USER_UPN" | where RemoteIPType == "Public" | where ActionType in ("ConnectionSuccess", "NetworkSignatureMatched") | where RemotePort in (80, 443, 21, 22, 25, 587) | summarize Connections = count(), BytesSent = sum(SentBytes), Destinations = make_set(RemoteUrl) by DeviceName, InitiatingProcessName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl | order by BytesSent desc
KQL — DeviceFileEvents (files staged for exfil)
// Files created in Temp/Downloads/USB that match exfil staging pattern DeviceFileEvents | where Timestamp > ago(24h) | where InitiatingProcessAccountUpn =~ "USER_UPN" | where ActionType in ("FileCreated", "FileModified", "FileCopied") | where FolderPath has_any ("Temp", "Downloads", "AppData", "Desktop", "Removable") // Flag compressed/encrypted files — common staging artifacts | where FileName endswith_cs ".zip" or FileName endswith_cs ".7z" or FileName endswith_cs ".rar" or FileName endswith_cs ".enc" | project Timestamp, DeviceName, FileName, FolderPath, FileSize, SHA256, InitiatingProcessName, InitiatingProcessCommandLine | order by Timestamp asc
SPL — Splunk (O365 TA / DLP TA)
index=o365 sourcetype="o365:management:activity" Operation IN ("FileUploaded", "SharingInvitationCreated", "AnonymousLinkCreated") UserId="USER_UPN" | eval file_size_mb=round(tolong(mvindex(split(Parameters, "FileSize: "), 1)) / 1048576, 2) | table _time, Operation, ObjectId, file_size_mb, ClientIP, UserAgent | sort -file_size_mb
I3 Identify the Initiating Process — Manual or Automated? KQL + SPL

The initiating process tells you whether this was a user action (browser, Office) or an automated tool (rclone, curl, PowerShell, custom script). Automated tools = high-confidence TP or attacker tool.

KQL — Process behind the network upload
// Get process lineage for the transfer — who launched the upload process DeviceProcessEvents | where Timestamp > ago(24h) | where DeviceName == "DEVICE_NAME" | where FileName in~ ( "rclone.exe", "curl.exe", "wget.exe", "winscp.exe", "pscp.exe", "ftp.exe", "bitsadmin.exe", "certutil.exe" ) | project Timestamp, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, AccountName
SPL — Splunk (Sysmon Event 3 — Network Connection)
index=sysmon EventCode=3 DestinationIsIpv6=false (Image="*\\rclone.exe" OR Image="*\\curl.exe" OR Image="*\\wget.exe" OR Image="*\\winscp.exe" OR Image="*\\bitsadmin.exe") | table _time, host, Image, CommandLine, DestinationIp, DestinationPort, DestinationHostname, User | sort _time

rclone.exe is a common attacker tool for bulk cloud exfiltration. Finding it in DeviceProcessEvents is almost always TP — especially if it was not installed by IT and has a short process lifetime. Check the parent process. If parent = cmd.exe or powershell.exe with an encoded command — escalate immediately.

I4 Check Historical Baseline — Is This Normal for This User? KQL + SPL

Compare today's upload volume against the user's 30-day baseline. Anomalous spike = high-confidence TP. Consistent pattern = probable FP or authorized tool.

KQL — User upload volume baseline (30-day comparison)
// Daily outbound bytes by user — last 30 days vs today DeviceNetworkEvents | where Timestamp > ago(30d) | where InitiatingProcessAccountUpn =~ "USER_UPN" | where RemoteIPType == "Public" | summarize DailyBytes = sum(SentBytes) by bin(Timestamp, 1d) | extend DayLabel = format_datetime(Timestamp, "yyyy-MM-dd") | project DayLabel, DailyMB = round(DailyBytes / 1048576, 1) | order by DayLabel asc
SPL — 30-day baseline
index=sysmon EventCode=3 User="DOMAIN\\username" DestinationIsIpv6=false | timechart span=1d sum(eval(tonumber(Initiated))) AS daily_connections | eval date_label=strftime(_time, "%Y-%m-%d") | table date_label, daily_connections

If today's upload is 10x the 30-day average — that's your highest-confidence TP signal. Document the spike ratio in the incident ticket. This is also the metric you'll present to CISO if escalating.

I5 FP vs TP Decision Gate
SignalVerdictAction
Internal-to-internal transfer, corporate OneDriveFPClose. Update DLP policy scope if this fires repeatedly.
Small volume (<5MB), browser upload, non-sensitive file typeFP — ProbableConfirm with user. Close if confirmed business reason.
rclone / curl / custom script, external destinationTP — HIGHContain immediately. Escalate to L2.
Bulk compressed archive uploaded to personal cloudTP — HIGHVolume + staging behavior = TP. Escalate to L2.
Sensitive data label (PII/Financial) confirmed in PurviewTP — HIGHEscalate to L3 + CISO. GDPR/PCI clock may be running.
Source device had prior malware alertTP — CRITICALAttacker-driven. Escalate to IR Team immediately.
Upload volume 10x+ above 30-day baselineTP — HIGHAnomalous spike. Contain and escalate.
Authorized backup / sync tool (IT-approved)FPDocument tool name. Close. Consider DLP exclusion for IT tools.
03

Containment

STOP THE TRANSFER
C1 Block Outbound Transfer — Defender Indicators + Cloud App Control Immediate

Stop the active transfer first, before touching the account. If the upload is still in progress, every second matters.

  • 1
    Block destination domain/IP in Defender: security.microsoft.com → Settings → Endpoints → Indicators → URLs/IP addresses → Add indicator → Block and alert. Add the destination domain (e.g. dropbox.com if personal account) with comment referencing incident number.
  • 2
    Block app in Defender for Cloud Apps: security.microsoft.com → Cloud Apps → Cloud app catalog → Find app → Tag as Unsanctioned — this pushes a block to all Defender-enrolled endpoints automatically.
  • 3
    Isolate the device to cut all external connectivity: security.microsoft.com → Assets → Devices → [device] → Isolate device → Full isolation. Use only when transfer is confirmed active — isolation will interrupt the user's session.
C2 Account Containment — Entra ID Identity
  • 1
    Revoke all active sessions: portal.azure.com → Entra ID → Users → [user] → Revoke sessions — kills browser sessions, OAuth tokens, refresh tokens.
  • 2
    Block sign-in: Users → [user] → Edit → Account enabled → NO → Save
  • 3
    Revoke OAuth consent grants (attacker may have added a malicious app): Entra ID → Enterprise Applications → [user's consented apps] → Permissions → Review and revoke suspicious grants
  • 4
    Block external sharing in SharePoint/OneDrive if the user used corporate storage for staging: admin.microsoft.com → SharePoint admin → Policies → Sharing → Set external sharing to "Only people in your organization" — apply at tenant level if multiple users affected.
C3 If Insider Threat — Legal Hold Before Any Device Action CRITICAL

If this is a suspected malicious insider, do NOT alert the user or their manager before legal/HR sign-off. Premature disclosure causes evidence destruction. Coordinate with Legal and HR FIRST. Device isolation is still appropriate but must be done silently — do not call the user.

  • 1
    Place Microsoft Purview Litigation Hold on the user's mailbox: compliance.microsoft.com → Data lifecycle management → Retention policies → or per-mailbox hold via Exchange admin
  • 2
    Collect investigation package from Defender XDR before any cleanup: Assets → Devices → [device] → Collect investigation package
  • 3
    Export DLP audit log from Purview: compliance.microsoft.com → Audit → Search → filter by user and date range → Export results
04

Eradication

CLEAN & CLOSE
E1 Remove Exfil Tools and Staging Artifacts
  • 1
    Open Live Response on the affected device: security.microsoft.com → Assets → Devices → [device] → Initiate Live Response session
  • 2
    Remove any unauthorized exfil tools found in I3: remediate file "C:\Users\user\Downloads\rclone.exe"
  • 3
    Delete staged archive files from Temp/Desktop: run cmd /c "del /f /q C:\Users\user\Desktop\*.zip"
  • 4
    Check and remove any scheduled tasks that automate the exfil: run scheduledtasks → look for tasks running rclone, curl, or PowerShell with upload commands → remediate scheduledtask "task-name"
  • 5
    Check browser saved credentials for the destination service (attacker may have added): run autoruns → review browser extensions and credential stores.
E2 Verify Clean State & Close Transfer Paths
KQL — Verify No New Outbound Transfers After Containment
// Run 1h after containment — should return 0 rows DeviceNetworkEvents | where Timestamp > ago(1h) | where DeviceName == "DEVICE_NAME" | where RemoteIPType == "Public" | where SentBytes > 1048576 // > 1MB | where InitiatingProcessName !in ("chrome.exe", "msedge.exe", "firefox.exe")
  • 1
    Patch or harden the transfer path: If personal cloud was used — enforce Cloud App Control policy in MDA to block all personal cloud storage accounts tenant-wide. If USB — enforce Device Control policy in Defender: security.microsoft.com → Settings → Endpoints → Device control
  • 2
    Update DLP policy to add the file types and destination patterns found: compliance.microsoft.com → Data loss prevention → Policies → [policy] → Edit → add matched conditions
  • 3
    Assess data at risk: Enumerate what was transferred — file names, data types, record counts if PII. This feeds the legal/regulatory notification decision.
E3 Timeline Reconstruction

Document the full exfiltration timeline before closing. This is required for regulatory notification and legal proceedings.

Timeline Requirements
  • T0: When did staging start? (first archive creation timestamp)
  • T1: When did first transfer begin? (first outbound connection to destination)
  • T2: When did transfer complete or get interrupted? (last connection timestamp)
  • Total volume transferred: MB / number of files
  • Data types transferred: PII fields, financial records, IP documents
  • Destination confirmed: service name, IP, account if obtainable
  • User status: aware / unaware / malicious intent (supported by evidence)
05

Escalation

TIERS & TRIGGERS
ESC1 L1 → L2 Escalation Triggers
  • 1
    Cannot determine FP vs TP within 30 minutes
  • 2
    Volume confirmed above 50MB to an external destination
  • 3
    Automated exfil tool detected (rclone, curl, PowerShell upload script)
  • 4
    User is a departing employee or in a disciplinary process
  • 5
    Source device had a prior malware alert — attacker-driven exfil suspected
L2 Handoff Pack
  • Incident ticket number
  • User UPN + device name + device ID
  • Transfer volume, destination, file names (if obtainable)
  • Data classification confirmed (PII / Financial / IP / Unknown)
  • Containment actions already taken
  • Evidence collected: investigation package Y/N, DLP audit log exported Y/N
ESC2 L2 → L3 / IR Team
  • 1
    Sensitive/classified data confirmed exfiltrated (not just staged)
  • 2
    Malicious insider confirmed — intent supported by evidence (keyword searches, prior warnings, resignation timing)
  • 3
    Exfil tied to an active breach — source device compromised by external attacker
  • 4
    Volume exceeds 500MB or 5,000+ records
ESC3 L3 → CISO + Legal + Regulatory
TriggerNotificationTimeline
Customer PII confirmed exfiltratedCISO + Legal + DPOImmediate — GDPR 72h clock starts at confirmed discovery
Payment card data (PCI-DSS scope)CISO + Legal + Card brands + Acquiring bankImmediately — PCI DSS v4.0 requires notification within 24h of discovery
Health data (HIPAA scope)CISO + Legal + HHS60 days from discovery for covered entities
Malicious insider — criminal activity suspectedCISO + Legal + Law EnforcementLegal team coordinates timing — preserve all evidence before LE engagement
Trade secrets / M&A dataCISO + General Counsel + Executive teamImmediate — market-sensitive information, potential legal proceedings

Authored by Rudra Verma | Senior Security Architect | CyberHawk Consultancy. Full SOC SOP library, threat intel, and analyst tooling at app.cyberhawkthreatintel.com — free sign-up.

Authorized security research and incident response only. Unauthorized access to, exfiltration, or surveillance of data is illegal.

◈ Stay Connected

Follow CyberHawk Threat Intel for SOC SOPs, threat intelligence, and hands-on analyst tooling.

Website YouTube YouTube (2) Twitter / X TikTok Telegram
IOC Scanner Live Tools Courses Threat Intel Blog SOPs

"They can't exploit you if you are the Exploit."