Skip to main content

Lab 6 โ€” Preventing Data Exfiltration Using Inline Web DLP

Lab 6โฑ 25 minโš— Lab Tenant ยท Read/Write๐Ÿ‘ค Alex + Kevin
Preventing Data Exfiltration Using Inline Web DLP

In Lab 5, Alex built a custom DLP detection engine capable of identifying sensitive payroll data. Now it is time to put that engine to work. In this lab, Alex configures an Inline Web DLP policy that blocks unauthorized uploads in real time โ€” and Kevin attempts to upload the Dataparity payroll report to ChatGPT for AI analysis, only to be stopped by Inline Web DLP.

๐Ÿ”—Dependency: This lab requires the Unified DLP Engine created in Lab 5 (DP Project Code). Complete Lab 5 before proceeding.

Scenario Overviewโ€‹

This lab demonstrates the complete Inline Web DLP workflow end-to-end:

StepWhat Happens
1Alex creates a custom End User Notification (EUN)
2Alex builds an Inline Web DLP policy using the Lab 5 engine
3Kevin attempts to upload Dataparity_Q2_2025_Workforce_Financial_Summary.docx to ChatGPT
4Inline DLP inspects, detects, and blocks the upload in real time
5Kevin receives the custom EUN explaining the denial
6Alex reviews the violation in Web Insight Logs

The payroll report contains a combination of Employee records, Social Security Numbers, payroll and salary data, ABA bank routing numbers, DP Project Codes, and confidential internal communications โ€” exactly the multi-signal pattern the Lab 5 engine was designed to catch.


Task 1 โ€” Admin Experience: Configure Inline DLP Protectionโ€‹

๐Ÿ›ก
Alex โ€” Security Administrator
Lab Tenant (Read/Write) โ€” Configuration Mode
You are Alex. Before a policy can block exfiltration, users need to understand why their action was denied. You will first create a custom End User Notification, then build the Inline Web DLP policy that references it.

๐ŸŽฏConfigure a custom EUN and an Inline Web DLP policy that uses the Lab 5 detection engine to block sensitive uploads.

Step 1 โ€” Navigate to End User Notification (EUN)โ€‹

Alex creates a custom End User Notification to explain why uploads containing sensitive corporate data are blocked. Clear user coaching reduces helpdesk escalations and reinforces security awareness.

Navigate to:

Policies โ†’ Common Configuration โ†’ Resources โ†’ End User Notification
Navigate to End User Notification in Common Configuration
๐Ÿ’ก Facilitator Notes

The EUN is the user-facing message Kevin will see when his upload is blocked. Emphasize that this is not just a block page โ€” it is a coaching moment. Well-crafted EUNs reduce repeat violations by explaining the why, not just the what.

Step 2 โ€” Add a Custom EUNโ€‹

Navigate to the Client Connector tab and click Add Custom Message. Select channel Inline Web.

Add Custom EUN for Inline Web channel

Step 3 โ€” Add the Custom Message Textโ€‹

Enter the message that will be displayed to end users when a policy violation occurs. The message should identify the policy, explain the reason for the block, and provide a contact path.

Custom EUN message text for DLP policy violation

๐Ÿ“ Suggested message: "Your file upload has been blocked because it contains sensitive Dataparity information protected under our Data Security Policy. If you believe this is an error, please contact the Security team at security@dataparity.com."

Step 4 โ€” Navigate to Inline DLP Policy Creationโ€‹

Navigate to the Inline DLP policy creation page:

Policies โ†’ Data Protection โ†’ Inline Protection โ†’ Data Loss Prevention โ†’ Add
Navigate to Inline DLP policy creation

Step 5 โ€” Configure Basic Policy Informationโ€‹

The policy window is large and split across multiple sections. The first section covers the foundational policy settings:

  • Policy Name: Block Sensitive Corporate Data Uploads
  • Rule Order: Set appropriately for your policy stack
  • User Scope: All users (or scoped to the Dataparity employee group)
  • Destination / Application Scope: Any destination (to catch all unsanctioned apps)
