OSFC 2024 Opening Event + Open-Source Firmware Foundation Yearly Update
This talk gives a status update on the current activities of the Open Source Firmware Foundation.
Discrete TPMs are tamper resistant physical devices containing a cryptographic coprocessor with on-chip secret storage and system state attestation functionality. While making the direct extraction of root key material using physical and electrical means rather difficult, when integrated into systems to provide secret storage, their nature of being external to the main processor opens up these systems to a different class of practical attacks.
Most well-known attacks against such systems target the bus between the processor and the TPM using passive sniffing and active interposer techniques (e.g. TPMGenie). In addition to discussing the continued effectiveness of well-known attacks, this talk will highlight a series of less well-known, but still highly practical attacks that focus on subverting the TPM’s knowledge of system state, either via physical means or by taking advantage of software mistakes.
These attacks include the recently disclosed “TPM GPIO fail” vulnerability that subverts the TPM’s knowledge of system state purely from software, allowing a software attacker in control of a system in any state to extract secrets sealed by “trusted” operating systems.
Learn about the cutting edge work that is happening in verifying isolation guarantees and timer correctness in Tock OS. Tock is an operating system written in Rust for low-power microcontrollers. You will learn about our progress proving that isolation guarantees are met by the system using formal methods.
The concept of virtualization is almost as old as computer science itself, with a rich history of intertwined software and hardware evolution. Today virtualization is ubiquitous, and serves as the building block of software deployment and isolation.
This talk explores a wild idea: what if we tried to virtualize the firmware? Is it possible? What does virtualizing the firmware even mean? How can it be useful?
While we walk down the memory lane answering those questions, we will rediscover old theorems, clever software tricks, and the limitations of hardware. We will explore the virtualization of M-mode firmware on RISC-V, and present the design of Miralis, a security monitor that virtualizes RISC-V firmware.
Despite being a vital component of every computing stack, system firmware has been mostly obscure and inaccessible to academic researchers for several decades. With the advent of open-source firmware implementations for major platforms in the consumer and datacenter spaces, new possibilities for researchers arise. Crucially, most works so far focused on security aspects, as vulnerabilities and supply chain attacks at the firmware level can have devastating implications for users and businesses alike. In this talk, I want to shed light on how other areas of systems research can benefit from open-source firmware by sharing some of the the work-in-progress efforts being done at our operating systems research lab at Karlsruhe Institute of Technology (KIT). I will begin with insights and experiences from our own homegrown port of coreboot to an off-the-shelf mainboard based on Intel's current-gen server platform. Then, I will present how we leverage this implementation to explore and implement novel ideas around system suspend and Compute Express Link (CXL) that would be impossible to build without firmware modifications.
Historically BMC firmware always needed special care by DevOps and SREs but does that have to be the case? In this talk we will explore a way to turn your data centers BMCs into yet another software component and demystify the whole management stack of modern server hardware.
How do you write maintainable firmware for rapidly evolving open source silicon designs? This is the challenge developers contributing to the OpenTitan project have faced as the open source silicon root of trust has reached maturity. In this talk we'll cover some of the obstacles we have overcome as the project has progressed — including some challenges that are unique to open source silicon projects.
Bochum has emerged as the "place to be" for IT security due to its unique combination of top-tier research, innovative companies, and a vibrant start-up scene. The city is home to the Horst Görtz Institute for IT Security at Ruhr University Bochum, one of Europe's leading research centers in this field. This academic excellence attracts top talent and fosters strong collaboration between academia and industry. Additionally, Bochum actively supports both startups and established companies in the cybersecurity sector, making the city a key hub for IT security in Germany. This talk highlights the top-tier research opportunities within Bochum and show-cases the ecosystems the companies within the region built together making in 'the place to be' for Firmware Security Research and Development.
The cost of taping out a System on Chip (SoC) typically can range from $2 to $3 million and varies depending on the process node, size, complexity and the services required. All the SOC design companies aim for timely tape out with Zero silicon bugs however in reality most of the chips required multiple iterations before final delivery to customers. Program failure can have a severe impact on a company. It can lead to financial losses, and customer dissatisfaction, and can even damage the company's reputation. It can lead to a lack of trust in the company's products or services.
In addition to design issues, if the software that runs on the SoC, is not developed with the mindset that it should run on the SoC on the first day the chip is taped out, the probability of program failure and overall cost increases.
Having worked with several ARM based Silicon vendors and on different Silicon bringup strategies - which includes running bootloaders, secure firmware, rich OS like Linux, or RTOS like FreeRTOS, I can share some success stories using solid strategies to get software setup before the actual Silicon is ready. Open source software and firmware plays a critical role in getting such pre-silicon software ready - as one can reuse existing code, try it on pre-silicon emulation or simulation platforms and even upstream the early boot-up code.
I will share an example of how I worked on enabling Freescale based silicon bringup code for a 0-day bringup, which included running das u-boot bootloader, secure firmware (ARM trusted firmware), Linux and a simple networking user-space application on the very first day the Silicon was taped out from fab. I will also share how simulator based early software development was done for the same (e.g. https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts#L7).
Contributing support for a new upcoming Silicon platform back to upstream allows us to use open-source software directly during Silicon + board bringup, thus de-coupling the requirement of the actual bringup site being co-located with the geography where the fab is located (for 0-day bringup).
I will also share the challenges normally faced while doing the same and how we can possibly leverage open-source software advocacy for working around these. I will also share some best practices one can employ while choosing the right simulator or emulator model(s) for pre-silicon testing of boot software, especially if we want to boot all the way upto linux / android userland.
System Firmware - the most undervalued software component of any hardware, is always left behind in the pursue of free and open source software solution that enable us all. Open source firmware made some significant momentum starting with coreboot and U-Boot about 25 years ago. In the field of host firmware, one of monumental changes came when Chromebook started adopting coreboot as its host firmware, bringing a more secured, lightweight, resilient yet open host firmware to 100 millions of devices over the world; yet - almost rest of consumer laptops are plagued with locked-down and highly restricted of host firmware in their users hand.
In comparison to other software community such as Linux, open source firmware community is significantly much smaller, yet highly fragmented into different community projects which rare interactions with each others, while all sharing the same goal - to promote a healthy open source firmware ecosystem. In this talk, we will explore the nature of open source firmware community - its ugliness and beauties, the conflicts and compromises. In the mist of all these, there are many unsung heroes that made huge sacrifices for the greatness of open source firmware community. We will share some behind-the-scene stories, some cross-communities and collaboration efforts hoping to share knowledge and experience to drive a better open source firmware community ahead. In reflecting the past and present mistakes and progress made, hopefully, the time has come for us to usher into a much better open source firmware era - for a more sustainable and transparent firmware for all.
.
.
Talk about adding new platform, SoC, architecture and endianess to coreboot with all its challenges.
Unlike the traditional BIOS that operates in 32-bit mode, LinuxBios (now known as coreboot) switches to 32-bit mode almost immediately. It was previously considered progressive to write firmware in 32-bit protected mode using C. However, even though AMD released the AMD64 extension in 2003, introducing 64-bit or long mode, coreboot remained in 32-bit mode. This was adequate for coreboot's responsibility for limited hardware initialization. Nevertheless, it now shows signs of confinement, and adapting to long mode should be considered, especially as Intel plans to phase out 32-bit mode with X86S. This presentation will outline the key achievements in enabling long mode on coreboot, challenges encountered, and made design decisions. It will conclude with some metric analysis and a glimpse into future silicon plans.
TamaGo is an Open Source operating environment framework which aims to allow deployment of firmware for embedded ARM/RISC-V devices by using 0% C and 100% Go code. The goal is to dramatically reduce the attack surface posed by complex OSes while allowing unencumbered Go applications.
TamaGo is a compiler modification and driver set for ARM/RISC-V SoCs, which allows bare metal drivers and applications to be executed with pure Go code and minimal deviations from the standard Go runtime.
The presentation explores the inspiration and implementation of TamaGo as well as providing real world applications that benefit from a pure Go bare metal environment.
TamaGo allows a considerable reduction of embedded firmware attack surface, while maintaining the strength of Go runtime standard (and external) libraries. This enables the creation of HSMs, cryptocurrency stacks and many more applications without the requirement for complex OSes and libraries as dependencies.
Rust is becoming one of the most popular languages for firmware development as an alternative to C. Its primary advantage is the compiler's ability to enforce memory safety at compile time, significantly reducing memory corruption bugs that can lead to critical vulnerabilities. In addition, Rust allows unsafe operations, balancing safety with flexibility. However, ensuring safety in complex code, especially when handling memory operations from devices such as MMIO, remains a challenge. Furthermore, the Rust compiler cannot verify the correctness of code logic, leaving developers responsible for writing correct code. While unit and integration testing can help identify bugs, they do not guarantee correctness.
In this talk, I will explore existing methods for addressing these challenges, particularly in the context of firmware development. I will demonstrate their application not only through simple examples but also by applying them to a practical project: the Rust Hypervisor Firmware. This firmware, written in Rust, aims to boot a guest OS using a Linux boot loader specification or a UEFI-compatible layer in a virtual machine. By examining this real-world example, the talk will provide practical insights into effectively using Rust for firmware development.
Since the creation of LinuxBIOS in 1999, open-source firmware (OSF) solutions have increased its footprint first in HPC and Linux-based mission-critical applications, to now many general-purpose compute platforms, such as networking servers, industrial embedded controllers, to client devices. Notably, Chromebook and a few Cloud-based servers, are quite successful products today. Despite its success, Cloud Service Providers (CSP) are mostly on the sideline even though they have the best usage cases for OSF solutions. Why is OSF good for CSP? For one reason, these hosts are more like embedded systems than traditional servers because once they enter data centers, the servers are not open for expansion of modification. As there is no expansion possibility, there is no need for plug-and-play capability, no driver dependency algorithm needed, some even disable USB and any external ports, and there is no need to upgrade memory, PCI devices, or CPUs beyond typical repairing jobs. Since security is the number one focus of CSP, the smaller the size of the source code, the more secured it is. Over the years, many enthusiastic developers are watching the development of OSF, but they see the community lacking of focus on the right things for CSP. In this talk, the speaker is going to go over these areas and share what the optimal OSF features are for CSP.
We will cover in that talk various ways to start an HPE ProLiant server in a flash less mode (aka boot from the network at the BMC level and gathering everything from the network) with OpenSource Firmware
AMD has an enduring commitment to advance the state of the art through contributions to open-source firmware and software. As such, this presentation aims to provide an in-depth look at AMD's long-term open source firmware strategy, focusing on the evolution of the AMD openSIL project, a high level overview of validation and quality assurance processes, and the expansion of AMD’s presence in Tianocore.
We will discuss: the addition of AMD openSIL features in the AMD EPYC™ Genoa and Turin POC and early POR project phases; the effort of validating and upstreaming AMD openSIL and its supporting Host FW; and how this fits into AMD's overall strategy for releasing firmware in the future.
By providing insight into AMD’s long-term commitment and plans for open source firmware, we aim to foster understanding and collaboration within the open source firmware community.
The Management Controller Transport Protocol (MCTP) defines a mostly-hardware-neutral way of messaging between components of an embedded platform. There has been a lot happening in MCTP support for Linux recently, as well as infrastructure and libraries for use in non-Linux embedded systems too.
This talk covers the current status of MCTP support in the upstream Linux kernel, what hardware transport options are available, plus other facilities useful for incorporating MCTP into an open source firmware stack.
This talk will provide a brief overview of adapting OpenBMC for NVIDIA platforms, highlighting the unique challenges, learnings, and solutions. It will be an opportunity to see if this resonates with the community and can be converted into opportunities for collaboration.
NVIDIA has enhanced the telemetry stack for efficient power and thermal control using alternative IPC infrastructures, such as shared memory. This enhancement enables faster responses to Redfish metric report URI requests.
Standards-based out-of-band (OOB) management is a key requirement for NVIDIA platforms. NVIDIA has upstreamed and enhanced the PLDM Type 5 (T5) stack to handle non-PLDM devices, debug tokens, staged firmware updates, and more. We have also added the majority of PLDM Type 2 (T2) stack features.
.
This workshop provides an introduction to coreboot, an wildly used open-source firmware project.
Join our workshop and learn coreboot - Beginner to Intermediate - Everyone's welcome!
In this lightning talk we will introduce you about the Open Compute Project Community in Europe activities and about the Open Platform Firmware state of the project, and how to get involved.
Multi-host server platforms got more and more attention in recent time.
Although the hardware is available for a couple of years now, the Linux Foundation
OpenBMC project has just started to get compatible with multi-host platforms
like for example the Yosemite platform.
This lightning talk covers some of the latest progress and developments
made in OpenBMC, the challenges that we are facing and the future plans.
Operating systems prefer to run with the device-trees matching the kernel to provide an optimal user experience. Selecting the right device-tree file requires both the information about the kernel being booted and the hardware on which the image is running. - The talk provides an overview which different approaches have been implemented and why there is still a gap to solve.
In May 2024, a group of bare metal infrastructure owners created a conference named “Prem'Day”. The key principle: tech people share their vision and infra experience with peers but also with hardware vendors.
This talk will be a summary of the feedback shared during the day - with no surprise, firmware and opensource are among the hot topics.
During Prem'Day, the creation of an infrastructure user group was announced. This talk will also present how this entity could be useful for the open firmware community.
We aim to provide seasoned developers with in-depth knowledge and sophisticated skills to harness the full potential of Zephyr.
OpenMic - The stage is yours! Hand-in a talk spontaneously on site!
.