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