NIST SP 800-193 (Platform Firmware Resiliency Guidelines), explained
NIST SP 800-193, "Platform Firmware Resiliency Guidelines," is the primary free, vendor-neutral reference for building device and system firmware that can survive a destructive attack rather than just resist one. Authored by Andrew Regenscheid of NIST with technical input from engineers across Cisco, Dell, HPE, HP Inc., IBM, Intel, Microsoft and the NSA, it was published as Final in May 2018 and has not been revised since. Its own abstract frames the stakes directly: "A successful attack on platform firmware could render a system inoperable, perhaps permanently, or requiring reprogramming by the original manufacturer, resulting in significant disruptions to users." The guidelines are written for "system and platform device vendors," but explicitly extend "to other classes of systems with updatable firmware, including Internet of Things devices, embedded systems, and mobile devices" — scope that reaches well beyond the PC/server/network-device platforms used in its own worked examples.
Why a firmware security assessment should care
Most firmware security work focuses on finding a specific exploitable bug — a command injection or hard-coded credential in a running image. SP 800-193 asks a different, complementary question: when an attack on firmware succeeds anyway, can the device detect the corruption and recover without being bricked or physically reprogrammed by the manufacturer? That question matters for exactly the kind of multi-component embedded systems a firmware SBOM inventories — a platform's BIOS, embedded controller, BMC/management engine, NIC and GPU firmware can each have their own update path, and SP 800-193's guidance is organized device-by-device for precisely that reason.
Protection, Detection, Recovery — the three principles
Section 3.1 states the technical guidelines "are organized around" three principles:
| Principle | What it covers |
|---|---|
| Protection | Ensuring firmware code and critical data "remain in a state of integrity and are protected from corruption," primarily through authenticity and integrity checks on firmware updates |
| Detection | Mechanisms for detecting when firmware code and critical data "have been corrupted or otherwise changed from an authorized state" |
| Recovery | Mechanisms for "restoring Platform Firmware code and critical data to a state of integrity" once corruption is detected, or when an administrator forces recovery |
The document is explicit that Protection alone is not assumed to be sufficient: "While protection mechanisms are intended to prevent destructive or malicious attacks against platform firmware and critical data, these mechanisms may be imperfect or impractical to implement on all categories of devices. In those cases, detection and recovery mechanisms are intended to discover and remediate attacks to regain normal and secure operation on the device." Section 3.1 also notes Protection's scope "is similar in... purpose to the guidelines found in NIST SP 800-147, BIOS Protection Guidelines" — SP 800-193 generalizes that earlier, BIOS-only document's approach to the full set of platform devices.
The three resiliency tiers: Protected, Recoverable, Resilient
Section 3.2 defines platform-wide claims built from device-level guidelines, anchored to a platform's critical platform devices — those "necessary to minimally restore operation of the system, and sufficient to restore reasonable functionality":
- Protected — every critical device meets the Section 4.1/4.2 protection guidelines, but "may not fully offer capabilities to recover the device's firmware and/or critical data."
- Recoverable — every critical device meets the detection guidelines (Sections 4.1/4.3) and the recovery guidelines (Sections 4.1/4.4).
- Resilient — every critical device meets all of Section 4 (protection, detection and recovery together), and non-critical devices either meet the same bar or are isolated so that "a compromise of one of these devices will not impact the security of the platform as a whole."
A platform can be Protected without being Recoverable, and the tiers are not a strict ladder on every axis — Protected has no recovery obligation at all, which makes it a meaningfully weaker (and cheaper to implement) claim than Recoverable or Resilient.
Roots of Trust and the firmware update mechanisms
Section 4.1 organizes the rest of the guidelines around three logical components, each possibly distinct or shared: the Root of Trust for Update (RTU), responsible for authenticating firmware updates; the Root of Trust for Detection (RTD), responsible for corruption-detection capability; and the Root of Trust for Recovery (RTRec), responsible for recovery once corruption is detected or an administrator forces it.
Section 3.5 separates authentication (verifying an update image's source and integrity via digital signature, rooted in the RTU's key store) from authorization (permission to perform the update, "typically rooted in the device or system owner" rather than the manufacturer). Section 3.5.2 names five authorized update mechanisms:
- User-initiated updates — vendor-supplied utilities run from external media or the host OS.
- Managed updates — remote administrator-driven updates via management agents.
- Rollback — reverting to an earlier signed firmware version, explicitly framed as a defence: "this mechanism guards against attackers installing old firmware with known vulnerabilities" (implying rollback itself needs its own safeguards against abuse).
- Manual recovery — a physically-present user replacing a corrupted image with a known-good one.
- Automatic recovery — the device detecting corruption and restoring from a separately stored backup image on its own.
Section 3.5.3 adds secure local update, which authorizes a firmware change "through a process demonstrating unambiguous physical presence" instead of a signature chain — useful for recovering an image that cannot be reached through the authenticated-update path, but flagged with a sharp caveat: "remote mechanisms, such as interacting with a device or system via a remote console, do not satisfy this requirement for physical presence," and devices relying on it are themselves "potentially vulnerable to attacks by rogue administrators or other attacks with physical access to the device."
Automated vs. manual recovery, and the attack/recovery-cycle trap
Section 3.6.4 names three recovery modes — fully automated, partially automated, and manual — and flags a specific failure pattern worth calling out to anyone designing a recovery policy: "an administrator-defined policy may constrain the versions of firmware that may be installed during the recovery. Those who set recovery policies must do so with care. The firmware version set in the policy might well be the version that was successfully attacked necessitating the recovery. Simply rewriting the vulnerable version may lead to an attack/recovery cycle." The same section also recommends that recovery schemes "provide methods to retain or record attacked images and other information" where practical, since overwriting firmware in place can destroy forensic evidence of how the attack happened.
A workable starting point
- Inventory which devices in your platform are "critical" under Section 3.2's definition before claiming any tier — a platform is only as resilient as its weakest device that's actually needed to boot or restore function.
- Treat Protection, Detection and Recovery as three separate gaps to close, not one. A device with excellent signature-verified updates (Protection) but no way to detect silent corruption or recover from it (no Detection/Recovery) can still only claim "Protected," not "Recoverable" or "Resilient."
- Audit rollback and recovery policies for the attack/recovery-cycle trap described in Section 3.6.4 — a recovery mechanism that silently restores a known-vulnerable firmware version is not a fix.
- Use SP 800-193's device list (Section 2.1) as a checklist of components that often get missed in a firmware inventory beyond the main boot firmware: embedded controller/Super I/O, TPM, BMC/management engine, NIC and GPU expansion ROMs, and SPI flash.
SoftWSP's device and firmware security assessments evaluate whether a product's update, detection and recovery mechanisms actually hold up against SP 800-193's Protection/Detection/Recovery model, alongside the component-level vulnerability data in a firmware SBOM: see Device & Firmware Security.
This guide summarises NIST SP 800-193 (May 2018, Final); it is not a substitute for the full text and does not constitute compliance or legal advice.
More guides
Frequently asked questions
What is NIST SP 800-193?
"Platform Firmware Resiliency Guidelines," a NIST Special Publication authored by Andrew Regenscheid of NIST, with acknowledged technical contributions from engineers at Cisco, Dell, Hewlett Packard Enterprise, HP Inc., IBM, Intel, Microsoft and the National Security Agency. Its own abstract states it "provides technical guidelines and recommendations supporting resiliency of platform firmware and data against potentially destructive attacks." It was published as Final in May 2018 (finalized 4 May 2018, after a draft dated 30 May 2017), carries no later revision as of this guide's writing, and is available free of charge at its DOI, https://doi.org/10.6028/NIST.SP.800-193. Its stated audience is "system and platform device vendors of computer systems, including manufacturers of client, servers, and networking devices," while noting its principles "should be broadly applicable to other classes of systems with updatable firmware, including Internet of Things devices, embedded systems, and mobile devices."
What are the three resiliency principles in SP 800-193?
Section 3.1 states the guidelines "are based on the following three principles": Protection — "Mechanisms for ensuring that Platform Firmware code and critical data remain in a state of integrity and are protected from corruption, such as the process for ensuring the authenticity and integrity of firmware updates"; Detection — "Mechanisms for detecting when Platform Firmware code and critical data have been corrupted or otherwise changed from an authorized state"; and Recovery — "Mechanisms for restoring Platform Firmware code and critical data to a state of integrity in the event that any such firmware code or critical data are detected to have been corrupted, or when forced to recover through an authorized mechanism." The document notes protection mechanisms "may be imperfect or impractical to implement on all categories of devices," which is exactly why detection and recovery exist as separate, independently gradable properties rather than protection alone being the target.
What do 'Protected', 'Recoverable' and 'Resilient' mean for a platform?
Section 3.2 defines three platform-level resiliency properties built on top of a document-wide concept of 'critical platform devices' (the devices "necessary to minimally restore operation of the system, and sufficient to restore reasonable functionality"). Protected: "all critical platform devices must meet the protection guidelines found in Sections 4.1 and 4.2, but may not fully offer capabilities to recover the device's firmware and/or critical data." Recoverable: "all critical platform devices must provide the means to detect corruption... and provide the means to recover from this corruption." Resilient: "all critical platform devices must meet all of the guidelines in Section 4," with non-critical devices expected to meet the same bar or be isolated so a compromise of one "will not impact the security of the platform as a whole." The three are not synonyms for 'better' in sequence on every axis — Protected has no recovery requirement at all, while Recoverable and Resilient both require it.
What firmware update mechanisms does SP 800-193 describe?
Section 3.5 splits updates into authentication (verifying a firmware image's source and integrity via digital signatures, rooted in a Root of Trust for Update holding a public key or its hash) and authorization (permission to perform the update, typically rooted in the device or system owner, not the manufacturer). Section 3.5.2 lists five authorized update mechanisms: user-initiated updates, managed (remote administrator) updates, rollback to an earlier signed version as a defence against reintroducing known vulnerabilities, manual recovery requiring physical presence, and automatic recovery from a separately stored backup image. Section 3.5.3 adds secure local update — authorizing an update "through a process demonstrating unambiguous physical presence" rather than a signature chain — with an explicit warning that "remote mechanisms... do not satisfy this requirement for physical presence" and that such local-update paths are themselves "potentially vulnerable to attacks by rogue administrators or other attacks with physical access to the device."