作者投稿和查稿 主编审稿 专家审稿 编委审稿 远程编辑

计算机工程 ›› 2012, Vol. 38 ›› Issue (24): 46-49. doi: liujie710@hotmail.com

• 软件技术与数据库 • 上一篇    下一篇

基于污点指针的二进制代码缺陷检测

刘 杰 1,王嘉捷 2,欧阳永基 1,王清贤 1   

  1. (1. 国家数字交换系统工程技术研究中心,郑州 450002;2. 中国信息安全测评中心,北京 100085)
  • 收稿日期:2012-03-15 修回日期:2012-04-21 出版日期:2012-12-20 发布日期:2012-12-18
  • 作者简介:刘 杰(1986-),男,博士研究生、CCF会员,主研方向:软件安全分析;王嘉捷,博士;欧阳永基,博士研究生;王清贤,教授
  • 基金资助:
    国家“863”计划基金资助项目(2008AA01Z420)

Binary Code Defect Detection Based on Taint Pointer

LIU Jie 1, WANG Jia-jie 2, OUYANG Yong-ji 1, WANG Qing-xian 1   

  1. (1. National Digital Switching System Engineering & Technological R&D Center, Zhengzhou 450002, China; 2. China Information Technology Security Evaluation Center, Beijing 100085, China)
  • Received:2012-03-15 Revised:2012-04-21 Online:2012-12-20 Published:2012-12-18

摘要: 污点指针严重影响二进制代码数据流和控制流的安全。为此,提出一种二进制代码缺陷检测方法。引入指针污点传播规则,结合路径约束条件和边界约束条件得到缺陷引发条件,构造能够引发4类污点指针代码缺陷的输入数据。在Linux系统下实现ELF二进制代码缺陷检测工具,测试结果表明,该方法能降低测试用例生成数量,并发现Linux系统工具的1个虚函数调用控制缺陷和2个指针内存破坏缺陷。

关键词: 污点指针, 污点传播, 符号执行, 边界条件, 缺陷检测, 内存破坏

Abstract: Taint pointers are serious threats to the security of data flow and control flow. A method for binary defect detection is proposed, which is based on dynamic taint propagation, dynamic symbolic execution and bound constraint analysis, including introduction of the pointer propagation rules, generation of trigger condition by combing path constraints with bound constraints. It can generate inputs for four types of code defects caused by taint pointer. Test results show that this method reduces the number of test case generation effectively, and a virtual function call hijack and two pointer memory corruption defects are found in the test of Linux system tools.

Key words: taint pointer, taint propagation, symbolic execution, bound condition, defect detection, memory corruption

中图分类号: