国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:尹小康,蔡瑞杰,杨启超,刘胜利
单位:尹小康,数学工程与先进计算国家重点实验室(信息工程大学), 河南 郑州 45000111,蔡瑞杰,数学工程与先进计算国家重点实验室(信息工程大学), 河南 郑州 45000102,杨启超,数学工程与先进计算国家重点实验室(信息工程大学), 河南 郑州 45000103,刘胜利,数学工程与先进计算国家重点实验室(信息工程大学), 河南 郑州 45000104
关键词:静态分析;动态分析;仿真执行;内存拷贝类函数;函数识别
基金:科技委基础加强重点项目(2019-JCJQ-ZD-113)
缓冲区溢出等内存错误漏洞的产生往往来自对内存拷贝类函数的不当使用. 对二进制程序中的内存拷贝类函数进行识别有利于发现内存错误漏洞. 目前针对二进制程序中内存拷贝类函数的识别方法主要借助静态分析来提取函数的特征、控制流、数据流等信息进行识别, 具有较高的误报率和漏报率. 为了提高对内存拷贝类函数识别的效果, 提出一种基于静态和动态混合分析的技术CPSeeker. 所提方法结合静态分析和动态分析各自的优势, 分阶段对函数的全局静态信息和局部执行信息进行搜集, 对提取到的信息进行融合分析, 进而识别二进制程序中的内存拷贝类函数. 实验结果表明, 尽管CPSeeker在运行时间上有所增加, 但在内存拷贝类函数识别的效果上, 其F1值达到了0.96, 远优于最新的工作BootStomp、SaTC、CPYFinder以及Gemini, 并且不受编译环境(编译器版本、编译器种类、编译器优化等级)的影响. 此外, CPSeeker在真实的固件测试中也有更好的表现.
来源:2024年第7期
《软件学报》期刊编辑部