Inline DLP policy basic information โ€” name, rule order, user scope, destination scope

Step 6 โ€” Configure Policy Criteriaโ€‹

In the Criteria section, select the Unified DLP Engine created in Lab 5 โ€” DP Project Code.

This is the key connection point: the detection logic built in Lab 5 is now referenced by an enforcement policy. The same engine can be reused across Labs 7 and 8 without reconfiguration.

Policy criteria โ€” Unified DLP Engine selected from Lab 5
๐Ÿ’ก Facilitator Notes

This is the architectural payoff of Lab 5. Ask the group: "How many policies could reference this single engine?" The answer is unlimited โ€” every Inline, Endpoint, and Browser policy in the org can share detection logic. Tune once, protect everywhere.

Step 7 โ€” Configure Policy Actionโ€‹

In the Action section:

  • Set Action = Block
  • Select the End User Notification created in Steps 1โ€“3

This completes the Detection โ†’ Enforcement โ†’ User Coaching โ†’ Logging chain.

Policy action โ€” Block with custom EUN selected
๐Ÿ’ก Key Insight

Detection โ†’ Enforcement โ†’ User Coaching โ†’ Logging. This four-step chain is the hallmark of a mature DLP deployment. Detection identifies the risk. Enforcement stops the action. User coaching reduces recurrence. Logging creates an audit trail for investigation.

Most organizations start with detection and logging only (alert mode). The shift to Block + EUN is when DLP moves from visibility to active protection.


Task 2 โ€” User Experience: Prevent Data Exfiltrationโ€‹

๐Ÿ‘ค
Kevin โ€” End User
Lab Tenant โ€” VM Session
You are Kevin. You have a PDF copy of the Dataparity payroll report on your desktop. You are going to upload it to an external file-sharing site โ€” not knowing that Inline DLP is watching every upload in real time.

๐ŸŽฏAttempt to upload the payroll report to an unsanctioned website and observe the real-time block and user notification.

VM Required

This task must be performed from the lab VM machine. Ensure the Zscaler Client Connector is running on the VM before proceeding.

Step 8 โ€” Attempt the Uploadโ€‹

Kevin opens a browser on the lab VM and navigates to https://chatgpt.com โ€” a GenAI platform โ€” to get an AI-powered analysis of the sensitive data.

note

No ChatGPT account? ChatGPT requires a login to upload files. If you do not have an account or prefer not to log in, use any of the following SaaS file-sharing applications instead โ€” the block policy applies to all unsanctioned uploads regardless of destination:

The upload attempt and block behavior will be identical.

He selects Dataparity_Q2_2025_Workforce_Financial_Summary.docx from the desktop and initiates an upload.

Kevin attempting to upload Dataparity_Q2_2025_Workforce_Financial_Summary.docx to ChatGPT

What happens the moment Kevin clicks upload:

  1. The Zscaler proxy intercepts the outbound HTTP POST
  2. Inline DLP inspects the file payload in real time
  3. The DP Project Code engine matches on multiple sensitive identifiers
  4. The upload is terminated before a single byte reaches ChatGPT

Step 9 โ€” Kevin Receives the Block Notificationโ€‹

Instead of a successful upload confirmation, Kevin sees the custom End User Notification Alex configured in Task 1.

Kevin's custom End User Notification โ€” upload blocked
๐Ÿ’ก Facilitator Notes

Ask the group: "What would Kevin do next if he saw this message?" The ideal answer is "contact security" โ€” not "find another way to upload." That is why the EUN language matters: a generic "access denied" page frustrates users; a clear explanation with a contact path guides them toward the right behavior.

Also note what Kevin does not see: no file content, no trigger detail, no policy name. That is intentional โ€” you do not want to give a malicious insider a roadmap for evasion.


Task 3 โ€” Admin Experience: Review Web Insight Logโ€‹

๐Ÿ›ก
Alex โ€” Security Administrator
Lab Tenant โ€” Log Review
You are Alex. Kevin's upload attempt was blocked. Now you need to verify the event was captured, confirm the correct policy fired, and review the violation metadata โ€” the starting point for any DLP incident investigation.

๐ŸŽฏValidate that the DLP event was correctly logged in Web Insight with full metadata.

Step 10 โ€” Navigate to Web Insight Logsโ€‹

Navigate to the Web Insight log viewer:

Logs โ†’ Insights โ†’ Web Insights
Navigate to Web Insight Logs

Step 11 โ€” Apply DLP Engine Filterโ€‹

Apply a filter to isolate DLP-triggered events:

Filter: DLP Engine = DP Project Code

Web Insights โ€” filter by DLP Engine DP Project Code

Step 12 โ€” Review Violation Metadataโ€‹

The filtered log shows Kevin's upload attempt. Expand the event to review the full violation record:

Web Insights โ€” DLP violation log detail with metadata

The Web Insight log provides full metadata for the violation:

FieldValue
User IdentityKevin (Dataparity employee)
Source Device / IPLab VM
Cloud ApplicationChatGPT
Policy TriggeredBlock Sensitive Corporate Data Uploads
DLP Engine MatchedDP Project Code
File NameDataparity_Q2_2025_Workforce_Financial_Summary.docx
File TypePDF
URL CategoryGenerative AI and ML Applications
Action TakenBlocked
Trigger Data Not Shown

The specific matched content (SSNs, account numbers, project codes) is intentionally not displayed at this stage. Full incident drill-down โ€” including trigger data โ€” is covered in Lab 9: ZWA SOC Triage, where Priya investigates Kevin's incidents as a SOC analyst.

๐Ÿ’ฌ Discussion
  • The policy used Block. When would Alert-only be a better starting posture for a new DLP rule โ€” and what metrics would you use to decide when to escalate to Block?
  • Kevin uploaded to ChatGPT โ€” a GenAI tool. How would the policy behave if he attempted the same upload to a sanctioned AI platform like Microsoft Copilot?
  • The Web Insight log shows metadata but not trigger content at this stage. Why might you want to limit trigger visibility in the primary log view?
  • The DLP engine is shared across Labs 6, 7, and 8. What governance process would you use to control who can modify a shared detection engine?
๐Ÿ’ก Key Insight โ€” Lab 6

GenAI applications are a new and rapidly growing data exfiltration surface. Employees uploading sensitive documents to ChatGPT, Gemini, or Copilot for "analysis" may not realize they are violating data protection policies. Inline Web DLP intercepts these uploads regardless of which AI tool is used. The engine Alex built in Lab 5 now powers real-time inline protection for every web upload across Dataparity's workforce โ€” with no per-channel reconfiguration required.

Labs 7 and 8 will apply the same engine to Endpoint DLP (removable media) and Browser DLP (copy-paste controls), demonstrating that a single detection investment can span multiple enforcement channels simultaneously.

๐Ÿ’ก Facilitator Notes

Strong transition line: "Kevin's ChatGPT upload was blocked at the network layer. But what if Kevin decides to bypass the network entirely? In Lab 7, Kevin tries two OS-level approaches โ€” opening the file directly in Notepad++ and copying content via clipboard โ€” neither of which generates network traffic. That is where Endpoint DLP takes over.."

If time permits, ask the group how they would handle a scenario where the same employee needs to legitimately upload a redacted version of the payroll report to an auditor portal. This opens the door to discussing allow-list policies, user justification workflows, and step-up authentication โ€” all of which Zscaler supports.

๐ŸŽ“
Lab Assistant
Zenith Live 2026 ยท Dataparity
Lab 6 โ€” Inline DLP
Browse all topics