摘要
C/C++在提供灵活的使用方式和高效目标码的同时,由于缺少边界检查机制,缓冲区溢出成为C/C++程序面临的一种严重的攻击威胁。给出了一种缓冲区溢出攻击的动态防护方法。使用在库中声明的数组来备份函数的控制流信息,包括返回地址和栈帧指针,来动态监测非法的篡改行为。该方法可以对缓冲区溢出攻击中的直接攻击和间接攻击均有效防护。通过RIPE基准平台和两道实际应用的测试以及理论比较表明该方法的有效性。
Due to the lack of boundary checking mechanism, buffer overflow is one of the most serious attacks against C/C++ programs. This paper presents a runtime countermeasure for buffer overflow attack. Through duplicating the control flow information with array which declared in the dynamic link libraries, including the return address and the frame pointer of each function, illegal overwriting can be detected dynamically. This method can both detect direct and indirect attack in the buffer overflow attack. Experiments based on the RIPE testbed and two practical tests as well as theoretical analysis show the effectiveness of this method.
出处
《计算机工程与应用》
CSCD
北大核心
2016年第11期101-107,共7页
Computer Engineering and Applications
基金
国家863高技术研究发展计划项目(No.2012AA010901)
国家科技重大专项基金(No.2013ZX01029002)
计算机体系结构国家重点实验室开放课题
关键词
缓冲区溢出
控制流备份
返回地址
帧指针
动态监测
RIPE
buffer overflow
control flow duplication
return address
frame pointer
runtime monitor
RIPE