Title :
Static-Dynamic Control Flow Integrity
Author :
Xiaolong Liu ; Qiang Wei ; Ziwei Ye
Author_Institution :
State Key Lab. of Math. Eng. & Adv. Comput., Zhengzhou, China
Abstract :
CCFIR (Compact Control Flow Integrity and Randomization) has low performance overhead as an exploit mitigation, but it is hard to mitigate exploits by hijacking virtual function pointer, which are emerging in recent years. Because of the polymorphism of virtual functions, CCFIR can´t determine a unique spring board stub. We propose a new practical protection method named SDCFI (Static-Dynamic Control Flow Integrity), whose goal is to protect virtual function pointers from hijacking. Taking advantage of static analysis result of IDA and PIN dynamic instrumentation, SDCFI improves the accuracy of the disassembly and identifies indirect call target addresses at runtime. We observe that there are always double 0x90 bytes for alignment in the gap between two functions, which can be substituted by a two-byte checkmark. Using the checkmark, SDCFI can validate a target more simply and faster than traditional CFI. Based on these approaches, SDCFI can prevent control-flow hijacking attacks including ROP, because the gadgets of stack pivot can´t pass the validation. We evaluate our prototype implementation for Internet Explorer8 browser on Windows XP, which faces serious security threats since April 8, 2014. SDCFI protects most indirect call instructions in msthml.dll, and has low runtime overhead of 1.48% on average. Experiments on real-world exploits for IE8 browser also show that SDCFI can effectively mitigate exploits by hijacking virtual function pointer.
Keywords :
program control structures; program diagnostics; security of data; CCFIR; IDA; Internet Explorer8 browser; PIN dynamic instrumentation; ROP; SDCFI; Windows XP; compact control flow integrity and randomization; control-flow hijacking attacks; exploit mitigation; indirect call instructions; msthml.dll; protection method; security threats; static analysis; static-dynamic control flow integrity; two-byte checkmark; virtual function pointer hijacking; virtual function pointer protection; virtual function polymorphism; Accuracy; Browsers; Instruments; Internet; Registers; Runtime; Security; Control Flow Integrity; exploit mitigation; hijacking virtual function pointer;
Conference_Titel :
P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC), 2014 Ninth International Conference on
Conference_Location :
Guangdong
DOI :
10.1109/3PGCIC.2014.58