De Wapenwedloop voor de Beveiliging van Hardware en Software Interfaces
Bognár, Márton · Lirias · 2025
Computers, big and small, surround us every day. They include servers used for cloud storage, mobile phones, and even the invisible microchips present in all our appliances, cars, traffic lights, etc. These computing devices are everywhere and are crucial for many daily tasks. To protect our safety and our data's security, these devices need to be protected from attackers. Microarchitectural attacks, which exploit implementation details in the hardware, are particularly difficult to mitigate, as they can even affect bug-free software. The majority of this thesis focuses on these microarchitectural attacks in embedded devices. Through the example of a novel attack caused by contention on the memory bus, we demonstrate that when building a secure architecture, developers or researchers should not rely solely on formal methods for evidence of security. Using this same attack as a case study, we also propose a methodology for mitigating certain microarchitectural attacks on embedded systems by systematically profiling the leakage and using this information to balance sensitive code. We also show that research prototypes are not alone in suffering from security vulnerabilities. Our security analysis of a Texas Instruments (TI) microcontroller uncovers numerous vulnerabilities, both microarchitectural side channels and more severe implementation oversights that completely undermine the security guarantees of the device. As a stopgap mitigation, we develop a software framework that can reinstate some of the security on the device, but advocate for changes in the hardware to address the root cause of the vulnerabilities. Finally, we propose two frameworks for the prototyping of hardware-software co-designs on different architectures. The first framework, openIPE, is an open-source implementation of TI's security feature with flexible additions to support software-based extensions. The second system is Proteus, a RISC-V processor and ecosystem that streamlines the development of security extensions for higher-end devices and provides tools for evaluating their security and overhead.