• DocumentCode
    247015
  • 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
  • fYear
    2014
  • fDate
    8-10 Nov. 2014
  • Firstpage
    189
  • Lastpage
    196
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC), 2014 Ninth International Conference on
  • Conference_Location
    Guangdong
  • Type

    conf

  • DOI
    10.1109/3PGCIC.2014.58
  • Filename
    7024579