Lawliet LAWLIET
Book a demo

32. Data loss prevention (DLP)

This guide describes Lawliet 1.5.13.s (the current release). Screens, commands and procedures may change in later versions; the usage guide is updated with each release. Check the version your server runs under Settings > Platform or with ./lawliet version, and see the Releases page for what changed.

DLP finds sensitive data on hosts (at rest) and watches it leave (USB and removable media, cloud or web upload, email attachments, clipboard, print, network shares). A policy says what is sensitive and what to do on each channel: allow, alert, block or quarantine. The agent on each host enforces the policy and reports incidents.

DLP is a licensed module. What a host can actually enforce depends on its operating system and on the agent running with full privileges; the Enforcement status tab reads it live from the agent (32.6). Do not assume a block happened: every incident says what was actually enforced.

Permissions:

TaskPermissionFour-eyes
See incidents, policies, inventory, schedules, enforcement statusView DLP-
Create, edit, enable, disable, delete policies; run and schedule discovery; locate files; test a policyManage DLPno
Triage incidentsTriage findingsno

32.1 The tabs#

Path: DLP. The page title is Data loss prevention.

TabContent
Incident queueTiles (Incidents, Open queue, Critical), the Incident stream and the policy catalog
PoliciesThe Policy catalogue and the policy editor (32.3)
DiscoveryDiscovery scans, the sensitive-file inventory, scheduled discovery (32.4)
Where is this fileFind a file across hosts (32.5)
Enforcement statusWhat each host can enforce, per channel, read live (32.6)

32.2 Incidents#

The Incident stream: Incident, Severity, Status, Action, Enforcement, Residual risk, Source, Detected. Filter incidents... narrows the list.

The Enforcement column says what really happened:

ValueMeaning
stoppedBlocked at the boundary - the data did not move
alertedThe transfer completed and somebody was told
not stoppedRecorded after the fact - nothing stopped this, and nothing can now
pendingEnforcement requested and not yet confirmed - treat as not stopped
log onlyA log-only policy - no enforcement was expected
-Not recorded

Residual risk is the exposure that remains given what was done.

Procedure: triage an incident#

Permission: Triage findings.

  1. Click the incident. The drawer shows File, Data type, Severity, Matches, Residual risk, Host, User, Process, Attempts, Destination, Policy action, Actually enforced, Matched patterns and Context.
  2. Under Set status press one of the statuses:
StatusMeaning
investigatingBeing looked at now
confirmedReal exposure of sensitive data. Treat as an incident
false positiveThe detector matched something that is not sensitive
authorisedGenuinely sensitive, but this transfer was approved
resolvedDealt with; no further action needed
  1. Type the reason in the note box ("Kept with the finding. A status change without a reason is a decision nobody can review later.") and press Save. You see "Saved.".

A confirmed exposure is a security incident: open an investigation (chapter 34) and, if the host must be contained, use Defense (chapter 36).

Incidents are never deleted from the console. Close them with resolved, false positive or authorised; they stay as the record.


32.3 Policies#

Procedure: create a DLP policy#

Permission: Manage DLP. Four-eyes: no.

Risk: a block or quarantine action stops users' work on every host in scope; a broad device-control setting can block every USB stick. Rollback: edit the policy back, or disable it; agents pick up the change on their next policy refresh.

  1. Open DLP > Policies and press New policy.
  2. Fill Name, Data type (pii, pci, phi, credentials, financial, ip, confidential, custom) and Severity. Leave Enabled off until tested.
  3. Detection rules: choose + add rule... and the rule type:
Rule typeFields
keywordskeywords (comma separated), threshold, proximity (chars)
regexa regular expression
builtina built-in detector
sha256known file hashes
fingerprinta sample document; finds edited copies
filetypefile families: pdf, zip, docx, elf...
name_globname patterns: *.kdbx, id_rsa*
size_rangemin and max bytes

"A policy with no rules falls back to the built-in detector for its data type."

  1. Per-channel action: for each channel (USB / removable, Cloud / web upload, Email attachments, Clipboard, Print, Network shares, At-rest / discovery) choose allow, alert, block or quarantine.
  2. Optional controls:
ControlMeaning
Egress programs (Linux open-deny)Programs (for example curl, wget, rclone) refused when they open this policy's files while upload or email is blocked. Reset to built-in list restores the default
Removable media device controlNo device control, Block all removable storage, Read-only (except allow list), Block all except allow list, with device IDs to allow. Enforced below the file system on each host
Blocked upload destinationsExact host names (for example dropbox.com), refused in each host's firewall. A name that shares a CDN address with other sites blocks those too
Quarantine files that cannot be fully inspectedOff by default. A file the agent cannot read is always reported as a blind spot; with this on it is also quarantined and the incident is high severity
ScopeAll agents or Selected agents
ExceptionsValues excluded from the policy (comma or newline separated)
  1. Test against sample: paste text into Paste text to test this policy against... and press Test text (or test a file) to see what would match.
  2. Press Save policy. Then tick Enabled and save again when you are satisfied.

What you see: the policy in the Policy catalogue (Name, Data type, Severity, Rules, Blocking channels, Enabled).

If it fails: the form names the problem (for example an invalid regular expression). Save is disabled while Name is empty.

Procedure: change, disable or delete a DLP policy#

Permission: Manage DLP. Four-eyes: no. Risk: a change to a blocking action or device control takes effect on every host in scope at its next policy refresh. Rollback: change it back the same way.

To change it:

  1. Open DLP > Policies and click the policy's row. The drawer Edit DLP policy opens.
  2. Change the fields (as in "Create a DLP policy"). Test against a sample again.
  3. Press Save policy. If it fails, the drawer shows the reason ("Save failed" or the server's message).

To disable it (stop enforcing, keep it and its incidents):

  1. Open the policy, untick Enabled, and press Save policy.
  2. The catalogue shows off in the Enabled column. Agents stop applying it at their next policy refresh. Tick Enabled and save to turn it back on.

To delete it:

  1. Press the bin on the policy's row and confirm "Delete this policy?".
  2. A policy that has raised incidents is not deleted: the page shows "Policy has N incident(s); archive it instead of deleting it (archiving disables it on every agent and keeps the incident trail)." The console has no archive button in this release: disable the policy instead (above). It keeps the incident trail and stops enforcement.

32.4 Discovery (data at rest)#

Procedure: run a discovery scan#

Permission: Manage DLP. Risk: the agent reads every file under the paths; on a large share this takes time and disk I/O. Run large scans out of hours.

  1. Open DLP > Discovery. Under Start a discovery scan choose the Agent and enter Paths (comma separated).
  2. Press Start scan.
  3. Watch Recent scans (Name, Host, Status, Files scanned, Sensitive found, Completed); Refresh updates it.
  4. Read the Sensitive-file inventory: Host, Path, Rules, Detail, Size, SHA-256. CSV and JSON download it for the auditor.

Procedure: schedule discovery#

  1. In Scheduled discovery press New schedule.
  2. Set the cadence (Every N minutes - 15 or more, Daily, Weekly, Monthly (30 days)), the hosts (All hosts, Selected hosts, All hosts of a platform), and Paths ("empty = the platform defaults"). Leave Enabled ticked.
  3. Press Save schedule.

"No schedules. Discovery runs only when started by hand." until you create one.

Procedure: run, change, pause or delete a discovery schedule#

Permission: Manage DLP. Four-eyes: no.

  1. Open DLP > Discovery, section Scheduled discovery. Each row shows the name, hosts, paths, cadence, next run, last run and the last result.
  2. To run it now: press the play button (Run now). You see "<name>: N scan(s) dispatched".
  3. To change it: click the row. The drawer Edit discovery schedule opens; change the fields and press Save schedule.
  4. To pause or resume it: press disable (or enable) on the row. A paused schedule shows "(disabled)" after its name and no next run.
  5. To delete it: press the bin (Delete) and confirm "Delete schedule "<name>"?". Scans it already ran, and the inventory they built, are kept.

If it fails: "Run failed", "<name> could not be disabled" (or enabled), "<name> could not be deleted", with the reason.

Discovery scans themselves are kept as a record; there is no delete for a scan or for the sensitive-file inventory in the console.


32.5 Where is this file#

Find copies of a file across the estate.

  1. Open DLP > Where is this file.
  2. Enter a SHA-256 (64 hex characters), a Name contains fragment, and/or a Sample document (fingerprint, finds edited copies).
  3. Tick Search online agents live to ask the agents now, not only the inventory.
  4. Press Search.

Results: Host, Path, Matched by, Source. "No matches." means none was found in the inventory or on the online agents.


32.6 Enforcement status#

  1. Open DLP > Enforcement status and choose the host in Select host....
  2. The console asks the agent ("Querying the agent...") and shows each channel with what it can do, and Controls applied now (device rules with Device, Product, Decision, and blocked domains).

"not root (enforcement limited)" means the agent does not run with full privileges; blocking will not work on that host. "Agent did not answer: ... Enforcement status is unknown." means the host is offline.


32.7 If it fails#

SymptomCauseFix
Incidents say not stopped although the policy blocksThe channel cannot be enforced on that hostCheck Enforcement status for the host
No incidents at allPolicy disabled, out of scope, or no agentCheck Enabled, Scope, and the agent
Too many false positivesRules too broadAdd a threshold or proximity, add exceptions, test against samples
Discovery shows nothingWrong paths, or the agent cannot read themCheck paths and agent privileges