Intel ME
What It Is
The Intel Management Engine (ME) is a separate processor embedded in Intel's Platform Controller Hub (PCH) -- the chip that connects the CPU to USB, SATA, Ethernet, and other I/O. Every Intel CPU shipped since 2008 has one. You cannot buy an Intel system without it.
The ME runs its own firmware on its own processor, with its own dedicated memory, completely independent of the main CPU. It operates whenever the system has power (plugged in), even when the computer is "off" (S5 soft-off state) or in sleep/hibernate. The main CPU has no visibility into what the ME is doing.
Intel rebranded the ME to "CSME" (Converged Security and Manageability Engine) around 2015, and server platforms have a variant called "SPS" (Server Platform Services). Same hardware, different firmware payloads.
How It Works
Hardware
- ME 1-5 used an ARCTangent-A4 processor
- ME 6-10 used an ARCompact (ARC) processor
- ME 11+ (Skylake, 2015 onward) uses an x86 32-bit core
The processor has its own SRAM and runs from firmware stored on the SPI flash chip (the same chip that holds the UEFI firmware, but in a separate region).
Operating System
ME versions 1-10 ran ThreadX RTOS. ME 11+ runs a modified MINIX 3 operating system. Intel selected it for its microkernel architecture and small footprint. The ME firmware is signed and encrypted by Intel -- it cannot be independently audited, replaced, or verified by the machine's owner.
What It Can Do
RAM access: The ME has full read/write access to host memory via DMA (Direct Memory Access), bypassing the CPU entirely. The main CPU cores have no knowledge of these accesses. The ME can read any byte of your RAM -- passwords, encryption keys, anything in memory.
Network access: The ME has its own MAC address and direct access to the Ethernet controller. It intercepts a portion of network traffic before the host OS sees it. It can send and receive packets independently of the OS, bypassing the OS firewall. It operates on the network even when the OS is not running.
Always on: The ME runs whenever the system has standby power. Plugged in but "off"? ME is running. Sleeping? ME is running. Hibernated? ME is running. Only physically disconnecting power stops it.
Privilege level: CPUs have nested privilege levels called "rings." Each ring has complete power over the rings above it. Ring 0 is the OS kernel (controls all software). Ring -1 is the hypervisor (controls the kernel itself). Ring -2 is SMM/firmware (controls the hypervisor). The ME operates at Ring -3 -- below everything, controlling even the firmware. Nothing on the system can inspect or override the ME.
AMT (Active Management Technology)
AMT is a software feature that runs on top of the ME, available only on Intel vPro-branded chips (business/enterprise). Consumer chips have ME but not AMT. You can have ME without AMT, but not AMT without ME.
AMT provides:
- Remote power control -- Power on, power off, reset, boot to specific device. Works even when the OS is hung or not installed.
- KVM Remote Desktop -- Full keyboard/video/mouse access to the console, independent of the OS. Works during BIOS/boot, before any OS loads.
- Serial over LAN (SOL) -- Remote serial console. Useful for headless servers and boot debugging.
- IDE Redirection (IDER) -- Mount a remote ISO as if it were a local CD-ROM. Boot from a remote disk image without PXE.
- Remote OS install -- Combine IDER + KVM to reinstall an OS remotely.
- Hardware inventory and alerts -- Report hardware details, send alerts (chassis intrusion, thermal events) out-of-band.
AMT communicates via ports 16992 (HTTP) and 16993 (HTTPS) using the SOAP/WS-MAN protocol. It has its own TLS stack and certificate management, independent of the OS.
Security Considerations
Massive attack surface: The ME runs a full OS (MINIX 3) with a network stack, web server (for AMT), Java runtime (removed in recent versions), and DMA access to all RAM. Multiple critical vulnerabilities have been found: SA-00086 (2017), SA-00125 (2018), SA-00213 (2020) -- some allowing remote code execution on the ME.
Unauditable: The ME firmware is signed and encrypted by Intel. Independent security researchers cannot fully audit it. Trust is based on Intel's assurance, not verifiable evidence.
Always-on attack vector: Because the ME operates when the system is "off" and has network access, it's an always-available target. A compromised ME persists across OS reinstalls, disk wipes, and even disk replacements.
Positive Technologies research (2017): Security researchers at Positive Technologies reverse-engineered ME 11 firmware and discovered the undocumented HAP (High Assurance Platform) bit -- an internal flag that disables the ME after hardware initialization. Intel confirmed this was developed for the NSA's "High Assurance Platform" program. The NSA wanted Intel chips where the ME would not run during normal operation.
The HAP Bit
Setting the HAP bit (ME 11+) or the AltMeDisable bit (ME < 11) causes the ME to complete hardware initialization and then enter a disabled state. It does not run its network stack, remote management features, or runtime services. This is the most effective mitigation available on stock firmware.
me_cleaner
me_cleaner is a Python tool that strips all non-essential ME firmware modules. On pre-Skylake systems, it reduces the ME firmware from ~1.5 MB (consumer) or ~5 MB (AMT) down to ~90 KB. The remaining stub is just enough for hardware initialization.
With the -S flag, me_cleaner also sets the HAP/AltMeDisable bit. Using both
together (strip + disable) provides defense in depth: even if the disable bit
fails, the ME lacks the modules to do anything meaningful.
Limitation: me_cleaner only works on systems without Intel Boot Guard. Boot Guard requires an intact ME to verify firmware signatures -- stripping the ME breaks the Boot Guard chain and the system won't POST.
coreboot
The coreboot project uses me_cleaner to strip ME firmware and sets the HAP/AltMeDisable bit. System76 has successfully disabled ME on laptops through 13th generation (Raptor Lake) Intel processors using this approach.
Network-Level Blocking
On LANs the org controls, ME's network activity can be blocked at the switch
or firewall level. AMT uses ports 16992-16993 and has its own MAC address
(distinct from the host NIC's MAC). Firewall rules can block these ports
and/or the ME's MAC, preventing ME from reaching the network even if the
firmware isn't neutralized. This is a defense-in-depth layer for neutralize
policy deployments -- block at the firmware level (me_cleaner/HAP) AND at
the network level. On untrusted networks (hotel Wi-Fi, public internet),
the org doesn't control the switches, but the ME's traffic is still limited
to the local segment unless AMT is explicitly configured with a gateway.
How FortrOS Uses It
FortrOS treats the ME as a resource controlled by org policy:
Policy: use -- During enrollment, the maintainer provisions AMT (sets
admin credentials, configures the network interface). AMT credentials are stored
encrypted in org state. The org can remotely power-cycle unresponsive nodes,
access the console for debugging, and force PXE boot for re-provisioning. This
enables self-healing: the org detects a node failure, uses AMT to reboot it,
and the node re-enrolls automatically via its local preboot.
Policy: neutralize -- During provisioning, apply me_cleaner and/or set
the HAP bit. Document the resulting firmware state in the node's metadata. No
remote management capabilities available. Suitable for government, high-security,
and air-gapped deployments.
Policy: ignore (default) -- Don't touch the ME, don't depend on it. The
ME runs whatever firmware the vendor shipped. FortrOS makes no assumptions
about its state. Suitable for homelab and general use where ME is a non-concern.
Alternatives
AMD systems: Have the AMD PSP instead, which lacks the network stack and remote management features. For remote management on AMD, the equivalent is AMD DASH (a software/protocol standard), not a hardware co-processor.
coreboot hardware: System76 laptops, some Chromebooks, select server boards. These can run coreboot with ME neutralized. See 01 Power and Firmware for how FortrOS handles coreboot.
RISC-V: Has no ME or PSP equivalent. The instruction set is open, and no vendor-mandated management processor exists. The ecosystem is immature for server/desktop use but represents a long-term alternative for users who want fully auditable hardware.
ARM servers: Arm SystemReady platforms (Ampere Altra, etc.) have their own platform management (BMC), but these are typically discrete chips with known firmware, not hidden co-processors.
Links
- Intel ME - Wikipedia
- Positive Technologies: Disabling Intel ME 11
- me_cleaner -- ME firmware stripping tool
- Igor Skochinsky - Intel ME Secrets (2014 talk)
- Intel AMT