Journal of Xidian University ›› 2023, Vol. 50 ›› Issue (5): 199-211.doi: 10.19665/j.issn1001-2400.20230106

• Cyberspace Security • Previous Articles     Next Articles

COLLATE:towards the integrity of control-related data

DENG Yingchuan1(),ZHANG Tong1(),LIU Weijie2(),WANG Lina1()   

  1. 1. Ministry of Education Key Laboratory of Aerospace Information Security and Trusted Computing, School of Cyber Science and Engineering,Wuhan University,Wuhan 430040,China
    2. Ant Group,Hangzhou 310012,China
  • Received:2022-11-01 Online:2023-10-20 Published:2023-11-21
  • Contact: Lina WANG E-mail:dengyingchuan@whu.edu.cn;zhangtong2017@whu.edu.cn;weijliu@iu.edu;lnwang@whu.edu.cn

Abstract:

Programs written in C/C++ may contain bugs that can be exploited to subvert the control flow.Existing control-flow hijacking mitigations validate the indirect control-flow transfer targets,or guarantee the integrity of code pointers.However,attackers can still overwrite the dependencies of function pointers,bending indirect control-flow trans-fers(ICTs) to valid but unexpected targets.We introduce the control-related data integrity(COLLATE) to guarantee the integrity of function pointers and their dependencies.The dependencies determine the potential data-flow between function pointers definition and ICTs.The COLLATE identifies function pointers,and collects their dependencies with the inter-procedure static taint analysis.Moreover,the COLLATE allocates control-related data on a hardware-protected memory domain MS to prevent unauthorized modifications.We evaluate the overhead of the COLLATE on SPEC CPU 2006 benchmarks and Nginx.Also,we evaluate its effectiveness on three real-world exploits and one test suite for vtable pointer overwrites.The evaluation results show that the COLLATE successfully detects all attacks,and introduces a 10.2% performance overhead on average for the C/C++ benchmark and 6.8% for Nginx,which is acceptable.Experiments prove that the COLLATE is effective and practical.

Key words: static analysis, network security, control-flow integrity, code pointer integrity

CLC Number: 

  • TP309