SYSPART: Automated Temporal System Call Filtering for Binaries

Restricting the system calls available to applications reduces the attack surface of the kernel and limits the functionality available to compromised applications. Recent approaches automatically identify the system calls required by programs to block unneeded ones. For servers, they even consider different phases of execution to tighten restrictions after initialization completes. However, they require access to the source code for applications and libraries, depend on users identifying when the server transitions from initialization to serving clients, or do not account for dynamically-loaded libraries. This paper introduces SYSPART, a semi-automatic system-call filtering system designed for binary-only server programs that addresses the above limitations. Using a novel algorithm that combines static and dynamic analysis, SYSPART identifies the serving phases of all working threads of a server. Static analysis is used to compute the system calls required during the various serving phases in a sound manner, and dynamic observations are only used to complement static resolution of dynamically-loaded libraries when necessary. We evaluated SYSPART using six popular servers on x86-64 Linux to demonstrate its effectiveness in automatically identifying serving phases, generating accurate system-call filters, and mitigating attacks. Our results show that SYSPART outperforms prior binary-only approaches and performs comparably to source-code approaches.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/18/2022

BinGo: Pinpointing Concurrency Bugs in Go via Binary Analysis

Golang (also known as Go for short) has become popular in building concu...
research
12/04/2020

Automating Seccomp Filter Generation for Linux Applications

Software vulnerabilities in applications undermine the security of appli...
research
04/13/2022

Timeloops: Automatic System Call Policy Learning for Containerized Microservices

In this paper we introduce Timeloops a novel technique for automatically...
research
06/03/2021

Optimistic Concurrency Control for Real-world Go Programs (Extended Version with Appendix)

We present a source-to-source transformation framework, GOCC, that consu...
research
08/30/2023

QUIC Library Hunter: Identifying Server Libraries Across the Internet

The new QUIC protocol can be implemented in user space, and various impl...
research
10/27/2021

Stubbifier: Debloating Dynamic Server-Side JavaScript Applications

JavaScript is an increasingly popular language for server-side developme...
research
12/15/2017

Mining Sandboxes for Linux Containers

A container is a group of processes isolated from other groups via disti...

Please sign up or login with your details

Forgot password? Click here to reset