CN108140100B - 维护对象的安全标签和引用计数的系统、方法和介质 - Google Patents

维护对象的安全标签和引用计数的系统、方法和介质 Download PDF

Info

Publication number
CN108140100B
CN108140100B CN201680055250.2A CN201680055250A CN108140100B CN 108140100 B CN108140100 B CN 108140100B CN 201680055250 A CN201680055250 A CN 201680055250A CN 108140100 B CN108140100 B CN 108140100B
Authority
CN
China
Prior art keywords
objects
updating
security
computer memory
reference count
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.)
Active
Application number
CN201680055250.2A
Other languages
English (en)
Other versions
CN108140100A (zh
Inventor
G·光
A·诺金
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.)
HRL Laboratories LLC
Original Assignee
HRL Laboratories LLC
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 HRL Laboratories LLC filed Critical HRL Laboratories LLC
Publication of CN108140100A publication Critical patent/CN108140100A/zh
Application granted granted Critical
Publication of CN108140100B publication Critical patent/CN108140100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • 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/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

描述了维护对象的安全标签和引用计数的系统、方法和介质。该系统维护用于计算机存储器中的对象的安全标签和引用计数。在修改计算机存储器Is中的对象或对象的一部分时,该系统任意地执行以下操作:更新用于被修改的对象的安全标签;更新用于计算机存储器中的对象的被修改部分紧接在修改之前指向的所有对象的引用计数;以及更新用于计算机存储器中的对象的被修改部分紧接在修改之后指向的所有对象的引用计数。随后,系统检查安全标签,并且如果检查揭露潜在信息流安全违反,则执行校正动作。

Description

