自动化堆内存池分析辅助的漏洞挖掘方法及装置与流程

文档序号:33192408发布日期:2023-02-04 09:08阅读:来源:国知局

技术特征:
1.一种自动化堆内存池分析辅助的漏洞挖掘方法,其特征在于,包括:对目标应用程序的内存调用情况进行分析,判断所述目标应用程序在内存池管理过程中申请的内存区域是否包含多个内存页;若是,则进一步对所述目标应用程序使用的内存池管理库进行分析,用以判断所述内存池管理库属于通用型内存管理库或定制型内存管理库;当所述内存池管理库属于通用型内存管理库时,执行预制补丁替换程序,所述预制补丁替换程序通过对内存管理库中的包含的目标函数进行特征提取,以便于基于提取的特征对目标函数进行替换操作,并在llvm的compile-rt中添加库所述目标函数对应的拦截代码;当所述内存管理库属于定制型内存管理库时,采用启发式自动补丁程序,所述自动补丁程序通过选择性的接收所述目标函数中的一组函数名称,通过启发式规则在目标程序代码中进行匹配替换,并生成llvm的compile-rt所需的拦截代码。2.根据权利要求1所述的方法,其特征在于,执行预制补丁替换程序之前,所述方法还包括:提前制作预制补丁,以便于基于所述预制补丁,来执行预制补丁替换程序。3.根据权利要求2所述的方法,其特征在于,所述提前制作预制补丁,包括:分析内存池管理库api,确定关键的内存分配和释放接口;结合目标函数的源码分析内部实现原理,确定目标应用程序向操作系统内核申请内存的代码位置;修改所述目标函数的源码,使得所述目标应用程序在申请大块内存的同时利用修改后的函数来规避原始asan中对内存的毒化操作;查找向操作系统内核释放内存的代码位置;修改所述目标函数的源码,以便于在所述目标应用程序释放内存的同时,维护在asan中添加的补丁代码的数据结构;修改llvm的compile-rt,添加对内存池管理api的拦截代码,维护毒化内存相关的数据结构;使用diff工具制作patch文件,同时记录版本信息供后续应用补丁时使用。4.根据权利要求3所述的方法,其特征在于,所述执行预制补丁替换程序,还包括:分析漏洞挖掘所对应的目标应用程序的源码中是否采用了已有预制补丁的内存池管理库;如果是,确定所述已有预制补丁的内存池管理库的名称和版本,从所述已有预制补丁的内存池管理库中获取相应的补丁文件;用patch程序对内存池管理库及llvm的compile-rt库进行补丁操作;确定补丁是否成功应用,避免由于存在第三方定制导致的补丁失效;在确定补丁成功应用之后,编译应用补丁的库源码,生成静态链接库文件;对目标应用程序的代码进行编译并静态链接库文件,后续进入模糊测试流程。5.根据权利要求4所述的方法,其特征在于,所述采用启发式自动补丁程序之前,所述方法还包括:将启发式自动补丁程序由引擎和规则构成,引擎封装编程语言的语法树分析、动态执
行跟踪以及启发式规则解析功能,启发式规则由内置和外置规则组成,内置规则采用编程语言实现,外置规则采用ml类语言描述;提供辅助信息输入接口,允许在启动式分析之前给定辅助分析的数据或限制条件,以加快分析的过程;输出补丁文件,以便后续进入打补丁和模糊测试流程。6.根据权利要求5所述的方法,其特征在于,所述采用启发式自动补丁程序,还包括:人工收集辅助信息并对启发式补丁程序进行配置;指定代码所在目录,以及可执行程序所在位置;执行启发式补丁程序,生成补丁文件;若生成补丁成功,则进行后续常规的打补丁和模糊测试流程;若生成补丁失败,选择性添加辅助信息或调整启发式规则再次尝试;如果多次尝试不成功,则建议直接开始常规的模糊测试流程,或人工介入补丁开发。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:通过扫描目标应用程序的源码自动识别内存池管理库,通过yara规则匹配查找内存池管理库名称及版本;如果返回库的名称和版本,则通过名称和版本确认补丁库中是否已有预制补丁,名称采用正则模糊匹配,版本采用范围匹配;如果存在预制补丁,则正常打补丁后进入常规模糊测试流程;如果不存在预制补丁,则根据是否启用启发式补丁的配置选项,进行启发式生成补丁的后续流程。8.一种自动化堆内存池分析辅助的漏洞挖掘装置,其特征在于,包括:判断模块,用于对目标应用程序的内存调用情况进行分析,判断所述目标应用程序在内存池管理过程中申请的内存区域是否包含多个内存页;分析模块,用于进一步对所述目标应用程序使用的内存池管理库进行分析,用以判断所述内存池管理库属于通用型内存管理库或定制型内存管理库;第一执行模块,用于当所述内存池管理库属于通用型内存管理库时,执行预制补丁替换程序,所述预制补丁替换程序通过对内存管理库中的包含的目标函数进行特征提取,以便于基于提取的特征对目标函数进行替换操作,并在llvm的compile-rt中添加库所述目标函数对应的拦截代码;第二执行模块,用于当所述内存管理库属于定制型内存管理库时,采用启发式自动补丁程序,所述自动补丁程序通过选择性的接收所述目标函数中的一组函数名称,通过启发式规则在目标程序代码中进行匹配替换,并生成llvm的compile-rt所需的拦截代码。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述任一权利要求1-7所述的自动化堆内存池分析辅助的漏洞挖掘方法。10.一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,
该计算机指令用于使该计算机执行前述任一权利要求1-7所述的自动化堆内存池分析辅助的漏洞挖掘方法。

技术总结
本发明实施例中提供了一种自动化堆内存池分析辅助的漏洞挖掘方法、装置及电子设备,属于数据安全技术领域,该方法包括:对目标应用程序的内存调用情况进行分析,判断所述目标应用程序在内存池管理过程中申请的内存区域是否包含多个内存页;若是,则进一步对所述目标应用程序使用的内存池管理库进行分析;当所述内存池管理库属于通用型内存管理库时,执行预制补丁替换程序;当所述内存管理库属于定制型内存管理库时,采用启发式自动补丁程序,所述自动补丁程序通过选择性的接收所述目标函数中的一组函数名称,通过启发式规则在目标程序代码中进行匹配替换,并生成LLVM的compile-rt所需的拦截代码。采用本方案,能够有效的对内存破坏型漏洞进行挖掘。内存破坏型漏洞进行挖掘。内存破坏型漏洞进行挖掘。


技术研发人员:王斌 李峰 杨慧婷 邹振婉 郭学让 樊树铭 叶波
受保护的技术使用者:国网新疆电力有限公司电力科学研究院
技术研发日:2022.11.15
技术公布日:2023/2/3
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1