计算机应用 ›› 2015, Vol. 35 ›› Issue (2): 424-429.DOI: 10.11772/j.issn.1001-9081.2015.02.0424

• 信息安全 • 上一篇    下一篇

基于地址完整性检查的函数指针攻击检测

代伟1, 刘智2, 刘益和1   

  1. 1. 内江师范学院 计算机科学学院, 四川 内江 641112;
    2. 电子科技大学 计算机科学与工程学院, 成都 611731
  • 收稿日期:2014-08-11 修回日期:2014-11-04 出版日期:2015-02-10 发布日期:2015-02-12
  • 通讯作者: 代伟
  • 作者简介:代伟(1978-),男,四川内江人,讲师,硕士,主要研究方向:计算机网络与信息安全; 刘智(1985-),男,四川南充人,博士研究生,主要研究方向:程序安全与恶意代码; 刘益和(1964-),男,四川内江人,教授,博士,主要研究方向:计算机网络与信息安全。
  • 基金资助:

    2013年四川省学术和技术带头人培养资金资助项目(13XSJS002)。

Function pointer attack detection with address integrity checking

DAI Wei1, LIU Zhi2, LIU Yihe1   

  1. 1. College of Computer Science, Neijiang Normal University, Neijiang Sichuan 641112, China;
    2. School of Computer Science and Engineering, University of Electronic Science and Technology of China, Chengdu Sichuan 611731, China
  • Received:2014-08-11 Revised:2014-11-04 Online:2015-02-10 Published:2015-02-12

摘要:

针对传统函数指针攻击检测技术无法检测面向返回编程(ROP)攻击的问题,提出了一种基于跳转地址完整性检查的新方法,在二进制代码层面能够检测多种类型的函数指针攻击。首先,通过静态分析得到函数地址信息,然后动态检查跳转目标地址是否位于合法函数区间。分析了非入口点跳转,提出一种动静结合方法检测ROP攻击。基于二进制代码插桩工具实现原型系统fpcheck,对真实攻击和正常程序进行了测试。实验结果表明fpcheck能够检测包括ROP在内的多种函数指针攻击,通过准确的检测策略,误报率显著下降,性能损失相比原始插桩仅升高10%~20%。

关键词: 缓冲区溢出, 面向返回编程, 非入口点跳转, 动态分析, 二进制代码插桩

Abstract:

Traditional detection techniques of function pointer attack cannot detect Return-Oriented-Programming (ROP) attack. A new approach by checking the integrity of jump address was proposed to detect a variety of function pointer attacks on binary code. First, function address was obtained with static analysis, and then target addresses of jump instructions were checked dynamically whether they fell into allowed function address space. The non-entry function call was analyzed, based on which a new method was proposed to detect ROP attack by combining static and dynamic analysis. The prototype system named fpcheck was developed using binary instrumentation tool, and evaluated with real-world attacks and normal programs. The experimental results show that fpcheck can detect various function pointer attacks including ROP, the false positive rate reduces substantially with accurate policies, and the performance overhead only increases by 10% to 20% compared with vanilla instrumentation.

Key words: buffer overflow, Return-Oriented-Programming (ROP), non-entry function call, dynamic analysis, binary instrumentation

中图分类号: