Drift Monitoring

Fingerprint baselines, drift detection, and resolution

Capture the known-good state of every host and detect unauthorized or accidental changes before they become incidents. This guide covers policy creation, baseline capture, drift response, and scheduled checks.

Technical Manual
Status: Available

Prerequisites

  • Role with fingerprints.view permission for viewing policies and drift events
  • Role with fingerprints.manage permission for creating/editing policies and capturing baselines
  • Target hosts must be online with active agents reporting heartbeats
  • At least one organization configured in your account

Creating a fingerprint policy

Fingerprint policies define which categories of host state to monitor and how frequently to check for changes. Each organization can have one default policy.

  1. Navigate to Fingerprints > Policies
  2. Click Create Policy
  3. Select the target organization
  4. Choose categories to monitor from the 18 available, grouped by tier (see category reference below)
  5. Optionally override the default severity for individual categories
  6. Set the check interval (default: 24 hours)
  7. Set the drift alert severity (default: warning)
  8. Optionally attach custom fingerprint scripts for application-tier checks
  9. Toggle Set as default if this should be the org-wide policy
  10. Click Save
One default per org Only one policy can be marked as default per organization. Setting a new default automatically clears the flag on the previous one.

Fingerprint category reference

Categories are grouped into three tiers reflecting their operational impact when drift is detected.

Tier 1 -- Critical

CategoryWhat it captures
servicesRunning services, startup type, service accounts
portsListening TCP/UDP ports and bound processes
local_accountsLocal user accounts, enabled/disabled, group membership
local_groupsLocal security groups and their members
installed_softwareInstalled applications with version numbers
disk_spaceVolume capacity, free space, mount points

Tier 2 -- Medium

CategoryWhat it captures
scheduled_tasksScheduled tasks / cron jobs with triggers and actions
environment_variablesSystem-level environment variables
firewall_rulesFirewall rules (iptables, Windows Firewall, pf)
dns_configDNS resolver configuration, search domains
network_interfacesNetwork adapters, IP addresses, MAC addresses
startup_programsAuto-start programs (registry Run keys, systemd, launchd)

Tier 3 -- Informational

CategoryWhat it captures
registry_keysMonitored registry hives (Windows only)
system_infoOS version, kernel, hostname, domain membership
certificatesInstalled certificates with expiry dates
security_policiesLocal security policy settings (password policy, audit policy)
sharesNetwork shares and permissions
printersInstalled printers and print queues

Editing a fingerprint policy

  1. Navigate to Fingerprints > Policies
  2. Click the policy name to open the detail view
  3. Modify categories, check interval, severity, or custom scripts
  4. Click Save
Editing does not retroactively update baselines If you add new categories, you must re-capture baselines on affected hosts to start tracking those categories.

Capturing a fingerprint baseline

Baselines are the known-good reference state. All subsequent captures are compared against the baseline to detect drift.

  1. Navigate to Fingerprints > Hosts
  2. Select a host from the list
  3. Click Capture Baseline
  4. The system dispatches a fingerprint check job to the agent
  5. Once the job completes, the baseline JSON is stored and timestamped
When to capture baselines Capture baselines after approved build milestones, hardening completion, or major change windows. Avoid capturing baselines on hosts in an unknown or degraded state.

Each host stores one baseline at a time (unique per host). Subsequent captures replace the previous baseline and generate drift events for any differences detected.

Drift detection

When a new fingerprint capture runs against a host that already has a baseline, the system performs a per-category diff. Any differences are recorded as drift events with the following attributes:

CategoryWhich fingerprint category changed (e.g., services, ports)
TierTier level of the category (1 = critical, 2 = medium, 3 = info)
SeverityEffective severity (may be overridden per-category in the policy)
Change DetailsDiff showing exactly what was added, removed, or modified
StatusOne of: new, acknowledged, accepted, or resolved

Responding to drift events

Navigate to Fingerprints > Drift Events to review all detected changes.

  1. Review the drift event details: category, tier, severity, and the detailed diff
  2. Choose one of three response actions:
ActionEffectWhen to use
AcknowledgeMarks the event as reviewed. No baseline change.You are aware of the change and investigating
AcceptAccepts the change as the new baseline. Updates the stored baseline data.The change was intentional and should persist
ResolveMarks drift as resolved without accepting it into the baselineThe change has been reverted or remediated
Do not ignore drift events Drift events left in new status indefinitely create noise and obscure real issues. Establish a review cadence to process drift events within 24-48 hours.

Scheduled fingerprint checks

The fingerprint system runs on a background scheduler. For each policy, the system automatically dispatches fingerprint check jobs at the configured check interval.

Check IntervalHow often to re-check hosts (default: 24 hours). Shorter intervals catch drift faster but increase agent load.
Drift Alert SeveritySeverity level assigned to drift alerts (default: warning). Set to critical for high-value servers.

Scheduled checks follow the same baseline comparison flow: if a baseline exists, diffs are computed and drift events created. If no baseline exists yet, the first scheduled check becomes the baseline.

Policy configuration reference

FieldTypeDefaultDescription
OrganizationSelectionRequiredOrganization this policy applies to
CategoriesMulti-selectAll 18Which categories to monitor (see reference above)
Check Interval (hours)Number24Hours between automated checks
Drift Alert SeveritySelectionwarningSeverity for drift alerts: info, low, medium, warning, high, critical
Category OverridesPer-categoryNonePer-category severity overrides (e.g., set "services" to critical)
Custom ScriptsMulti-selectNoneScripts for custom application-tier fingerprint checks
Set as DefaultYes/NoNoWhether this is the default policy for the org
EnabledYes/NoYesEnable or disable the policy without deleting it

Permissions reference

ActionPermission
View fingerprint policies and drift eventsfingerprints.view
Create, edit, or delete policiesfingerprints.manage
Capture baselinesfingerprints.manage
Acknowledge, accept, or resolve driftfingerprints.manage

Drift monitoring lifecycle

Create Policy Capture Baseline Scheduled Check Detect Drift Acknowledge / Accept / Resolve

Troubleshooting

SymptomCauseFix
Fingerprint capture stuck in pendingAgent offline or job not completingCheck the Jobs page for the fingerprint check job status. The host must be online.
Drift events showing as "new" indefinitelyNo one has reviewed themAcknowledge or accept drift events to clear them from the queue.
New categories not being checkedPolicy updated but baseline not re-capturedRe-capture baselines on affected hosts after adding categories.
Scheduled checks not runningPolicy is inactive or no hosts in the orgVerify the policy is enabled and that hosts have agents reporting heartbeats.