网络与信息安全学报 ›› 2023, Vol. 9 ›› Issue (2): 115-131.doi: 10.11959/j.issn.2096-109x.2023026

• 学术论文 • 上一篇    下一篇

基于函数摘要的二进制程序污点分析优化方法

杨盼, 康绯, 舒辉, 黄宇垚, 吕小少   

  1. 数字工程与先进计算国家重点实验室,河南 郑州 450001
  • 修回日期:2022-06-22 出版日期:2023-04-25 发布日期:2023-04-01
  • 作者简介:杨盼(1993- ),男,陕西宝鸡人,数字工程与先进计算国家重点实验室硕士生,主要研究方向为软件逆向分析
    康绯(1972- ),女,河南周口人,数字工程与先进计算国家重点实验室教授,主要研究方向为网络信息安全
    舒辉(1974- ),男,江苏盐城人,数字工程与先进计算国家重点实验室教授、博士生导师,主要研究方向为网络安全
    黄宇垚(1997- ),男,福建福州人,数字工程与先进计算国家重点实验室硕士生,主要研究方向为网络协议安全
    吕小少(1989- ),男,湖北荆门人,数字工程与先进计算国家重点实验室硕士生,主要研究方向为软件逆向分析
  • 基金资助:
    国家重点研发计划(2019QY1300)

Binary program taint analysis optimization method based on function summary

Pan YANG, Fei KANG, Hui SHU, Yuyao HUANG, Xiaoshao LYU   

  1. State Key Laboratory of Mathematical Engineering and Advanced Computing, Zhengzhou 450001, China
  • Revised:2022-06-22 Online:2023-04-25 Published:2023-04-01
  • Supported by:
    The Key R&D Program of China(2019QY1300)

摘要:

污点分析是一种常用的软件分析方法,在信息安全领域有较多的应用。现有的二进制程序动态污点分析大多采用指令级插桩的分析方法,通常会产生巨大的性能开销,使得程序执行效率大幅度降低,难以在复杂恶意样本和商业软件分析环境中有效应用。为了提升污点分析效率,降低指令级插桩分析带来的性能损耗,使污点分析更加广泛地应用在软件分析中,提出了基于函数摘要的二进制程序污点分析优化方法。所提方法使用函数污点传播规则代替指令污点传播规则,以减少数据流传播分析次数,有效提升污点分析效率。对于函数摘要,提出了函数摘要的定义;研究了不同函数结构的摘要生成算法。在函数内部,针对非循环结构,设计了路径敏感的分析方法;针对循环结构,设计了有限迭代的分析方法,将这两种分析方法相结合,解决混合结构函数的函数摘要生成。在函数摘要生成算法研究的基础上,进一步设计实现了由函数摘要生成模块、数据流记录模块、污点分析模块3个部分构成的通用污点分析框架FSTaint。对FSTaint的分析效率进行了评估,在分析真实APT恶意样本中,FSTaint的污点分析效率是libdft的7.75倍,分析效率较高;在准确性方面,FSTaint相对libdft在传播规则的准确性、完备性等方面也有所提高。

关键词: 函数摘要, 污点分析, 数据流分析, FSTaint

Abstract:

Taint analysis is a popular software analysis method, which has been widely used in the field of information security.Most of the existing binary program dynamic taint analysis frameworks use instruction-level instrumentation analysis methods, which usually generate huge performance overhead and reduce the program execution efficiency by several times or even dozens of times.This limits taint analysis technology’s wide usage in complex malicious samples and commercial software analysis.An optimization method of taint analysis based on function summary was proposed, to improve the efficiency of taint analysis, reduce the performance loss caused by instruction-level instrumentation analysis, and make taint analysis to be more widely used in software analysis.The taint analysis method based on function summary used function taint propagation rules instead of instruction taint propagation rules to reduce the number of data stream propagation analysis and effectively improve the efficiency of taint analysis.For function summary, the definition of function summary was proposed.And the summary generation algorithms of different function structures were studied.Inside the function, a path-sensitive analysis method was designed for acyclic structures.For cyclic structures, a finite iteration method was designed.Moreover, the two analysis methods were combined to solve the function summary generation of mixed structure functions.Based on this research, a general taint analysis framework called FSTaint was designed and implemented, consisting of a function summary generation module, a data flow recording module, and a taint analysis module.The efficiency of FSTaint was evaluated in the analysis of real APT malicious samples, where the taint analysis efficiency of FSTaint was found to be 7.75 times that of libdft, and the analysis efficiency was higher.In terms of accuracy, FSTaint has more accurate and complete propagation rules than libdft.

Key words: function summary, taint analysis, data flow analysis, FSTaint

中图分类号: 

No Suggested Reading articles found!