System Call Interposition Without Compromise

Conference Paper (2024)
Author(s)

Adriaan Jacobs (Katholieke Universiteit Leuven)

Merve Gulmez (Katholieke Universiteit Leuven, Ericsson Security Research)

Alicia Andries (Katholieke Universiteit Leuven)

Stijn Volckaert (Katholieke Universiteit Leuven)

Alexios Voulimeneas (TU Delft - Cyber Security)

Research Group
Cyber Security
DOI related publication
https://doi.org/10.1109/DSN58291.2024.00030
More Info
expand_more
Publication Year
2024
Language
English
Research Group
Cyber Security
Bibliographical Note
Green Open Access added to TU Delft Institutional Repository ‘You share, we take care!’ – Taverne project https://www.openaccess.nl/en/you-share-we-take-care Otherwise as indicated in the copyright section: the publisher is the copyright holder of this work and the author uses the Dutch legislation to make this work public. @en
Pages (from-to)
183-194
ISBN (electronic)
9798350341058
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Syscall interposition is crucial for tools that monitor/modify application behavior. Mainstream OSes have, therefore, provided syscall interposition APIs for years, but these often incur prohibitive performance penalties in syscall-intensive applications. Recent work showed how to reduce this overhead by rewriting syscall instructions11Throughout this paper, we will use the term 'syscall instruction' to refer to both the x86 SYSCALL and SYSENTER instructions. to invoke the interposer directly, avoiding expensive mode/context switches. However, these methods may not locate/rewrite all relevant instructions, which is essential for many applications. Our key insight is to combine the aforementioned techniques to efficiently intercept all system calls. We present lazypoline, a tool that uses slow kernel interfaces to exhaustively locate valid syscall instructions upon their first use, and then lazily rewrites them to invoke the interposer directly in all subsequent executions. We extensively evaluate lazypoline on micro- and macrobenchmarks and show that it is non-intrusive, fully exhaustive, and it achieves the efficiency of pure rewriting, even for datacenter-scale syscall-intensive workloads.

Files

System_Call_Interposition_With... (pdf)
(pdf | 0.404 Mb)
- Embargo expired in 31-01-2025
License info not available