CN104750602A - 一种动态污点数据分析方法及装置 - Google Patents

一种动态污点数据分析方法及装置 Download PDF

Info

Publication number
CN104750602A
CN104750602A CN201310741181.9A CN201310741181A CN104750602A CN 104750602 A CN104750602 A CN 104750602A CN 201310741181 A CN201310741181 A CN 201310741181A CN 104750602 A CN104750602 A CN 104750602A
Authority
CN
China
Prior art keywords
stain data
data
breakpoint
stain
analysis
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
CN201310741181.9A
Other languages
English (en)
Other versions
CN104750602B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201310741181.9A priority Critical patent/CN104750602B/zh
Publication of CN104750602A publication Critical patent/CN104750602A/zh
Application granted granted Critical
Publication of CN104750602B publication Critical patent/CN104750602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请公开了一种动态污点数据分析方法及装置,包括利用软件断点引入污点数据,并建立对应污点数据的上下文;利用内存断点和软件断点对污点数据进行分析。本申请通过软件断点引入污点数据,只对相关指令进行污点分析,无需对全部指令集进行翻译和分析,而且,通过利用内存断点和软件断点对污点数据进行分析,高效地实现了监控污点数据的引入和传播过程,从而降低了成本,提高了污点分析效率。进一步地,本申请还包括根据预先设置的安全策略对确定的污点数据进行安全性分析,保证了存在安全漏洞的污点数据被及时清除。

Description

