5 research outputs found
Operating System Kernels on Multi-core Architectures
Operating System (OS) kernels have been under research and development for decades, mainly assuming single processor and distributed hardware systems.
With the recent rise of multi-core chips that may incorporate a network on chip (NoC), new challenges have appeared that were not considered before.
Given that a complete multi-core system that works on a single system on chip (SoC) is now the normal case, different cores on a single SoC may
share other physical resources and data. This new sharing scheme on a SoC affects crucial aspects of an overall system like correctness, performance,
predictability, scalability and security. Both hardware and OSs to flexibly cooperate in order to provide
solutions for such challenges.
SoC mimics the internet somehow now, with different cores acting as computer nodes, and the network medium is given in an advanced digital fabrics like buses or NoCs, that are
a current research area. However, OSs are still assuming some (hardware) features like single physical memory and memory sharing for inter-process communication, page-based protection, cache operations, even when evolving from uniprocessor to multi-core processors.
Such features not only may degrade performance and other system aspects, but also
some of them make no sense for a multi-core SoC, and introduce some barriers and limitations. While new OS research is considering different kernel designs
to cope up with multi-core systems, they are still limited by the current commercial hardware architectures.
The objective of this thesis is to assess different kernel designs and implementations on multi-core hardware architectures.
Part of the contributions of the thesis is porting
RTEMS (RTOS) and seL4 microkernel to Epiphany and RISC-V hardware architectures respectively, trading-off the design and implementation decisions. This hands-on experience gave a better understanding of the real-world challenges regarding kernel designs and implementations
Recommended from our members
CHERI Compartmentalisation for Embedded Systems
Embedded system designers are facing an inexorable pressure to add more features and leverage connectivity. This creates potential attack vectors in areas that were not subject to security concerns before. Individuals’ privacy could be violated, cars and planes could crash, credit-card details could be stolen, and medical devices could critically malfunction, affecting vital life-concerning tasks or leaking sensitive patients’ details. Software compartmentalisation has the potential to manage the attack vector better, defend against unknown future software vulnerabilities, and limit the consequences of potential successful attacks to the compromised component without affecting the rest of the system. Unfortunately, the current state-of-the-art security technologies for embedded systems (e.g., MPUs) are not well-designed for implementing fine-grained software compartmentalisation while meeting embedded systems requirements. They suffer from inherent design issues that limit scalability, compatibility, security, and performance.
This dissertation proposes CompartOS as a new lightweight hardware-software compartmentalisation model building on CHERI (a hardware capability architecture) to secure mainstream and complex embedded software systems. CompartOS is an automatic, linkage-based compartmentalisation model that isolates mutually distrusting linkage modules (e.g., third-party libraries) executing in a single-address-space and single-privilege-ring environment. Further, CompartOS enables the management of faults within software components by introducing support for partial recovery, thus improving availability while maintaining compatibility by requiring minimal development efforts—a critical requirement for many embedded systems.
We have implemented multiple prototypes of compartmentalisation models, including MPU-based protection and CompartOS, in FreeRTOS and compared them in performance, compatibility, security, and availability. Microbenchmarks show that CompartOS’ protection-domain crossing is 95% faster than MPU based IPC. We applied the CompartOS model, with low effort, to complex, mainstream systems, including TCP servers, Amazon’s OTA updates, and a safety-critical automotive demo. CompartOS not only catches 10 out of 13 FreeRTOS-TCP published vulnerabilities that MPU-based protection (e.g., uVisor) cannot catch but can also recover from them, maintaining the availability of safety critical systems. Further, our TCP throughput evaluations show that our CompartOS prototype is 52% faster than the most relevant and advanced MPU-based compartmentalisation model (e.g., ACES), with a 15% overhead compared to an unprotected system. This comes at an FPGA’s LUTs overhead of 10.4% to support CHERI for an unprotected baseline RISC-V processor, compared to 7.6% to support MPU, while CHERI only incurs 1.3% of the registers area overhead compared to 2% for MPU
Recommended from our members
Case Study: Securing MMU-less Linux Using CHERI
MMU-less Linux variant lacks security because it does not have protection or isolation mechanisms.
It also does not use MPUs as they do not fit with its software model because of the design drawbacks
of MPUs (i. e. coarse-grained protection with fixed number of protected regions). We secure the
existing MMU-less Linux version of the RISC-V port using CHERI. CHERI is a hardware-software
capability-based system that extends the ISA, toolchain, programming languages, operating systems,
and applications in order to provide complete pointer and memory safety. We believe that CHERI
could provide significant security guarantees for high-end dynamic MMU-less embedded systems at
lower costs, compared to MMUs and MPUs, by: 1) building the entire software stack in pure-capability
CHERI C mode which provides complete spatial memory safety at the kernel and user-level, 2)
isolating user programs as separate ELFs, each with its own CHERI-based capability table; this
provides spatial memory safety similar to what the MMU offers (i. e. user programs cannot access
each other’s memory), 3) isolating user programs from the kernel as the kernel has its own capability
table from the users and vice versa, and 4) compartmentalising kernel modules using CompartOS’
linkage-based compartmentalisation. This offers a new security front that is not possible using
the current MMU-based Linux, where vulnerable/malicious kernel modules (e. g. device drivers)
executing in the kernel space would not compromise or take down the entire system. These are the four
main contributions of this paper, presenting novel CHERI-based mechanisms to secure MMU-less
embedded Linux.Defense Advanced Research Projects Agency (DARPA)
under contract HR001123C0031 (“MTSS”
CompartOS: CHERI Compartmentalization for Embedded Systems
Existing high-end embedded systems face frequent security attacks. Software
compartmentalization is one technique to limit the attacks' effects to the
compromised compartment and not the entire system. Unfortunately, the existing
state-of-the-art embedded hardware-software solutions do not work well to
enforce software compartmentalization for high-end embedded systems. MPUs are
not fine-grained and suffer from significant scalability limitations as they
can only protect a small and fixed number of memory regions. On the other hand,
MMUs suffer from non-determinism and coarse-grained protection. This paper
introduces CompartOS as a lightweight linkage-based compartmentalization model
for high-end, complex, mainstream embedded systems. CompartOS builds on CHERI,
a capability-based hardware architecture, to meet scalability, availability,
compatibility, and fine-grained security goals. Microbenchmarks show that
CompartOS' protection-domain crossing is 95% faster than MPU-based IPC. We
applied the CompartOS model, with low effort, to complex existing systems,
including TCP servers and a safety-critical automotive demo. CompartOS not only
catches 10 out of 13 FreeRTOS-TCP published vulnerabilities that MPU-based
protection (e.g., uVisor) cannot catch but can also recover from them. Further,
our TCP throughput evaluations show that our CompartOS prototype is 52% faster
than relevant MPU-based compartmentalization models (e.g., ACES), with a 15%
overhead compared to an unprotected system. This comes at an FPGA's LUTs
overhead of 10.4% to support CHERI for an unprotected baseline RISC-V
processor, compared to 7.6% to support MPU, while CHERI only incurs 1.3% of the
registers area overhead compared to 2% for MPU