Join our Newsletter — 33% off our NHI Course

How does non-persistence work?

Non-persistence means systems are designed to discard changes after use, so a compromise leaves fewer lasting artefacts. It is common in immutable or reimaged environments where each session starts clean. Defenders should ensure data is stored elsewhere, validate rebuild processes, and confirm attackers cannot alter the base image or runtime state.

What non-persistence is actually doing

Non-persistence is a design choice that makes the runtime disposable. The system is expected to forget local changes, so an attacker who gains access is less likely to leave durable implants, modified binaries, or long-lived configuration drift behind. That makes the model especially useful where rebuild speed and state control matter more than preserving changes on the host itself.

The practical effect is that trust shifts away from any one machine instance and toward the rebuild path, the image pipeline, and the systems that hold the real state. If the base image, launch process, or orchestration layer is compromised, the “clean restart” property stops being protective and can instead become a repeatable way to reintroduce the same compromise.

Where non-persistence helps, and where it does not

Non-persistence helps most against local tampering, dormant malware, and many forms of post-compromise persistence because the compromised instance is not meant to be the long-term source of truth. It is common in immutable hosts, ephemeral workloads, desktop reimaging, and similar designs where replacement is safer than repair.

It does not solve data exposure by itself. If attackers can reach backing storage, management APIs, secrets stores, or the image registry, they may still extract data, alter the next rebuild, or gain the same access again after restart. The control is therefore about limiting dwell time and reducing residue, not about making compromise impossible.

What defenders need to verify before they trust it

Non-persistence only works when the rebuild path is trustworthy and the system has a clear home for the state that must survive restarts. That means logs, customer data, configuration, and secrets should be intentionally separated from the disposable runtime, with strong controls around how those dependencies are written, read, and refreshed.

It also means the environment must truly start from a known-good image. If the image can be altered, if startup scripts can be modified, or if runtime settings are allowed to drift without being reset, the environment may look disposable while quietly preserving attacker influence across sessions.

Risk and Threat Considerations

Non-persistence reduces dwell time, but it can also hide compromise if teams assume a reboot is the same as remediation. The biggest risk is false reassurance: attackers may use the disposable host for short-lived abuse while keeping access through surrounding systems, or they may target the image and provisioning chain so every “fresh” instance inherits the same weakness.

Failure mechanism: The design fails when the trusted rebuild path is not actually trusted, or when sensitive state is kept on persistent dependencies that attackers can reach. In that case, the attacker does not need to survive on one host; they only need to influence the next boot, the next image, or the next credential fetch.

Impact: The result is repeated reinfection, hard-to-detect persistence, or silent reentry after every rebuild. Operations may see healthy replacement events while the adversary keeps regaining execution through the same upstream control plane or retained data source.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

NIST SP 800-53 Rev 5 and CIS Controls v8 set the governance and control requirements practitioners need to meet.

Framework Control / Reference Relevance
NIST SP 800-53 Rev 5 CM-2 — Baseline Configuration Non-persistence depends on known-good rebuild baselines.
CM-3 — Configuration Change Control Image and startup changes can defeat disposable-host assumptions.
SI-7 — Software, Firmware, and Information Integrity Integrity checking supports trust in the base image and rebuild path.
Recommendation — Establish approved baselines and restore them on every rebuild. Restrict and review changes to images, launch scripts, and runtime settings. Verify integrity of images and launch artifacts before deployment.
CIS Controls v8 CIS-4 — Secure Configuration of Enterprise Assets and Software Immutable or reimaged systems rely on hardened, repeatable configurations.
CIS-3 — Data Protection Persistent data must be separated from disposable runtime state.
Recommendation — Standardise secure build images and reapply them consistently. Store durable data and secrets in protected systems, not on ephemeral hosts.

Practitioner Guidance

What to verify: Confirm that persistent storage, image repositories, and secret delivery are protected separately from the disposable runtime, and that a rebuilt instance cannot inherit altered local state. If the rebuild process cannot be demonstrated end to end, the non-persistence claim is only partial.

Decision rule: If a compromise could affect the base image, automation pipeline, or credential source, treat rebuild as recovery support, not as containment. If the only thing that changes on reboot is the hostname, the environment is not meaningfully non-persistent.

What good looks like: A clean rebuild returns the system to a known state, rehydrates only approved data, and removes local artefacts without losing evidence needed for investigation. That is the balance defenders want: disposable execution, durable trust in the sources that recreate it.

Practitioner takeaway: Non-persistence is strongest when the runtime is disposable but the trust anchor is not, so the real question is whether your image, orchestration, and state dependencies are harder to alter than the host itself.