一种动态污点数据分析方法及装置
技术领域
本申请涉及二进制漏洞安全技术,尤指一种动态污点数据分析方法及装置。
背景技术
计算机技术发展至今,二进制漏洞一直是最为重要的安全问题之一。如何更加有效、快捷、快速地挖掘产品内部潜在的二进制漏洞一直是计算机安全人员孜孜以求的。目前,针对面向二进制程序的漏洞挖掘,主要有静态分析和动态分析两大类。
基于静态分析的二进制漏洞挖掘方式,由于缺乏运行时的信息,导致最近的分析结果会包含大量的误报,往往需要大量的人工分析来验证挖掘结果的正确性;而基于动态分析的二进制漏洞挖掘方式,则通过利用运行时的信息,使得分析结果真实、有效、可重现。
其中,基于动态分析的二进制漏洞挖掘方式依赖于两大技术:污点分析和路径遍历。早期的动态漏洞挖掘方法是通过使用大量随机产生的畸形样本,对目标程序进行模糊测试(FUZZ)。但是,一方面,畸形样本的产生完全依靠的是既有的规则,没有对目标程序进行深入的学习分析,导致其中相当大比例的处理流程都一样;另一方面,模糊测试仅仅侧重于样本的产生,对于样本中的数据即污点数据在目标程序处理的流程及污点数据之间的关系是不关心的。因此,这种模糊测试效率不仅低,而且效果也不明显。其中,污点数据是指所有二进制程序的外部输入数据源,比如读取的文件内容,网络接收的数据,命令行传入的参数等等。
针对样本的污点数据在目标程序中的处理流程即污点数据分析,提出了一种基于roBDD的离线细粒度污点分析的方法,并实现了原型系统TaintReplayer,其设计思路大致包括:通过一个基于二进制插装程序的程序执行轨迹记录模块,将本次执行过程中的指令及相关的寄存器和内存数据一起记录到文件中;通过一个轨迹重放模块,在重放过程中对程序的执行轨迹进行细粒度的污点分析,并且采用roBDD来表示污点属性。其中,roBDD是一种压缩的表达布尔函数的有向图结构,其特点是具有相同污点属性的变量共享一个roBDD结构。
现有的污点数据分析方法对于执行轨迹中的每一条指令都会做分析,但是,对于某些类型的污点数据如内存C++对象等,是没有必要对其后每条指令都进行污点分析的。这种对执行轨迹中的每一条指令都做分析的方式,需要对全部指令集进行翻译和分析,造成了实现成本高,污点分析效率低等问题。
发明内容
为了解决上述技术问题,本申请提供了一种动态污点数据分析方法及装置,能够只对相关指令进行污点分析,无需对全部指令集进行翻译和分析,从而降低成本,提高污点分析效率。
为了达到本申请目的,本申请提供一种动态污点数据分析方法,包括:
利用软件断点引入污点数据,并建立对应污点数据的上下文;
利用内存断点和软件断点对所述污点数据进行分析。
该方法还包括:根据预先设置的安全策略对所述污点数据进行安全性分析。
所述污点数据的上下文中的内容体现所述污点数据的属性。
所述污点数据的上下文包括:污点数据的引入点、和/或污点数据的大小、和/或断点触发后引入污点数据的点、和/或污点数据被引入的次数。
所述利用内存断点和软件断点对污点数据进行分析包括:
如果当前断点为内存断点,且触发当前内存断点获得的数据存在于系统预先设置的异常上下文中,确定获得的数据为污点数据,对所述污点数据的上下文进行处理;
如果当前断点是软件断点,将获得的数据作为新的污点数据存入异常上下文中。
所述异常上下文为污点数据哈希表。
所述安全性分析后,该方法还包括:销毁存在安全问题的污点数据。
本申请还提供一种动态污点数据处理装置,包括引入模块,以及分析模块;其中,
引入模块,用于利用软件断点引入污点数据,并建立对应污点数据的上下文;
分析模块,用于利用内存断点和软件断点对污点数据进行分析。
所述分析模块具体用于:
所述当前断点为内存断点时,且触发当前内存断点获得的数据存在于系统预先设置的异常上下文中,确定获得的数据为污点数据,对所述污点数据的上下文进行处理;
所述当前断点是软件断点时,将获得的数据作为新的污点数据存入异常上下文中。
还包括安全处理模块,用于根据预先设置的安全策略对所述分析模块确定的污点数据进行安全性分析。
所述安全处理模块还用于,销毁所述安全处理模块分析后存在安全问题的污点数据。
本申请提供的方案包括利用软件断点引入污点数据,并建立对应污点数据的上下文;利用内存断点和软件断点对污点数据进行分析。本申请通过软件断点引入污点数据,只对相关指令进行污点分析,无需对全部指令集进行翻译和分析,而且,通过利用内存断点和软件断点对污点数据进行分析,高效地实现了监控污点数据的引入和传播过程,从而降低了成本,提高了污点分析效率。
进一步地,本申请还包括根据预先设置的安全策略对确定的污点数据进行安全性分析,保证了存在安全漏洞的污点数据被及时清除。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请动态污点数据分析方法的流程图;
图2为本申请动态污点数据分析装置的组成结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本申请一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
一个典型的调试器的工作原理大致包括:在调试器中使用其功能对感兴趣的代码或者数据设置断点(也称为下断点),CPU在执行或者访问到这些断点时,会触发系统的异常,操作系统捕获到这些异常并将这些异常作为事件分发给调试器进行处理。
操作系统支持的断点分为软件断点和硬件断点两类。其中,
对于软件断点这一概念,x86系列处理器从8086开始就提供了一条专门用来支持调试的指令:INT3。简单的说,就是CPU在执行过程中如果碰到INT3指令,会触发中断,并调用操作系统在中断描述表中注册的回调例程;而操作系统会在被调用的回调例程中检测调试器并将调试事件分发给调试器进行处理。
而硬件断点的实现依赖于自IA-32架构引入的DRx调试寄存器。DRx调试寄存器共有8个,硬件断点的原理就是使用其中的4个调试寄存器(DR0、DR1、DR2、DR3)来设定地址,使用DR7来设置断点类型和大小。断点类型包括硬件读、硬件写、硬件执行三种,断点的大小则分为1字节(byte)、2byte、4byte三种。由于无需人为插入INT3等类似的软件指令,所以某些情况下会有更好的效果。但是,由于DRx调试寄存器中用做地址记录用途的寄存器只有4个,也就是说同时只能设置4个硬件断点,且大小最大为4byte。
另外,操作系统支持针对内存页设置页属性,即读、写、执行的权限。如果在只读的内存页上写入数据则会引发访问违例,然后操作系统会将访问异常分发给调试器处理。这种类型的调试属性可以称为内存断点。内存断点和硬件断点均可以对内存地址设置断点,不同的是,内存断点只能以整页为单位设置断点,需要在处理例程中过滤,但是,内存断点对大小和同时设置的断点数并没有限制,而硬件断点则有数量和大小的限制。
图1为本申请动态污点数据分析方法的流程图,如图1所示,包括:
步骤100:利用软件断点引入污点数据,并建立对应污点数据的上下文。
本步骤中,只需针对关心的数据插入INT3断点,比如文件数据读取(其中的污点数据为文件内容),内存对象创建(其中的污点数据为类对象实例)等。系统在执行过程中,如果碰到INT3指令即污点数据引入点,会触发中断,并在触发断点的断点回调例程中建立污点数据的上下文。
其中,污点数据的上下文中的内容只要能体现污点数据的属性,能对污点数据进行追踪即可,比如污点数据的引入点、和/或污点数据的大小、和/或断点触发后引入污点数据的点、和/或污点数据被引入的次数等。
步骤101:利用内存断点和软件断点对污点数据进行分析。
本步骤具体包括:在断点回调例程中,根据系统的异常处理机制获取当前断点指令的异常地址、访问的内存数据等数据;确定获得的数据是否是污点数据,如果是则处理相应污点数据的上下文,否则忽略并继续执行。
其中,确定获得的数据是否是污点数据包括:对于内存断点异常,通过判断触发当前内存断点的数据是否存储在于系统预先设置的异常上下文如污点数据哈希表中的数据,如果在,确定获得的数据为污点数据,对污点数据的上下文进行处理;对于软件断点,将获得的数据作为新的污点数据存入污点数据哈希表中。其中,
所谓内存断点,指的是修改内存的某个地址范围内的页面属性,比如从只读修改为可读可写,然后在有程序试图写入这个内存区域时会发生内存访问异常,系统异常处理机制会截获这个异常并传递给调试器;所谓软件断点,则是在内存中插入INT3指令,CPU执行到INT3指令处后会发生中断异常,然后再将返回该异常。确定当前断点是内存断点还是软件断点包括:系统会将不同的异常进行分类,异常是系统已经封装好的异常数据,系统是可以很方便的识别出是内存访问异常(内存断点)还是断点异常(软件断点)的。
本申请整个污点数据处理的过程是在程序执行过程中完成的,并通过软件断点引入污点数据,只对相关指令进行污点分析,无需对全部指令集进行翻译和分析,而且,通过利用内存断点和软件断点对污点数据进行分析,高效地实现了监控污点数据的引入和传播过程,从而降低了成本,提高了污点分析效率。
在对污点数据处理完成后,本申请方法还包括:
步骤102:根据预先设置的安全策略对污点数据进行安全性分析。
其中,以对C++对象类型的污点数据为例,其安全策略可以包括:是否有的污点数据(比如C++对象)被其他内存地址引用但却已经释放掉;是否有的污点数据(比如COM对象)被其他内存地址应用后没有增加其内部的引用计数等。针对不同的污点数据类型其安全策略是不一样的。本领域技术人员按照本发明提供的方法,是很容易针对不同的污点数据建立相应的安全策略的,这里不再赘述。
本步骤检测当前污点数据的上下文是否会导致安全问题,换句话说,就是根据安全策略,符合安全策略的就认为有安全问题。具体实现属于本领域技术人员的公知技术,这里不再赘述。
本步骤的具体实现也可以在对污点数据被引入的地方设置断点,根据污点数据哈希表检测是否有安全问题。比如对于对象实例来说,可以在对象被释放(即污点数据即将被释放,释放后这个污点数据在程序内部已经不再造成安全问题)时,根据当前的引用计数查看是否会造成释放重索引(Use AfterFree)漏洞。其中,计数指的是针对对象类的污点数据时,其内部可以维护一个对象被引用次数的变量。用来标识这个对象是否还有效。如果这个变量不为零,则该对象有效,如果为零,则这个对象可以随时被系统释放掉。
如果当前污点数据的上下文会导致安全问题,则销毁该污点数据,即从污点数据哈希表中删除这个污点数据,具体实现属于本领域技术人员的惯用技术手段,这里不再赘述。
本步骤保证了存在安全漏洞的污点数据被及时清除。
图2为本申请动态污点数据分析装置的组成结构示意图,如图2所示,包括引入模块和分析模块;其中,
引入模块,用于利用软件断点引入污点数据,并建立对应污点数据的上下文;
分析模块,用于利用内存断点和软件断点对污点数据进行分析。具体用于:如果当前断点为内存断点,且触发当前内存断点获得的数据存在于系统预先设置的异常上下文中,确定获得的数据为污点数据,对所述污点数据的上下文进行处理;
如果当前断点是软件断点,将获得的数据作为新的污点数据存入异常上下文中。
本申请装置还进一步包括安全处理模块,用于根据预先设置的安全策略对分析模块确定的污点数据进行安全性分析,如果当前污点数据的上下文会导致安全问题,则销毁该污点数据。
下面结合一个实施例对本发明方案进行详细描述。该实施例以windbg作为调试器,Internet Explorer作为被调试程序,即使用windbg调试器提供的调试功能,使用本发明方法调试Internet Explorer来挖掘其内部存在的漏洞。
首先,利用软件断点引入污点数据,并建立对应污点数据的上下文。具体到该实施例中,污点数据指的是Internet Explorer(简称IE)进程内部的对象数据(HTML Element),这些污点数据会在程序中的某些指令地址被创建。因此,需要先利用外部方法(二进制静态分析)获取到所有会创建新的污点数据的指令地址,再使用windbg调试器插件提供的命令“bp”对这些指令地址下软件断点,以引入污点数据;接着,使用windbg的“g”命令使得IE进程运行起来,命中断点后,即为有新的污点数据(对象)被创建(假定为A),就将这个对象的内存地址放到一个python的dict结构中,如:ieObjectMap[A.addr]=Element(A.name,A.type,A.addr,A.size),这个结构就是污点数据的上下文(ieObjectMap)。
然后,利用内存断点和软件断点对污点数据进行分析。具体到该实施例中,污点数据A被引入后,系统会对A设置内存断点:即污点数据A包含起始地址、大小,这里使用windbg插件的api,如:setMemoryType(A.addr,A.size,PAGE_NOACCESS),即可设置A的内存起始地址[A.addr,A.addr+A.size]范围的内存区间为不可访问。这样,IE进程运行起来后,正常情况下会对A的内存空间进行写入操作,而由于内存空间为不可访问,从而触发内存断点。通过内存断点的相关信息(系统可以提供),获取到写入的数据B,进而从ieObjectMap中查找是否存在以B为key的条目,如果if ieObjectMap.exist(B)==True,那么表示存在,认为A的内存空间存在B的引用(即A中保存了B的地址)。接着,就会在A的污点数据上下文中增加B的相关信息,即A.beReferredObject.append(B)。如果ifieObjectMap.exist(B)==False则表示不存在,此时就忽略即可。
最后,根据预先设置的安全策略对污点数据进行安全性分析。具体到该实施例中,在执行过程中,在B即将被释放时,通过遍历ieObjectMap,查找是否有污点数据引用了B,即如果确定出ifieObjectMap[i].beReferredObject.exist(B)==True,而此时,A中引用的B已经被释放,A中保存的B地址已经非法,A使用这个地址时会造成崩溃,精心布置的内存数据会导致任意代码执行漏洞。即所谓的Use-After-Free漏洞。所以,说明仍有其他污点数据(比如A)引用B,则认为存在安全风险。
本领域的技术人员应该明白,上述的本申请实施例所提供的装置的各组成部分,以及方法中的各步骤,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上。可选地,它们可以用计算装置可执行的程序代码来实现。从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (11)

