Protect the System Call, Protect (Most of) the World with BASTION
Protect the System Call, Protect (Most of) the World with BASTION
复制标题
DOI:
10.1145/3582016.3582066
复制
发表时间:
2023-03
期刊:
影响因子:
--
通讯作者:
Christopher Jelesnianski;Mohannad Ismail;Yeongjin Jang;Dan Williams;Changwoo Min
中科院分区:
文献类型:
--
作者:
Christopher Jelesnianski;Mohannad Ismail;Yeongjin Jang;Dan Williams;Changwoo Min
System calls are a critical building block in many serious security attacks, such as control-flow hijacking and privilege escalation attacks. Security-sensitive system calls (e.g., execve, mprotect), especially play a major role in completing attacks. Yet, few defense efforts focus to ensure their legitimate usage, allowing attackers to maliciously leverage system calls in attacks. In this paper, we propose a novel System Call Integrity, which enforces the correct use of system calls throughout runtime. We propose three new contexts enforcing (1) which system call is called and how it is invoked (Call Type), (2) how a system call is reached (Control Flow), and (3) that arguments are not corrupted (Argument Integrity). Our defense mechanism thwarts attacks by breaking the critical building block in their attack chains. We implement BASTION, as a compiler and runtime monitor system, to demonstrate the efficacy of the three system call contexts. Our security case study shows that BASTION can effectively stop all the attacks including real-world exploits and recent advanced attack strategies. Deploying BASTION on three popular system call-intensive programs, NGINX, SQLite, and vsFTPd, we show BASTION is secure and practical, demonstrating overhead of 0.60%, 2.01%, and 1.65%, respectively.