CN104408373A - 用于细颗粒度污点分析的污染属性存储方法 - Google Patents

用于细颗粒度污点分析的污染属性存储方法 Download PDF

Info

Publication number
CN104408373A
CN104408373A CN201410759438.8A CN201410759438A CN104408373A CN 104408373 A CN104408373 A CN 104408373A CN 201410759438 A CN201410759438 A CN 201410759438A CN 104408373 A CN104408373 A CN 104408373A
Authority
CN
China
Prior art keywords
key
memory
pollution
value pair
stain
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.)
Pending
Application number
CN201410759438.8A
Other languages
English (en)
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.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
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 Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201410759438.8A priority Critical patent/CN104408373A/zh
Publication of CN104408373A publication Critical patent/CN104408373A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种用于细颗粒度污点分析的污染属性存储方法,包括:以键值对的形式描述细颗粒度污点分析所得出的指定内存地址与其污染属性的映射关系,其中在每个键值对中,键用于存储内存地址,值用于存储该内存地址的当前的污染属性;并且直接将所述键值对存储于两级存储系统中,其中所述两级存储系统由作为第一级的高速内存和作为第二级的大容量外存组成。

Description

用于细颗粒度污点分析的污染属性存储方法
技术领域
本发明涉及细颗粒度污点分析领域,更具体地说,本发明涉及一种用于细颗粒度污点分析的污染属性存储方法。
背景技术
污点分析是目前安全领域中应用最为广泛的分析技术,在漏洞发掘、恶意软件分析、测试用例生成等领域具有广泛的应用。其基本思想是通过跟踪外部输入的数据在程序中的传播过程,和最终执行的情况来分析是否存在安全漏洞和存在什么类别的漏洞,它不需要任何特殊的攻击性的测试数据,而以一种溯源式的方式判断外部传递数据对跳转地址、返回地址、函数指针的影响
细颗粒度污点分析是污点分析技术的一种。指在污点标记过程中把输入数据的每一个字节都进行独立编号和标记,从而可以独立地跟踪输入数据的每个字节在程序运行过程中的传播过程和状态信息。
由于细颗粒度污点分析对于目标软件的输入数据的每一个字节都进行唯一的标记,因此引入如下问题:
1、程序运行时使用的每个内存单元都可能依赖于多个污点数据,记录每个内存单元(或寄存器)与污染属性的映射关系对存储空间需求很大;
2、程序运行时每一条指令的执行都可能导致污点由一个内存地址传播至另一个内存地址,传播过程需要对内存地址的污染属性进行合并、删除等运算操作,由于每条指令的执行都可能需要进行计算,所以这一过程对计算性能有很高的要求。
目前,每个内存单元的污染属性通常是采用整数集合的形式进行描述和存储,整数集合中的每个数对应于输入数据中的一个字节的编号;污点传播过程中的污染属性运算,实际是以整数集合合并的方式来实现。
细颗粒度污点分析的污染属性存储的实际就是程序运行时内存地址(或寄存器,下文同)与污点属性的映射关系,记为
以整数集合描述污点属性进行存储和运算,在空间和时间性能上都有很大的开销。典型的实验过程表明,1千万条指令的执行轨迹大小约1.5GB,对小规模程序进行动态污点分析产生的映射数据量即可达到10GB。使用SQL关系数据库存储海量的内存地址与污点属性的映射关系效率并不理想。
非专利文献1(王铁磊,面向二进制程序的漏洞挖掘关键技术研究,2011)提出以规约有序二元决策图(roBDD)取代整数集合进行细颗粒度污点分析,即以roBDD的形式记录映射关系中的t的值,该方法可以在减少污染属性的存储空间需求的同时,提升细颗粒度污点传播的运行速度。但使用了roBDD取代整数集合,在内存空间有限的情况下,细颗粒度污点分析仍可能会遇到存储空间和计算资源的性能瓶颈。
发明内容
本发明所要解决的技术问题是针对现有技术中存在上述缺陷,提供一种两层存储结构进行细颗粒度污点分析污染属性的存储,供分析例程高速读取和写入细颗粒度污点分析过程中产生的海量内存地址与污点属性之间的映射关系。
为了实现上述技术目的,根据本发明,提供了一种用于细颗粒度污点分析的污染属性存储方法,包括:以键值对的形式描述细颗粒度污点分析所得出的指定内存地址与其污染属性的映射关系;以及直接将所述键值对存储于两级存储系统中。
优选地,所述两级存储系统由作为第一级的高速内存和作为第二级的大容量外存组成。
优选地,在每个键值对中,键用于存储内存地址,值用于存储该内存地址的当前的污染属性。
优选地,在第一级的内存中使用B+树结构对对键值进行存储。
优选地,在第二级的外存中使用Hash表对对键值进行存储。
优选地,在直接将所述键值对存储于两级存储系统中时,在第一级和第二级上同时进行所述键值对的存储。
优选地,在第一级的内存的存储容量达到上限时,通过LRU策略淘汰出旧的数据。
通过在本发明提出的两级存储方法,直接以键值对形式存储细颗粒度污点分析过程中产生的海量内存地址与污点属性之间的映射关系,在第一级内存空间充足的情况下,可达到最高的读写性能;而在内存空间有限的情况下,也可借助大容量的第二级存储存储更多的数据,同时将读写性能的下降尽可能减少。并且,这些过程都在内部实现,外部细颗粒度污点分析例程调用完全不需要知道内部实现的细节。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1示意性地示出了根据本发明优选实施例的用于细颗粒度污点分析的污染属性存储方法的流程图。
图2示意性地示出了根据本发明优选实施例的细颗粒度污点分析的污染属性存储架构。
图3示意性地示出了根据本发明优选实施例的污染属性存储架构的第一级。
图4示意性地示出了根据本发明优选实施例的污染属性存储架构的第二级。
图5示意性地示出了根据本发明优选实施例的用于细颗粒度污点分析的污染属性存储方法的具体实例。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
为了使本发明的内容更加清楚和易懂,下面结合具体实施例和附图对本发明的内容进行详细描述。
本发明针对细颗粒度污点分析污染属性的数据特征,提出一种存储方法,该方法采用图2所示的两个级别的键值对(key/value)数据存储系统,其中每一条键值对数据,对应一个内存地址和其污点属性的映射关系,即“键”用于存储内存地址,“值”用于存储该内存地址当前的污染属性。键值对数据存储既没有关系数据库表的概念,也不存在数据类型,属于NOSQL数据库的范畴。
图1示意性地示出了根据本发明优选实施例的用于细颗粒度污点分析的污染属性存储方法的流程图。
根据本发明优选实施例的用于细颗粒度污点分析的污染属性存储方法包括:
第一步骤S1:以键值对的形式描述细颗粒度污点分析所得出的指定内存地址与其污染属性的映射关系,其中在每个键值对中,键用于存储内存地址,值用于存储该内存地址的当前的污染属性;以及
第二步骤S2:直接将所述键值对存储于两级存储系统中,其中所述两级存储系统由作为第一级的高速内存和作为第二级的大容量外存组成。
具体而言,优选地,在第一级的内存中使用B+树结构对对键值进行存储,其结构如图3所示,为了尽量使计算在容量有限的一级存储上进行,在数据结构设计上优先考虑降低空间复杂度,由于B+树的实现上每个记录头只需4个字节,从而最大程度优化了空间复杂度,降低内存使用量,根据内存地址查找其污染属性的时间复杂度O(logN),N为污点属性数据的总条数,使用LRU(LeastRecent Use)策略删除最不常用的数据;
此外,优选地,在第二级的外存中使用Hash表对对键值进行存储,其结构如图4所示,根据内存地址查找其污染属性的时间复杂度O(1),优于第一次存储,但每个记录头需16个字节,占用存储空间相对第一级变大。
优选地,定义两级存储的使用策略为:在直接将所述键值对存储于两级存储系统中时,在第一级和第二级上同时进行所述键值对的存储(即,键值对被随机地存储在第一级或第二级中);优选地,在读取期望获取的键值对时,首先在第一级存储的键值对进行查找,如果第一级存储的键值对中未发现期望获取的键值对,再在第二级存储的键值对进行查找并读取期望获取的键值对,同时将读取出的期望获取的键值对存储至第一级中;此外优选地,在第一级的内存的存储容量达到上限时,通过LRU(Least Recently Used近期最少使用算法)策略淘汰出旧的数据。
优选地,两级存储结构对外仅提供三种操作:
写入:为指定内存地址设置污染属性的;
读取:获取指定内存地址对应污染属性的;
清空:删除指定内存地址的污染属性。
两级存储结构的内部实现对外部调用完全透明。外部的细颗粒度污点分析例程都可通过简单的外部接口调用实现上述三种操作。
【具体实例】
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将描述本发明方案的应用实施例,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。
以本发明构建污染属性存储系统,典型的应用实例见图5,包括指定内存地址污染属性的写入、读取和清空。
写入指定内存的污染属性:细颗粒度污点分析例程分析过程得到的以整数集合描述的内存地址与污染属性的映射关系,经过污染属性运算,污染属性先转换为roBDD结构再转换为字符串作为值,再与作为键的内存地址组成一条键值对数据,同时写入污染属性存储系统的两个级别存储中。
读取指定内存地址污染属性:对于请求的内存地址m,污染属性存储系统首先在第一级存储中寻找对应的污染属性值t(字符串形式描述的roBDD结构),若未找到,则在第二级存储中寻找,找到匹配的键值对后,进行两个操作:1)通过污点属性预算将t转换为整数集合后返回给细颗粒度污点分析例程,2)将该键值对写入第一级存储中供下次使用。
清空指定内存的污染属性:对于请求的内存地址m,污染属性存储系统查找到键为m的键值对后,将其删除。
通过在本发明提出的两级存储方法,直接以键值对形式存储细颗粒度污点分析过程中产生的海量内存地址与污点属性之间的映射关系,在第一级内存空间充足的情况下,可达到最高的读写性能;而在内存空间有限的情况下,也可借助大容量的第二级存储存储更多的数据,同时将读写性能的下降尽可能减少。并且,这些过程都在内部实现,外部细颗粒度污点分析例程调用完全不需要知道内部实现的细节。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (7)

