一种动态污点数据分析方法及装置的制造方法

文档序号:8430640阅读:470来源:国知局
一种动态污点数据分析方法及装置的制造方法
【技术领域】
[0001]本申请涉及二进制漏洞安全技术,尤指一种动态污点数据分析方法及装置。
【背景技术】
[0002]计算机技术发展至今,二进制漏洞一直是最为重要的安全问题之一。如何更加有效、快捷、快速地挖掘产品内部潜在的二进制漏洞一直是计算机安全人员孜孜以求的。目前,针对面向二进制程序的漏洞挖掘,主要有静态分析和动态分析两大类。
[0003]基于静态分析的二进制漏洞挖掘方式,由于缺乏运行时的信息,导致最近的分析结果会包含大量的误报,往往需要大量的人工分析来验证挖掘结果的正确性;而基于动态分析的二进制漏洞挖掘方式,则通过利用运行时的信息,使得分析结果真实、有效、可重现。
[0004]其中,基于动态分析的二进制漏洞挖掘方式依赖于两大技术:污点分析和路径遍历。早期的动态漏洞挖掘方法是通过使用大量随机产生的畸形样本,对目标程序进行模糊测试(FUZZ)。但是,一方面,畸形样本的产生完全依靠的是既有的规则,没有对目标程序进行深入的学习分析,导致其中相当大比例的处理流程都一样;另一方面,模糊测试仅仅侧重于样本的产生,对于样本中的数据即污点数据在目标程序处理的流程及污点数据之间的关系是不关心的。因此,这种模糊测试效率不仅低,而且效果也不明显。其中,污点数据是指所有二进制程序的外部输入数据源,比如读取的文件内容,网络接收的数据,命令行传入的参数等等。
[0005]针对样本的污点数据在目标程序中的处理流程即污点数据分析,提出了一种基于roBDD的离线细粒度污点分析的方法,并实现了原型系统TaintReplayer,其设计思路大致包括:通过一个基于二进制插装程序的程序执行轨迹记录模块,将本次执行过程中的指令及相关的寄存器和内存数据一起记录到文件中;通过一个轨迹重放模块,在重放过程中对程序的执行轨迹进行细粒度的污点分析,并且采用roBDD来表示污点属性。其中,roBDD是一种压缩的表达布尔函数的有向图结构,其特点是具有相同污点属性的变量共享一个roBDD结构。
[0006]现有的污点数据分析方法对于执行轨迹中的每一条指令都会做分析,但是,对于某些类型的污点数据如内存C++对象等,是没有必要对其后每条指令都进行污点分析的。这种对执行轨迹中的每一条指令都做分析的方式,需要对全部指令集进行翻译和分析,造成了实现成本高,污点分析效率低等问题。

【发明内容】

[0007]为了解决上述技术问题,本申请提供了一种动态污点数据分析方法及装置,能够只对相关指令进行污点分析,无需对全部指令集进行翻译和分析,从而降低成本,提高污点分析效率。
[0008]为了达到本申请目的,本申请提供一种动态污点数据分析方法,包括:
[0009]利用软件断点引入污点数据,并建立对应污点数据的上下文;
[0010]利用内存断点和软件断点对所述污点数据进行分析。
[0011]该方法还包括:根据预先设置的安全策略对所述污点数据进行安全性分析。
[0012]所述污点数据的上下文中的内容体现所述污点数据的属性。
[0013]所述污点数据的上下文包括:污点数据的引入点、和/或污点数据的大小、和/或断点触发后引入污点数据的点、和/或污点数据被引入的次数。
[0014]所述利用内存断点和软件断点对污点数据进行分析包括:
[0015]如果当前断点为内存断点,且触发当前内存断点获得的数据存在于系统预先设置的异常上下文中,确定获得的数据为污点数据,对所述污点数据的上下文进行处理;
[0016]如果当前断点是软件断点,将获得的数据作为新的污点数据存入异常上下文中。
[0017]所述异常上下文为污点数据哈希表。
[0018]所述安全性分析后,该方法还包括:销毁存在安全问题的污点数据。
[0019]本申请还提供一种动态污点数据处理装置,包括引入模块,以及分析模块;其中,
[0020]引入模块,用于利用软件断点引入污点数据,并建立对应污点数据的上下文;
[0021]分析模块,用于利用内存断点和软件断点对污点数据进行分析。
[0022]所述分析模块具体用于:
[0023]所述当前断点为内存断点时,且触发当前内存断点获得的数据存在于系统预先设置的异常上下文中,确定获得的数据为污点数据,对所述污点数据的上下文进行处理;
[0024]所述当前断点是软件断点时,将获得的数据作为新的污点数据存入异常上下文中。
[0025]还包括安全处理模块,用于根据预先设置的安全策略对所述分析模块确定的污点数据进行安全性分析。
[0026]所述安全处理模块还用于,销毁所述安全处理模块分析后存在安全问题的污点数据。
[0027]本申请提供的方案包括利用软件断点引入污点数据,并建立对应污点数据的上下文;利用内存断点和软件断点对污点数据进行分析。本申请通过软件断点引入污点数据,只对相关指令进行污点分析,无需对全部指令集进行翻译和分析,而且,通过利用内存断点和软件断点对污点数据进行分析,高效地实现了监控污点数据的引入和传播过程,从而降低了成本,提高了污点分析效率。
[0028]进一步地,本申请还包括根据预先设置的安全策略对确定的污点数据进行安全性分析,保证了存在安全漏洞的污点数据被及时清除。
[0029]本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0030]附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
[0031]图1为本申请动态污点数据分析方法的流程图;
[0032]图2为本申请动态污点数据分析装置的组成结构示意图。
【具体实施方式】
[0033]为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0034]在本申请一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0035]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0036]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPR0M)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1