Figure 1: Different ASILs are required depending on the function; D is the most stringent level
IT security is primarily concerned with protecting critical systems against unauthorized access and thus against manipulation, but also against unauthorized access to personal data. There are also international standards for security-critical systems. The most important worldwide is ISO 15408, better known as CC or Common Criteria for information technology security evaluation. It introduces seven Evaluation Assurance Levels (EAL 1-7) for trustworthiness. In the automotive industry, the SAE (formerly Society of Automotive Engineers) is currently working on a series of standards for various aspects of IT systems in automobiles. In draft J3061, published in 2016, it is introducing the term ACsIL (Automotive Cybersecurity Integrity Level) based on the Safety Integrity Levels. ISO is also working on ISO 21434 (Road Vehicles - Cybersecurity Engineering). Once these standards have been adopted, it is to be expected that many products will require corresponding certification. Some products already have Common Criteria certification. However, this does not automatically mean that they are safe - in any case, detailed attention must be paid to exactly what has been certified here.
Safety and security are easiest to ensure if all IT systems are strictly separated from each other and therefore cannot influence each other. Today, however, more and more safety-critical and non-critical applications are being operated in vehicles, and in order to save costs and weight, a single hardware serves as a platform for multiple functions, including different levels of criticality. This trend harbours considerable risks. If, for example, an attacker gains access to a comparatively insecure entertainment system based on Android and can also access security-critical systems via this gateway, this can have very serious consequences. It is therefore essential to strictly separate applications with different criticality levels, even if they run on the same hardware. Here, the automotive industry can benefit from the experience gained in the aerospace industry with its extreme requirements, where hypervisor-based solutions have already established themselves.
Multiple Partitions instead of multiple CPUs
A hypervisor can host different functions on a controller in multiple partitions that previously required separate CPUs. However, it must be absolutely ensured that the software that provides the hypervisor functionality actually guarantees a strict separation between the partitions. Otherwise, you have a unified hardware platform, but possibly interactions between critical and non-critical applications such as audio systems and brakes. ASIL-D and ISO 26262 certification ensures that functions in different partitions are actually separated as if they were running on different CPUs.
Especially on multicore systems, the use of hypervisors is a suitable way to meet the challenges of system design. Although such CPUs are primarily used for performance reasons, they can also support the required separation of individual functions. However, the certification of multicore systems is very complex, and many certified systems actually use only one core. If, however, different functions are bundled in a single software that runs under a real-time operating system on only one CPU core, interference between the functions can easily occur - strict separation is not guaranteed. For example, the impact of one application on the runtime behavior of another application can lead to security issues, such as exceeding deadlines for real-time applications. Similarly, timing effects due to the sharing of system resources, such as caches and memory buses, can lead to hidden information channels that violate the confidentiality requirements of the application. These potential problems stem mainly from the fact that most hypervisors are added to an RTOS (Real Time Operating System), which does not support such a separation due to its own design. Especially in safety-critical applications, it is important that the RTOS is already designed specifically for the separate execution of different functions, i.e. it is more of a separation kernel than a simple RTOS.
Spatial and temporal Separation
Such a separation kernel enables the spatial and temporal separation between applications and provides the partitions for the execution of user applications. Time separation is achieved by time partitioning, where CPU time is divided into time partitions during configuration. Spatial separation is achieved by resource partitioning, in which system resources such as main memory, files, devices, secure communication channels and cores are partitioned and containers, known as resource partitions, are assigned statically. User applications are executed in the context of a resource partition.
An example of a software environment with strict separation of applications is SYSGO's PikeOS, which has already proven itself in the aircraft industry. PikeOS offers both a full real-time operating system (Hard RTOS) and a virtualization and partitioning system to support the specific requirements of automotive applications (figure 2).