1.一种动态污点数据分析方法,其特征在于,包括:
利用软件断点引入污点数据,并建立对应污点数据的上下文;
利用内存断点和软件断点对所述污点数据进行分析。
2.根据权利要求1所述的动态污点数据分析方法,其特征在于,该方法还包括:根据预先设置的安全策略对所述污点数据进行安全性分析。
3.根据权利要求1或2所述的动态污点数据分析方法,其特征在于,所述污点数据的上下文中的内容体现所述污点数据的属性。
4.根据权利要求3所述的动态污点数据分析方法,其特征在于,所述污点数据的上下文包括:污点数据的引入点、和/或污点数据的大小、和/或断点触发后引入污点数据的点、和/或污点数据被引入的次数。
5.根据权利要求1或2所述的动态污点数据处理方法,其特征在于,所述利用内存断点和软件断点对污点数据进行分析包括:
如果当前断点为内存断点,且触发当前内存断点获得的数据存在于系统预先设置的异常上下文中,确定获得的数据为污点数据,对所述污点数据的上下文进行处理;
如果当前断点是软件断点,将获得的数据作为新的污点数据存入异常上下文中。
6.根据权利要求5所述的动态污点数据处理方法,其特征在于,所述异常上下文为污点数据哈希表。
7.根据权利要求2所述的动态污点数据处理方法,其特征在于,所述安全性分析后,该方法还包括:销毁存在安全问题的污点数据。
8.一种动态污点数据处理装置,其特征在于,包括引入模块,以及分析模块;其中,
引入模块,用于利用软件断点引入污点数据,并建立对应污点数据的上下文;
分析模块,用于利用内存断点和软件断点对污点数据进行分析。
9.根据权利要求8所述的动态污点数据处理装置,其特征在于,所述分析模块具体用于:
所述当前断点为内存断点时,且触发当前内存断点获得的数据存在于系统预先设置的异常上下文中,确定获得的数据为污点数据,对所述污点数据的上下文进行处理;
所述当前断点是软件断点时,将获得的数据作为新的污点数据存入异常上下文中。
10.根据权利要求8或9所述的动态污点数据处理装置,其特征在于,还包括安全处理模块,用于根据预先设置的安全策略对所述分析模块确定的污点数据进行安全性分析。
11.根据权利要求10所述的动态污点数据处理装置,其特征在于,所述安全处理模块还用于,销毁所述安全处理模块分析后存在安全问题的污点数据。
CN201310741181.9A 2013-12-27 2013-12-27 一种动态污点数据分析方法及装置 Active CN104750602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310741181.9A CN104750602B (zh) 2013-12-27 2013-12-27 一种动态污点数据分析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310741181.9A CN104750602B (zh) 2013-12-27 2013-12-27 一种动态污点数据分析方法及装置

