Firmware, roots of trust, and Linux internals

Platform security learning path

Modern platform security sits at the intersection of hardware, firmware, operating systems, management controllers, cryptography, and cloud infrastructure. A strong engineer in this space should understand isolated components such as BIOS, UEFI, TPM, BMC, and the Linux kernel, and also how they form a complete chain of trust from silicon initialization to workload execution.

For engineers moving deeper into low-level platform trust.

This path is designed for engineers who already have exposure to hardware security, secure boot, root of trust, PKI, cryptography, systems security, or cloud infrastructure, and want to deepen their understanding of low-level platform internals.

01

Linux kernel internals

Start where hardware, firmware, drivers, and security boundaries meet.

The Linux kernel connects hardware, firmware, drivers, memory, interrupts, devices, filesystems, networking, containers, and security boundaries. Kernel fluency makes it easier to reason about secure boot, device trust, DMA attacks, kernel exploitation, attestation, virtualization, and cloud infrastructure.

Recommended topics

  • Kernel architecture, process scheduling, syscalls, and modules
  • Virtual memory, page tables, interrupts, and exceptions
  • Device drivers, PCIe, DMA, IOMMU, and filesystems
  • Kernel debugging, eBPF, hardening, and exploit mitigations

Recommended resources

  • Linux kernel documentation and kernel hacking guides
  • Linux Foundation kernel development and internals courses
  • Bootlin Embedded Linux and kernel driver development courses

Best hands-on project: build and boot a custom Linux kernel in QEMU. Write a simple kernel module, add logging, expose a sysfs interface, and debug it with gdb, dmesg, ftrace, and perf.

02

BIOS, UEFI, and platform firmware

Understand the bridge between platform initialization and OS boot.

UEFI is essential for anyone working on Secure Boot, firmware signing, TPM measurements, capsule updates, boot policies, and root-of-trust systems.

Recommended topics

  • SEC, PEI, DXE, BDS, runtime phases, drivers, and applications
  • UEFI variables, Secure Boot keys, firmware volumes, and capsule updates
  • SMM, measured boot, TPM event logs, bootloaders, and OS handoff

Recommended resources

  • TianoCore and EDK II
  • TianoCore documentation and EDK II learning material
  • QEMU system emulation documentation

Best hands-on project: build OVMF from EDK II, boot it in QEMU, enable Secure Boot, enroll custom keys, sign a bootloader, and inspect UEFI variables before and after boot.

03

TPM 2.0 and measured boot

Connect boot evidence to remote verification.

Secure Boot answers whether something was allowed to boot. Measured boot answers what actually booted. TPM-based attestation connects firmware state, bootloader state, kernel state, and remote verification.

Recommended topics

  • PCRs, event logs, EK, AK, TPM quotes, and NV indexes
  • Sealing, unsealing, policy-based authorization, and remote attestation
  • Measured boot and TPM-backed key protection

Recommended resources

  • Trusted Computing Group TPM 2.0 Library Specification
  • tpm2-tools documentation and source repository

Best hands-on project: use swtpm with QEMU, boot a Linux VM with a virtual TPM, inspect PCR values, seal a secret to specific PCRs, change the boot path, and observe unsealing fail when measurements change.

04

BMC, ILOM, Redfish, IPMI, PLDM, and MCTP

Study the out-of-band control plane for server security.

Baseboard management controllers control power, firmware updates, sensors, host recovery, remote console, inventory, and out-of-band management. Vendor stacks such as ILOM, iLO, and iDRAC are built around the same broad management concepts, even when implementations differ.

Recommended topics

  • BMC architecture, host-BMC communication, Redfish, IPMI, PLDM, and MCTP
  • Sensor monitoring, firmware update flows, power control, and serial-over-LAN
  • BMC authentication, authorization, supply-chain risk, and host trust boundaries

Recommended resources

  • OpenBMC and OpenBMC documentation
  • DMTF Redfish standard
  • DMTF MCTP and PLDM specifications

Best hands-on project: run OpenBMC in an emulated environment, interact with it using Redfish APIs, inspect D-Bus services, simulate host state transitions, and study how firmware update workflows are modeled.

05

Platform hardware foundations

Build the hardware model that firmware and kernel security rely on.

Platform security requires knowing how CPUs reset, how memory is initialized, how devices access memory, how interrupts are routed, and how privileged execution modes interact.

Recommended topics

  • CPU reset flow, x86-64 rings, SMM, VMX, virtualization, and microcode
  • PCIe, MMIO, DMA, IOMMU / VT-d, ACPI, SMBus, I2C, SPI flash, and eSPI
  • NUMA, memory training, Boot Guard, and hardware roots of trust

