KIT: Testing OS-level virtualization for functional interference bugs
Proceedings of the 28th ACM International Conference on Architectural …, 2023•dl.acm.org
Container isolation is implemented through OS-level virtualization, such as Linux
namespaces. Unfortunately, these mechanisms are extremely challenging to implement
correctly and, in practice, suffer from functional interference bugs, which compromise
container security. In particular, functional interference bugs allow an attacker to extract
information from another container running on the same machine or impact its integrity by
modifying kernel resources that are incorrectly isolated. Despite their impact, functional …
namespaces. Unfortunately, these mechanisms are extremely challenging to implement
correctly and, in practice, suffer from functional interference bugs, which compromise
container security. In particular, functional interference bugs allow an attacker to extract
information from another container running on the same machine or impact its integrity by
modifying kernel resources that are incorrectly isolated. Despite their impact, functional …
Container isolation is implemented through OS-level virtualization, such as Linux namespaces. Unfortunately, these mechanisms are extremely challenging to implement correctly and, in practice, suffer from functional interference bugs, which compromise container security. In particular, functional interference bugs allow an attacker to extract information from another container running on the same machine or impact its integrity by modifying kernel resources that are incorrectly isolated. Despite their impact, functional interference bugs in OS-level virtualization have received limited attention in part due to the challenges in detecting them. Instead of causing memory errors or crashes, many functional interference bugs involve hard-to-catch logic errors that silently produce semantically incorrect results.
This paper proposes KIT, a dynamic testing framework that discovers functional interference bugs in OS-level virtualization mechanisms, such as Linux namespaces. The key idea of KIT is to detect inter-container functional interference by comparing the system call traces of a container across two executions, where it runs with and without the preceding execution of another container. To achieve high efficiency and accuracy, KIT includes two critical components: an efficient algorithm to generate test cases that exercise inter-container data flows and a system call trace analysis framework that detects functional interference bugs and clusters bug reports. KIT discovered 9 functional interference bugs in Linux kernel 5.13, of which 6 have been confirmed. All bugs are caused by logic errors, showing that this approach is able to detect hard-to-catch semantic bugs.
ACM Digital Library