TrustnGo

Securing Embedded Linux Systems with Yocto

3 days · On-site or remote · Knowledge of Yocto Linux

A complete technical training to harden a Yocto-based embedded Linux system: from applied cryptography and the hardware chain of trust through to kernel, userspace, service and network security hardening.

Program

Day 1

Threats and regulatory framework

  • Overview of cyber threats to connected products
  • Secure-by-design and secure-by-default principles: defense in depth, least privilege
  • Cyber Resilience Act: scope, objectives, product categories
  • Split of responsibilities between manufacturer, importer and distributor
  • Enforcement timeline and penalties
  • Threat modeling, STRIDE

Exercise: bootstrapping a Yocto project

Applied cryptography

  • Cryptographic services and their limits
  • Integrity: hashing and message authentication codes
  • Confidentiality: symmetric and asymmetric encryption
  • Authenticity: digital signature and public-key infrastructure (PKI)
  • Secret robustness and randomness generation
  • Operational secret management in production

Chain of trust: from hardware to the rootfs

  • Hardware attacks and physical threat model
  • Hardware roots of trust: OTP, TPM, secure enclaves (TEE, TrustZone)
  • Secure boot, chain of trust from the first executed code
  • Trusted execution environment (TEE) and software trust module (fTPM)
  • Root filesystem integrity and confidentiality

Exercise: building a verified boot sequence, with root filesystem integrity and confidentiality

Day 2

Hardening the toolchain and the code

  • Compilation chain components, stripping debug symbols
  • Classic memory vulnerabilities (buffer overflow, use-after-free)
  • Compiler hardening options
  • Dynamic detection with instrumentation tools (sanitizers)
  • Static analysis and fuzzing
  • Secure coding best practices

Exercise: finding and fixing vulnerabilities

Secure distribution and CRA requirements

  • Minimizing the image and its features
  • Choosing a long-term support (LTS) distribution and maintenance cycle
  • Software bill of materials (SBOM) generation and formats
  • Vulnerability tracking and prioritization (CVE, CVSS, EPSS)
  • CRA notification obligations
  • Securing updates (firmware over-the-air, OTA)

Exercise: generating an SBoM and applying a patch

Hardening the Linux kernel and the bootloader

  • Bootloader hardening
  • Kernel and command-line signature verification
  • Security-oriented kernel configuration options
  • Runtime system parameters (sysctl)
  • Kernel module signing
  • Automated hardening verification

Exercise: secure kernel configuration (CONFIG_*, sysctl, cmdline) and functional testing

Day 3

Hardening the userspace

  • Unix permissions, setuid/setgid bits, file capabilities
  • Partitioning and mount options
  • Accounts, passwords and pluggable authentication (PAM)
  • Securing remote access
  • Linux Security Modules
  • Namespaces and control groups (cgroups) as complementary isolation

Exercise: manipulating file access rights, checking the consistency of the resulting filesystem

Hardening services, logging and audit

  • Reducing a service's starting privilege
  • Sandboxing directives of the service manager
  • System call filtering (seccomp)
  • Assessing the hardening level
  • Logging and log integrity
  • Kernel audit (auditd)

Exercise: assessing then reducing the rights granted to a service, setting up a monitoring rule

Network security

  • Principles and network exposure surface
  • Network isolation and segmentation
  • Firewalling and traffic filtering
  • Secure communication protocols (TLS, mTLS)
  • Network authentication frameworks
  • Network penetration testing (pentest)

Exercise: checking then strengthening the security of a network-exposed service

Let's work together

Get a Price Quote

I'm interested in