CN109376535A - 一种基于智能化符号执行的漏洞分析方法及系统 - Google Patents
一种基于智能化符号执行的漏洞分析方法及系统 Download PDFInfo
- Publication number
- CN109376535A CN109376535A CN201810920886.XA CN201810920886A CN109376535A CN 109376535 A CN109376535 A CN 109376535A CN 201810920886 A CN201810920886 A CN 201810920886A CN 109376535 A CN109376535 A CN 109376535A
- Authority
- CN
- China
- Prior art keywords
- input sample
- sample set
- path
- target
- target program
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000001514 detection method Methods 0.000 claims abstract description 25
- 238000012216 screening Methods 0.000 claims abstract description 24
- 238000012038 vulnerability analysis Methods 0.000 claims description 65
- 238000012549 training Methods 0.000 claims description 15
- 238000010801 machine learning Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 30
- 230000008569 process Effects 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 9
- 230000015654 memory Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000035772 mutation Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于智能化符号执行的漏洞分析方法,包括:当对目标程序的漏洞分析时,采用预设样本生成模型生成变异输入样本集;对所述变异输入样本集进行去重筛选,得到精简输入样本集;确定与所述精简输入样本集对应的各个关键字节;依据所述各个关键字节确定所述目标程序的各个待分析关键路径;依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。上述的方法,对得到的变异输入样本集进行了去重筛选,得到了精简输入样本集,通过所说精简输入样本集确定所述各个待分析关键路径,避免路径存在交叉、具有重复性、存在对同一重复路径进行多次漏洞分析的可能性、导致漏洞分析的执行效率缓慢的问题。
Description
技术领域
本发明涉及漏洞分析技术领域,尤其涉及一种基于智能化符号执行的漏洞分析方法及系统。
背景技术
如今,伴随着网络技术的飞速发展,各种漏洞层出不穷,为了实现网络安全,需要对漏洞进行分析,即使针对同一目标程序,漏洞可以存在于所述目标程序的不同执行路径上,以符号执行方法为例,直接依据样本确定各个执行路径,对所述各个执行路径中的漏洞进行分析。
发明人对现有的基于符号执行的漏洞分析的方法进行研究发现,样本中存在大量的重复,导致生成的各个执行路径间包含的路径存在交叉,具有重复性,存在对同一重复路径进行多次漏洞分析的可能性,漏洞分析的执行效率缓慢。
发明内容
有鉴于此,本发明提供了一种基于智能化符号执行的漏洞分析方法及系统,用以解决现有的漏洞测试过程中直接依据样本确定各个执行路径,样本中存在大量的重复,导致各个执行路径间包含的路径存在交叉,具有重复性,存在对同一重复路径进行多次漏洞分析的可能性,漏洞分析的执行效率缓慢的问题。具体方案如下:
一种基于智能化符号执行的漏洞分析方法,包括:
当对目标程序进行漏洞分析时,根据预设的样本生成模型生成变异输入样本集;
对所述变异输入样本集进行去重筛选,得到精简输入样本集;
确定与所述精简输入样本集对应的各个关键字节;
依据所述各个关键字节确定所述目标程序的各个待分析关键路径;
依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。
上述的方法,可选的,根据预设的样本生成模型生成的变异输入样本集,包括:
采用机器学习的方法训练得到所述预设的样本生成模型;
为所述预设的样本生成模型中的各个输入样本添加对应的变异策略,得到对应的变异输入样本,各个变异输入样本组成变异输入样本集;
当检测到添加完成指令时,获取所述变异输入样本集。
上述的方法,可选的,对所述变异输入样本集进行去重筛选,得到精简输入样本集包括:
计算与所述变异输入样本集中的各个变异输入样本对应的覆盖率;
合并各个覆盖率,得到与所述变异输入样本集对应的目标覆盖率;
选取目标样本,其中,所述目标样板可以覆盖所述各个变异输入样本不可覆盖的位置;
将所述变异样本集中与所述目标样本相同的样本进行删除处理,得到所述精简输入样本集,其中,与所述精简输入样本集对应的覆盖率为目标覆盖率。
上述的方法,可选的,依据所述各个关键字节确定所述目标程序的各个待分析关键路径包括:
将所述各个关键字节转换为符号变量;
采用动态符号执行的方式,将所述符号变量传递给所述目标程序;
获取所述目标程序中对应的各个路径约束;
依据所述各个路径约束,确定所述目标程序的各个待分析关键路径。
上述的方法,可选的,还包括:
解析所述各个待分析关键路径包含的各个基本块;
采用加权路径逼近策略计算所述各个基本块的权重值;
将所述权重值分配给与其对应的基本块。
一种基于智能化符号执行的漏洞分析系统,包括:
获取模块,用于当对目标程序进行漏洞分析时,根据预设的样本生成模型生变异输入样本集;
筛选模块,用于对所述变异输入样本集进行去重筛选,得到精简输入样本集;
第一确定模块,用于确定与所述精简输入样本集对应的各个关键字节;
第二确定模块,用于依据所述各个关键字节确定所述目标程序的各个待分析关键路径;
漏洞分析模块,用于依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。
上述的系统,可选的,根所述获取模块包括:
训练单元,用于采用机器学习的方法训练得到所述预设的样本生成模型;
添加单元,用于为所述预设的样本生成模型中的各个输入样本添加对应的变异策略,得到对应的变异输入样本,各个变异输入样本组成变异输入样本集;
第一获取单元,用于当检测到添加完成指令时,获取所述变异输入样本集。
上述的系统,可选的,所述筛选模块包括:
第一计算单元,用于计算与所述变异输入样本集中的各个变异输入样本对应的覆盖率;
合并单元,用于合并各个覆盖率,得到与所述变异输入样本集对应的目标覆盖率;
选取单元,用于选取目标样本,其中,所述目标样板可以覆盖所述各个变异输入样本不可覆盖的位置;
删除单元,用于将所述变异样本集中与所述目标样本相同的样本进行删除处理,得到所述精简输入样本集,其中,与所述精简输入样本集对应的覆盖率为目标覆盖率。
上述的系统,可选的,所述第二确定模块包括:
转换单元,用于将所述各个关键字节转换为符号变量;
传递单元,用于采用动态符号执行的方式,将所述符号变量传递给所述目标程序;
第二获取单元,用于获取所述目标程序中对应的各个路径约束;
确定单元,用于依据所述各个路径约束,确定所述目标程序的各个待分析关键路径。
上述的系统,可选的,还包括:
解析单元,用于解析所述各个待分析关键路径包含的各个基本块;
第二计算单元,用于采用加权路径逼近策略计算所述各个基本块的权重值;
分配单元,用于将所述权重值分配给与其对应的基本块。
与现有技术相比,本发明包括以下优点:
本发明公开了一种基于智能化符号执行的漏洞分析方法,包括:当对目标程序进行漏洞分析时,根据样本生成模型生成的变异输入样本集;对所述变异输入样本集进行去重筛选,得到精简输入样本集;确定与所述精简输入样本集对应的各个关键字节;依据所述各个关键字节确定所述目标程序的各个待分析关键路径;依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。上述的方法,对得到的变异输入样本集进行了去重筛选,得到了精简输入样本集,通过所说精简输入样本集确定所述各个待分析关键路径,避免路径存在交叉,具有重复性,存在对同一重复路径进行多次漏洞分析的可能性,导致漏洞分析的执行效率缓慢的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种基于智能化符号执行的漏洞分析方法流程图;
图2为本申请实施例公开的一种基于智能化符号执行的漏洞分析方法又一方法流程图;
图3为本申请实施例公开的一种卷积神经网络示意图;
图4为本申请实施例公开的一种基于智能化符号执行的漏洞分析方法又一方法流程图;
图5为本申请实施例公开的一种基于智能化符号执行的漏洞分析方法又一方法流程图;
图6为本申请实施例公开的一种路径探测方法流程图;
图7为本申请实施例公开的一种基于智能化符号执行的漏洞分析方法又一方法流程图;
图8为本申请实施例公开的一种基于智能化符号执行的漏洞分析方法又一方法流程图;
图9为本申请实施例公开的一种基于智能化符号执行的漏洞分析系统结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
本发明公开了一种基于智能化符号执行的漏洞分析方法,所述分析方法应用在二进制漏洞挖掘过程中,本发明实施例中,优选的,将人工智能和符号执行技术相结合,所述漏洞的分析方法的执行主体可以为处理器或者控制器等,所述分析方法的执行流程如图1所示,包括步骤:
S101、当对目标程序进行漏洞分析时,根据样本生成模型生成的变异输入样本集;
本发明实施例中,所述目标程序可以为一个具体的应用,网站,或者其它优选的目标程序,其中,每一个目标程序都会对应一个变异输入样本集,所述变异输入样本集通过预设的样本生成模型和样本变异策略共同生成的。
S102、对所述变异输入样本集进行去重筛选,得到精简输入样本集;
本发明实施例中,所述变异输入样本集中的各个样本存在重复,重复的样本会导致最终漏洞分析过程中的重复漏洞分析,影响漏洞分析的执行效率,优选的,对所述变异输入样本集中的各个变异输入样本进行去重筛选,得到精简输入样本集。
S103、确定与所述精简输入样本集对应的各个关键字节;
本发明实施例中,确定所述精简输入样本集中的各个关键字节是通过“敏感”函数进行静态分析,主要如下几个场景考虑:安全补丁代码:当软件进行安全更新后,通过安装补丁代码来修复之前的安全漏洞。通过反汇编代码比对(如BinDiff)可知安全补丁代码的位置。错误重现:当软件发生运行时错误时,一般会弹出错误发送窗口提示用户发送Crash信息到开发者。为保护用户隐私,一般仅会发送一些Crash上下文信息,并不含测试用例。因此,需要针对有限的Crash信息进行重现操作。危险函数:经漏洞数据统计表明,多数安全漏洞是由于开发人员在进行函数调用时使用不当引起的,因此对于一些内存分配、释放、赋值、拷贝等相关函数应作为重点关注点。复杂结构函数:对于存在循环、递归等多重嵌套复杂结构的函数,通常也是漏洞产生的高发地带,而这类函数由于未明确调用函数或符号缺失被忽略。依据上述的各个应用场景确定各个关键字节。
S104、依据所述各个关键字节确定所述目标程序的各个待分析关键路径;
本发明实施例中,对于漏洞分析领域,只需关心一些特定的关键路径区域,这些区域被认为更有可能存在漏洞。优选的,采用动态符号执行的方式,获取路径约束,依据所述路径约束,确定所述目标程序的各个待分析关键路径。
S105、依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。
本发明实施例中,利用现有人工智能算法,并使用大量已知漏洞的触发样本与程序信息进行训练,以得到一个漏洞分析检测模型。通过所述漏洞检测分析模型可得到较有价值的漏洞检测信息。优选的,基于迭代的最优化算法,不存在某种算法对所有问题均有效。优选的,本发明实施例中仅关注内存型漏洞。
内存型漏洞,即由于内存分配、使用、释放不当所导致的漏洞,具体类型包括释放后重引用、双重释放、未初始化引用、内存溢出等。本发明使用内存操作原语作为特征,但需在样本数据处理前进行数据的标准化。如表1 所示,将所有函数和指令都转化为操作原语。本发明采用保守的方案,体现在:若有函数存在定义和引用两种情况,如memcpy函数,则认定其为堆定义操作原语。操作原语的操作数为参数,符号参数指在符号执行中由初始符号变量经过计算演变后的变量,与初始符号呈数据依赖关系,反之,则为非符号参数,如为常数的变量。未知变量则表示为无法确定是为符号参数或非符号参数。
表1标准化表示
本发明实施例中,所采用的方案需进行监督学习,因此需要大量的漏洞相关信息、标识等数据。国家信息安全漏洞库由中国信息安全测评中心所运营,可为本发明提供了可靠的数据来源保障,且这些漏洞相关数据已经过了人为的分析、处理与标识,降低了数据预处理的成本。
漏洞数据收集与整理主要针对漏洞的元数据进行一致性处理,收集漏洞的运行环境、目标程序、依赖模块、运行环境、受影响版本、触发样本、漏洞类型、可利用性、保护机制、描述等信息。对于缺失的信息,用默认值填补。在漏洞触发环境中,执行重现该漏洞,并在重现过程中监视程序的执行流,并使用上述的操作原语进行翻译与转化,最终得到该漏洞的操作原语序列。得到漏洞相关数据后进行数据清洗,采用编码相关技术,对漏洞相关数据进行标准化、正则化、归一化处理,进而转化成两种表现形式:(1)结合漏洞属性与操作原语序列的字符串;(2)进行RGB三维矩阵编码后映射到图片。
在现有技术中,部分学者直接提取函数调用序列等作为特征,并以文本挖掘的方式进行模型的建立。另一些学者则将漏洞相关特征符号化,将字符、数值等标识转化成图片、声音后再进行模型的建立。基于文本特征的神经网络较为直观,特征与结果关联性较强,但易产生过度拟合的问题。而基于图像处理的神经网络,分类算法较成熟,结果也较准确,但在特征抽象化为图像时可能会丢失部分熵。因此,在本发明实施例中,采用双重神经网络验证的方法来进行漏洞检测,即分别使用文本和图像的方式进行模型的建立。在进行分类时,当且仅当两种模型产生一致的结果时,才认为所判定的结果是正确的。
当模型训练完成,在符号执行过程中,同时也进行操作原语的转化。每进入一个函数时,对当前的程序状态用训练好的分类器进行分类与交叉验证,若被判定当前程序状态存在漏洞,再使用分类器对可利用性进行判定,若判定为高可利用,则保存相应的测试用例与程序上下文环境。在后续处理中,交付给人工分析或定向模糊测试进行漏洞的验证与分析。
本发明公开了一种基于智能化符号执行的漏洞的分析方法,包括:当对目标程序进行漏洞分析时,根据样本生成模型生成的变异输入样本集;对所述变异输入样本集进行去重筛选,得到精简输入样本集;确定与所述精简输入样本集对应的各个关键字节;依据所述各个关键字节确定所述目标程序的各个待分析关键路径;依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。上述的方法,对得到的变异输入样本集进行了去重筛选,得到了精简输入样本集,通过所说精简输入样本集确定所述各个待分析关键路径,避免路径存在交叉,具有重复性,存在对同一重复路径进行多次漏洞分析的可能性,导致漏洞分析的执行效率缓慢的问题。
本发明实施例中,根据预设的样本生成模型生成的变异输入样本集的方法流程如图2所示,包括步骤:
S201、采用机器学习的方法训练得到所述预设的样本生成模型;
本发明实施例中,结合机器学习相关基础理论与算法模型,对漏洞检测中的若干关键问题进行展开,一方面将机器学习运用到样本变异,以使初始种子文件以较快的方式尽可能覆盖较多的程序路径。另一方面将机器学习运用到漏洞检测分析,使符号执行过程中,对程序状态进行分析,以判断安全漏洞的存在性和可利用性。
在程序执行过程中,所涉及的状态包括指令、寄存器、内存、线程、模块等信息,特征工程规模较大。而特征的好坏对机器学习中的泛化性能有着至关重要的作用。卷积神经网络如图3所示具有多个隐层,每层对上一层的输出进行处理,可看作是对输入信息逐层加工,从而把初始的、与输出目标之间联系不太密切的输入表示,转化为与输出目标联系更密切的表示。通过多层处理,逐渐将初始的低层特征表示转化为高层特征表示。鉴于这种良好的特征学习的特性,本发明中采用卷积神经网络算法来进行学习与分析。
对于格式已知的样本,即样本文法语义均为已知知识,根据所述格式可对样本进行合规性判定。首先,人工对样本格式进行变异所必需的标注,如该字段是否为魔数(magicbyte)、是否为校验值(如crc校验)、是否与其它数据存在依赖关系(如大小、长度、偏移等)等。然后,针对标注信息进行判断,对于具有“魔数”属性的字段不可作为特征向量,并写入固定值字典;对于需计算的字段,如具备校验值、数据依赖等属性的字段也不作为特征向量,应在对样本变异后进行合规性修复,令变异后的样本符合相应格式;对于其它被标注为可变异的字段,则应标注为特征向量。最后,对大量初始样本进行合规性判定,筛选符合相应格式的样本作为训练样本,采用相关神经网络算法对训练样本进行学习,输出所述预设的样本的生成模型。
对于格式未知的样本,则需先对目标软件进行逆向分析,分析cmp指令,提取立即数加入固定值字典(这是一种较保守的方案,即使存在误报信息,也被当作是固定值)。然后将样本输入给目标程序,进行轻量级的动态数据流分析,对于被同时从文件中读取并进行计算的字节进行聚类,认为其是一个字段,并进行标注。经过分析多个样本后,可推测出一个通用格式。若结合人工参与分析,则可不断丰富该样本格式。基于该格式可进行特征向量的提取,并采用相关神经网络算法(如卷积神经网络)对训练样本进行学习,输出所述预设的样本的生成模型。
S202、为所述预设的样本生成模型中的各个输入样本添加对应的变异策略,得到对应的变异输入样本,各个变异输入样本组成变异输入样本集;
本发明实施例中,当所述预设的样本生成模型被训练完成后,则可设计相应变异策略来生成格式多元化的变异样本,本发明所采用样本跨越(swap over)的变异策略,即结合样本生成模型,以一定的接受空间,将输入样本 A={a1:a2:a3:a4:a5:a6}与输入样本B={b1:b2:b3:b4:b5:b6}添加对应的变异策略得到变异输入样本A’={a1:a2:a3:b4:b5:a6}。其中,各个变异输入样本组成变异输入样本集。
S203、当检测到添加完成指令时,获取所述变异输入样本集。
本发明实施例中,优选的,添加完成时,会发送添加完成指令,当检测到所述添加完成指令时,获取所述变异输入样本集。
本发明实施例中,对所述变异输入样本集进行去重筛选,得到精简输入样本集的方法流程图如图4所示,包括步骤:
S301、计算与所述变异输入样本集中的各个变异输入样本对应的覆盖率;
本发明实施例中,优选的,依据每一个样本所占的空间,计算所述变异输入样本集中的各个变异输入样本对应的覆盖率。优选的,对各个覆盖率进行排序。
S302、合并各个覆盖率,得到与所述变异输入样本集对应的目标覆盖率;
本发明实施例中,对所述各个覆盖率进行合并,得到与所述变异输入样本集对应的目标覆盖率。
S303、选取目标样本,其中,所述目标样板可以覆盖所述各个变异输入样本不可覆盖的位置;
本发明实施例中,选取具有独有代码覆盖的目标样本,所述目标样本可覆盖所述目标程序中各个变异输入样本不可覆盖的位置,这些样本必然包含在最小覆盖集中。
S304、将所述变异样本集中与所述目标样本相同的样本进行删除处理,得到所述精简输入样本集,其中,与所述精简输入样本集对应的覆盖率为目标覆盖率。
本发明实施例中,所述变异样本集去掉E中后得到新的总覆盖率,根据贪心算法,从大覆盖率的样本开始去重,直到达到总覆盖率为止算法完成。这种算法的时间复杂度为O(n2),且随着样本数的增加,所消耗的时间增加的越快
在实际应用中,对数万级的样本计算最小覆盖集时,优选的,采用分治的思想,将对应的样本集平均的分成若干个较小的样本集,并行的使用该算法进行计算,最后再对所有结果再进行一次最小覆盖集计算,这种方法也较好地提高了最小覆盖集的计算效率。
其中,上述方法的执行代码如下所示:
算法:最小覆盖集求解
输入:初始集合
输出:最小覆盖集
egin
Sort(λ);#对所有样本的覆盖率排序
for s in∑:
M+=λ(s);#合并总覆盖率
if isExclusive(s):#若s可覆盖独有的基本块
E.insert(s);
if(M=λ(∑)):
break;
∑=∑\E;
M=M-λ(E);
for s in∑:
M-=λ(s);
if M=0:
break;
end
本发明实施例中,依据所述各个关键字节确定所述目标程序的各个待分析关键路径的方法流程如图5所示,包括步骤:
S401、将所述各个关键字节转换为符号变量;
本发明实施例中,基于一种轻量级的污点分析算法,直接运作在汇编指令上,支持浮点指令,支持SSE指令集,并且分析了所有汇编指令的副作用;使用以字节为粒度的污点传播算法,即每个字节都是独立的污点元,分析了整个汇编指令集的语义,为不同类型的指令实现对应的污点传播规则;并且用不同的标签来标记不同类型的污点,以区分污点来源。每个污点数据都含有一个标签集合,用来表示该字节是由哪些污点源派生而来。
污点传播过程直接在汇编指令上进行,需考虑指令的语义和副作用。汇编指令大致可归纳为三种类型的操作:1)数据传输指令,如MOV、PUSH、 XCHG操作;2)运算指令,如ADD、SHL、OR操作;3)跳转指令,如Jmp、 Call操作。对于污点传播主要考虑前两种类型的指令。
定义通用的污点传播语义如下:
数据传输指令:
一元运算指令:
二元运算指令:
对于大部分指令,都可使用通用的污点传播方式,有些指令则需作特殊处理,如移位操作SHL,SHR,SAR和浮点栈操作。
通过污点分析算法,可得到所述目标程序执行到(或逼近)关键路径区域所依赖的各个关键字节,在接下的符号执行中,将所述各个关键字节作为符号变量,不仅能提高动态符号执行的效率,而且能有效缓解由于路径约束过于复杂导致求解器拒绝服务的问题。
S402、采用动态符号执行的方式,将所述符号变量传递给所述目标程序;
本发明实施例中,以具体输入驱动程序执行,并监视运行时各个待分析关键路径约束、执行状态等信息,对分支取向求反生成新的路径约束,使用定理证明器对新路径约束求解生成新的输入。
S403、获取所述目标程序中对应的各个路径约束;
本发明实施例中,获取所述各个路径约束的具体方案包括:将具体输入传递给目标程序,启动目标程序并在其运行期间的每个分支处收集路径约束,直到程序终止。若程序不终止,则考虑如下两种情况:
处于非循环状态,在程序接下来的程序状态并不依赖于符号变量。针对这种情况,在符号执行不产生更多的路径约束时,主动停止程序运行;
处于循环状态,程序状态依旧依赖于符号变量。针对这种情况,在程序执行前,通过控制流信息可得到大多数循环的入口地址,监控程序流是否一直在该循环中执行,当循环次数超出预设的阈值时,主动停止程序运行。
S404、依据所述各个路径约束,确定所述目标程序的各个待分析关键路径。
本发明实施例中,在程序终止时,对所有待分析关键路径约束进行取反操作,优选的,对取反后将要执行的基本块的加权分值进行查询,以一定概率选取对应最高分值的路径约束进行求解,生成相应的测试用例。然后,使用新生成测试用例再进行新一轮的动态符号执行。
本发明之所以以一定概率选取最高分值的基本块进行路径探测,而不是采用经典贪心策略,主要是防止局部最优非全局最优的情况发生。本发明采用模拟退火算法:结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,在达到局部最优解时能概率性地跳出并最终趋于全局最优方案,具体流程见图6。初始化参数包括用户参数k的设定、起始温度T的设定等。当子代种子样本的适配度分值比父代低的情况时,以概率接受子代样本,其中,f表示测试用例的适配度函数,i表示父代样本,j表示子代样本。
本发明实施例中,确定基本块的加权分支的方法流程如图7所示,包块步骤:
S501、解析所述各个待分析关键路径包含的各个基本块;
本发明实施例中,获取解析得到的所述各个待分析关键路径中包含的各个基本块。
S502、采用加权路径逼近策略计算所述各个基本块的权重值;
本发明实施例中,优选的,将采用所述样本生成模型得到的各个输入样本采用基于函数与基本块两层粒度的加权分值计算方法与种子文件的适配度函数算法。可计算输入样本文件的分值,并按照分值对各个输入样本进行排序,以使较优质的输入样本得到更优先的测试时间。
其中,基于函数级别的加权机制是一种较开放的方案,主要用于计算当前函数与关键路径区域的距离,距离越近分值则越高。该方案的实际计算性能较高,能够以一种较粗糙的方式快速逼近目标区域。实际程序中,并非每条路径都指向更深的位置,有些路径可能会进入错误处理流程并退出,这些路径往往由于输入不合规则导致,于漏洞检测并无太大意义。因此,对于这种情况应予以考虑。基于Vuzzer的思路采用一种错误处理代码识别和评估方法,对于存在错误处理情况的路径进行相应减分操作。
通过遍历二进制程序的程序依赖图,以函数为节点,函数调用关系为边,采用距离矢量算法和Dijkstra算法来计算当前函数与目标区域的最短距离。基于加权机制,当前函数n的权值(n)如公式(1)所示:
在公式(1)中,Dist(n,m)表示n与m间的距离,为n的有限可达关键函数集合。为提高计算性能,依据经验设定阈值,若n与m间的距离大于阈值时,则不计入集合。
基于基本块级别的加权机制是一种较保守、较准确的方案,主要用于制导符号执行过程中的路径探测,分析其从当前基本块到目标区域的可达路径。在过程内的符号执行过程中,往往面临多分支探测的问题,传统的探测方案通常是从最后一个分支开始进行取反操作,即从原先的路径P: 进而生成对应其路径的测试用例,再依次对其它分支进行取反。对于现实程序中路径状态空间爆炸的情况下,这种方案具有盲目性。
本发明实施例中,采用一种基于基本块加权的制导方法,对符号执行路径探测的方向进行约束,使其尽可能向关键路径区域探测,以尽快检测程序中的安全问题。通过遍历过程内控制流图,以基本块为节点,分支为边,计算每个基本块的权值。关键基本块具备如下一个或多个属性:处于循环结构;基本块中调用了危险函数;基本块中存在rep指令;分支条件苛刻导致较难被覆盖;处于较深的路径层数;非错误处理代码。通过该方案,为每个基本块进行加权操作,过程间基本块的加权分值应以所在函数的分值为基数,具体的计算方法如公式(2)所示。
i’=i+k*(n)(k>0) (2)
其中,i’为过程间基本块的权值,i为过程内基本块的权值,k为系数,由用户指定。当基本块的分值到达一定阈值时,被认为是关键基本块。符号执行过程中,路径探测器应选择分值较高的基本块进行遍历。为避免局部最优化的情况,本发明将模拟退火算法应用到符号执行的路径探测中。
S503、将所述权重值分配给与其对应的基本块。
本发明实施例中,将与所述各个基本块对应的权重值分配给对应的基本块。
本发明实施例中,基于上述的方法的总体执行流程如图8所示,首先通过初始输入与样本格式进行机器学习,以训练出样本生成模型,并结合样本变异策略产生大量的变异输入。再使用目标程序运行变异输入样本,得到一个与原样本代码覆盖率一致的精简样本集。采用敏感函数对目标程序进行静态逆向分析,得到各个关键字节。使用动态数据分析得到关键输入字段,并将其转化为符号变量进行动态符号执行,在路径探测上采用向敏感基本块逼近的策略。基于历史漏洞数据和神经网络训练一个漏洞检测分析模型。在动态符号执行分析的过程中,在一方面探测新路径的同时,另一方面根据当前程序状态使用漏洞分析模型来进行分析,以判断当前路径上是否可能存在安全漏洞及其是否具有可利用性。
本发明实施例中,基于上述的漏洞的分析方法,本发明实施例还提供了一种基于智能化符号执行的漏洞的分析系统,所述分析系统的结构框图如图9 所示,包括步骤:
获取模块601,筛选模块602,第一确定模块603,第二确定模块604和漏洞分析模块605.
其中,
所述获取模块601,用于当对目标程序进行漏洞分析时,根据预设的样本生成模型生成的变异输入样本集;
所述筛选模块602,用于对所述变异输入样本集进行去重筛选,得到精简输入样本集;
所述第一确定模块603,用于确定与所述精简输入样本集对应的各个关键字节;
所述第二确定模块604,用于依据所述各个关键字节确定所述目标程序的各个待分析关键路径;
所述漏洞分析模块605,用于依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。
本发明公开了一种基于智能化符号执行的漏洞的分析系统,包括:当对目标程序进行漏洞分析时,根据样本生成模型生成的变异输入样本集;对所述变异输入样本集进行去重筛选,得到精简输入样本集;确定与所述精简输入样本集对应的各个关键字节;依据所述各个关键字节确定所述目标程序的各个待分析关键路径;依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。上述的系统,对得到的变异输入样本集进行了去重筛选,得到了精简输入样本集,通过所说精简输入样本集确定所述各个待分析关键路径,避免路径存在交叉,具有重复性,存在对同一重复路径进行多次漏洞分析的可能性,导致漏洞分析的执行效率缓慢的问题。
本发明实施例中,所述获取模块601包括:
训练单元606,添加单元607和第一获取单元608。
其中,
所述训练单元606,用于采用机器学习的方法训练得到所述预设的样本生成模型;
所述添加单元607,用于为所述预设的样本生成模型中的各个输入样本添加对应的变异策略,得到对应的变异输入样本,各个变异输入样本组成变异输入样本集;
所述第一获取单元608,用于当检测到添加完成指令时,获取所述变异输入样本集。
本发明实施例中,所述筛选模块602包括:
第一计算单元609,合并单元610,选取单元611和删除单元612。
其中,
所述第一计算单元609,用于计算与所述变异输入样本集中的各个变异输入样本对应的覆盖率;
所述合并单元610,用于合并各个覆盖率,得到与所述变异输入样本集对应的目标覆盖率;
所述选取单元611,用于选取目标样本,其中,所述目标样板可以覆盖所述各个变异输入样本不可覆盖的位置;
所述删除单元612,用于将所述变异样本集中与所述目标样本相同的样本进行删除处理,得到所述精简输入样本集,其中,与所述精简输入样本集对应的覆盖率为目标覆盖率。
本发明实施例中,所述第二确定模块604包括:
转化单元613,传递单元614,第二获取单元615和确定单元616。
其中,
所述转化单元613,用于将所述各个关键字节转换为符号变量;
所述传递单元614,用于采用动态符号执行的方式,将所述符号变量传递给所述目标程序;
所述第二获取单元615,用于获取所述目标程序中对应的各个路径约束;
所述确定单元616,用于依据所述各个路径约束,确定所述目标程序的各个待分析关键路径。
本发明实施例中,所述第二确定模块604还包括:
解析单元617,第二计算单元618和分配单元619。
其中,
所述解析单元617,用于解析所述各个待分析关键路径包含的各个基本块;
所述第二计算单元618,用于采用加权路径逼近策略计算所述各个基本块的权重值;
所述分配单元619,用于将所述权重值分配给与其对应的基本块。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种基于智能化符号执行的漏洞分析方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于智能化符号执行的漏洞分析方法,其特征在于,包括:
当对目标程序进行漏洞分析时,根据预设的样本生成模型生成变异输入样本集;
对所述变异输入样本集进行去重筛选,得到精简输入样本集;
确定与所述精简输入样本集对应的各个关键字节;
依据所述各个关键字节确定所述目标程序的各个待分析关键路径;
依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。
2.根据权利要求1所述的方法,其特征在于,根据预设的样本生成模型生成的变异输入样本集,包括:
采用机器学习的方法训练得到所述预设的样本生成模型;
为所述预设的样本生成模型中的各个输入样本添加对应的变异策略,得到对应的变异输入样本,各个变异输入样本组成变异输入样本集;
当检测到添加完成指令时,获取所述变异输入样本集。
3.根据权利要求1所述的方法,其特征在于,对所述变异输入样本集进行去重筛选,得到精简输入样本集包括:
计算与所述变异输入样本集中的各个变异输入样本对应的覆盖率;
合并各个覆盖率,得到与所述变异输入样本集对应的目标覆盖率;
选取目标样本,其中,所述目标样板可以覆盖所述各个变异输入样本不可覆盖的位置;
将所述变异样本集中与所述目标样本相同的样本进行删除处理,得到所述精简输入样本集,其中,与所述精简输入样本集对应的覆盖率为目标覆盖率。
4.根据权利要求1所述的方法,其特征在于,依据所述各个关键字节确定所述目标程序的各个待分析关键路径包括:
将所述各个关键字节转换为符号变量;
采用动态符号执行的方式,将所述符号变量传递给所述目标程序;
获取所述目标程序中对应的各个路径约束;
依据所述各个路径约束,确定所述目标程序的各个待分析关键路径。
5.根据权利要求4所述的方法,其特征在于,还包括:
解析所述各个待分析关键路径包含的各个基本块;
采用加权路径逼近策略计算所述各个基本块的权重值;
将所述权重值分配给与其对应的基本块。
6.一种基于智能化符号执行的漏洞分析系统,其特征在于,包括:
获取模块,用于当对目标程序进行漏洞分析时,根据预设的样本生成模型生变异输入样本集;
筛选模块,用于对所述变异输入样本集进行去重筛选,得到精简输入样本集;
第一确定模块,用于确定与所述精简输入样本集对应的各个关键字节;
第二确定模块,用于依据所述各个关键字节确定所述目标程序的各个待分析关键路径;
漏洞分析模块,用于依据预设的漏洞分析检测模型,对所述目标程序的各个待分析关键路径进行漏洞分析。
7.根据权利要求6所述的系统,其特征在于,根所述获取模块包括:
训练单元,用于采用机器学习的方法训练得到所述预设的样本生成模型;
添加单元,用于为所述预设的样本生成模型中的各个输入样本添加对应的变异策略,得到对应的变异输入样本,各个变异输入样本组成变异输入样本集;
第一获取单元,用于当检测到添加完成指令时,获取所述变异输入样本集。
8.根据权利要求6所述的系统,其特征在于,所述筛选模块包括:
第一计算单元,用于计算与所述变异输入样本集中的各个变异输入样本对应的覆盖率;
合并单元,用于合并各个覆盖率,得到与所述变异输入样本集对应的目标覆盖率;
选取单元,用于选取目标样本,其中,所述目标样板可以覆盖所述各个变异输入样本不可覆盖的位置;
删除单元,用于将所述变异样本集中与所述目标样本相同的样本进行删除处理,得到所述精简输入样本集,其中,与所述精简输入样本集对应的覆盖率为目标覆盖率。
9.根据权利要求6所述的系统,其特征在于,所述第二确定模块包括:
转换单元,用于将所述各个关键字节转换为符号变量;
传递单元,用于采用动态符号执行的方式,将所述符号变量传递给所述目标程序;
第二获取单元,用于获取所述目标程序中对应的各个路径约束;
确定单元,用于依据所述各个路径约束,确定所述目标程序的各个待分析关键路径。
10.根据权利要求9所述的系统,其特征在于,还包括:
解析单元,用于解析所述各个待分析关键路径包含的各个基本块;
第二计算单元,用于采用加权路径逼近策略计算所述各个基本块的权重值;
分配单元,用于将所述权重值分配给与其对应的基本块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810920886.XA CN109376535B (zh) | 2018-08-14 | 2018-08-14 | 一种基于智能化符号执行的漏洞分析方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810920886.XA CN109376535B (zh) | 2018-08-14 | 2018-08-14 | 一种基于智能化符号执行的漏洞分析方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109376535A true CN109376535A (zh) | 2019-02-22 |
CN109376535B CN109376535B (zh) | 2022-03-04 |
Family
ID=65404385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810920886.XA Active CN109376535B (zh) | 2018-08-14 | 2018-08-14 | 一种基于智能化符号执行的漏洞分析方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109376535B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221978A (zh) * | 2019-06-03 | 2019-09-10 | 北京丁牛科技有限公司 | 测试用例生成方法及装置 |
CN110287693A (zh) * | 2019-06-13 | 2019-09-27 | 成都积微物联集团股份有限公司 | 一种基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 |
CN111049858A (zh) * | 2019-12-26 | 2020-04-21 | 杭州安恒信息技术股份有限公司 | 一种基于交叉验证的基线扫描漏洞去重方法、装置及设备 |
CN111258909A (zh) * | 2020-02-07 | 2020-06-09 | 中国信息安全测评中心 | 一种测试样本生成方法及装置 |
CN111897733A (zh) * | 2020-08-07 | 2020-11-06 | 北京理工大学 | 一种基于最小集合覆盖的模糊测试方法和装置 |
CN113328914A (zh) * | 2021-05-31 | 2021-08-31 | 山石网科通信技术股份有限公司 | 工控协议的模糊测试方法、装置、存储介质及处理器 |
CN113849814A (zh) * | 2020-06-28 | 2021-12-28 | 南京大学 | 一种可配置系统漏洞复现系统以及复现方法 |
CN114546561A (zh) * | 2022-02-22 | 2022-05-27 | 湖南泛联新安信息科技有限公司 | 一种程序静态分析结果中最佳修复点的展示方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708045A (zh) * | 2012-04-13 | 2012-10-03 | 电子科技大学 | 一种缓解路径爆炸的动态符号执行方法 |
CN104375942A (zh) * | 2014-12-11 | 2015-02-25 | 无锡江南计算技术研究所 | 一种面向二进制的混合模糊测试方法 |
CN104503901A (zh) * | 2014-12-04 | 2015-04-08 | 中国人民解放军总参谋部第五十四研究所 | 一种基于静态路径分析的导向符号执行方法 |
WO2015054938A1 (zh) * | 2013-10-14 | 2015-04-23 | 西安交通大学 | 基于程序行为切片的测试案例约减方法 |
CN106940773A (zh) * | 2017-01-10 | 2017-07-11 | 西安电子科技大学 | 基于静态污点数据分析的隐私泄漏漏洞检测确认方法 |
CN107358106A (zh) * | 2017-07-11 | 2017-11-17 | 北京奇虎科技有限公司 | 漏洞检测方法、漏洞检测装置及服务器 |
-
2018
- 2018-08-14 CN CN201810920886.XA patent/CN109376535B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708045A (zh) * | 2012-04-13 | 2012-10-03 | 电子科技大学 | 一种缓解路径爆炸的动态符号执行方法 |
WO2015054938A1 (zh) * | 2013-10-14 | 2015-04-23 | 西安交通大学 | 基于程序行为切片的测试案例约减方法 |
CN104503901A (zh) * | 2014-12-04 | 2015-04-08 | 中国人民解放军总参谋部第五十四研究所 | 一种基于静态路径分析的导向符号执行方法 |
CN104375942A (zh) * | 2014-12-11 | 2015-02-25 | 无锡江南计算技术研究所 | 一种面向二进制的混合模糊测试方法 |
CN106940773A (zh) * | 2017-01-10 | 2017-07-11 | 西安电子科技大学 | 基于静态污点数据分析的隐私泄漏漏洞检测确认方法 |
CN107358106A (zh) * | 2017-07-11 | 2017-11-17 | 北京奇虎科技有限公司 | 漏洞检测方法、漏洞检测装置及服务器 |
Non-Patent Citations (2)
Title |
---|
DONGDONG SHE ETAL: "NEUZZ:Efficient Fuzzing with Neural Program Smoothing", 《HTTPS://ARXIV.ORG/PDF/1807.05620V1.PDF》 * |
马金鑫 等: "Fuzzing过程中的若干优化方法", 《清华大学学报(自然科学版)》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110221978A (zh) * | 2019-06-03 | 2019-09-10 | 北京丁牛科技有限公司 | 测试用例生成方法及装置 |
CN110221978B (zh) * | 2019-06-03 | 2023-03-14 | 北京丁牛科技有限公司 | 测试用例生成方法及装置 |
CN110287693A (zh) * | 2019-06-13 | 2019-09-27 | 成都积微物联集团股份有限公司 | 一种基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 |
CN110287693B (zh) * | 2019-06-13 | 2023-07-21 | 成都积微物联集团股份有限公司 | 基于符号执行路径剪枝的缓冲区溢出漏洞自动检测方法 |
CN111049858B (zh) * | 2019-12-26 | 2022-05-24 | 杭州安恒信息技术股份有限公司 | 一种基于交叉验证的基线扫描漏洞去重方法、装置及设备 |
CN111049858A (zh) * | 2019-12-26 | 2020-04-21 | 杭州安恒信息技术股份有限公司 | 一种基于交叉验证的基线扫描漏洞去重方法、装置及设备 |
CN111258909A (zh) * | 2020-02-07 | 2020-06-09 | 中国信息安全测评中心 | 一种测试样本生成方法及装置 |
CN111258909B (zh) * | 2020-02-07 | 2024-03-15 | 中国信息安全测评中心 | 一种测试样本生成方法及装置 |
CN113849814A (zh) * | 2020-06-28 | 2021-12-28 | 南京大学 | 一种可配置系统漏洞复现系统以及复现方法 |
CN111897733B (zh) * | 2020-08-07 | 2023-04-07 | 北京理工大学 | 一种基于最小集合覆盖的模糊测试方法和装置 |
CN111897733A (zh) * | 2020-08-07 | 2020-11-06 | 北京理工大学 | 一种基于最小集合覆盖的模糊测试方法和装置 |
CN113328914A (zh) * | 2021-05-31 | 2021-08-31 | 山石网科通信技术股份有限公司 | 工控协议的模糊测试方法、装置、存储介质及处理器 |
CN114546561A (zh) * | 2022-02-22 | 2022-05-27 | 湖南泛联新安信息科技有限公司 | 一种程序静态分析结果中最佳修复点的展示方法 |
CN114546561B (zh) * | 2022-02-22 | 2024-05-24 | 湖南泛联新安信息科技有限公司 | 一种程序静态分析结果中最佳修复点的展示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109376535B (zh) | 2022-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109376535B (zh) | 一种基于智能化符号执行的漏洞分析方法及系统 | |
US11269622B2 (en) | Methods, systems, articles of manufacture, and apparatus for a context and complexity-aware recommendation system for improved software development efficiency | |
US20190265955A1 (en) | Method and system for comparing sequences | |
CN111523119B (zh) | 漏洞检测的方法和装置、电子设备及计算机可读存储介质 | |
Gomes et al. | BERT-and TF-IDF-based feature extraction for long-lived bug prediction in FLOSS: a comparative study | |
CN112579477A (zh) | 一种缺陷检测方法、装置以及存储介质 | |
Rahman et al. | A neural network based intelligent support model for program code completion | |
CN112989363B (zh) | 漏洞定位方法、装置、电子设备和存储介质 | |
US20210110409A1 (en) | False detection rate control with null-hypothesis | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
Zekany et al. | CrystalBall: Statically analyzing runtime behavior via deep sequence learning | |
CN115858002B (zh) | 基于图对比学习的二进制代码相似性检测方法及系统与存储介质 | |
Lin et al. | Towards interpreting ML-based automated malware detection models: A survey | |
EP4064038B1 (en) | Automated generation and integration of an optimized regular expression | |
CN118276913B (zh) | 一种基于人工智能的代码补全方法 | |
CN110427317A (zh) | 一种相关值确定方法及装置 | |
Gomes et al. | On the prediction of long-lived bugs: An analysis and comparative study using FLOSS projects | |
CN117521063A (zh) | 基于残差神经网络并结合迁移学习的恶意软件检测方法及装置 | |
CN116663018A (zh) | 一种基于代码可执行路径的漏洞检测方法及装置 | |
CN116541507A (zh) | 一种基于动态语义图神经网络的视觉问答方法及系统 | |
CN115587029A (zh) | 补丁的检测方法及装置、电子设备、计算机可读介质 | |
CN112183714B (zh) | 基于人工神经网络的自动化数据切片 | |
Khleel et al. | Improving accuracy of code smells detection using machine learning with data balancing techniques | |
CN109657247B (zh) | 机器学习的自定义语法实现方法及装置 | |
CN115587358A (zh) | 一种二进制代码相似性检测方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |