[发明专利]细颗粒度污点分析中的污染属性操作方法在审
申请号: | 201410759439.2 | 申请日: | 2014-12-11 |
公开(公告)号: | CN104361288A | 公开(公告)日: | 2015-02-18 |
发明(设计)人: | 张垚;董超群;司品超;廖军;张超容;黄东海 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 北京众合诚成知识产权代理有限公司 11246 | 代理人: | 龚燮英 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 颗粒 污点 分析 中的 污染 属性 操作方法 | ||
技术领域
本发明涉及细颗粒度污点分析领域,更具体地说,本发明涉及一种细颗粒度污点分析中的污染属性操作方法。
背景技术
污点分析是目前安全领域中应用最为广泛的分析技术,在漏洞发掘、恶意软件分析、测试用例生成等领域具有广泛的应用。其基本思想是通过跟踪外部输入的数据在程序中的传播过程,和最终执行的情况来分析是否存在安全漏洞和存在什么类别的漏洞,它不需要任何特殊的攻击性的测试数据,而以一种溯源式的方式判断外部传递数据对跳转地址、返回地址、函数指针的影响
细颗粒度污点分析是污点分析技术的一种。指在污点标记过程中把输入数据的每一个字节都进行独立编号和标记,从而可以独立地跟踪输入数据的每个字节在程序运行过程中的传播过程和状态信息。
由于细颗粒度污点分析对于目标软件的输入数据的每一个字节都进行唯一的标记,因此引入如下问题:
1、程序运行时使用的每个内存单元都可能依赖于多个污点数据,记录每个内存单元(或寄存器)与污染属性的映射关系对存储空间需求很大;
2、程序运行时每一条指令的执行都可能导致污点由一个内存地址传播至另一个内存地址,传播过程需要对内存地址的污染属性进行合并、删除等运算操作,由于每条指令的执行都可能需要进行计算,所以这一过程对计算性能有很高的要求。
目前,每个内存单元的污染属性通常是采用整数集合的形式进行描述和存储,整数集合中的每个数对应于输入数据中的一个字节的编号;污点传播过程中的污染属性运算,实际是以整数集合合并的方式来实现。
细颗粒度污点分析的污染属性存储的实际就是程序运行时内存地址(或寄存器,下文同)与污点属性的映射关系,记为
以整数集合描述污点属性进行存储和运算,在空间和时间性能上都有很大的开销。典型的实验过程表明,1千万条指令的执行轨迹大小约1.5GB,对小规模程序进行动态污点分析产生的映射数据量即可达到10GB。使用SQL关系数据库存储海量的内存地址与污点属性的映射关系效率并不理想。
非专利文献1(王铁磊,面向二进制程序的漏洞挖掘关键技术研究,2011)提出以规约有序二元决策图(roBDD)取代整数集合进行细颗粒度污点分析,即以roBDD的形式记录映射关系中的t的值,该方法可以在减少污染属性的存储空间需求的同时,提升细颗粒度污点传播的运行速度。但使用了roBDD取代整数集合,在内存空间有限的情况下,细颗粒度污点分析仍可能会遇到存储空间和计算资源的性能瓶颈。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种两层存储结构进行细颗粒度污点分析污染属性的存储,供分析例程高速读取和写入细颗粒度污点分析过程中产生的海量内存地址与污点属性之间的映射关系。
为了实现上述技术目的,根据本发明,提供了一种细颗粒度污点分析中的污染属性操作方法,包括:以键值对的形式描述细颗粒度污点分析所得出的指定内存地址与其污染属性的映射关系;直接将所述键值对存储于两级存储系统中,其中所述两级存储系统由作为第一级的高速内存和作为第二级的大容量外存组成;以及从两级存储系统中读取期望获取的键值对,其中首先在第一级的内存中存储的键值对进行查找期望获取的键值对,如果在第一级的内存中存储的键值对中发现期望获取的键值对则读取期望获取的键值对,如果在第一级的内存中存储的键值对中未发现期望获取的键值对,则在第二级存储的键值对查找并读取期望获取的键值对,同时将读取出的期望获取的键值对存储至第一级的内存中。
优选地,污染属性操作方法还包括:从两级存储系统中删除待删除键值对。
优选地,在每个键值对中,键用于存储内存地址,值用于存储该内存地址的当前的污染属性。
优选地,在第一级的内存中使用B+树结构对对键值进行存储。
优选地,在第二级的外存中使用Hash表对对键值进行存储。
优选地,在直接将所述键值对存储于两级存储系统中时,在第一级和第二级上同时进行所述键值对的存储。
优选地,在第一级的内存的存储容量达到上限时,通过LRU策略淘汰出旧的数据。
通过在本发明提出的两级存储方法,直接以键值对形式存储细颗粒度污点分析过程中产生的海量内存地址与污点属性之间的映射关系,在第一级内存空间充足的情况下,可达到最高的读写性能;而在内存空间有限的情况下,也可借助大容量的第二级存储存储更多的数据,同时将读写性能的下降尽可能减少。并且,这些过程都在内部实现,外部细颗粒度污点分析例程调用完全不需要知道内部实现的细节。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410759439.2/2.html,转载请声明来源钻瓜专利网。