一种基于堆内存建模的堆漏洞自动化利用方法与流程

文档序号:37076523发布日期:2024-02-20 21:30阅读:9来源:国知局
一种基于堆内存建模的堆漏洞自动化利用方法与流程

本发明涉及漏洞自动化利用,具体而言,涉及一种基于堆内存建模的堆漏洞自动化利用方法。


背景技术:

1、就目前而言,现有技术对于堆内存漏洞自动化利用的研究主要为手工分析,其主要依靠枚举随机堆交互动作作为初始攻击序列的输入,由于堆交互动作可选择排列组合空间较大,依靠手工分析的方法容易产生大量的初始攻击序列,之后需要通过系统对所有列表进行符号执行,获取安全违规行为,不仅容易影响整体的速度,耗时耗力;而且需要安全人员对堆管理器的内部结构非常熟悉,且具有丰富的经验。随着模糊测试在漏洞挖掘领域取得较好效果,人工利用漏洞来评估修复优先级已经跟不上漏洞发现的速度,基于此,我们设计了一种基于堆内存建模的堆漏洞自动化利用方法。


技术实现思路

1、本发明的目的在于提供一种基于堆内存建模的堆漏洞自动化利用方法,其通过设计基于符号执行引擎及相关模板的构建,对堆漏洞自动化分析并辅助安全分析人员快速的判断堆漏洞是否能被利用、有多大可能性被利用以及漏洞危害大小,从而制定合理的修复优先级,保护软件不受攻击者的攻击。

2、本发明的实施例通过以下技术方案实现:

3、一种基于堆内存建模的堆漏洞自动化利用方法,该方法的步骤包括:

4、基于符号执行引擎模拟运行目标二进制程序,提取目标二进制程序的相关函数,并通过漏洞检测算法确定目标二进制程序是否存在堆漏洞,若是,则记录堆漏洞类型;

5、在目标二进制程序的模拟运行过程中,基于堆漏洞类型,构建并选取相关模板输入至符号执行引擎,通过符号执行引擎运行相关模板中的攻击序列,并通过相关模板中的堆内存期望约束对攻击序列的堆内存布局进行约束验证,得到约束验证结果;

6、基于约束验证结果,获取堆内存布局的可利用状态及其路径约束条件,将攻击序列的操作参数进行符号化,并通过约束求解器对堆内存布局的可利用状态路径约束条件进行求解,输出堆漏洞的所处位置区域及处理结果。

7、可选的,所述提取目标二进制程序的相关函数,所述提取目标二进制程序具体采用hook关键函数。

8、可选的,所述基于符号执行引擎模拟运行目标二进制程序,其具体为:将符号值作为输入模拟执行目标二进制程序,并在模拟执行目标二进制程序的过程中,迭代更新符号值的状态及路径约束条件,直至到达堆内存布局的可利用状态,获取堆内存布局的可利用状态路径约束条件,并通过约束求解器求解堆漏洞的所处位置区域及处理结果。

9、可选的,所述构建并选取相关模板输入至符号执行引擎,所述相关模板具体根据how2heap进行构建,相关模板包括:攻击序列、堆布局期望约束、可利用状态判断逻辑。

10、可选的,通过相关模板中的堆内存期望约束对攻击序列的堆内存布局进行约束验证,其具体为:在执行攻击序列的过程中,通过hook关键函数及堆内存期望约束验证堆内存布局的满足性,若满足性达到预期值,则执行可利用状态判断逻辑,直至获取堆内存布局的可利用状态;若否,则结束并发出提示。

11、可选的,所述可利用状态判断逻辑具体为:基于可利用状态的类型,对目标二进制程序进行攻击,并在对目标二进制程序进行攻击的过程中,自动判断堆布局是否达到可利用状态,其中,可利用状态包括堆块重叠类型、非堆分配类型和任意地址写类型。

12、可选的,所述符号执行引擎采用angr符号执行引擎。

13、本发明实施例的技术方案至少具有如下优点和有益效果:

14、本发明实施例通过设计基于符号执行引擎及相关模板的构建,对堆漏洞自动化分析并辅助安全分析人员快速的判断堆漏洞是否能被利用、有多大可能性被利用以及漏洞危害大小,从而制定合理的修复优先级,保护软件不受攻击者的攻击。



技术特征:

1.一种基于堆内存建模的堆漏洞自动化利用方法,其特征在于,该方法的步骤包括:

2.根据权利要求1所述的基于堆内存建模的堆漏洞自动化利用方法,其特征在于,所述提取目标二进制程序的相关函数,所述提取目标二进制程序具体采用hook关键函数。

3.根据权利要求2所述的基于堆内存建模的堆漏洞自动化利用方法,其特征在于,所述基于符号执行引擎模拟运行目标二进制程序,其具体为:将符号值作为输入模拟执行目标二进制程序,并在模拟执行目标二进制程序的过程中,迭代更新符号值的状态及路径约束条件,直至到达堆内存布局的可利用状态,获取堆内存布局的可利用状态路径约束条件,并通过约束求解器求解堆漏洞的所处位置区域及处理结果。

4.根据权利要求3所述的基于堆内存建模的堆漏洞自动化利用方法,其特征在于,所述构建并选取相关模板输入至符号执行引擎,所述相关模板具体根据how2heap进行构建,相关模板包括:攻击序列、堆布局期望约束、可利用状态判断逻辑。

5.根据权利要求4所述的基于堆内存建模的堆漏洞自动化利用方法,其特征在于,通过相关模板中的堆内存期望约束对攻击序列的堆内存布局进行约束验证,其具体为:在执行攻击序列的过程中,通过hook关键函数及堆内存期望约束验证堆内存布局的满足性,若满足性达到预期值,则执行可利用状态判断逻辑,直至获取堆内存布局的可利用状态;若否,则结束并发出提示。

6.根据权利要求5所述的基于堆内存建模的堆漏洞自动化利用方法,其特征在于,所述可利用状态判断逻辑具体为:基于可利用状态的类型,对目标二进制程序进行攻击,并在对目标二进制程序进行攻击的过程中,自动判断堆布局是否达到可利用状态,其中,可利用状态包括堆块重叠类型、非堆分配类型和任意地址写类型。

7.根据权利要求1-6任一项所述的基于堆内存建模的堆漏洞自动化利用方法,其特征在于,所述符号执行引擎采用angr符号执行引擎。


技术总结
本发明涉及漏洞自动化利用技术领域,具体而言,涉及一种基于堆内存建模的堆漏洞自动化利用方法,该方法的步骤包括:基于符号执行引擎模拟运行目标二进制程序,提取目标二进制程序的相关函数,并通过漏洞检测算法确定目标二进制程序是否存在堆漏洞,并记录堆漏洞类型;基于堆漏洞类型,构建并选取相关模板输入至符号执行引擎,通过符号执行引擎运行相关模板中的攻击序列,并通过堆内存期望约束对攻击序列的堆内存布局进行约束验证,得到约束验证结果;基于约束验证结果,获取堆内存布局的可利用状态及其路径约束条件,通过约束求解器对堆内存布局的可利用状态路径约束条件进行求解,输出堆漏洞的所处位置区域及处理结果。

技术研发人员:崔艳鹏,胡建伟,张舒美,崔博
受保护的技术使用者:成都西电网络安全研究院
技术研发日:
技术公布日:2024/2/19
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1