Publications (2)

Publication Number Publication Date
CN104750602A true CN104750602A (zh) 2015-07-01
CN104750602B CN104750602B (zh) 2018-04-27

Family

ID=53590336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310741181.9A Active CN104750602B (zh) 2013-12-27 2013-12-27 一种动态污点数据分析方法及装置

Country Status (1)

Country Link
CN (1) CN104750602B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808430A (zh) * 2016-03-03 2016-07-27 中国科学院软件研究所 一种多语义动态污点分析方法
CN110363004A (zh) * 2018-04-10 2019-10-22 腾讯科技(深圳)有限公司 一种代码漏洞检测方法、装置、介质及设备
CN110727598A (zh) * 2019-10-16 2020-01-24 西安电子科技大学 基于动态污点跟踪的二进制软件脆弱性检测系统及方法
CN116414722A (zh) * 2023-06-07 2023-07-11 清华大学 模糊测试处理方法、装置、模糊测试系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278419A (zh) * 2000-07-28 2001-01-03 接革 网面臀形保健座
CN102034045A (zh) * 2010-12-15 2011-04-27 上海交通大学 低计算机系统资源开销的软件漏洞检测系统
CN102081719A (zh) * 2009-12-01 2011-06-01 王伟 基于动态污染传播的软件安全测试系统及方法
US20130139262A1 (en) * 2011-11-30 2013-05-30 Daniel A. Gerrity Taint injection and tracking
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1278419A (zh) * 2000-07-28 2001-01-03 接革 网面臀形保健座
CN102081719A (zh) * 2009-12-01 2011-06-01 王伟 基于动态污染传播的软件安全测试系统及方法
CN102034045A (zh) * 2010-12-15 2011-04-27 上海交通大学 低计算机系统资源开销的软件漏洞检测系统
US20130139262A1 (en) * 2011-11-30 2013-05-30 Daniel A. Gerrity Taint injection and tracking
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QIN ZHAO等: ""How to do a million watchpoints:Efficient Debugging using Dynamic Instrumentation"", 《LECTURE NOTES IN COMPUTER SCIENCE》 *
诸葛建伟等: ""基于类型的动态污点分析技术"", 《清华大学学报(自然科学版)》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808430A (zh) * 2016-03-03 2016-07-27 中国科学院软件研究所 一种多语义动态污点分析方法
CN105808430B (zh) * 2016-03-03 2018-07-03 中国科学院软件研究所 一种多语义动态污点分析方法
CN110363004A (zh) * 2018-04-10 2019-10-22 腾讯科技(深圳)有限公司 一种代码漏洞检测方法、装置、介质及设备
CN110363004B (zh) * 2018-04-10 2023-01-03 腾讯科技(深圳)有限公司 一种代码漏洞检测方法、装置、介质及设备
CN110727598A (zh) * 2019-10-16 2020-01-24 西安电子科技大学 基于动态污点跟踪的二进制软件脆弱性检测系统及方法
CN116414722A (zh) * 2023-06-07 2023-07-11 清华大学 模糊测试处理方法、装置、模糊测试系统及存储介质
CN116414722B (zh) * 2023-06-07 2023-10-20 清华大学 模糊测试处理方法、装置、模糊测试系统及存储介质

