Exploring automated system call sandbox policy generation

Investigating and comparing static and dynamic analysis approaches to generate system call policies

Bachelor Thesis (2024)
Authors

B. Selyem (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Supervisors

Alexios Voulimeneas (TU Delft - Cyber Security)

Faculty
Electrical Engineering, Mathematics and Computer Science, Electrical Engineering, Mathematics and Computer Science
More Info
expand_more
Publication Year
2024
Language
English
Graduation Date
27-06-2024
Awarding Institution
Delft University of Technology
Project
CSE3000 Research Project
Programme
Computer Science and Engineering
Faculty
Electrical Engineering, Mathematics and Computer Science, Electrical Engineering, Mathematics and Computer Science
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

System call sandboxing is the idea to restrict the set of system calls an application is able to invoke.
This reduces the attack surface available to an attacker exploiting the binary, and adheres to the principle of least privilege, giving entities the minimum required permissions needed to perform their function.

The key goal is to automatically identify which system calls to block, since it is a complex, manual task requiring great insight into the program and its dependencies.

This paper investigates and compares various static analysis based solutions in this field, such as sysfilter [3], Confine [5] and Chestnut [2], by measuring their accuracy and analysis time. Furthermore a simple dynamic analysis based solution is created for the sake of comparison with the previously mentioned tools. The tools are evaluated on a small set of commonly used Linux applications, such as ls, sqlite and Redis, and the results are reported.

In addition to the aforementioned tools, temporal specialization [6], a solution which considers multiple execution phases is also investigated and compared with a purely dynamic analysis solution having support for multiple phases of execution.

The research shows that although dynamic analysis underapproximates the set of required system calls it can adapt to a custom usage profile.
Additionally, although static analysis is slower and more complex, the research explores areas of improvement such as precomputing or multiple threads.

Files

Research_paper-2.pdf
(pdf | 0.193 Mb)
License info not available