CN104732152A - 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 - Google Patents

基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 Download PDF

Info

Publication number
CN104732152A
CN104732152A CN201510161507.XA CN201510161507A CN104732152A CN 104732152 A CN104732152 A CN 104732152A CN 201510161507 A CN201510161507 A CN 201510161507A CN 104732152 A CN104732152 A CN 104732152A
Authority
CN
China
Prior art keywords
path
point
program
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.)
Granted
Application number
CN201510161507.XA
Other languages
English (en)
Other versions
CN104732152B (zh
Inventor
王林章
鲍铁匀
李宣东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201510161507.XA priority Critical patent/CN104732152B/zh
Publication of CN104732152A publication Critical patent/CN104732152A/zh
Application granted granted Critical
Publication of CN104732152B publication Critical patent/CN104732152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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所述的面向缓冲区溢出误报检测的路径剪枝符号执行方法,其特征在于所述程序源码漏洞特征匹配的方法,获取的结果能够引导符号执行的过程状态空间缩减以及无用路径剪枝,同时在程序检查点加入缓冲区溢出条件进行漏洞路径误报检测,具体如下:
①将当前准备分析的***或者程序编译到符号执行平台,获取待分析程序在符号执行的中间码,符号执行平台都配备编译工具,配置和使用该编译工具即可完成本步骤,符号执行平台产生的中间码用于步骤②;
②符号执行平台所需要的输入为已经得到的动态测试路径,以及步骤①得到的符号执行编译指令;动态测试路径同样有多个程序位置点组成,每个程序位置点由程序的行号位置以及该位置所属于的文件名所唯一标识,这里的行号位置由基本块的入口决定;
③缓冲区相关变量的符号化,符号化的变量在路径分支,收集相关的路径约束条件;
④初始化符号执行状态,将初始化状态加入符号执行状态集合;
⑤从状态集合中选择一个状态执行,这里按照的选择策略是深度优先策略;
⑥执行选中的符号执行状态,实际表现为执行该状态对应的中间码指令;
如果该指令为退出指令或者遇到错误指令,则根据当前的路径约束求解得到测试用例,将当前状态从状态集合中删除;
如果该指令为分支指令,将当前状态复制得到新的分支状态,将新状态加入状态集合中;
如果该指令为其他指令,则跳转至步骤⑨;
⑦获取分支指令对应的两个分支状态的配置信息,具体即分支状态中包含中符号执行中间码指令所映射到的程序位置行号;
⑧将两个分支符号状态的配置信息与动态测试路径中的对比,删除不在动态测试路径中的状态,仅保留一个;
⑨通过程序位置行号的匹配,查看符号执行的进程是否到达缓冲区溢出漏洞的疑似点;
⑩构建缓冲区溢出漏洞约束条件,分析缓冲区内存相关操作,将其分为两类:指针访问操作以及数组访问操作,根据不同的操作设定不同的溢出条件;
将溢出条件加入当前路径约束条件,进行约束求解,如果可解,则说明该路径确实存在漏洞,属于溢出路径,如果不可解,则说明该路径是安全路径;
跳转步骤⑤执行,直到所有的符号状态都已经被执行,或者达到了设定的时间,内存阈值。
CN201510161507.XA 2015-04-07 2015-04-07 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 Active CN104732152B (zh)

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 true CN104732152A (zh) 2015-06-24
CN104732152B 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)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599695A (zh) * 2016-06-03 2017-04-26 南京大学 一种基于路径合并的可引导符号执行漏洞检测方法
CN107193742A (zh) * 2017-05-23 2017-09-22 电子科技大学 一种基于状态的路径敏感的符号化函数摘要算法
CN110287693A (zh) * 2019-06-13 2019-09-27 成都积微物联集团股份有限公司 一种基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法
CN111443916A (zh) * 2020-03-10 2020-07-24 南京航空航天大学 一种面向程序内存安全性验证工具的静态优化方法
CN111581099A (zh) * 2020-05-11 2020-08-25 全球能源互联网研究院有限公司 一种漏洞路径优先级的符号执行调度方法及***
CN111859380A (zh) * 2019-04-25 2020-10-30 北京九州正安科技有限公司 Android App漏洞的零误报检测方法
CN113297070A (zh) * 2021-04-30 2021-08-24 中国科学院信息工程研究所 一种面向软件更新的软件测试方法和装置
CN113535523A (zh) * 2021-07-30 2021-10-22 北京中科天齐信息技术有限公司 一种目标程序缺陷报告筛选方法及装置
CN114238154A (zh) * 2022-02-24 2022-03-25 湖南泛联新安信息科技有限公司 一种符号执行方法、单元测试方法、电子设备及存储介质
CN114579976A (zh) * 2022-02-25 2022-06-03 中国人民解放军国防科技大学 基于状态转换的堆内存破坏漏洞自动验证方法和***
CN114662117A (zh) * 2022-03-14 2022-06-24 南京邮电大学 一种固件缓冲区溢出漏洞补丁加固节点的定位方法
CN116226673A (zh) * 2023-05-05 2023-06-06 中国人民解放军国防科技大学 缓冲区漏洞识别模型的训练方法、漏洞检测方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
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 电子科技大学 一种用于漏洞发掘的动态符号执行路径搜索方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 电子科技大学 一种用于漏洞发掘的动态符号执行路径搜索方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599695B (zh) * 2016-06-03 2019-07-09 南京大学 一种基于路径合并的可引导符号执行漏洞检测方法
CN106599695A (zh) * 2016-06-03 2017-04-26 南京大学 一种基于路径合并的可引导符号执行漏洞检测方法
CN107193742A (zh) * 2017-05-23 2017-09-22 电子科技大学 一种基于状态的路径敏感的符号化函数摘要算法
CN107193742B (zh) * 2017-05-23 2020-09-04 电子科技大学 一种基于状态的路径敏感的符号化函数摘要算法
CN111859380A (zh) * 2019-04-25 2020-10-30 北京九州正安科技有限公司 Android App漏洞的零误报检测方法
CN110287693A (zh) * 2019-06-13 2019-09-27 成都积微物联集团股份有限公司 一种基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法
CN110287693B (zh) * 2019-06-13 2023-07-21 成都积微物联集团股份有限公司 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法
CN111443916A (zh) * 2020-03-10 2020-07-24 南京航空航天大学 一种面向程序内存安全性验证工具的静态优化方法
CN111581099B (zh) * 2020-05-11 2023-02-10 全球能源互联网研究院有限公司 一种漏洞路径优先级的符号执行调度方法及***
CN111581099A (zh) * 2020-05-11 2020-08-25 全球能源互联网研究院有限公司 一种漏洞路径优先级的符号执行调度方法及***
CN113297070A (zh) * 2021-04-30 2021-08-24 中国科学院信息工程研究所 一种面向软件更新的软件测试方法和装置
CN113535523A (zh) * 2021-07-30 2021-10-22 北京中科天齐信息技术有限公司 一种目标程序缺陷报告筛选方法及装置
CN114238154A (zh) * 2022-02-24 2022-03-25 湖南泛联新安信息科技有限公司 一种符号执行方法、单元测试方法、电子设备及存储介质
CN114579976A (zh) * 2022-02-25 2022-06-03 中国人民解放军国防科技大学 基于状态转换的堆内存破坏漏洞自动验证方法和***
CN114662117A (zh) * 2022-03-14 2022-06-24 南京邮电大学 一种固件缓冲区溢出漏洞补丁加固节点的定位方法
CN116226673A (zh) * 2023-05-05 2023-06-06 中国人民解放军国防科技大学 缓冲区漏洞识别模型的训练方法、漏洞检测方法及装置
CN116226673B (zh) * 2023-05-05 2023-07-07 中国人民解放军国防科技大学 缓冲区漏洞识别模型的训练方法、漏洞检测方法及装置

Also Published As

Publication number Publication date
CN104732152B (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN104732152A (zh) 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法
Cao et al. MVD: memory-related vulnerability detection based on flow-sensitive graph neural networks
KR101981028B1 (ko) 바이너리 기반 보안 취약점 탐색 시스템, 그 방법 및 프로그램
US10664601B2 (en) Method and system automatic buffer overflow warning inspection and bug repair
CN110287693B (zh) 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法
Yao et al. Statsym: vulnerable path discovery through statistics-guided symbolic execution
CN104573524A (zh) 一种基于静态检测的模糊测试方法
CN104598383A (zh) 一种基于模式的动态漏洞挖掘集成***和方法
KR101640479B1 (ko) 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
CN101482846A (zh) 基于可执行代码逆向分析的漏洞挖掘方法
US20130091495A1 (en) Feedback-directed random class unit test generation using symbolic execution
CN106055479A (zh) 一种基于强制执行的Android应用软件测试方法
Mirsky et al. {VulChecker}: Graph-based Vulnerability Localization in Source Code
CN105487983B (zh) 基于智能路径引导的敏感点逼近方法
CN103218297A (zh) 测试数据的筛选方法及装置
CN108959936A (zh) 一种基于路径分析的缓冲区溢出漏洞自动利用方法
Jeon et al. Automated crash filtering using interprocedural static analysis for binary codes
Han et al. An optimized static propositional function model to detect software vulnerability
Harzevili et al. Automatic Static Vulnerability Detection for Machine Learning Libraries: Are We There Yet?
CN113051582B (zh) 一种计算机软件技术开发调试***
RU168346U1 (ru) Устройство выявления уязвимостей
Puhan et al. Program crash analysis based on taint analysis
Xiaomeng et al. A survey on source code review using machine learning
Gao et al. Automatic buffer overflow warning validation
Ferreirinha et al. On the Path to Buffer Overflow Detection by Model Checking the Stack of Binary Programs.

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
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