1.一种用于细颗粒度污点分析的污染属性存储方法,其特征在于包括:
以键值对的形式描述细颗粒度污点分析所得出的指定内存地址与其污染属性的映射关系;以及
直接将所述键值对存储于两级存储系统中。
2.根据权利要求1所述的污染属性存储方法,其特征在于,所述两级存储系统由作为第一级的高速内存和作为第二级的大容量外存组成。
3.根据权利要求1或2所述的污染属性存储方法,其特征在于,在每个键值对中,键用于存储内存地址,值用于存储该内存地址的当前的污染属性。
4.根据权利要求1或2所述的污染属性存储方法,其特征在于,在第一级的内存中使用B+树结构对对键值进行存储。
5.根据权利要求1或2所述的污染属性存储方法,其特征在于,在第二级的外存中使用Hash表对对键值进行存储。
6.根据权利要求1或2所述的污染属性存储方法,其特征在于,在直接将所述键值对存储于两级存储系统中时,在第一级和第二级上同时进行所述键值对的存储。
7.根据权利要求1或2所述的污染属性存储方法,其特征在于,在第一级的内存的存储容量达到上限时,通过LRU策略淘汰出旧的数据。
CN201410759438.8A 2014-12-11 2014-12-11 用于细颗粒度污点分析的污染属性存储方法 Pending CN104408373A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410759438.8A CN104408373A (zh) 2014-12-11 2014-12-11 用于细颗粒度污点分析的污染属性存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410759438.8A CN104408373A (zh) 2014-12-11 2014-12-11 用于细颗粒度污点分析的污染属性存储方法