维护对象的安全标签和引用计数的系统、方法和介质
政府权利
本发明是在美国政府合同号FA8750-12-C0236“Tunable Information Flow”下用政府支持作出的。政府在本发明中具有特定权利。
相关申请的交叉引用
这是2015年10月28日提交的62/247460的非临时专利申请,在此以引证的方式将该申请的全文并入。
背景技术
(1)技术领域
本发明涉及用于监测并加强软件系统中的信息流安全的系统和方法,并且更具体地,涉及一种用于维护计算机存储器中的对象的安全标签和引用计数的系统。
(2)相关技术的描述
运行时监测是一种计算机系统分析技术,该技术基于从运行系统提取信息并使用这种信息来检测满足或违反诸如信息流安全特性的指定特性的所观察行为并对该所观察行为做出反应。因为信息流安全的运行时监测器实际上是使用多个另外程序语句(或机器指令)来监测每个程序语句(或机器指令),所以信息流安全的运行时监测器被已知是非常计算密集型的。根本地,运行时监测是反映程序执行的每一个方面的运用,这暗示至少100%的运行时开销且很可能比该运行时开销多几倍。而且,传统运行时监测技术反映诸如自动存储器管理和异常处理的标准运行时环境操作,这进一步加倍所强加的开销。
已经开发出致力于诸如动态污点跟踪系统的动态信息流跟踪(DIFT)的一些研究原型。如之前注释的,这种系统(例如,参见所并入的参考文献列表,第4号和第6号参考文献)通常为研究原型。这些现有技术系统由于必须总是反映所有程序操作而遭受高运行时开销。
信息流跟踪的现有技术尚未考虑如何聚集任何形式的动态检查。这是挑战,因为信息流的通常运行时监测必须步调一致地反映所有操作以维护稳定性。其它竞争方法(参见第5号和第6号参考文献)通常尝试通过消除特定形式的跟踪并使需要被跟踪的代码的数量和复杂度最小化来优化运行时监测,但通常这些处理仍然由于扩展操作反映要求而具有大减速。
在其它论文中,Cohen等人(参见第3号参考文献)考虑使用信息流特性来使事务性内存安全。然而,它们不考虑如何使用硬件事务性内存来定址信息流安全违反并对其进行响应。
Birgisson等人(参见第2号参考文献)开发了一种用于使用事务性内存自省来在多线程环境中增强授权策略的技术。该技术依赖软件事务性内存且被限于增强授权。
第7号和第10号参考文献中描述了基于架构的技术,这些技术使用仿真或实际硬件来辅助跟踪用于运行程序的信息流安全。该方法通常是最综合的,能够贯穿包括操作系统甚至包括引导程序的软件栈监测信息流。然而,因为它以最低水平介入,所以它还可以被认为是具有显著侵入性的方法,这是因为它需要对硬件的改变或至少所有软件在非标准仿真器上的运行。
动态二进制仪器化或动态二进制重写取得程序二进制并且在不工作时重写它(参见第6号和第9号参考文献)。该方法可以在未修改第三方软件二进制中监测信息流,但运行时开销通常非常高。
第11号文献中描述了源代码仪器化。它们的处理除了在源代码级之外应用类似于动态二进制仪器化的技术。这本质上为一种监测代码的内联。它比动态二进制仪器化更快,但不应用于未修改第三方软件二进制。而且,不清楚该技术将如何跨程序边界应用于监测信息。
第8号文献中描述了用于类型安全语言的编译时间检查,该检查通过检查为了编码信息流特性而裁剪的语言结构来集中于所有信息流安全特性在编译时间的检查。该方法需要编程语言本身的修改,而且需要重写程序,以利用新信息流感知程序语言。由此,该技术非常具有侵入性。
由此,持续需要用于监测并加强软件系统中的信息流安全的系统,并且特别是与现有技术相比具有减小的运行时开销的系统,该系统可操作用于维护计算机存储器中的对象的安全标签和引用计数。
发明内容
描述了用于通过维护用于计算机存储器中的对象的安全标签和引用计数来监测并加强软件系统中的信息流安全的系统和方法。在修改计算机存储器中的对象或对象的一部分时,系统任意地执行以下操作:更新用于包括第一对象的在计算机存储器中被修改的至少一部分的第一段的安全标签;更新用于第一对象紧接在修改之前指向的第一组对象的引用计数;以及更新用于第一对象紧接在修改之后指向的第二组对象的引用计数。
在另一个方面中,该系统执行以下操作:检查用于第一段的安全标签、用于第一组对象的安全标签、用于第二组对象的安全标签、以及程序计数器安全上下文中的一个或更多个。如果检查揭示潜在信息流安全违反,则执行校正动作。
在另一个方面中,描述了用于在程序执行期间维护用于计算机存储器中的对象的安全标签和引用计数的系统和方法。在修改计算机存储器中的对象或对象的一部分时,该系统保持能够在程序执行的后期执行另外操作的信息。在程序执行的后期,该系统任意地执行以下另外操作:更新用于包括第一对象的在计算机存储器中被修改的至少一部分的第一段的安全标签;更新用于第一对象紧接在修改之前指向的第一组对象的引用计数;以及更新用于第一对象紧接在修改之后指向的第二组对象的引用计数。
最后,本发明还包括计算机程序产品和计算机实现方法。计算机程序产品包括存储在非暂时性计算机可读介质上的计算机可读指令,这些指令可由具有至少一个处理器的计算机来执行,使得在执行指令时,至少一个处理器执行这里所列出的操作。另选地,计算机实现方法包括使得计算机执行这种指令并执行产生的操作的动作。
附图说明
本发明的目的、特征以及优点将从本发明的各种方面的以下具体实施方式连同对以下附图的参照显而易见,附图中:
图1是描绘了根据本公开的一些实施方式的系统的组件的框图;
图2是具体实现本公开的一方面的计算机程序产品的例示;
图3是根据本公开的一些实施方式的语言运行时信息流跟踪器的顶级示意图;
图4是如在根据本公开的一些实施方式的系统中使用的反序列化器的例示;以及
图5是如在根据本公开的一些实施方式的系统中使用的已修改修改器的例示。
具体实施方式
本发明涉及用于在软件系统中监测并加强信息流安全的系统和方法,更具体地,涉及一种用于维护用于计算机存储器中的对象的安全标签和引用计数的系统。以下描述被提出为使得本领域普通技术人员能够进行并使用本发明,并且将本发明并入在特定应用的语境中。各种修改以及在不同应用中的各种用途将对本领域技术人员是显而易见的,并且这里所定义的一般原理可以应用于广泛多个方面。由此,本发明不旨在限于这里提出的多个方面,而是符合与这里所公开的原理和新型特征一致的最宽范围。
在以下详细描述中,为了提供本发明的更彻底理解,阐述了大量具体细节。然而,将对本领域技术人员显而易见的是,本发明可以在不必限于这些具体细节的情况下实践。在其它情况下,为了避免使本发明模糊,以框图形式而不是详细地示出公知结构和装置。
读者的注意力被引导到与本说明书同时提交的所有论文和文献上,论文和文献与本说明书一起对公众审查开放,并且在此以引证的方式将所有这种论文和文献的内容并入。在本说明书中公开的所有特征(包括任意所附权利要求、摘要以及附图)可由用于相同、等效或类似目的的另选特征来替换,除非另外明确陈述。由此,除非另外明确陈述,所公开的各特征仅是通用系列等效或类似特征的一个示例。
在详细描述本发明之前,首先提供所引用参考书目的列表。接着,提供本发明的各种主要方面的描述。随后,介绍给读者提供本发明的一般理解。最后,提供本发明的各种实施方式的具体细节,以给出具体方面的理解。
(1)所并入参考文献书目的列表
贯穿本申请并入并列举以下参考书目。为了清晰和方便起见,参考书目在这里被列出为读者的中心资源。以下参考书目在此就像被完全陈述以引证的方式并入。参考书目通过如下参考对应参考文献书目号来列举在申请中:
1.David F,Bacon,Perry Cheng,and V.T.Rajan,A Unified Theory of GarbageCollection.In Proceedings of the 19th Annual ACM SIGPLAN Conference onObject-oriented Programming,Systems,Languages,and Applications,OOPSLA’04,pages 50-68,New York,NY,USA,2004.
2.Arnar Birgisson,Vinod Ganapathy,and et al.Enforcing AuthorizationPolicies using Transactional Memory Introspection.2008.
3.Ariel Cohen,Ron van der Meyden,and Lenore D,Zuck,Access Control andInformation Flow in Transactional Memory.In David Hutchison,Takeo Kanade,Josef Kittler,Jon M.Kleinberg,Friedemann Mattern,John C.Mitchell,Moni Naor,Oscar Nierstrasz,C.Pandu Rangan,Bernhard Steffen,Madhu Sudan,DemetriTerzopoulos,Doug Tygar,Moshe Y.Vardi,Gerhard Weikum,Pierpaolo Degano,JoshuaGuttman,and Fabio Martinelli,editors,Formal Aspects in Security and Trast,volume 5491,pages 316-330.Springer Berlin Heidelberg,Berlin,Heidelberg,2009.
4.Winnie Cheng,Qin Zhao,Bei Yu,and Scott Hiroshige,TaintTrace:Efficient Flow Tracing with Dynamic Binary Rewriting.In Proceedings of the11th IEEE Symposium on Computers and Communications,ISCC ’06,pages 749-754,Washington,DC,USA,2006,IEEE Computer Society,
5.Andrey Ermolinskiy.Design and Implementation of a Hypervisor-basedPlatform for Dynamic Information Flow Tracking in a Distribated Environment,PhD thesis,University of Califfornia at Berkeley,Berkeley,CA,USA,2011.AAI3473888.
6.Vasileios P.Kemerlis,Georgios Portokalidis,Kangkook Jee,and AngelosD.Keromytis.Libdft:Practical Dynamic Data Flow Tracking for CommoditySystems.In Proceedings of the 8th ACM SIGPLAN/SIGOPS Conference on VirtualExecution Environments,VEE’12,pages 121-132,New York,NY,USA,2012.
7.Shashidhar Mysore,Bita Mazloom,Banit Agrawal,and TimothySherwood.Understanding and Visualizing Full Systems with Data FlowTomography.In Proceedings of the 13th International Conference onArchitectural Support for Programming Languages and Operating Systems,ASPLOSXIII,pages 211-221,New York,NY,USA,2008.ACM.
8.Andrew C.Myers.JFlow:Practical Mostly-static Information FlowControl.In Proceedings of the 26th ACM SIGPLAN-SIGACT Symposium on Principlesof Programming Languages,POPL’99,pages 228-241,New York,NY,USA,1999.ACM.
9.Feng Qin,Cheng Wang,Zhenmin Li,Ho-seop Kim,Yuanyuan Zhou,andYoufeng Wu,LIFT:A Low-Overhead Practical Information Flow Tracking System forDetecting Security Attacks,In Proceedings of the 39th Annual IEEE/ACMInternational Symposium on Microarchitecture,MICRO 39,pages 135-148,Washington,DC,USA,2006.IEEE Computer Society.
10.N.Vachharajani,M.J.Bridges,J.Chang,R.Rangan,,G.Ottoni,J.ABlome,G.A.Reis,M,Vachharajani,and D.I.August.RIFLE:An Architectural Framework forUser-Centric Information-Flow Security,pages 243-254,IEEE,2004,
11.Wei Xu,Sandeep Bhatkar,and R.Sekar.Taint-enhanced PolicyEnforcement:A Practical Approach to Defeat a Wide Range of Attacks.InProceedings of the 15th Conference on USENIX Security Symposium -Volume 15,USENIX-SS`06,Berkeley,CA,USA,2006.USENIXAssociation.
(2)主要方面
本发明的各种实施方式包括三个“主要”方面。第一方面是用于监测并加强在软件系统中的信息流安全的系统和方法。该系统通常为运行软件的计算机系统的形式或“硬编码”指令集的形式。该系统可以并入到提供不同功能的各种装置中。第二主要方面是通常为使用数据处理系统(计算机)运行的软件形式的方法。第三主要方面为计算机程序产品。计算机程序产品通常表示存储在非暂时性计算机可读介质(诸如光存储装置,例如,光盘(CD)或数字通用光盘(DVD),或磁存储装置,诸如软盘或磁带)上的计算机可读指令。计算机可读介质的其它非限制性示例包括硬盘、只读存储器(ROM)以及闪型存储器。以下将更详细地描述这些方面。
图1中提供了描绘本发明的系统(即,计算机系统100)的示例的框图。计算机系统100被配置为执行与程序或算法关联的计算、处理、操作和/或功能。在一个方面中,这里讨论的特定处理和步骤被实现为一系列指令(例如,软件程序),该系列指令驻留在计算机可读存储器单元内,并且由计算机系统100的一个或更多个处理器来执行。在被执行时,指令使得计算机系统100执行诸如这里所述的具体动作并展示具体行为。
计算机系统100可以包括被配置为传输信息的地址/数据总线102。另外,诸如处理器104的一个或更多个数据处理单元与地址/数据总线102联接。处理器104被配置为处理信息和指令。在一个方面中,处理器104是微处理器。另选地,处理器104可以为不同类型的处理器,诸如并行处理器、专用集成电路(ASIC)、可编程逻辑阵列(PLA)、复杂可编程逻辑装置(CPLD)或现场可编程门阵列(FPGA)。
计算机系统100被配置为使用一个或更多个数据存储器单元。计算机系统100可以包括与地址/数据总线102联接的易失性存储器单元106(例如,随机存取存储器(“RAM”)、静态RAM、动态RAM等),其中,易失性存储器单元106被配置为存储用于处理器104的信息和指令。计算机系统100还可以包括与地址/数据总线102联接的非易失性存储器单元108(例如,只读存储器(“ROM”)、可编程ROM(“PROM”)、可擦可编程ROM(“EPROM”)、电可擦可编程ROM(“EEPROM”)、闪存等),其中,非易失性存储器单元108被配置为存储用于处理器104的静态信息和指令。另选地,计算机系统100可以执行从在线数据存储器单元(诸如“云”计算中)检索的指令。在一个方面中,计算机系统100还可以包括与地址/数据总线102联接的一个或更多个接口(诸如接口110)。一个或更多个接口被配置为使得计算机系统100能够与其它电子装置和计算机系统接口连接。由一个或更多个接口实现的通信接口可以包括有线通信技术(例如,串行电缆、调制解调器、网络适配器等)和/或无线通信技术(例如,无线调制解调器、无线网络适配器等)。
在一个方面中,计算机系统100可以包括与地址/数据总线102联接的输入装置112,其中,输入装置112被配置为向处理器100传输信息和命令选择。根据一个方面,输入装置112为可以包括字母数字和/或功能键的字母数字输入装置(诸如键盘)。另选地,输入装置112可以为除了字母数字输入装置之外的输入装置。在一个方面中,计算机系统100可以包括与地址/数据总线102联接的光标控制装置114,其中,光标控制装置114被配置为向处理器100传输用户输入信息和/或命令选择。在一个方面中,光标控制装置114使用装置(诸如鼠标、追踪球、追踪垫、光学追踪装置或触摸屏)来实现。尽管有上述情况,但在一个方面中,光标控制装置114还经由来自输入装置112的输入(诸如响应于与输入装置112关联的特定键和键序列命令的使用)来引导和/或启动。在另选方面中,光标控制装置114被配置为由语音命令来引导或指导。
在一个方面中,计算机系统100还可以包括与地址/数据总线102联接的一个或更多个可选计算机可用数据存储装置(诸如存储装置116)。存储装置116被配置为存储信息和/或计算机可执行指令。在一个方面中,存储装置116是诸如磁或光盘驱动器(例如,硬盘驱动器(“HDD”)、软盘、光盘只读存储器(“CD-ROM”)、数字通用光盘(“DVD”))的存储装置。依照一个方面,显示装置118与地址/数据总线102联接,其中,显示装置118被配置为显示视频和/或图形。在一个方面中,显示装置118可以包括阴极射线管(“CRT”)、液晶显示器(“LCD”)、场发射显示器(“FED”)、等离子体显示器或适于显示可由用户识别的视频和/或图形图像以及字母数字字符的任意其它显示装置。
这里提出的计算机系统100是根据一个方面的示例计算环境。然而,计算机系统100的非限制性示例不严格限于计算机系统。例如,一个方面提供了计算机系统100表示可以根据这里描述的各种方面使用的一种数据处理分析。而且,还可以实现其它计算系统。实际上,本技术的精神和范围不限于任何单个数据处理环境。由此,在一个方面中,本技术的各种方面的一个或更多个操作使用由计算机执行的计算机可执行指令(诸如程序模块)来控制或实现。在一个实现中,这种程序模块包括被配置为执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和/或数据结构。另外,一个方面提供了本技术的一个或更多个方面通过使用一个或更多个分布式计算环境(诸如任务由借助通信网络链接的远程处理装置来执行的环境或诸如各种程序模块位于包括存储器存储装置的本地和远程计算机存储介质中的环境)来实现。
图2中描绘了具体实现本发明的计算机程序产品(即,存储装置)的例示图。计算机程序产品被描绘为软盘200或光盘202(诸如CD或DVD)。然而,如之前提及的,计算机程序产品通常表示存储在任意可兼容非暂时性计算机可读介质上的计算机可读指令。如关于本发明使用的术语“指令”通常指示将在计算机上执行的一组运算,并且可以表示整个程序的多段或独立、单独的软件模块。“指令”的非限制性示例包括计算机程序代码(源码或目标码)和“硬编码”电子器件(即,被编码到计算机芯片中的计算机运算)。“指令”被存储在任意非暂时性计算机可读介质上(诸如在计算机的存储器中或在软盘、CD-ROM以及闪存盘上)。在任一种情况下,指令被编码在非暂时性计算机可读介质上。
(3)介绍
本公开致力于用于监测并加强软件系统中的信息流安全的运行时监测技术,该运行时监测技术使用标准引用计数和推迟引用计数自动存储器管理系统的已修改变体,这两种系统在安全监测的背景之前从未被使用。该方法通过在继续需要确保所有必要检查最终确实发生的簿记的同时使信息流安全检查推迟来聚集它们的独特概念。通过散布监测(用标准引用计数)并使监测推迟(用推迟引用计数),该新方法使用(计算机存储器的)自动存储器管理的设施来显著地减少信息流安全监测的计算和存储器开销。
因为信息流安全的运行时监测器实际上是使用多个另外程序语句(或机器指令)来监测各程序语句(或机器指令),所以已知信息流安全的运行时监测器是非常计算密集型的。使用引用计数的运行时环境自己的自动存储器管理设施的关于本公开的运行时监测的技术利用以下事实:运行时环境的存储器管理将更新与信息流控制相同的程序对象(栈和堆)。因此,通过改变运行时环境存储器管理连同平常的存储器管理簿记来更新信息流跟踪,本公开的系统受益于指令的访问和潜在融合的空间和时间局部性。
本公开的技术还通过充分利用被称为推迟引用计数的特定形式的自动存储器管理改进现有技术,推迟引用计数推迟存储器管理更新,直到成批执行它们为止。嵌入信息流跟踪,本公开的系统可以利用同一机制来降低信息流跟踪更新的频率并巩固多个这种更新。
基本地,现有挑战是在计算机存储器中的对象突变时(即,将新值写入到另一个值可能之前写到的存储器位置中),期望更新该对象的安全标签(包括执行信息流安全检查)和用于该对象的引用计数。本发明的独特方面是两个更新都由更高效的组合机制来执行,而不是由两个单独机制不那么高效地执行。由此,如这里所描述的系统可以用于信息流的运行时监测,以改进高可信度环境和组件中的安全和安全分析。
(4)各种实施方式的具体细节
本公开提供了一种运行时软件安全监测器(还被称为语言运行时跟踪器)。该运行时软件安全监测器被具体设计为监测在单个处理器计算机上执行的单个软件程序的界限内的数据和控制流。用于信息流跟踪(IFT)的安全标签的运行时监测和传播通常是执行时间(用于各语句或指令的更新标签)方面的高开销活动。关于本系统(运行时环境信息流跟踪器),已经设计用于通过使标准引用计数(RC)垃圾收集器(GC)和推迟引用计数(DRC)垃圾收集器仪器化来跟踪并传播安全标签的独特方法。引用计数垃圾收集器(用于自动管理存储器分配和释放的标准编程语言运行时系统技术)由更改器/已修改修改器和收集器组成。
以上所描述的方法基于以下观察:静态信息流分析与运行时信息流监测之间的关系与追踪垃圾收集与引用计数垃圾收集之间的关系类似。而且,正如追踪或引用计数垃圾收集的优化使得相互更靠近,优化静态信息流分析和运行时监测还使得相互承受增加的相似之处。简言之,静态信息流分析一次追踪程序中的所有对象,并且对于所有对象,确定信息流。相比之下,运行时监测通过更新用于各语句或指令的各对象的标签来递增地跟踪信息流。Bacon等人观察追踪与引用计数垃圾收集之间的相似模拟(参见第1号参考文献书目)。在该模拟中,追踪GC通过追踪到堆上的活对象的根来进行不频繁的大收集,而RC通过从死对象的反根“追踪”来执行频繁的小收集。为了保持追踪对在堆存储器中分配的对象的引用的数量,修改器必须在每次访问时更新堆对象的引用计数(即,引用的创建或删除)。对对象A的最近引用的删除将使得为了收集而调度该对象,但这导致递减A引用的所有对象的引用计数,这可能转而引起更多的收集和递减。
组合RC GC和IFT具有若干优点。该方法利用更新引用计数和时间流标签的时间和空间局部性。这是因为用于同一存储器对象的引用计数和标签将在时间方面很靠近地被更新,并且引用计数和信息流标签的存储器表示可以空间地靠近彼此,以利用在微处理器中实现的支持计算机架构的预取和缓存行为。进一步地,通过联接RC GC和IFT,IFT可以实施强式跟踪,使得在对象被垃圾收集时,还可以使对象的内容清零,以避免通过垃圾收集器的无意泄露。以下进一步详细地描述系统的架构和组件。
(4.1)架构
如图3所示,该系统由三个主要组件组成:已修改分配器300、已修改修改器302以及反序列化器304。存在第四可选组件:已修改收集器。黑色矩形306表示已设置安全标签位,而白色矩形308表示清零位。已修改引用计数运行时使标准引用计数分配器300、修改器302、反序列化器304、以及收集器扩展为与安全标签一起使用。已修改修改器(“修改器”)302将直接操纵运行程序的堆存储器。与标准RC相同,所有堆存储器对象随身携带关联引用计数字段,该字段在长度上通常为机器字。本系统的架构还在对应引用计数字段之前添加安全标签(指示存储器是高完整性还是低完整性的1位标签)。
(4.1.1)分配器
在存储器块在标准存储器空闲列表中开始时,如果关联存储器被清零,则安全标签可以被初始化为高完整性(“1”),或者如果关联存储器未被清零,则安全标签可以被初始化为低完整性(“0”)。当在标准RC算法将引用计数初始化为1时分配时,安全标签被更新为分配器300的程序背景的安全标签(即,任意条件分支的安全标签的最小上界开始达到该分配点)。
(4.1.2)更改器或修改器
修改器采取三个参数:目的地存储器位置(地址)d、到目的地的偏移索引i、以及源存储器位置s。在标准RC修改器中,使s处的对象的引用计数递增。在根据本发明的原理的已修改修改器302中,除了使引用计数递增之外,修改器302还必须将d的标签更新至s的标签。
(4.1.3)反序列化器
反序列化器304将作为字节序列的已引用计数对象写到持久大容量储存器(例如,磁硬盘(HD)、固态盘(SSD)或非易失性RAM(NVRAM))。为了支持跨程序运行的IFT或程序执行的任意抑制,反序列化器304必须将安全标签连同引用计数对象表示一起书写。虽然未序列化引用计数本身,但必须用对象序列化用于各对象的安全标签。这使得能够在反序列化对象时恢复标签。该机制对于使用对象序列化和反序列化来坚持程序的跨对象运行的程序相关。
如图4所示,存在用于安全标签的序列化的两个主要格式。图4是如用于系统中的反序列化器304的例示,该系统将使用安全标签字节前缀402作为所有已序列化数据400的前缀。反序列化器304’的另选设计将在文件406起点处聚集所有安全标签位404,以节省指示已序列化对象408的数量的字之后的空间。所丢失储存器的量仅是用于字节或字对齐的位数。
在图4的示例中,阵列1是高完整性1,而阵列2和阵列3是低完整性0。使安全标签字节402作为每个已序列化对象的前缀的朴素形式每个对象浪费7位,并且每个存储器对象强加1字节开销,这将需要25%开销(假定平均对象仅是单个32位机器字)。因为现在所有对象都可以偏移一个字节,所以朴素方法还可以否认由程序依赖的任意对齐假定。
稍微更佳的形式形成序列化文件中的报头,以将所有序列化对象408的标签位404存储在一起。这将最大填充和开销减小至每对象1位。对于具有100个序列化对象(每个为32位机器字)的文件,这暗示3%开销(每32位字1位)和4位浪费(为了将位对齐至字节对齐)。
(4.1.4)收集器
收集器(图5中被示出为元件500)负责遍历具有引用计数0的对象的对象图(即,从属)。它递减用于任意从属对象的引用计数,并且释放具有引用计数0的任意对象。在释放对象时,它将与存储器管理交互,以将释放的空间添加到空闲列表。分配器500可以将深度优先遍历应用于对象图。该方法如与所有标准引用计数技术的情况一样,不由本身处理循环。作为代替,引用计数必须由到收集循环的标准追踪垃圾来补充。在跟踪信息流方面,除了在被修改为负责如在章节4.3中描述的推迟引用计数以成批更新(降级或升级)信息流安全标签时,收集器500不直接发挥作用。
(4.2)语义学
信息流跟踪设计将用于比较(≤)和更新(:=)安全标签的图元添加到修改器302。安全标签被定义为符号的部分已排序集合。≤是关于安全标签的关系。更新运算符:=用新安全标签更新包含安全标签的引用单元。排序还被限制为使得集合中必须存在用于每对元素的最小上界(并集
Figure GDA0003072935700000122
)和最大下界(交集
Figure GDA0003072935700000123
)。由此,安全标签被定义为有界格
Figure GDA0003072935700000124
使得SL是符号的某一有限集(例如,SL={TopSecret,Secret,Unclassified})。对于这些图元的概要,参照图5。
图5是如用于本公开的系统中的修改器302的例示,该修改器通过比较tag(rval)与tag(lvali)来检查每次更新时的信息流。修改器302然后执行标准引用计数更新:被覆盖的lvali将在递减队列上排队,而新rval将在递增队列上排队。
每个存储器对象A可以具有对多个其它存储器对象B、C、D、…的引用(即,指针),B、C以及D被称为A的从属。在标准编程语言中的该抽象化中的主信息特性是A的第i个从属Ai必须具有一致安全标签。具体地,无法将Ai更新到目标具有标签≤的指针。签名图元的示例包括:
≤:SL×SL→布尔
Figure GDA0003072935700000131
当且仅当x≤z,y≤z、并且
Figure GDA0003072935700000137
且y≤w,z≤w时
Figure GDA0003072935700000132
当且仅当z≤x,z≤y、并且
Figure GDA0003072935700000136
且w≤y,w≤z时
Figure GDA0003072935700000133
位置×SL→空白
tag(x)投射出由x表示的对象的安全标签
对于以上所描述的简单1位安全标签方案,图元的具体实例化是自然的。≤是标准位比较(即,0≤1且≤是反身的)。由此断定,
Figure GDA0003072935700000134
Figure GDA0003072935700000135
然而,对于更复杂的安全标签方案,可以丰富图元。
对RC的用于IFT的关键操作是更新操作。具体地,运行时的引用计数实现将具有更新操作,该更新操作具有以下类型的签名更新:位置×整数×位置→空的(location×int×location→void),其中,第一参数是到正被更新的对象A的存储器位置,第二参数是具有到所有对象A的指针的阵列依赖的第二索引(即,引用),并且第三参数是新对象A应指向的存储器位置。这还是运行时系统应标记警告或采取解决潜在信息流安全违反的校正动作的位置。根据背景,响应于违反的适当校正动作可以包括:
1.程序的终止(即,这将所有信息流违反有效地转为服务的可用性拒绝),
2.可疑值的过滤(可能通过截断或清零来进行),
3.回滚(roll back)可疑更新(例如,使用诸如英特尔(R)事务同步扩展(TSX)受限事务性内存(RTM)的数据库事务状记录方法或硬件事务性内存系统)。
例如,对于update(lval,i,rval),如果tag(rval)≤tag(lval)∧tag(rval)≤tag(lvali)不保持,那么存在信息流安全的违反。对于硬件事务性内存扩展,运行时环境可以推测地执行被包裹在XBEGIN和XEND中的更新,以指示在更新未能满足上述不等式的情况下用XABORT自动更新的事务范围(即,临界区)和回滚。总而言之,为了处理对信息流策略违反的事务性响应,实现以下算法:
1.对于每次更新操作,包裹用XBEGIN和XEND实现操作以指示推测事务的指令。
2.检查不等式tag(rval)≤tag(lval)∧tag(rval)≤tag(lvali)。
3.如果不等式未能保持,则发布XABORT。
4.如果不等式保持,则通过提交事务继续进行。
已修改修改器如下工作:
1.首先从存储器获取lvali。
2.如上所述那样比较lval、rval、lvali标签。
3.如果条件保持,则更新tag(lval)。
4.否则,用信号通知警告或采取对违反的另一个响应。
5.照常更新lvali和rval的引用计数。
(4.3)已修改推迟引用计数运行时
DRC改变IFT的语义学(例如,参见图5)。代替IFT对信息流安全违反立即响应,IFT等待,直到可配置数量的变化为止(即,推迟的引用计数操作队列尺寸)。对于队列尺寸n,这意味着IFT后面不多于n-1个信息流安全违反。而且,对于批处理程序,收集器500可以号令终止,以保证将对所有违反响应。对于交互程序(例如,具有无限运行的事件循环的程序),到收集器500的周期调用可以保证最后检测到所有违反,并且这种检测后面为不多于n-1个变化或t时间,其中,t是收集之间的最大持续时间。
已修改修改器如下工作:
1.首先从存储器获取lvali。
2.使rval的递增操作连同tag(rval)和tag(lval)一起排队。
3.使初始lvali的递减操作连同tag(lvali)和tag(rval)一起排队。
修改器302的排队操作(对于递增和递减这两者)将检查各队列尺寸。如果队列是满的,则它发布收集操作,并且仅在收集操作完成之后,它将指针排队到将被递增或递减的对象。
已修改收集器302对于引用计数收集器500执行以下操作:
1.使栈上的对象的计数递增,以将栈中的所有对象放入递增队列中。
2.对于递减队列上的每个对象,遍历其从属对象图,并且对于图中的每个对象:
i.使引用计数递减。
ii.将缓存标签tag(对象)与tag(rval)进行比较:
tag(rval)≤tag(对象),
a)如果条件保持,则更新tag(lval);
b)否则,信号通知警告或采取对违反的另一个响应。
3.对于递增队列上的各对象,遍历其从属对象图,并且对于图中的各对象:
i.使引用计数递增。
ii.将缓存标签tag(对象)与tag(rval)进行比较:
tag(对象)≤tag(rval),
a)如果条件保持,则更新tag(lval);
b)否则,用信号通知警告或采取对违反的另一个响应。
4.最后,使用于栈上的所有对象的递减操作排队。
上述技术类似于标准DRC收集,除了信息流安全标签检查和处理散布有引用计数递减和递增队列的成批处理之外。注意,重要的是使比较中的两个安全标签缓存在递增和递减队列中,因为这些安全标签可能在运行时环境开始处理队列中的对应元素之前变化。
DRC控制器500中的反序列化器必须首先在构造要写到大容量存储器的引用计数对象的序列化表示之前,通过扩展更新使任意未决递增或递减操作对齐至安全标签。这是关键的,因为在没有这种操作的情况下,在继续或重启程序时,将丢失这些未决引用计数操作,因此,引用计数状态将不一致。
最后,虽然已经鉴于若干实施方式描述了本发明,但本领域普通技术人员将容易地认识到,本发明可以具有其它环境中的其它应用。应注意,许多实施方式和实现是可以的。进一步地,所附权利要求并不旨在将本发明的范围限于上述具体实施方式。另外,“用于……的装置”的任意详述旨在唤起元素和权利要求的装置加功能阅读,而不具体使用详述“用于……装置”的任何元素不旨在被读作装置加功能元素,即使权利要求以其它方式包括词语“装置”。进一步地,虽然已经以特定顺序列举了特定方法步骤,但方法步骤可以以任意期望的顺序发生,并且落在本发明的范围内。

Claims (12)

1.一种用于维护用于计算机存储器中的对象的安全标签和引用计数的方法,所述方法包括以下动作:
使得至少一个处理器执行被编码在非暂时性计算机可读介质上的指令,使得在执行时,所述至少一个处理器执行以下操作:
更新用于包括第一对象的在计算机存储器中被修改的至少一部分的第一段的安全标签,其中,所述安全标签被定义为有界格
Figure FDA0003072935690000011
使得SL是符号的某一有限集,≤表示关于安全标签的关系,
Figure FDA0003072935690000012
表示上界,并且
Figure FDA0003072935690000013
表示下界;
更新用于所述第一对象紧接在修改之前指向的第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的第二组对象的引用计数。
2.根据权利要求1所述的方法,所述方法还包括以下操作:
检查用于所述第一段的所述安全标签、用于所述第一组对象的所述安全标签、用于所述第二组对象的所述安全标签、以及程序计数器安全上下文中的一个或更多个;以及
如果所述检查揭示潜在信息流安全违反,则执行校正动作。
3.根据权利要求2所述的方法,所述方法还包括以下操作:
在修改所述计算机存储器中的所述第一对象或所述第一对象的一部分时,保持能够在程序执行的后期执行另外操作的信息;
在程序执行的后期,执行以下另外操作:
更新用于包括所述第一对象的在所述计算机存储器中被修改的至少一部分的所述第一段的所述安全标签;
更新用于所述第一对象紧接在修改之前指向的所述第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的所述第二组对象的引用计数。
4.根据权利要求1所述的方法,所述方法还包括以下操作:
在修改所述计算机存储器中的所述第一对象或所述第一对象的一部分时,保持能够在程序执行的后期执行另外操作的信息;
在程序执行的后期,执行以下另外操作:
更新用于包括所述第一对象的在所述计算机存储器中被修改的至少一部分的所述第一段的所述安全标签;
更新用于所述第一对象紧接在修改之前指向的所述第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的所述第二组对象的引用计数。
5.一种用于维护用于计算机存储器中的对象的安全标签和引用计数的系统,所述系统包括:
至少一个处理器和计算机存储器,所述计算机存储器上编码有指令,使得在修改所述计算机存储器中的对象或对象的一部分时,所述系统任意地执行以下操作:
更新用于包括第一对象的在计算机存储器中被修改的至少一部分的第一段的安全标签,其中,所述安全标签被定义为有界格
Figure FDA0003072935690000021
使得SL是符号的某一有限集,≤表示关于安全标签的关系,
Figure FDA0003072935690000022
表示上界,并且
Figure FDA0003072935690000023
表示下界;
更新用于所述第一对象紧接在修改之前指向的第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的第二组对象的引用计数。
6.根据权利要求5所述的系统,所述系统还包括以下操作:
检查用于所述第一段的所述安全标签、用于所述第一组对象的所述安全标签、用于所述第二组对象的所述安全标签、以及程序计数器安全上下文中的一个或更多个;以及
如果所述检查揭示潜在信息流安全违反,则执行校正动作。
7.根据权利要求6所述的系统,所述系统还包括以下操作:
在修改所述计算机存储器中的所述第一对象或所述第一对象的一部分时,保持能够在程序执行的后期执行另外操作的信息;
在程序执行的后期,执行以下另外操作:
更新用于包括所述第一对象的在所述计算机存储器中被修改的至少一部分的所述第一段的所述安全标签;
更新用于所述第一对象紧接在修改之前指向的所述第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的所述第二组对象的引用计数。
8.根据权利要求5所述的系统,所述系统还包括以下操作:
在修改所述计算机存储器中的所述第一对象或所述第一对象的一部分时,保持能够在程序执行的后期执行另外操作的信息;
在程序执行的后期,执行以下另外操作:
更新用于包括所述第一对象的在所述计算机存储器中被修改的至少一部分的所述第一段的所述安全标签;
更新用于所述第一对象紧接在修改之前指向的所述第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的所述第二组对象的引用计数。
9.一种用于维护用于计算机存储器中的对象的安全标签和引用计数的非暂时性计算机可读介质,该非暂时性计算机可读介质上编码有可执行指令,使得在由至少一个处理器执行所述指令时,所述至少一个处理器执行以下操作:
更新用于包括第一对象的在计算机存储器中被修改的至少一部分的第一段的安全标签,其中,所述安全标签被定义为有界格
Figure FDA0003072935690000031
使得SL是符号的某一有限集,≤表示关于安全标签的关系,
Figure FDA0003072935690000032
表示上界,
Figure FDA0003072935690000033
表示下界;
更新用于所述第一对象紧接在修改之前指向的第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的第二组对象的引用计数。
10.根据权利要求9所述的非暂时性计算机可读介质,所述非暂时性计算机可读介质还包括用于使得所述至少一个处理器执行以下操作的指令:
检查用于所述第一段的所述安全标签、用于所述第一组对象的所述安全标签、用于所述第二组对象的所述安全标签、以及程序计数器安全上下文中的一个或更多个;以及
如果所述检查揭示潜在信息流安全违反,则执行校正动作。
11.根据权利要求10所述的非暂时性计算机可读介质,所述非暂时性计算机可读介质还包括用于使得所述至少一个处理器执行以下操作的指令:
在修改所述计算机存储器中的所述第一对象或所述第一对象的一部分时,保持能够在程序执行的后期执行另外操作的信息;
在程序执行的后期,执行以下另外操作:
更新用于包括所述第一对象的在所述计算机存储器中被修改的至少一部分的所述第一段的所述安全标签;
更新用于所述第一对象紧接在修改之前指向的所述第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的所述第二组对象的引用计数。
12.根据权利要求9所述的非暂时性计算机可读介质,所述非暂时性计算机可读介质还包括用于使得所述至少一个处理器执行以下操作的指令:
在修改所述计算机存储器中的所述第一对象或所述第一对象的一部分时,保持能够在程序执行的后期执行另外操作的信息;
在程序执行的后期,执行以下另外操作:
更新用于包括所述第一对象的在所述计算机存储器中被修改的至少一部分的所述第一段的所述安全标签;
更新用于所述第一对象紧接在修改之前指向的所述第一组对象的引用计数;以及
更新用于所述第一对象紧接在所述修改之后指向的所述第二组对象的引用计数。
CN201680055250.2A 2015-10-28 2016-10-28 维护对象的安全标签和引用计数的系统、方法和介质 Active CN108140100B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562247460P 2015-10-28 2015-10-28
US62/247,460 2015-10-28
PCT/US2016/059597 WO2017075546A1 (en) 2015-10-28 2016-10-28 System and method for maintaining security tags and reference counts for objects in computer memory

Publications (2)

Publication Number Publication Date
CN108140100A CN108140100A (zh) 2018-06-08
CN108140100B true CN108140100B (zh) 2021-10-08

Family

ID=58631236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680055250.2A Active CN108140100B (zh) 2015-10-28 2016-10-28 维护对象的安全标签和引用计数的系统、方法和介质

Country Status (4)

Country Link
US (1) US10430587B2 (zh)
EP (1) EP3369033A4 (zh)
CN (1) CN108140100B (zh)
WO (1) WO2017075546A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10904291B1 (en) * 2017-05-03 2021-01-26 Hrl Laboratories, Llc Low-overhead software transformation to enforce information security policies
CN113448877A (zh) * 2020-03-26 2021-09-28 伊姆西Ip控股有限责任公司 用于数据存储的方法、设备和计算机程序
CN112580028A (zh) * 2020-12-26 2021-03-30 重庆扬成大数据科技有限公司 通过分布式计算进行农业信息化数据安全优化方法
US11870798B2 (en) * 2021-04-23 2024-01-09 Google Llc Minimizing security scanning induced network disruptions
WO2023177446A1 (en) * 2022-03-14 2023-09-21 Futurewei Technologies, Inc. Reducing reference count updates for stack variables

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1432919A (zh) * 2001-12-14 2003-07-30 松下电器产业株式会社 无用存储单元收集装置及无用存储单元收集方法
CN101405740A (zh) * 2006-01-30 2009-04-08 晨星半导体新加坡有限公司 用以维持储存于存储器的软件完整性的方法

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769791B2 (en) * 2001-01-12 2010-08-03 Oracle America, Inc. Lightweight reference counting using single-target synchronization
JP4212797B2 (ja) * 2001-10-12 2009-01-21 株式会社リコー セキュリティシステム及びセキュリティ管理方法
US7308449B2 (en) * 2002-02-01 2007-12-11 John Fairweather System and method for managing collections of data on a network
DE10320062A1 (de) * 2003-05-06 2004-12-16 Giesecke & Devrient Gmbh Speicherverwaltung bei einem tragbaren Datenträger
US7613209B1 (en) * 2004-03-30 2009-11-03 Extreme Networks, Inc. System and method for egress packet marking
US7512792B2 (en) 2005-12-15 2009-03-31 International Business Machines Corporation Reference monitor method for enforcing information flow policies
US7647630B2 (en) * 2005-12-15 2010-01-12 International Business Machines Corporation Associating security information with information objects in a data processing system
US8621607B2 (en) * 2006-05-18 2013-12-31 Vmware, Inc. Computational system including mechanisms for tracking taint
US8510827B1 (en) * 2006-05-18 2013-08-13 Vmware, Inc. Taint tracking mechanism for computer security
US20080307174A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Dual Use Memory Management Library
US8499137B2 (en) * 2010-03-12 2013-07-30 Lsi Corporation Memory manager for a network communications processor architecture
US8819446B2 (en) 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US8478799B2 (en) * 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US8266176B2 (en) * 2010-03-12 2012-09-11 Hitachi, Ltd. Storage system and file access determination method of the same
US8689349B2 (en) * 2010-05-05 2014-04-01 Intel Corporation Information flow tracking and protection
US8195619B2 (en) 2010-08-17 2012-06-05 Symantec Corporation Extent reference count update system and method
CN102780718A (zh) * 2011-05-10 2012-11-14 腾讯科技(北京)有限公司 一种新消息提示方法及系统
US8346810B2 (en) * 2011-05-13 2013-01-01 Simplivity Corporation Reference count propagation
US9836934B2 (en) * 2011-09-30 2017-12-05 SMTP Associates, LLC Security tag for inventory and anti-theft alarm system
US8898780B2 (en) * 2011-11-07 2014-11-25 Qualcomm Incorporated Encoding labels in values to capture information flows
US8914616B2 (en) * 2011-12-02 2014-12-16 Arm Limited Exchanging physical to logical register mapping for obfuscation purpose when instruction of no operational impact is executed
CN102591735B (zh) * 2011-12-31 2013-11-13 飞天诚信科技股份有限公司 一种智能卡处理cap文件的方法
CN104160466B (zh) * 2012-03-05 2017-05-31 西门子公司 用于断路器改进式磁性衔铁选择性脱扣装置的方法和设备
CN103714090B (zh) * 2012-10-09 2018-04-10 阿里巴巴集团控股有限公司 多索引数据库事务处理方法及数据库
CN102955849A (zh) * 2012-10-29 2013-03-06 新浪技术(中国)有限公司 基于标签推荐文档的方法及文档推荐装置
US8938795B2 (en) * 2012-11-19 2015-01-20 Owl Computing Technologies, Inc. System for real-time cross-domain system packet filtering
US10185584B2 (en) * 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1432919A (zh) * 2001-12-14 2003-07-30 松下电器产业株式会社 无用存储单元收集装置及无用存储单元收集方法
CN101405740A (zh) * 2006-01-30 2009-04-08 晨星半导体新加坡有限公司 用以维持储存于存储器的软件完整性的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《A Unified Theory of Garbage Collection》;David F Bacon等;《ACM SIGPLAN NOTICES》;20041031;第39卷(第10期);第50-68页 *

Also Published As

Publication number Publication date
CN108140100A (zh) 2018-06-08
EP3369033A4 (en) 2019-05-22
US20170300694A1 (en) 2017-10-19
US10430587B2 (en) 2019-10-01
EP3369033A1 (en) 2018-09-05
WO2017075546A1 (en) 2017-05-04

Similar Documents

Publication Publication Date Title
CN108140100B (zh) 维护对象的安全标签和引用计数的系统、方法和介质
US9489229B2 (en) Transparent dynamic code optimization
US10210170B2 (en) Chunk storage deduplication using graph structures
US9817582B2 (en) Offload read and write offload provider
US8069317B2 (en) Providing and utilizing high performance block storage metadata
CN105320567B (zh) 用于有效资源回收的延迟损毁
US9430160B2 (en) Consistency without ordering dependency
US9063887B2 (en) Restoring distributed shared memory data consistency within a recovery process from a cluster node failure
KR20130115995A (ko) 파일 시스템에 대한 체크포인트
US9305049B2 (en) Addressing cross-allocated blocks in a file system
US10725907B2 (en) Information processing apparatus for specifying data region of garbage collection, information processing system and information processing method
US11307922B2 (en) Application crash analysis techniques when memory dump and debug symbols are not co-located
Tao et al. Formal verification of a multiprocessor hypervisor on arm relaxed memory hardware
Diesburg et al. Trueerase: Leveraging an auxiliary data path for per-file secure deletion
US9740597B2 (en) Transactional execution of native methods
EP3655864A1 (en) Updateable distributed file framework
US8635331B2 (en) Distributed workflow framework
US11048664B2 (en) Log destaging from fixed-size log portion
Wang et al. DHash: dynamic hash tables with non-blocking regular operations
US8301609B1 (en) Collision detection and data corruption protection during an on-line database reorganization
Cohen et al. Storage-intensive supercomputing benchmark study
CN117666960A (zh) 一种应用了NVIDIA CUDA加速和改进Merkle哈希树的安全存储框架的实现方法、设备及存储介质
US8904232B2 (en) Preventing audit loss for asynchronous target

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant