CN104750602A - 一种动态污点数据分析方法及装置 - Google Patents
一种动态污点数据分析方法及装置 Download PDFInfo
- 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
- data
- taint
- breakpoint
- taint data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004458 analytical method Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 28
- 238000007405 data analysis Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 7
- 238000003672 processing method Methods 0.000 claims 3
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 10
- 101710092886 Integrator complex subunit 3 Proteins 0.000 description 6
- 102100025254 Neurogenic locus notch homolog protein 4 Human genes 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000005065 mining Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 241000510672 Cuminum Species 0.000 description 1
- 235000007129 Cuminum cyminum Nutrition 0.000 description 1
- 101100348848 Mus musculus Notch4 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
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所述的动态污点数据处理装置,其特征在于,所述安全处理模块还用于,销毁所述安全处理模块分析后存在安全问题的污点数据。
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 (5)
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 | 清华大学 | 模糊测试处理方法、装置、模糊测试系统及存储介质 |
CN118898069A (zh) * | 2024-10-09 | 2024-11-05 | 北京凝思软件股份有限公司 | 进程监控方法、装置、设备、存储介质和程序产品 |
Citations (5)
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 | 北京邮电大学 | 动态污点分析装置及其在文件格式逆向解析中的应用 |
-
2013
- 2013-12-27 CN CN201310741181.9A patent/CN104750602B/zh active Active
Patent Citations (5)
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)
Title |
---|
QIN ZHAO等: ""How to do a million watchpoints:Efficient Debugging using Dynamic Instrumentation"", 《LECTURE NOTES IN COMPUTER SCIENCE》 * |
诸葛建伟等: ""基于类型的动态污点分析技术"", 《清华大学学报(自然科学版)》 * |
Cited By (8)
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 | 清华大学 | 模糊测试处理方法、装置、模糊测试系统及存储介质 |
CN118898069A (zh) * | 2024-10-09 | 2024-11-05 | 北京凝思软件股份有限公司 | 进程监控方法、装置、设备、存储介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN104750602B (zh) | 2018-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109583200B (zh) | 一种基于动态污点传播的程序异常分析方法 | |
CN107368417B (zh) | 一种漏洞挖掘技术测试模型的测试方法 | |
Caballero et al. | Undangle: early detection of dangling pointers in use-after-free and double-free vulnerabilities | |
US10599558B1 (en) | System and method for identifying inputs to trigger software bugs | |
Zou et al. | {SyzScope}: Revealing {High-Risk} security impacts of {Fuzzer-Exposed} bugs in linux kernel | |
CN104750602B (zh) | 一种动态污点数据分析方法及装置 | |
CN105912458A (zh) | 一种用于动态检测c/c++内存泄露的方法及系统 | |
Honig et al. | Practical mutation testing for smart contracts | |
JP2021082256A (ja) | 動的ステイン分析に基づくメモリ分析方法及び装置 | |
CN113987507A (zh) | 堆内存漏洞检测方法、装置、存储介质及电子设备 | |
Yeh et al. | Craxdroid: Automatic android system testing by selective symbolic execution | |
Filho et al. | Evasion and countermeasures techniques to detect dynamic binary instrumentation frameworks | |
Chen et al. | ARMORY: An automatic security testing tool for buffer overflow defect detection | |
Giuffrida et al. | Practical automated vulnerability monitoring using program state invariants | |
US20060277371A1 (en) | System and method to instrument references to shared memory | |
CN117009252B (zh) | 一种基于函数替换的故障注入测试方法及装置 | |
CN115795489B (zh) | 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置 | |
CN117972707A (zh) | 软件漏洞检测方法、装置、设备及存储介质 | |
CN114741700B (zh) | 基于符号化污点分析的公共组件库漏洞可利用性分析方法及装置 | |
CN114443418A (zh) | 一种基于硬件虚拟化的riscv内存溢出漏洞检测方法及装置 | |
Bertani et al. | Untangle: Aiding global function pointer hijacking for post-cet binary exploitation | |
CN116340081A (zh) | 一种基于硬件虚拟化的riscv内存访问违例检测方法及装置 | |
CN101650688A (zh) | 一种访问vm_io地址空间的方法和用户态调试器 | |
CN111143851A (zh) | 适用于操作系统内核对象地址泄露的检测方法及系统 | |
Shen et al. | Revealing the exploitability of heap overflow through PoC analysis |
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 |