Publications (1)

Publication Number Publication Date
CN104408373A true CN104408373A (zh) 2015-03-11

Family

ID=52646004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410759438.8A Pending CN104408373A (zh) 2014-12-11 2014-12-11 用于细颗粒度污点分析的污染属性存储方法

Country Status (1)

Country Link
CN (1) CN104408373A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102968478A (zh) * 2012-11-19 2013-03-13 天津书生投资有限公司 一种索引和搜索方法
CN103080910A (zh) * 2010-09-09 2013-05-01 日本电气株式会社 存储系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103080910A (zh) * 2010-09-09 2013-05-01 日本电气株式会社 存储系统
CN102968478A (zh) * 2012-11-19 2013-03-13 天津书生投资有限公司 一种索引和搜索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王科等: "《Web系统多级分布式缓存机制设计与实现》", 《现代图书情报技术》 *
王铁磊等: "《基于roBDD的细颗粒度动态污点分析》", 《北京大学学报(自然科学版)》 *

Similar Documents

Publication Publication Date Title
CN107391653B (zh) 一种分布式NewSQL数据库系统及图片数据储存方法
JP6362316B2 (ja) バッファ・プールをメモリ常駐型データのための常在インメモリ・ストレージとして用いた、ハイブリッド・テーブル実装のための方法、システム、およびコンピュータ・プログラム製品
US10318511B2 (en) Expression tree interning
US10255309B2 (en) Versioned insert only hash table for in-memory columnar stores
US9977802B2 (en) Large string access and storage
US11537578B2 (en) Paged column dictionary
US10055429B2 (en) Generating a schema of a not-only-structured-query-language database
US20100199109A1 (en) Abstracting programmatic represention of data storage systems
US10248680B2 (en) Index management
JP7047228B2 (ja) データ照会方法、装置、電子機器、可読記憶媒体、及びコンピュータープログラム
CN105718507A (zh) 一种数据迁移方法和装置
US20100251227A1 (en) Binary resource format and compiler
ShefaliPatil et al. Graph databases-an overview
US10503717B1 (en) Method for locating data on a deduplicated storage system using a SSD cache index
CN110020272A (zh) 缓存方法、装置以及计算机存储介质
US10013442B2 (en) Database value identifier hash map
WO2024016789A1 (zh) 日志数据查询方法、装置、设备和介质
US9317261B2 (en) Level based data supply for reusable interface components
CN111290714A (zh) 数据读取方法和装置
CN104408373A (zh) 用于细颗粒度污点分析的污染属性存储方法
CN104361288A (zh) 细颗粒度污点分析中的污染属性操作方法
US10942864B2 (en) Shared memory for distributed data
US9841905B2 (en) File system having a database management system using file pre-allocation in mass storage devices
Park et al. Computer Science and Its Application
KR101656619B1 (ko) Rbi 그래프 기반의 서브 그래프 리스팅 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150311