Recommended resources

  • Intel 64 and IA-32 Architectures Software Developer's Manuals
  • QEMU system emulation documentation

Best hands-on project: create a QEMU-based lab with OVMF, Linux, virtual PCI devices, and a virtual TPM. Trace the boot flow from firmware to bootloader to kernel, then inspect how devices appear through PCI enumeration, ACPI tables, and kernel logs.

06

Reverse engineering and firmware security

Learn to reason about opaque firmware and boot-chain attack surfaces.

Reverse engineering is essential for understanding closed firmware, bootloaders, binary drivers, and attack surfaces that are not visible from source code. It also improves review of firmware update mechanisms, cryptographic verification paths, and platform initialization logic.

Recommended topics

  • x86-64 and ARM assembly, calling conventions, PE/COFF, and ELF
  • UEFI binaries, bootloaders, firmware volumes, static analysis, and debugging
  • Symbol recovery, vulnerability discovery, and firmware parser fuzzing

Recommended resources

  • OpenSecurityTraining2 courses
  • EDK II source code for real UEFI modules and firmware build structure

Best hands-on project: extract an OVMF firmware image, identify firmware volumes, locate UEFI drivers, open modules in Ghidra, and trace how a selected DXE driver initializes.

07

Linux hacking, exploitation, and hardening

Pair offensive understanding with defensive kernel hardening.

Linux hacking should be approached from both offensive and defensive perspectives. The goal is not just to exploit bugs, but to understand why bugs exist, how attack surfaces are exposed, and how modern mitigations work.

Recommended topics

  • Kernel memory corruption, use-after-free bugs, race conditions, and driver bugs
  • Capabilities, namespaces, cgroups, LSM, seccomp, and syscall attack surface
  • KASLR, SMEP, SMAP, KASAN, UBSAN, Syzkaller, fuzzing, and mitigation bypasses

Recommended resources

  • Linux kernel documentation and kernel hacking guides
  • Linux Foundation kernel internals training
  • Bootlin kernel driver training

Best hands-on project: write a deliberately vulnerable kernel module, trigger the bug from user space, observe the failure with KASAN enabled, then patch the module and verify the fix.

08

Conferences, talks, and community learning

Stay current through the communities publishing real-world lessons.

After the fundamentals, the fastest way to stay current is to follow communities where firmware, kernel, platform security, and cloud infrastructure engineers publish practical lessons.

Recommended communities

  • Open Source Firmware Conference
  • Linux kernel and embedded Linux communities
  • OpenBMC, TianoCore, DMTF Redfish, and OpenSecurityTraining2 communities

Recommended habit

Watch conference talks with a lab notebook open. For every useful talk, extract one concept and turn it into a small reproducible experiment.

A practical order for building deep platform-security skill.

  1. Linux kernel internals
  2. Kernel modules and device drivers
  3. UEFI and EDK II
  4. Secure Boot and measured boot
  5. TPM 2.0 and attestation
  6. BMC architecture and OpenBMC
  7. Redfish, PLDM, MCTP, and server management protocols
  8. PCIe, DMA, IOMMU, ACPI, and CPU architecture
  9. Firmware reverse engineering
  10. Kernel exploitation, fuzzing, and hardening

This order starts with the operating system, moves downward into firmware and hardware trust, then comes back upward into management, attestation, exploitation, and defense.

Build a miniature server trust chain.

The best way to connect these topics is to build a small, reproducible trust-chain lab that includes QEMU full-system emulation, OVMF from EDK II, custom Secure Boot keys, a signed bootloader, a signed Linux kernel, virtual TPM with swtpm, measured boot into PCRs, event-log inspection, secret sealing and unsealing, a remote attestation verifier, OpenBMC simulation, Redfish-based host management, a firmware update experiment, a kernel module experiment, and basic firmware reverse engineering.

Can a remote verifier determine whether this machine booted the expected firmware, bootloader, kernel, and configuration before releasing a sensitive secret?

That single question ties together BIOS, UEFI, TPM, BMC, Linux kernel internals, cryptography, secure boot, measured boot, attestation, firmware updates, and cloud-scale hardware security.

The complete platform is the mental model.

The most valuable platform-security engineers are not limited to one layer. They understand how hardware initializes, how firmware establishes trust, how the bootloader transfers control, how the kernel manages devices and memory, how the BMC manages the server out-of-band, and how cryptographic evidence can verify system state remotely.

The goal is not to memorize every specification. The goal is to build a mental model of the complete platform: silicon, firmware, boot chain, operating system, management controller, and remote verifier.