With the improvements in computing technologies, edge devices in the Internet-of-Things have become more complex. The enabler technology for these complex systems are powerful application core processors with operating system support, such as Linux. While the isolation of applications through the operating system increases the security, the interface to the kernel poses a new threat. Different attack vectors, including fault attacks and memory vulnerabilities, exploit the kernel interface to escalate privileges and take over the system. In this work, we present SFP, a mechanism to protect the execution of system calls against software and fault attacks providing integrity to user-kernel transitions. SFP provides system call flow integrity by a two-step linking approach, which links the system call and its origin to the state of control-flow integrity. A second linking step within the kernel ensures that the right system call is executed in the kernel. Combining both linking steps ensures that only the correct system call is executed at the right location in the program and cannot be skipped. Furthermore, SFP provides dynamic CFI instrumentation and a new CFI checking policy at the edge of the kernel to verify the control-flow state of user programs before entering the kernel. We integrated SFP into FIPAC, a CFI protection scheme exploiting ARM pointer authentication. Our prototype is based on a custom LLVM-based toolchain with an instrumented runtime library combined with a custom Linux kernel to protect system calls. The evaluation of micro- and macrobenchmarks based on SPEC 2017 show an average runtime overhead of 1.9 % and 20.6 %, which is only an increase of 1.8 % over plain control-flow protection. This small impact on the performance shows the efficiency of SFP for protecting all system calls and providing integrity for the user-kernel transitions.
翻译:随着计算机技术的改进,互联网中的边缘装置变得更加复杂。这些复杂系统的辅助技术是强大的应用核心处理器,具有操作系统支持,如Linux。虽然通过操作系统孤立应用程序增加了安全性,但与内核的界面构成新的威胁。不同的攻击矢量,包括过失攻击和记忆弱点,利用内核接口提升权限并接管系统。在这项工作中,我们提供了SFP,一个保护系统执行系统呼叫的机制,防止软件和断层攻击,为用户内核过渡提供了完整性。SFP通过两步连接方法提供系统呼叫流量完整性,将系统呼叫及其来源与控制流量完整性连接起来。内核内核的第二个连接步骤确保正确的系统呼叫在内核内核内核中执行,利用内核界面接口接口接口接口接口来提升权限和接管系统。SFPFP提供稳定的平均仪器和新的CFI在服务器端端端端端检查政策,在SFIFS服务器上运行一个基于S-FA的内核流控制系统,在SFIFA系统上运行一个基于Srentral的S-S-liver Sral IM 服务器的系统,在SFIFA上显示一个基于S-S-S-SIMFIFA的S-S-S-RODRDS-S-S-S-S-S-S-FDRDRDS的运行运行一个基于的系统运行一个控制系统运行一个S-S-S-S-S-S-S-S-S-SLT-SLTRDRDRDRDRDRDRDRT的运行一个运行的运行一个运行一个控制程序。