基于静态和动态混合分析的内存拷贝类函数识别
作者:
作者单位:

作者简介:

尹小康(1993-),男,博士,讲师,主要研究领域为网络安全,二进制代码分析,机器学习.;蔡瑞杰(1990-),男,讲师,主要研究领域为网络安全,二进制代码分析,漏洞挖掘.;杨启超(1992-),男,讲师,主要研究领域为网络对抗,网络安全.;刘胜利(1973-),男,博士,教授,博士生导师,主要研究领域为网络攻击检测,网络基础设施安全.

通讯作者:

刘胜利, E-mail: mr_shengliliu@163.com

中图分类号:

TP311

基金项目:

科技委基础加强重点项目(2019-JCJQ-ZD-113)


Identification of Memory Copy Function via Hybrid Static and Dynamic Analysis
Author:
Affiliation:

Fund Project:

  • 摘要
  • |
  • 图/表
  • |
  • 访问统计
  • |
  • 参考文献
  • |
  • 相似文献
  • |
  • 引证文献
  • |
  • 资源附件
  • |
  • 文章评论
    摘要:

    缓冲区溢出等内存错误漏洞的产生往往来自对内存拷贝类函数的不当使用. 对二进制程序中的内存拷贝类函数进行识别有利于发现内存错误漏洞. 目前针对二进制程序中内存拷贝类函数的识别方法主要借助静态分析来提取函数的特征、控制流、数据流等信息进行识别, 具有较高的误报率和漏报率. 为了提高对内存拷贝类函数识别的效果, 提出一种基于静态和动态混合分析的技术CPSeeker. 所提方法结合静态分析和动态分析各自的优势, 分阶段对函数的全局静态信息和局部执行信息进行搜集, 对提取到的信息进行融合分析, 进而识别二进制程序中的内存拷贝类函数. 实验结果表明, 尽管CPSeeker在运行时间上有所增加, 但在内存拷贝类函数识别的效果上, 其F1值达到了0.96, 远优于最新的工作BootStomp、SaTC、CPYFinder以及Gemini, 并且不受编译环境(编译器版本、编译器种类、编译器优化等级)的影响. 此外, CPSeeker在真实的固件测试中也有更好的表现.

    Abstract:

    Memory error vulnerabilities (e.g., buffer overflow) are often caused by improper use of memory copy functions. The identification of memory copy functions in binary programs is beneficial for finding memory error vulnerabilities. However, current methods for identifying memory copy functions in binary programs mainly rely on static analysis to extract functions’ features, control flow, data flow, and other information, with a high false positive and false negative. This study proposes a technique, namely CPSeeker, based on hybrid static and dynamic analysis to improve the effectiveness of identifying memory copy functions. CPSeeker combines the advantages of static analysis and dynamic analysis, collects the global static information and local execution information of functions in stages, and fuses the extracted information to identify memory copy functions in binary programs. The experimental results show that CPSeeker outperforms the state-of-the-art BootStomp, SaTC, CPYFinder, and Gemini in identifying memory copy functions, despite its increased runtime consumption, and its F1 value reaches 0.96. Furthermore, CPSeeker is not affected by the compilation environment (compiler version, compiler type, and compiler optimization level). In addition, CPSeeker has a better performance in actual firmware tests.

    参考文献
    相似文献
    引证文献
引用本文

尹小康,蔡瑞杰,杨启超,刘胜利.基于静态和动态混合分析的内存拷贝类函数识别.软件学报,2024,35(7):3291-3313

复制
分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2022-03-27
  • 最后修改日期:2022-09-19
  • 录用日期:
  • 在线发布日期: 2023-07-26
  • 出版日期:
文章二维码
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号