CN104732152B - 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 - Google Patents
基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 Download PDFInfo
- Publication number
- CN104732152B CN104732152B CN201510161507.XA CN201510161507A CN104732152B CN 104732152 B CN104732152 B CN 104732152B CN 201510161507 A CN201510161507 A CN 201510161507A CN 104732152 B CN104732152 B CN 104732152B
- Authority
- CN
- China
- Prior art keywords
- path
- program
- point
- buffer
- overflow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,首先使用漏洞特征匹配方法得到大量含有误报的漏洞疑似路径,其次利用基于状态空间缩减和路径剪枝的符号执行技术验证设定的漏洞疑似静态分析路径,在检测点处通过构建溢出模型以及约束求解判断该漏洞是否有测试用例能够触发。本发明使用动静态结合的方法自动加测缓冲区溢出漏洞,能够运用于漏洞检测以及安全审计,代替人工自动验证静态分析缓冲区溢出漏洞的结果等方向,能够快速进行自动检测并生成溢出漏洞触发测试用例,有效节省时间和人力成本。
Description
技术领域
本发明涉及一种基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,该方法能够运用于漏洞检测以及安全审计,代替人工自动验证静态分析缓冲区溢出漏洞的结果等方向,属于软件测试技术应用领域。
背景技术
软件安全是使软件在受到恶意攻击的情形下仍能够继续保证功能性正确及确保软件被在授权范围内合法使用。然而由于软件开发者开发软件时的疏忽或者编程语言的局限性,软件中常常存在潜在的漏洞。这些漏洞能够极大削弱软件安全性,一旦被攻击者利用会造成非常严重的后果,缓冲区溢出漏洞是软件漏洞中十分常见的一种。
缓冲区溢出漏洞指的是通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令。缓冲区溢出攻击可以导致程序运行失败、系统关机、重新启动,或者执行攻击者的指令,比如非法提升权限,可能造成十分严重的后果。
目前存在动态测试和静态分析两种手段来发现程序中的缓冲区溢出漏洞,动态测试通过编写测试用例运行不同的程序路径,分析是否能够触发潜在漏洞。动态分析的缺点十分明显,需要软件测试人员设计精巧的测试用例,而测试用例一旦设计的不够完善,会导致漏洞无法被检测到。静态分析指的是不运行程序,匹配事先设定的缓冲区溢出模型或者特征,静态漏洞测试转换为特征匹配问题。由于漏洞可能发生在某条特定的路径中,所以静态分析技术往往是路径相关的,分析的结果可能会给出一条不完整的路径片段。静态分析工具为了保证分析结果的准确性而产生了大量的警报,这些警报绝大部分是冗余的,只包含了小部分真正漏洞。真正在使用这些工具的过程中,需要安全审计人员手工检查上述缓冲区溢出警报,编写测试用例覆盖静态分析产生的路径,以分析该路径是否存在缓冲区溢出的可能,从而耗费大量时间和精力。
符号执行技术是一种计算机以符号推倒的方式来模拟程序实际执行的执行,最早提出于1976年,其基本思想是用符号代替实际输入,在执行过程中,遇到分支则复制已有的环境信息,收集相关约束执行到程序出口或发现错误时,根据收集到的约束条件求解,产生测试用例。
发明内容
技术问题:本发明提出了一种基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,首先通过漏洞特征匹配等静态分析手段得到溢出漏洞疑似路径,静态分析高效方便但是存在大量误报,然后通过符号执行验证静态缓冲区溢出分析的漏洞疑似路径,在执行过程中构建缓冲区溢出漏洞模型验证该路径是否存在对应的测试用例能够触发以达到消除误报精化结果的目的。同时符号执行存在状态爆炸的问题,本发明也解决如何利用静态分析的结果引导符号执行的方向,避免执行无用路径的执行。
技术方案:本发明提出的基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法结合了动态测试和静态分析的特点,解决了这两种手段目前存在的不足,本方法主要分为两步:通过漏洞特征匹配等静态分析手段得到溢出漏洞疑似路径,这些路径存在大量误报,然后使用状态空间缩减,路径剪枝的符号执行技术验证静态缓冲区溢出分析的漏洞疑似路径。符号执行用于在测试过程中覆盖尽可能多的程序路径,通过引导符号执行的过程,使其只执行潜在可能触发缓冲区溢出漏洞的路径,通过构建缓冲区溢出模型来自动验证该路径是否安全。
符号执行技术的基本思想是用符号代替实际输入,在执行过程中,遇到分支则复制已有的环境信息,收集相关约束执行到程序出口或发现错误时,根据收集到的约束条件求解,产生测试用例。传统的符号执行技术用于提高测试是程序的覆盖度以及内存相关的漏洞检测,我们将符号执行导向某些特定的方向,并将漏洞疑似位置点处的漏洞溢出条件加入整条路径的约束条件中,在该程序位置点处进行缓冲区溢出漏洞与路径约束求解,可通过对约束解的值的分析高效检验缓冲区溢出漏洞是否会发生,重复上述步骤完成缓冲区溢出漏洞的自动检测。
面向缓冲区溢出误报检测的路径剪枝符号执行方法基本步骤如下:
步骤1:程序源码漏洞特征匹配
扫描程序源代码,匹配源代码中缓冲区溢出漏洞,用可扩展标记语言存储缓冲区溢出漏洞疑似路径,一条漏洞路径由多个程序位置点组成,一个程序位置点由程序的行号位置以及该位置所属于的文件名所唯一标识,漏洞路径的起始点和结束点分别表示缓冲区的内存分配语句和缓冲区溢出语句,位于起始点和结束点的位置点代表该缓冲区相关的操作语句;
步骤2:搜索基本块路径
为待测试的程序或者系统构建控制流图,所谓控制流图是一个有向图,控制流图中每个节点代表一个基本块,程序中的每个语句都对应图中的一个节点,控制流在离开基本块之前不会跳转或者停机;
将缓冲区溢出漏洞疑似路径中的每一个程序位置点映射到控制流图的基本块,多个程序位置点可能会映射到同一个控制流图的基本块,从而形成一条不完整的由基本块组成路径;
根据设定的路径搜索策略获取从程序入口至程序溢出点的一条完整基本块路径;
步骤3:抽取动态测试路径
上述的基本块组成路径不能够用于引导符号执行的分析过程,原因在于符号执行的过程是对符号执行中间码指令的解释过程,每个指令都能映射到所属于的基本块,基本块内部的指令不存在跳转关系,基本块之间则存在跳转关系;只有在到达基本块入口时,删除该入口指令才有可能阻止符号执行进入无用的基本块,抽取基本块路径中每一个基本块的入口指令的信息即:指令对应程序所在文件名称以及行号,获取以上信息重新生成一条动态测试路径;
步骤4:符号执行路径剪枝
将当前准备分析的系统或者程序编译到符号执行平台,将动态测试路径以及符号执行编译指令作为输入给符号执行平台,符号执行的过程其实是对中间码指令的逐条解释的过程,在执行过程中,抽取指令的所属于的程序源码的文件以及行号信息,与动态测试路径中的配置信息相对比,跳过不必要执行的中间码,以达到路径剪枝,加快执行速度以及缩减执行状态空间的目的;
步骤5:缓冲区溢出漏洞路径误报检测
检查符号执行的进程是否到达缓冲区溢出漏洞的疑似点,构建缓冲区溢出漏洞约束条件根据不同的操作设定不同的溢出条件;将溢出条件加入当前路径约束条件,进行约束求解,如果可解,则说明该路径确实存在漏洞,属于溢出路径,如果不可解,则说明该路径是安全路径;
步骤6:缓冲区溢出点判定
重复以上若干步骤,直到所有的漏洞特征匹配到的路径都已经被验证,对溢出疑似点进行判定:使用如下判定准则:一个缓冲区溢出疑似点对应多条疑似路径,如果缓冲区溢出疑似点的路径集合中有一条为漏洞路径,那么该程序点确认为溢出;如果缓冲区溢出疑似点的路径集合中的每一条都为安全路径,那么该程序点确认为误报点。
所述程序源码漏洞特征匹配的方法,获取的结果能够引导符号执行的过程状态空间缩减以及无用路径剪枝,同时在程序检查点加入缓冲区溢出条件进行漏洞路径误报检测,具体如下:
①将当前准备分析的系统或者程序编译到符号执行平台,获取待分析程序在符号执行的中间码,符号执行平台都配备编译工具,配置和使用该编译工具即可完成本步骤,符号执行平台产生的中间码用于步骤②;
②符号执行平台所需要的输入为已经得到的动态测试路径,以及步骤①得到的符号执行编译指令;动态测试路径同样有多个程序位置点组成,每个程序位置点由程序的行号位置以及该位置所属于的文件名所唯一标识,这里的行号位置由基本块的入口决定;
③缓冲区相关变量的符号化,符号化的变量在路径分支,收集相关的路径约束条件;
④初始化符号执行状态,将初始化状态加入符号执行状态集合;
⑤从状态集合中选择一个状态执行,这里按照的选择策略是深度优先策略;
⑥执行选中的符号执行状态,实际表现为执行该状态对应的中间码指令;
如果该指令为退出指令或者遇到错误指令,则根据当前的路径约束求解得到测试用例,将当前状态从状态集合中删除;
如果该指令为分支指令,将当前状态复制得到新的分支状态,将新状态加入状态集合中;
如果该指令为其他指令,则跳转至步骤⑨;
⑦获取分支指令对应的两个分支状态的配置信息,具体即分支状态中包含中符号执行中间码指令所映射到的程序位置行号;
⑧将两个分支符号状态的配置信息与动态测试路径中的对比,删除不在动态测试路径中的状态,仅保留一个;
⑨通过程序位置行号的匹配,查看符号执行的进程是否到达缓冲区溢出漏洞的疑似点;
⑩构建缓冲区溢出漏洞约束条件,分析缓冲区内存相关操作,将其分为两类:指针访问操作以及数组访问操作,根据不同的操作设定不同的溢出条件;
将溢出条件加入当前路径约束条件,进行约束求解,如果可解,则说明该路径确实存在漏洞,属于溢出路径,如果不可解,则说明该路径是安全路径;
跳转步骤⑤执行,直到所有的符号状态都已经被执行,或者达到了设定的时间,内存阈值。
有益效果:本发明提出的基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法主要分为两个步骤:首先通过漏洞特征匹配检测获取存在大量误报的疑似路径集合,其次通过路径剪枝的符号执行方法验证上述路径集合。具体来说,本发明所述的方法具有如下的有益效果:
(1)本发明所述的基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法能够从路径与程序位置点两种不同的粒度检测潜在的溢出漏洞。本发明提出的方法利用漏洞特征匹配静态分析给出的结果,为安全审查者提供更加细致清楚的缓冲区溢出漏洞路径以及程序位置点,而自动过滤同样能够到达该程序位置点但是无法触发漏洞的路径以及安全的程序位置点,节省了大量人工审查的时间和精力。
(2)本发明提出的方法能够自动生成触发缓冲区溢出漏洞的测试用例。本发明提出的方法基于符号执行技术,而符号执行技术在执行过程中能够收集符号化变量的相关的路径约束条件,通过约束求解得到符号化变量的实际值,而漏洞路径的对应的测试用例在实际运行过程中能够真实触发该漏洞。
(3)本发明所述的方法能够有效抑制符号执行过程中的状态爆炸问题。由于使用了漏洞特征匹配静态分析的结果作为符号执行的过程作为引导,符号执行状态在执行过程中会和动态测试路径中的信息相对比,每个分支指令的两个相反状态在执行过程中只有一个能够被保留,有效抑制了状态分裂过多而导致内存被快速消耗的问题。
附图说明
图1是面向缓冲区溢出误报检测的路径剪枝符号执行方法的流程图。
具体实施方式
具体的实施过程可以利用目前现有的缓冲区溢出静态分析工具,控制流图生成工具以及符号执行工具。以下部分就实施过程中的细节做更加具体的描述。
一.获取完整的,可用于引导符号执行的静态分析路径
在具体实施中,通过特征匹配获取得到的静态缓冲区溢出漏洞路径需要被映射到控制流图,进行进一步的静态分析,才能够被用于后续步骤。
1.为待测试的程序或者系统构建控制流图,所谓控制流图是一个有向图,控制流图中每个节点代表一个基本块,程序中的每个语句都对应图中的一个节点,控制流在离开基本块之前不会跳转或者停机。
2.将控制流图反转,即图中节点不变,节点之间指向反转,指向反转的目的是为了在后续搜索路径的过程中能够能够更加高效。
3.将缓冲区溢出漏洞疑似路径中的每一个程序位置点映射到控制流图的基本块,多个程序位置点可能会映射到同一个控制流图的基本块,从而形成一条不完整的由基本块组成路径。
4.将程序入口所对应的基本块以及疑似路径映射到的基本块标记为着色基本块,检测着色基本块两两之间是否存在一条可达的路径。如果可达,那么跳转到步骤5),否则结束整个测试过程,因为每个基本块是中间代码的集合,在静态分析的中间代码上来说不可达,那么实际执行过程中该路径也是不可能完整的,覆盖每一个程序位置点的执行,该疑似路径判定为安全路径。
5.上述步骤中标记的着色基本块两两之间已经标记为可达,搜索两两着色基本块之间的所有路径,按照不同的筛选原则从路径片段集合中选出我们希望验证的路径片段,从验证的时间性能上考虑,我们选择集合中的最短路径。
6.得到着色基本块两两之间的路径片段,将上述路径片段拼接,可以获取从程序入口至程序溢出点的一条完整基本块路径。
二.符号执行的状态空间缩减和路径剪枝
1.将当前准备分析的系统或者程序编译到符号执行平台,获取待分析程序在符号执行的中间码,符号执行平台一般都配备编译工具,配置和使用该编译工具即可完成本步骤,符号执行的中间码用于步骤2。
2.符号执行平台所需要的输入为已经得到的动态测试路径,以及步骤1得到的符号执行编译指令。动态测试路径同样有多个程序位置点组成,每个程序位置点由由程序的行号位置以及该位置所属于的文件名所唯一标识,这里的行号位置由基本块的入口决定的。
3.缓冲区相关变量的符号化,符号化的变量在路径分支,收集相关的路径约束条件。
4.初始化符号执行状态,将初始化状态加入符号执行状态集合。
5.从状态集合中选择一个状态执行,这里按照的选择策略是深度优先策略。
6.执行选中的符号执行状态,实际表现为执行该状态对应的中间码指令。
如果该指令为退出指令或者遇到错误指令,则根据当前的路径约束求解得到测试用例,将当前状态从状态集合中删除;
如果该指令为分支指令,将当前状态复制得到新的分支状态,将新状态加入状态集合中。
如果该指令为其他指令,则跳转至步骤9。
7.获取分支指令对应的两个分支状态的配置信息,具体即分支状态中包含中符号执行中间码指令所映射到的程序位置行号。
8.将两个分支符号状态的配置信息与动态测试路径中的对比,删除不在动态测试路径中的状态,仅保留一个。
9.跳转步骤5执行,直到所有的符号状态都已经被执行,或者达到了设定的时间,内存阈值。
三.缓冲区溢出漏洞疑似路径验证
当符号执行到达了静态缓冲区溢出的程序点,我们具体需要进行如下步骤来进行缓冲区溢出的检测。
1.通过程序位置行号的匹配,查看符号执行的进程是否到达缓冲区溢出漏洞的疑似点。
2.构建缓冲区溢出漏洞约束条件,分析缓冲区内存相关操作,将其分为两类:指针访问操作以及数组访问操作,根据不同的操作设定不同的溢出条件。
3.将溢出条件加入当前路径约束条件,进行约束求解,如果可解,则说明该路径确实存在漏洞,属于溢出路径,如果不可解,则说明该路径是安全路径。
Claims (2)
1.一种基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,其特征在于该方法包含的具体步骤为:
步骤1:程序源码漏洞特征匹配
扫描程序源代码,匹配源代码中缓冲区溢出漏洞,用可扩展标记语言存储缓冲区溢出漏洞疑似路径,一条漏洞路径由多个程序位置点组成,一个程序位置点由程序的行号位置以及该位置所属于的文件名所唯一标识,漏洞路径的起始点和结束点分别表示缓冲区的内存分配语句和缓冲区溢出语句,位于起始点和结束点的位置点代表该缓冲区相关的操作语句;
步骤2:搜索基本块路径
为待测试的程序或者系统构建控制流图,所谓控制流图是一个有向图,控制流图中每个节点代表一个基本块,程序中的每个语句都对应图中的一个节点,控制流在离开基本块之前不会跳转或者停机;
将缓冲区溢出漏洞疑似路径中的每一个程序位置点映射到控制流图的基本块,多个程序位置点可能会映射到同一个控制流图的基本块,从而形成一条不完整的由基本块组成路径;
根据设定的路径搜索策略获取从程序入口至程序溢出点的一条完整基本块路径;
步骤3:抽取动态测试路径
上述的基本块组成路径不能够用于引导符号执行的分析过程,原因在于符号执行的过程是对符号执行中间码指令的解释过程,每个指令都能映射到所属于的基本块,基本块内部的指令不存在跳转关系,基本块之间则存在跳转关系;只有在到达基本块入口时,删除该入口指令才有可能阻止符号执行进入无用的基本块,抽取基本块路径中每一个基本块的入口指令的信息即:指令对应程序所在文件名称以及行号,获取以上信息重新生成一条动态测试路径;
步骤4:符号执行路径剪枝
将当前准备分析的系统或者程序编译到符号执行平台,将动态测试路径以及符号执行编译指令作为输入给符号执行平台,符号执行的过程其实是对中间码指令的逐条解释的过程,在执行过程中,抽取指令的所属于的程序源码的文件以及行号信息,与动态测试路径中的配置信息相对比,跳过不必要执行的中间码,以达到路径剪枝,加快执行速度以及缩减执行状态空间的目的;
步骤5:缓冲区溢出漏洞路径误报检测
检查符号执行的进程是否到达缓冲区溢出漏洞的疑似点,构建缓冲区溢出漏洞约束条件根据不同的操作设定不同的溢出条件;将溢出条件加入当前路径约束条件,进行约束求解,如果可解,则说明该路径确实存在漏洞,属于溢出路径,如果不可解,则说明该路径是安全路径;
步骤6:缓冲区溢出点判定
重复以上若干步骤,直到所有的漏洞特征匹配到的路径都已经被验证,对溢出疑似点进行判定:使用如下判定准则:一个缓冲区溢出疑似点对应多条疑似路径,如果缓冲区溢出疑似点的路径集合中有一条为漏洞路径,那么该程序点确认为溢出;如果缓冲区溢出疑似点的路径集合中的每一条都为安全路径,那么该程序点确认为误报点。
2.根据权利要求书1所述的基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法,其特征在于所述程序源码漏洞特征匹配,获取的结果能够引导符号执行的过程状态空间缩减以及无用路径剪枝,同时在程序检查点加入缓冲区溢出条件进行漏洞路径误报检测,具体如下:
①将当前准备分析的系统或者程序编译到符号执行平台,获取待分析程序在符号执行的中间码,符号执行平台都配备编译工具,配置和使用该编译工具即可完成本步骤,符号执行平台产生的中间码用于步骤②;
②符号执行平台所需要的输入为已经得到的动态测试路径,以及步骤①得到的符号执行编译指令;动态测试路径同样有多个程序位置点组成,每个程序位置点由程序的行号位置以及该位置所属于的文件名所唯一标识,这里的行号位置由基本块的入口决定;
③缓冲区相关变量的符号化,符号化的变量在路径分支,收集相关的路径约束条件;
④初始化符号执行状态,将初始化状态加入符号执行状态集合;
⑤从状态集合中选择一个状态执行,这里按照的选择策略是深度优先策略;
⑥执行选中的符号执行状态,实际表现为执行该状态对应的中间码指令;
如果该指令为退出指令或者遇到错误指令,则根据当前的路径约束求解得到测试用例,将当前状态从状态集合中删除;
如果该指令为分支指令,将当前状态复制得到新的分支状态,将新状态加入状态集合中;
如果该指令为其他指令,则跳转至步骤⑨;
⑦获取分支指令对应的两个分支状态的配置信息,具体即分支状态中包含中符号执行中间码指令所映射到的程序位置行号;
⑧将两个分支符号状态的配置信息与动态测试路径中的对比,删除不在动态测试路径中的状态,仅保留一个;
⑨通过程序位置行号的匹配,查看符号执行的进程是否到达缓冲区溢出漏洞的疑似点;
⑩构建缓冲区溢出漏洞约束条件,分析缓冲区内存相关操作,将其分为两类:指针访问操作以及数组访问操作,根据不同的操作设定不同的溢出条件;
将溢出条件加入当前路径约束条件,进行约束求解,如果可解,则说明该路径确实存在漏洞,属于溢出路径,如果不可解,则说明该路径是安全路径;
跳转步骤⑤执行,直到所有的符号状态都已经被执行,或者达到了设定的时间,内存阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510161507.XA CN104732152B (zh) | 2015-04-07 | 2015-04-07 | 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510161507.XA CN104732152B (zh) | 2015-04-07 | 2015-04-07 | 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104732152A CN104732152A (zh) | 2015-06-24 |
CN104732152B true CN104732152B (zh) | 2017-11-24 |
Family
ID=53456033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510161507.XA Active CN104732152B (zh) | 2015-04-07 | 2015-04-07 | 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104732152B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599695B (zh) * | 2016-06-03 | 2019-07-09 | 南京大学 | 一种基于路径合并的可引导符号执行漏洞检测方法 |
CN107193742B (zh) * | 2017-05-23 | 2020-09-04 | 电子科技大学 | 一种基于状态的路径敏感的符号化函数摘要算法 |
CN111859380A (zh) * | 2019-04-25 | 2020-10-30 | 北京九州正安科技有限公司 | Android App漏洞的零误报检测方法 |
CN110287693B (zh) * | 2019-06-13 | 2023-07-21 | 成都积微物联集团股份有限公司 | 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 |
CN111443916B (zh) * | 2020-03-10 | 2021-06-22 | 南京航空航天大学 | 一种面向程序内存安全性验证工具的静态优化方法 |
CN111581099B (zh) * | 2020-05-11 | 2023-02-10 | 全球能源互联网研究院有限公司 | 一种漏洞路径优先级的符号执行调度方法及系统 |
CN113297070A (zh) * | 2021-04-30 | 2021-08-24 | 中国科学院信息工程研究所 | 一种面向软件更新的软件测试方法和装置 |
CN113535523A (zh) * | 2021-07-30 | 2021-10-22 | 北京中科天齐信息技术有限公司 | 一种目标程序缺陷报告筛选方法及装置 |
CN114238154B (zh) * | 2022-02-24 | 2022-05-06 | 湖南泛联新安信息科技有限公司 | 一种符号执行方法、单元测试方法、电子设备及存储介质 |
CN114579976B (zh) * | 2022-02-25 | 2023-07-14 | 中国人民解放军国防科技大学 | 基于状态转换的堆内存破坏漏洞自动验证方法和系统 |
CN114662117A (zh) * | 2022-03-14 | 2022-06-24 | 南京邮电大学 | 一种固件缓冲区溢出漏洞补丁加固节点的定位方法 |
CN116226673B (zh) * | 2023-05-05 | 2023-07-07 | 中国人民解放军国防科技大学 | 缓冲区漏洞识别模型的训练方法、漏洞检测方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714118A (zh) * | 2009-11-20 | 2010-05-26 | 北京邮电大学 | 一种二进制代码缓冲区溢出漏洞的检测器及其检测方法 |
CN102360334A (zh) * | 2011-10-17 | 2012-02-22 | 中国人民解放军信息工程大学 | 一种动静态结合的软件安全性测试方法 |
CN102708045A (zh) * | 2012-04-13 | 2012-10-03 | 电子科技大学 | 一种缓解路径爆炸的动态符号执行方法 |
CN103389939A (zh) * | 2013-07-03 | 2013-11-13 | 清华大学 | 一种针对堆可控分配漏洞的检测方法及系统 |
CN104008053A (zh) * | 2014-05-28 | 2014-08-27 | 电子科技大学 | 一种用于漏洞发掘的动态符号执行路径搜索方法 |
-
2015
- 2015-04-07 CN CN201510161507.XA patent/CN104732152B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714118A (zh) * | 2009-11-20 | 2010-05-26 | 北京邮电大学 | 一种二进制代码缓冲区溢出漏洞的检测器及其检测方法 |
CN102360334A (zh) * | 2011-10-17 | 2012-02-22 | 中国人民解放军信息工程大学 | 一种动静态结合的软件安全性测试方法 |
CN102708045A (zh) * | 2012-04-13 | 2012-10-03 | 电子科技大学 | 一种缓解路径爆炸的动态符号执行方法 |
CN103389939A (zh) * | 2013-07-03 | 2013-11-13 | 清华大学 | 一种针对堆可控分配漏洞的检测方法及系统 |
CN104008053A (zh) * | 2014-05-28 | 2014-08-27 | 电子科技大学 | 一种用于漏洞发掘的动态符号执行路径搜索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104732152A (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104732152B (zh) | 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 | |
Cao et al. | MVD: memory-related vulnerability detection based on flow-sensitive graph neural networks | |
CN104598383B (zh) | 一种基于模式的动态漏洞挖掘集成系统和方法 | |
Walden et al. | Predicting vulnerable components: Software metrics vs text mining | |
Gao et al. | Bovinspector: automatic inspection and repair of buffer overflow vulnerabilities | |
CN105787367B (zh) | 一种软件更新的补丁安全性检测方法及系统 | |
KR101981028B1 (ko) | 바이너리 기반 보안 취약점 탐색 시스템, 그 방법 및 프로그램 | |
CN103577324B (zh) | 移动应用中隐私信息泄露的静态检测方法 | |
CN109426722A (zh) | Sql注入缺陷检测方法、系统、设备及存储介质 | |
CN102508780B (zh) | 一种用于软件测试的交叉式动态法和装置 | |
CN110287693B (zh) | 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 | |
CN105678169A (zh) | 一种二进制程序漏洞挖掘方法和系统 | |
CN104573524A (zh) | 一种基于静态检测的模糊测试方法 | |
CN106055479B (zh) | 一种基于强制执行的Android应用软件测试方法 | |
CN106599695B (zh) | 一种基于路径合并的可引导符号执行漏洞检测方法 | |
US20130091495A1 (en) | Feedback-directed random class unit test generation using symbolic execution | |
CN109446107A (zh) | 一种源代码检测方法及装置、电子设备 | |
CN104090798A (zh) | 动静态结合的中断驱动程序数据竞争检测方法 | |
CN110197072A (zh) | 软件安全漏洞的发掘方法及系统、存储介质和计算机设备 | |
CN105487983B (zh) | 基于智能路径引导的敏感点逼近方法 | |
Mirsky et al. | {VulChecker}: Graph-based Vulnerability Localization in Source Code | |
CN103136103A (zh) | 一种面向错误定位需求的测试用例约简方法 | |
CN116383833A (zh) | 软件程序代码的测试方法及其装置、电子设备、存储介质 | |
CN104461890B (zh) | 一种航管训练系统开发中Qt程序内存使用静态检查方法 | |
Gao et al. | Deep Learning-Based Hybrid Fuzz Testing. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20150624 Assignee: HUAWEI TECHNOLOGIES Co.,Ltd. Assignor: NANJING University Contract record no.: X2020980005989 Denomination of invention: Automatic detection of buffer overflow vulnerability based on symbolic execution path pruning Granted publication date: 20171124 License type: Common License Record date: 20200911 |
|
EE01 | Entry into force of recordation of patent licensing contract |