CN104361288A - 细颗粒度污点分析中的污染属性操作方法 - Google Patents
细颗粒度污点分析中的污染属性操作方法 Download PDFInfo
- Publication number
- CN104361288A CN104361288A CN201410759439.2A CN201410759439A CN104361288A CN 104361288 A CN104361288 A CN 104361288A CN 201410759439 A CN201410759439 A CN 201410759439A CN 104361288 A CN104361288 A CN 104361288A
- Authority
- CN
- China
- Prior art keywords
- key
- value pair
- memory
- level
- stored
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test 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示意性地示出了根据本发明优选实施例的细颗粒度污点分析中的污染属性操作方法的流程图。
如图1所示,根据本发明优选实施例的细颗粒度污点分析中的污染属性操作方法包括:
第一步骤S1:以键值对的形式描述细颗粒度污点分析所得出的指定内存地址与其污染属性的映射关系,其中在每个键值对中,键用于存储内存地址,值用于存储该内存地址的当前的污染属性;
第二步骤S2:直接将所述键值对存储于两级存储系统中,其中所述两级存储系统由作为第一级的高速内存和作为第二级的大容量外存组成;以及
第三步骤S3:从两级存储系统中读取期望获取的键值对,其中首先在第一级的内存中存储的键值对进行查找期望获取的键值对,如果在第一级的内存中存储的键值对中发现期望获取的键值对则读取期望获取的键值对,如果在第一级的内存中存储的键值对中未发现期望获取的键值对,则在第二级存储的键值对查找并读取期望获取的键值对,同时将读取出的期望获取的键值对存储至第一级的内存中。
具体而言,优选地,在第一级的内存中使用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策略淘汰出旧的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410759439.2A CN104361288A (zh) | 2014-12-11 | 2014-12-11 | 细颗粒度污点分析中的污染属性操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410759439.2A CN104361288A (zh) | 2014-12-11 | 2014-12-11 | 细颗粒度污点分析中的污染属性操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104361288A true CN104361288A (zh) | 2015-02-18 |
Family
ID=52528547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410759439.2A Pending CN104361288A (zh) | 2014-12-11 | 2014-12-11 | 细颗粒度污点分析中的污染属性操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104361288A (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110227832A1 (en) * | 2001-09-20 | 2011-09-22 | Yuvee, Inc. | Multifunction display-based user interface for devices |
-
2014
- 2014-12-11 CN CN201410759439.2A patent/CN104361288A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110227832A1 (en) * | 2001-09-20 | 2011-09-22 | Yuvee, Inc. | Multifunction display-based user interface for devices |
Non-Patent Citations (1)
Title |
---|
王科等: "Web系统多级分布式缓存机制设计与实现", 《现代图书情报技术》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
JP6362316B2 (ja) | バッファ・プールをメモリ常駐型データのための常在インメモリ・ストレージとして用いた、ハイブリッド・テーブル実装のための方法、システム、およびコンピュータ・プログラム製品 | |
US10318511B2 (en) | Expression tree interning | |
Koranne et al. | Hierarchical data format 5: HDF5 | |
US10255309B2 (en) | Versioned insert only hash table for in-memory columnar stores | |
CN102129458B (zh) | 关系型数据库的存储方法及装置 | |
US9977802B2 (en) | Large string access and storage | |
US10055429B2 (en) | Generating a schema of a not-only-structured-query-language database | |
US8977626B2 (en) | Indexing and searching a data collection | |
US11537578B2 (en) | Paged column dictionary | |
US20160147786A1 (en) | Efficient Database Undo / Redo Logging | |
US20100199109A1 (en) | Abstracting programmatic represention of data storage systems | |
KR20160132853A (ko) | 병렬 결정 트리 프로세서 아키텍처 | |
US10248680B2 (en) | Index management | |
JP7047228B2 (ja) | データ照会方法、装置、電子機器、可読記憶媒体、及びコンピュータープログラム | |
US20150058352A1 (en) | Thin database indexing | |
CN105718507A (zh) | 一种数据迁移方法和装置 | |
US20100251227A1 (en) | Binary resource format and compiler | |
ShefaliPatil et al. | Graph databases-an overview | |
CN103793653B (zh) | 一种基于树优化的程序依赖关系分析方法及系统 | |
US10013442B2 (en) | Database value identifier hash map | |
CN110020272A (zh) | 缓存方法、装置以及计算机存储介质 | |
Roumelis et al. | Bulk-loading and bulk-insertion algorithms for xBR^+-trees xBR+-trees in Solid State Drives | |
WO2024016789A1 (zh) | 日志数据查询方法、装置、设备和介质 | |
CN111290714A (zh) | 数据读取方法和装置 |
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 |
Application publication date: 20150218 |
|
RJ01 | Rejection of invention patent application after publication |