信息安全研究 ›› 2022, Vol. 8 ›› Issue (3): 301-.

• 深度学习安全与对抗专题 • 上一篇    下一篇

基于动态污点分析的程序脆弱性检测工具设计与实现

石加玉1 彭双和2 石福升3 李勇4   

  1. 1(中国地质大学(北京)地球物理与信息技术学院 北京 100083)

    2(北京交通大学计算机与信息技术学院  北京  100091)

    3(东华理工大学地球物理与测控技术学院  南昌 330013)

    4(中国地质科学院地球物理地球化学勘查研究所 河北廊坊 065000)

  • 出版日期:2022-03-01 发布日期:2022-03-01
  • 通讯作者: 石加玉 硕士研究生. 主要研究方向为电磁探测仪器及信息安全研究. wtshijiayu@163.com
  • 作者简介:石加玉 硕士研究生. 主要研究方向为电磁探测仪器及信息安全研究. wtshijiayu@163.com 彭双和 博士,副教授. 主要研究方向为信息安全. shhpeng@bjtu.edu.cn 石福升 博士后,教授,硕士研究生导师.主要研究方向为地球物理电磁法探测技术与仪器研发. 526645568@qq.com 李勇 教授级高级工程师.主要从研究方向为地球物理方法. cgslyong@mail.cgs.gov.cn

Design and Implementation of Program Vulnerability Detection Tool Based on Dynamic Taint Analysis

  • Online:2022-03-01 Published:2022-03-01

摘要: 由于程序源码和编译后的可执行文件之间存在一定的语义差异,且由于用户输入的不确定性,导致在实际应用中,无法保证源代码中已经验证过的性质与其可执行文件依然一致.因此,在程序源代码不被提供的情况下,直接对其可执行程序进行脆弱性分析检测更有实际意义.本文开展了动态污点分析技术在程序脆弱性检测方面的应用研究,设计了基于libdft API程序脆弱性检测工具,并自定义了污染源和污染汇,以适应不同的脆弱性模式.该工具不需要对目标程序的源代码进行分析,可直接对二进制程序进行检测.测试结果表明,该工具可有效检测出心血攻击、格式化字符串攻击、数据泄露、ReturnToLibc攻击等多种程序脆弱性漏洞,对帮助编程人员进行程序安全性检测及保护计算机数据安全具有一定的参考价值.

关键词: 动态污点分析, 系统安全, 程序脆弱性, 检测工具, libdft框架

Abstract: Due to the semantic differences between the program source code and the compiled executable file, and the uncertainty of user input, it is impossible to ensure that the verified properties in the source code are still consistent with their executable files in practical applications. Therefore, in the case of program source code is not provided, directly to its executable vulnerability analysis detection is more meaningful.In this paper, the application research of dynamic taint analysis technology in program vulnerability detection is carried out. A program vulnerability detection tool based on libdft API is designed, and the pollution source and pollution sink are customized to adapt to different vulnerability modes. The tool does not need to analyze the source code of the target program, but can directly detect the binary program. The test results show that the tool can effectively detect a variety of program vulnerabilities such as heart attack, formatted string attack, data leakage, ReturnToLibc attack, etc. It has certain reference value to help programmers detect program security and protect computer data security.

Key words: dynamic taint analysis, system security, program vulnerability, detection tools, libdft frame