西安电子科技大学学报 ›› 2023, Vol. 50 ›› Issue (5): 199-211.doi: 10.19665/j.issn1001-2400.20230106

• 网络空间安全 • 上一篇    下一篇

COLLATE:控制相关数据的完整性保护

邓颖川1(),张桐1(),刘维杰2(),王丽娜1()   

  1. 1.武汉大学 国家网络安全学院空天信息安全与可信计算教育部重点实验室,湖北 武汉 430040
    2.蚂蚁集团,浙江 杭州 310012
  • 收稿日期:2022-11-01 出版日期:2023-10-20 发布日期:2023-11-21
  • 通讯作者: 王丽娜
  • 作者简介:邓颖川(1998—),男,武汉大学硕士研究生,E-mail:dengyingchuan@whu.edu.cn;|张 桐(1996—),男,武汉大学博士研究生,E-mail:zhangtong2017@whu.edu.cn;|刘维杰(1991—),男,高级工程师,E-mail:weijliu@iu.edu
  • 基金资助:
    国家重点研发计划(2020YFB1805400);国家重点研发计划(2021YFB3100700);国家自然科学基金(61876134)

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

摘要:

使用C/C++语言编写的程序可能包含安全漏洞。这些漏洞可以被用来劫持控制流。现存的控制流劫持攻击防御措施通常是对间接控制流跳转的目标进行校验,或保证代码指针的完整性。然而,此时攻击者依然可以通过修改函数指针的依赖将间接控制流跳转的目标弯曲为合法但是不符合预期的值。为了解决这个问题,引入了控制相关数据完整性来保证函数指针以及它们的依赖的完整性。这些依赖决定了函数指针的定义和间接控制流跳转之间潜在的数据流关系。首先,控制相关数据完整性保护系统识别出所有函数指针;然后,使用过程间静态污点分析收集它们所依赖的数据;最后,系统将这些控制相关数据分配到硬件保护的内存Ms中来阻止未授权的修改。在SPEC CPU 2006 benchmarks和Nginx上测量了控制相关数据完整性保护系统的开销,并在三个真实世界的漏洞和一个虚表指针劫持攻击的测试集测试了它的有效性。结果显示,设计的系统能够成功检测到所有攻击,同时在C/C++ benchmarks上只有约10.2%的平均开销,在Nginx上约是6.8%,在可接受范围内。实验表明,控制相关数据完整性保护系统是有效且实用的。

关键词: 静态分析, 网络安全, 控制流完整性, 代码指针完整性

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

中图分类号: 

  • TP309
Baidu
map