03-14, 19:00–19:20 (UTC), Dasharo vPub
An important question everyone should be concerned with is whether the expected version of the Operating System running was loaded without alteration when it was loaded into memory. A corollary to that is how much code must be trusted in order to trust the answer. When the answer to that is one must trust every piece of code that executed and all devices, the conclusion is there be a better way. To that, the answer is yes, and the solution is Dynamic Launch. This is why even Microsoft is leveraging Dynamic Launch as a cornerstone to their high security platform, Secured Core. The TrenchBoot project seeks to bring ubiquitous access to this capability to the Open Source community.
To bring access to Dynamic Launch, a goal of the TrenchBoot project is to make Open Source kernels aware of how to be launched using a platform's Dynamic Launch capability. The reality is that the project cannot work on every possible kernel, nor may it be appropriate to enlighten certain kernels. Despite these circumstances, the security architecture for these systems could still benefit from being loaded with a Dynamic Launch. For instance, to meet supply chain verification requirements. While the trust chain for a Dynamic Launch intermediate loader is slightly longer than when the kernel itself is directly launched by the Dynamic Launch Event, it is still multiple orders of magnitude shorter than the UEFI Secure Boot(SRTM) trust chain.
Universal Secure Loader (USL, pronounced uṣūl) provides a single binary that can perform a Dynamic Launch of OS kernels using either the Linux or both Multiboot protocols. USL can be built to boot on either BIOS/CSM or UEFI environments, and takes care of booting through a Dynamic Launch into the intermediate loader environment. A configuration file is used by USL to control what inspectable aspects about the environment will be measured, along with what target kernel will be measured and loaded. As it proceeds to boot the target kernel, USL will close the Dynamic Launch environment.
The talk will introduce USL, with a top-level view of its intended use and how it may be leveraged for supply chain security. After establishing this understanding, a break-down of the components used in USL will be presented. This will include a review of how Linux Secure Launch works, along with a brief introduction to u-root, specifically the TrenchBoot slunit capability. The talk will move on to an explanation of how to deploy and configure USL, with a demonstration of USL being used to do a Measured Launch of an Operating System that is not aware of Dynamic Launch. The talk will conclude with a discussion of USL benefits for platform manufacturers, OEMs and business customers who can fund improvements in open-source launch integrity, supply chain security and the integrity of critical systems under constant attack.
See also: