Track Conventions, Not Attack Signatures: Fortifying X86 ABI and System Call Interfaces to Mitigate Code Reuse Attacks
Track Conventions, Not Attack Signatures: Fortifying X86 ABI and System Call Interfaces to Mitigate Code Reuse Attacks
复制标题
DOI:
10.1109/seed51797.2021.00029
复制
发表时间:
2021-09
期刊:
影响因子:
--
通讯作者:
Sarp Özdemir;Rutvik Saptarshi;Aravind Prakash;D. Ponomarev
中科院分区:
文献类型:
--
作者:
Sarp Özdemir;Rutvik Saptarshi;Aravind Prakash;D. Ponomarev
Code Reuse Attacks (CRAs) are dangerous exploitation strategies that allow attackers to compose malicious programs out of existing application and library code gadgets, without requiring code injection. Previously, researchers explored hardware-assisted protection schemes that track attack signatures to identify malicious behavior. This paper makes two main contributions. First, we show that previously proposed signature-based schemes are impractical because they do not always distinguish attack patterns from the behavior of benign programs. Second, we demonstrate that instead of tracking attack signatures, a more robust defense mechanism is to track legitimate usage of system calls and ABI compliance in hardware, and detect deviations from established conventions as possible attacks. We propose two specific tracking mechanisms: the setting of arguments for system calls and register usage across function calls. We demonstrate that our solution severely hinders practical CRAs and completely stops code-reuse execution of sensitive system calls like mprotect. Our solution imposes very low performance overhead and modest design complexity.