Also Published As

Publication number Publication date
CN104750602B (zh) 2018-04-27

Similar Documents

Publication Publication Date Title
US10621362B2 (en) Method for automatically detecting security vulnerability based on hybrid fuzzing, and apparatus thereof
EP2696288B1 (en) Static tainting analysis system and method for taint analysis of computer program code
US9858072B2 (en) Portable executable file analysis
US11669623B2 (en) Method for detecting vulnerabilities in software
Yu et al. Relational string verification using multi-track automata
Khalid et al. Examining the relationship between findbugs warnings and app ratings
Lee et al. Design and implementation of the secure compiler and virtual machine for developing secure IoT services
Zhang et al. IntPatch: Automatically fix integer-overflow-to-buffer-overflow vulnerability at compile-time
US8752025B2 (en) Protecting breakpoints in a software debugger
CN104750602A (zh) 一种动态污点数据分析方法及装置
CN110704306A (zh) 测试中的断言处理方法、装置、设备及存储介质
EP3495978A1 (en) Method for detecting vulnerabilities in software
CN114021142A (zh) 一种安卓应用程序漏洞检测方法
Sun et al. Efficient dynamic tracking technique for detecting integer-overflow-to-buffer-overflow vulnerability
CN112131573A (zh) 安全漏洞的检测方法、装置及存储介质
JP5077455B2 (ja) 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法
CN115795489B (zh) 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置
CN112445706A (zh) 程序异常代码获取方法、装置、电子设备以及存储介质
Mouzarani et al. A smart fuzzing method for detecting heap-based buffer overflow in executable codes
Zhang et al. Genlog: Accurate log template discovery for stripped x86 binaries
CN115080426A (zh) 程序文件的检测方法及装置、存储介质和电子设备
Kargén et al. Inputtracer: A data-flow analysis tool for manual program comprehension of x86 binaries
Vasilyev Static verification for memory safety of Linux kernel drivers
CN116204891B (zh) 漏洞利用分析方法、设备及存储介质
Gorter et al. FloatZone: How Floating Point Additions can Detect Memory Errors

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