CN105723348B - 使用事务性存储器检测未授权存储器修改及访问 - Google Patents

使用事务性存储器检测未授权存储器修改及访问 Download PDF

Info

Publication number
CN105723348B
CN105723348B CN201380080993.1A CN201380080993A CN105723348B CN 105723348 B CN105723348 B CN 105723348B CN 201380080993 A CN201380080993 A CN 201380080993A CN 105723348 B CN105723348 B CN 105723348B
Authority
CN
China
Prior art keywords
transactional
code segment
calculating equipment
execution
memory location
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
CN201380080993.1A
Other languages
English (en)
Other versions
CN105723348A (zh
Inventor
I·穆迪科
R·德曼提夫
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105723348A publication Critical patent/CN105723348A/zh
Application granted granted Critical
Publication of CN105723348B publication Critical patent/CN105723348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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/60Protecting data

Abstract

用于保护未授权存储器访问的技术包括具有事务性存储器支持的计算设备。该计算设备执行被标识为可疑的代码段并且在该代码段的执行期间检测事务性终止。该计算设备可以与该代码段并发地执行读取一个或多个受监控存储器位置的安全支持线程。事务性终止可以由与从该代码段写入冲突的读取该安全支持线程所导致。该计算设备可以在该代码段内设置断点,并且事务性终止可以由执行该代码段到达该断点导致。终止处理机确定是否已经发生安全事件并且报告该安全事件。该终止处理机可以基于该事务性终止的原因确定该安全事件是否已经发生。描述和/或要求保护其他实施例。

Description

使用事务性存储器检测未授权存储器修改及访问
背景
计算机安全的一方面涉及保护计算机系统不受恶意软件(也被称为“malware”)影响。恶意软件以许多形式存在;然而,许多常见种类的恶意软件对计算机存储器中的未授权位置执行写入或其他访问。例如,某些恶意软件修改关键的存储器内系统数据结构以便获得对计算机的控制。一个这种攻击涉及盖写系统调用表,从而使得替代一个或多个系统调用执行由恶意软件提供的代码。这种攻击可以由所谓的“隐匿技术”使用以获得对系统的控制并且逃避检测。作为另一个示例,某些恶意软件导致系统执行来自未授权存储器段(诸如系统栈或数据段)的代码。例如,缓冲器溢流滥用、面向返回的编程(ROP)小程序和类似的滥用导致系统执行来自系统栈或堆(或由其驱动)的通常不应当被执行的代码。恶意软件可以执行这种攻击以便执行所谓的“壳代码”攻击;即,在计算机系统上执行任意代码(通常从远程位置引入)。
典型的计算机安全系统尝试通过应用代码分析对可能的恶意代码进行分类来检测恶意软件。例如,计算机安全系统可以执行代码的静态分析以便搜索公知的恶意软件签名。某些系统还执行代码执行的动态分析。典型的动态监控(诸如使用监管程序的单步执行)对系统性能具有较大的负面影响。
某些计算机处理器提供对硬件事务性存储器的支持。事务性存储器允许编程人员指定被称为“事务”的代码段独立地并且原子地执行。即,直至事务成功地被提交,在事务内发生的存储器操作才对在计算机系统上执行的其他事务或线程可见。在成功提交之后,在事务期间做出的所有存储器改变瞬时地可用于系统上的其他线程。可以通过推测性地执行事务、检测在事务执行期间发生的任何存储器冲突并且然后响应于存储器冲突终止并回滚事务来实现事务性存储器。存储器冲突包括例如尝试写入已经由另一个事务读或写的存储器位置的事务。事务性存储器可以简化用于并行计算的编程模型。硬件事务性存储器支持的一个可商购的示例是在由公司制造的某些处理器上可用的事务性同步扩展(TSX)。
附图简要描述
通过举例而非通过限制在附图中示出在此描述的概念。为了说明简单和清晰,图中所示元素无需按比例绘制。当认为合适时,已经在附图中重复参照标号以便表明相应的或类似的元素。
图1是用于检测未授权存储器访问的计算设备的至少一个实施例的简化框图;
图2是图1的计算设备的环境的至少一个实施例的简化框图;
图3是可以由图1和图2的计算设备执行的用于检测未授权存储器访问的方法的至少一个实施例的简化流程图;
图4是可以由图1和图2的计算设备执行的用于检测并处置事务性终止的方法的至少一个实施例的简化流程图;以及
图5是示出可以导致图1和图2的计算设备的事务性终止的潜在数据冲突的示意图。
附图详细描述
尽管本公开的概念可受到各种修改和替代形式,已经通过举例在附图中示出并且将在此详细地描述其特定实施例。然而,应当理解的是不旨在将本公开的概念限制为所公开的具体形式,而是相反,本发明涵盖与本公开和所附权利要求书一致的所有修改、等效方案和替代方案。
在说明书中对“一个实施例”、“实施例”、“说明性实施例”等等的引用表明所描述的实施例可以包括具体的特征、结构或特性,但是每个实施例可无需包括该具体的特征、结构或特性。而且,这种短语无需指代相同的实施例。而且,当结合实施例描述具体的特征、结构或特性时,认为其在本领域普通技术人员结合显式地或未显式地描述的其他实施例实施这种特征、结构或特性的知识范围内。此外,应当认识到列表中包括的“A、B和C中的至少一个”形式的项目可意味着(A);(B);(C);(A和B);(A和C);(B和C);或者(A、B和C)。类似地,以“A、B、和C中的至少一个”的形式列出的项目可指(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。
在某些情况下,可在硬件、固件、软件、或其任何组合中实现所公开的实施例。所公开的实施例还可以被实现为由一个或多个瞬态或非瞬态机器可读(例如计算机可读)存储介质携带或存储在其上的指令,这些指令可以由一个或多个处理器读取并执行。机器可读存储介质可以被体现为任何用于存储或传输机器(例如,易失性或非易失性存储器、介质盘、或其他介质设备)可读形式的信息的存储设备、机构、或其他物理结构。
在附图中,可以用特定安排和/或排序示出某些结构或方法特征。然而,应当认识到可不要求这种特定安排和/或排序。而是,在某些实施例中,可以用与说明性附图中示出的不同的方式和/或顺序安排这种特征。此外,具体附图中包括结构或方法特征不意味着暗示在所有实施例中要求这种特征以及在某些实施例中可不包括这种特征或者这种特征可与其他特征组合。
现在参照图1,说明性计算设备100可以用于检测未授权存储器访问。计算设备100可以标识可能包含恶意软件的可疑代码段。在执行该可疑代码之前,计算设备100在事务性包络中包绕该可疑代码。另外,计算设备100可以在该可疑代码内在具体位置设置断点。计算设备100随后执行该事务性包络,并且如果该可疑代码执行未授权存储器访问(诸如写入具体的存储器区域或在断点执行该代码(该断点已经例如被放入可疑壳代码或者被放入在面向返回的编程小程序序列中或在面向跳的编程小程序串中使用的可疑小程序)),该事务被终止并且回滚。如果该事务成功完成,则计算设备100确定未授权存储器访问未发生而且执行也没有到达断点。可疑代码的事务性执行允许计算设备100动态地监控可疑代码的行为而不显著地消极地影响性能。通过显著地改善恶意软件检测的性能,可以改善计算机安全。另外,事务性执行可以由计算设备100的硬件管理并且因此不可以由恶意软件访问,由此保护恶意软件检测过程本身不受恶意软件影响。
计算设备100可以被体现为用于执行在此描述的功能的任何类型的设备。例如,计算设备100可以被体现为但不限于桌上计算机、服务器计算机、工作站、膝上计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、手机、消息收发设备、可穿戴计算设备、车辆远程信息处理设备、分布式计算系统、多处理器系统、消费者电子设备、嵌入式控制器、和/或被配置成用于执行在此描述的功能的任何其他计算设备。如图1所示,说明性计算设备100包括处理器120、输入/输出子系统126、存储器128和数据存储设备134。当然,在其他实施例中,计算设备100可以包括其他或附加组件,诸如通常在桌上计算机中发现的那些(例如,各种输入/输出设备)。此外,在某些实施例中,说明性组件中的一个或多个可以并入另一个组件中或者以其他方式形成其一部分。例如,在某些实施例中,存储器128或其各部分可以并入处理器120中(例如,在其中处理器高速缓存被用作随机存取存储器的实现方式中)。
处理器120可以被体现为能够执行在此描述的功能的任何类型的处理器。例如,处理器120可以被体现为单核或多核处理器、数字信号处理器、微控制器、或其他处理器或处理/控制电路。尽管说明性计算设备100包括单个处理器120,在某些实施例中,计算设备100可以包括多于一个处理器120。例如,计算设备100可以被体现为具有共享存储器互连的对称多处理系统。说明性处理器120包括硬件事务性存储器支持122和性能监控单元(PMU)124。
事务性存储器支持122允许处理器120推测性地执行已知为事务的代码段。事务是原子的,意味着在事务未决时事务所执行的存储器操作对其他事务、逻辑处理器和/或处理器120的线程不可见。当事务完成时,也被称为提交,事务的所有存储器操作马上变得对计算设备100的剩余部分可用。当事务内的存储器访问与另一个事务或线程冲突时,例如当线程尝试读取已经由未提交事务写入的存储器位置时(或者当两个事务和/或线程写入相同的存储器位置时),处理器120可以终止冲突事务,丢弃任何相关联的进行中的事务性存储器改变。处理器120可以在任何粒度水平检测冲突存储器位置,例如每高速缓存行、每字或每存储器单元。在终止时,处理器120可以响应于所终止的事务调用终止处理机(handler)、重新开始事务(一次或多次)、或调用非事务性回落代码。在某些实施例中,事务性存储器支持122可以被体现为在公司制造的某些处理器120上可用的事务性同步扩展(TSX)。
PMU 124可以被体现为能够记录并监控指令流过处理器120的多个性能计数器。例如,PMU 124可以能够报告导致事务性终止的指令(例如,显式终止指令或断点)的确切存储器地址或冲突数据位置的存储器地址。尽管被示出为单个PMU 124,在某些实施例中,处理器120可以包括若干个PMU 124,例如,每个处理器核一个PMU 124。
存储器128可以被体现为能够执行在此描述的功能的任何类型的易失性或非易失性存储器或数据存储设备。在操作中,存储器128可以存储在计算设备100的操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库和驱动程序。说明性存储器128包括一个或多个受监控区域130和终止处理机132。如以下进一步描述的,受监控区域130是针对尝试未授权存储器访问监控的特定存储器区域。这种受监控区域130可以包括关键系统存储器结构,诸如系统调用表、硬件中断表、系统安全软件或其他重要的存储器区域。终止处理机132可以包括在事务性终止时调用的一个或多个例程以便处置潜在的安全违反,如以下进一步描述的。存储器128经由I/O子系统126通信地耦合到处理器120,其可以被体现为用于促成与计算设备100的处理器120、存储器128、以及其他组件的输入输出操作的电路和/或组件。例如,I/O子系统126可以被体现为或以其他方式包括用于促成输入/输出操作的存储器控制器中枢、输入/输出控制中枢、固件设备、通信链路(即,点到点链路、总线链路、导线、线缆、光导、印刷电路板迹线等等)和/或其他组件及子系统。在某些实施例中,I/O子系统126可以形成片上系统(SoC)的一部分并且可以与计算设备100的处理器120、存储器128和其他组件一起并入到单个集成电路芯片上。
数据存储设备134可以被体现为被配置成用于数据的短期或长期存储的任何类型的设备,诸如例如存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器、或其他数据存储设备。数据存储设备134可以用于存储用于执行的软件或其他数据,包括操作系统软件和应用软件。这种软件可以初始地是不被信任的并且潜在地是恶意的,例如,从第三方供应商下载的软件。
计算设备100进一步包括通信电路136,该通信电路可以被体现为能够使能计算设备100和远程计算设备之间的通信的任何通信电路、设备或其集合。通信电路136可以被配置成用于使用任何一种或多种通信技术(例如,无线通信或有线通信)和相关联的协议(例如,以太网、WiMAX、HSPA+、LTE等等)使这种通信生效。通信电路136可以被体现为网络适配器,包括无线网络适配器。
在说明性实施例中,计算设备100进一步包括显示器138。计算设备100的显示器138可以被体现为能够显示数字信息的任何类型的显示器,诸如液晶显示器(LCD)、发光二极管(LED)、等离子体显示器、阴极射线管(CRT)、或其他类型的显示设备。显示器138可以例如用于向用户传送安全分析的结果。
现在参照图2,在说明性实施例中,计算设备100在操作期间建立环境200。说明性环境200包括安全模块202、事务性执行模块204、安全支持模块208以及终止处理机模块212。在某些实施例中,环境200还可以包括回落安全模块214。环境200的各个模块可以被体现为硬件、固件、软件或其组合。
安全模块202被配置成用于标识可疑代码段并且在事务性执行包络中包绕可疑代码段。安全模块202还可以被配置成用于标识可疑代码内的不应当被执行的具体存储器位置,例如,可疑壳代码或可疑面向返回的编程(ROP)小程序。因此,安全模块202可以被体现为计算设备100的能够访问可疑代码的地址空间(或能够在代码被映射到存储器128之前访问数据存储设备134上的代码的图像)的任何组件。例如,安全模块202可以被体现为虚拟机监视器(VMM)、监管程序、操作系统、内核软件或计算设备100的其他控制系统或其一部分。
事务性执行模块204被配置成用于在事务性包络中执行可疑代码以及检测在可疑代码的执行期间发生的任何事务性终止。事务性执行模块204被配置成用于管理事务206的执行,该事务包括可疑代码。当可疑代码尝试修改受监控存储器区域130时、当可疑代码尝试执行未授权代码时、或者出于与安全违反不相关的其他原因(例如,与受监控存储器区域130不相关的数据冲突、在事务性执行期间遇到的不兼容指令、超过事务性缓冲区容量、遇到I/O指令等等),可以发生事务性终止。
安全支持模块208被配置成用于与事务206的事务性执行并发地执行安全支持线程210。安全支持线程210被配置成用于确保如果可疑代码尝试写入任何受监控区域130则触发事务性终止。触发事务性终止所需的具体操作可以取决于计算设备100的事务性存储器支持122的具体实施例。例如,在某些实施例中,安全支持线程210可以被配置成用于重复地访问(例如,读取)在循环中的所有受监控区域130,由此如果事务206写入(或尝试写入)任何受监控区域130则造成存储器冲突。
终止处理机模块212被配置成用于确定在可疑代码的执行期间检测到的事务性终止是否是由可疑事务206所导致的安全事件所导致的。为了这样做,终止处理机模块212可以分析计算设备100和/或处理器120的设备状态以便确定事务性终止(例如,显式终止、到达断点、或存储器冲突)的原因以及任何冲突数据位置的地址。终止处理机模块212还被配置成用于报告所检测到的安全事件,从而使得可以生成适当的响应。终止处理机模块212可以包括终止处理机132,该终止处理机可以被体现为由处理器120响应于检测到事务性终止自动地调用的软件例程。如果终止处理机模块212确定终止事件的原因不是由事务206的未授权行动所导致的,则事务性执行可以重复一次或多次。
某些实施例可以包括回落安全模块214,该回落安全模块被配置成用于执行非事务性行动恶意软件监控和/或检测。例如,回落安全模块214可以执行静态分析、单步动态存储器访问分析或任何其他已知的恶意软件检测方法。当可疑代码不能被事务性地完成而且尚未检测到安全事件时,回落安全模块214可以由终止处理机模块212调用。例如,回落安全模块214可以针对包含与事务性执行不兼容的指令的可疑代码被调用。回落安全模块214可能显著地慢于事务性检测;因此,如果事务性检测不成功,其仅仅作为回落慢路径是优选的。
现在参考图3,在使用中,计算设备100可以执行用于检测未授权存储器访问的方法300。方法300在框302中开始,其中计算设备100标识可疑代码段。计算设备100可以使用任何方法标识可疑代码。例如,在某些实施例中,计算设备100可以将有待执行的任何代码标识为可疑的。在某些实施例中,计算设备100可以基于元数据属性标识可疑代码,诸如代码是否被签名、代码是否是从互联网下载的等等。另外或可替代地,计算设备100可以执行静态分析、动态分析(例如,基于仿真)、或其他试探性分析以便标识潜在恶意的代码。
在框304中,计算设备100确定一个或多个存储器区域130以便在可疑代码的执行期间监控。受监控区域130可以被体现为不应当由可疑代码修改的任何重要的存储器内数据结构或地址范围。例如,受监控区域130可以包括系统调用表或其他系统或内核级别数据结构或代码区域(例如,以便保护OS代码不被打补丁或修改)。另外或可替代地,受监控区域130可以包括可疑代码段内的不应当被执行的存储器地址。例如,可疑代码可以包括不应当被执行的数据段;该数据段的执行可以指示缓冲区溢出或其他潜在恶意的利用。在本示例中,该数据段可以包括在受监控存储器区域130中。如以下进一步描述的,可以通过使用断点或显式终止指令监控不应当被执行的这种受监控存储器区域130。
在框306中,计算设备100在事务性执行包络中包绕该可疑代码。包绕该可疑代码允许在事务中执行该可疑代码。可以使用用于包绕与处理器120的事务性存储器支持122兼容的该可疑代码的任何方法。在某些实施例中,在框308中,计算设备100可以将事务开始和事务结束指令插入到可疑代码中或周围,例如通过使用监管程序来在可疑代码的上下文中执行相应的指令或使用仪器。在某些实施例中,所插入的指令可以对可疑代码不可见。事务开始和事务结束指令可以被体现为由处理器120解释的机器指令以便分别用信号通知事务的开始和结束。例如,在具有事务性同步扩展(TSX)的架构处理器中,事务开始和事务结束指令可以被体现为分别具有记忆法XBEGIN和XEND的指令。
在某些实施例中,在框310中,计算设备100可以在可疑代码内设置断点或显式终止指令。可以为计算设备100已经确定不应当被执行的可疑代码内的受监控存储器区域130设置断点。断点可以被体现为当尝试在存储器中执行该具体位置时致使处理器120生成事务性终止的任何指令、数据或其他设置。例如,可以通过插入显式事务终止指令设置断点,诸如在带有TSX的架构处理器上具有记忆法XABORT的指令。另外或可替代地,可以通过插入导致事务终止的任何其他合适的指令或指令集设置断点(例如,断点中断执行、非法指令、或致使导致终止的内部CPU事务跟踪存储设备溢出的指令序列)。另外或可替代地,可以通过在处理器120的调试寄存器中存储具体值来设置断点。设置断点可以允许计算设备100监控在可疑代码内执行潜在恶意的位置。
在框312中,计算设备100创建可以用于监控受监控存储器区域130的安全支持线程210。安全支持线程210可以被体现为能够在计算设备100的逻辑处理器上运行的任何独立的执行线程,诸如操作系统线程、轻量级进程、操作系统进程、操作系统内核线程、或用户软件线程。在创建时,安全支持线程210可以被供应有受监控区域130的地址。在某些实施例中,不是新创建,而是从线程池选择安全支持线程210或以其他方式准备以供使用。当然,应当注意在某些实施例中,与创建或激活安全支持线程210相对应的动作可以在任何时间执行,包括在执行方法300之前。
在框312中创建安全支持线程210之后,方法300并发地前进到框314、320。计算设备100可以使用任何并发技术执行方法300。例如,计算设备100可以并发地在多个处理器核、逻辑处理器、或处理器120的硬件线程上、并发地在多个处理器120(未示出)上执行方法300、或在单核处理器120上对其进行时分复用。所使用的并发技术可以取决于事务性存储器支持122的具体实施例;例如,在某些实施例中,安全支持线程210可能被要求从事务206在分离的处理器核上执行以便生成事务性终止。
在框314中,计算设备100开始安全支持线程210。如上所述,开始安全支持线程210开始安全支持线程210的独立、并发执行。在框316中,计算设备100可以检测处理器120所生成的事务性终止。事务性终止可以由安全支持线程210与在计算设备上执行的任何事务(包括事务206)之间的存储器冲突所导致的。如上所述,例如,当线程尝试读取已经由未决事务写入的数据位置时,发生事务性存储器冲突。检测存储器冲突和事务性终止的后续生成可以由处理器120的硬件、处理器120的微代码、固件、软件、或这些技术的任何组合执行。检测存储器冲突和其他事务性终止可以对在处理器120上执行的软件透明,其可以仅在终止处理机132由处理器120调用时才知道事务性终止。相应地,处理器120可以在安全支持线程210的执行期间在任何时间检测事务性终止。以下进一步结合图4描述一种用于检测事务性终止的方法的一个实施例以及相关联的终止处理机132。
在框318中,计算设备100读取受监控存储器区域130。从安全支持线程210读取受监控存储器区域130可能导致与事务206对受监控存储器区域130的任何存储器写入的存储器冲突。在某些实施例中,安全支持线程210可能不跟踪可疑代码自身内的任何受监控存储器区域130;可以通过在可疑代码内设置断点监控这些代码位置。相应地,当在框318中读取受监控存储器区域130时,在框316中,计算设备100可以检测事务性终止。在读取受监控存储器区域130之后,方法300环回到框318以便继续读取受监控存储器区域130。
返回参照框312,在创建安全支持线程210之后,方法300并发地前进到框314、320。在框320中,计算设备100开始事务206并且标识相关联的终止处理机132。在某些实施例中,可以通过执行具体的指令(例如XBEGIN指令)开始事务206。终止处理机132的地址可以作为增强被传递到事务开始指令。另外或可替代地,可以存在用于指定终止处理机132的地址的分离的指令。如果在事务206的执行期间发生事务性终止,处理器120调用终止处理机132。当在框320中开始事务206时,在框316中,计算设备100可以检测事务性终止,例如由事务206与安全支持线程210之间的存储器冲突所导致的事务性终止。当然,事务性终止可能具有其他原因,诸如超过事务大小的硬件限制或者遇到事务性执行不支持的指令(例如,尝试I/O指令)。
在框322中,计算设备100在事务206中执行该可疑代码。因此,与安全支持线程210并发地执行可疑代码。当在框322中执行可疑代码时,在框316中,计算设备100可以检测事务性终止。如果事务206的可疑代码写入由安全支持线程210读取的受监控存储器区域130,则可以生成事务性终止。可以立即在冲突写入时或者在稍后时间生成事务性终止。例如,现在参照图5,图示500示出检测到可能由读写冲突导致的事务性终止。图示502示出存储器128,示出四个命名存储器位置A、B、C和D。位置A和B是受监控存储器区域130。安全支持线程210执行连续地从受监控存储器位置A、B读取的指令流504(读指令的精确定时、顺序以及数量可以改变)。并发地,事务206执行指令流506。存储器冲突508、510表示事务206写入受监控存储器位置B和安全支持线程210从受监控存储器位置B读取所导致的数据冲突。如上所述,可以为冲突508、510中的任一个生成事务性终止。响应于事务性终止,回滚事务206并且执行终止处理机132(参见图4的方法400)。另外或可替代地,可以在遇到先前在可疑代码内设置的断点或者在遇到插入在可疑代码内的显式终止指令时生成事务性终止。在遇到断点或显式终止指令时,同样回滚事务206所做的存储器修改。
返回参照图3,在框324中,计算设备100在完成可疑代码之后结束事务206。在某些实施例中,可以通过执行具体的指令(例如XEND指令)结束事务206。结束事务206可以致使计算设备100在提交事务206之前验证事务206。验证事务206可以包括验证事务206的读设置和/或写设置以便确定是否在事务206的执行期间发生任何存储器冲突。当在框324中结束事务206时,在框316中,计算设备100可以检测事务性终止。例如,可能在出于任何原因无法验证和/或提交事务206时导致事务性终止。另外或可替代地,在某些实施例中,计算设备100可以实现“渴望”验证机制,其中,在发布存储器请求之后或者在遇到任何终止情况之后验证(包括冲突检测)就尽可能快地发生。另外,在某些实施例中,可能不存在显式事务结束指令,在这种情况下,由于用于跟踪事务性冲突的存储容量耗尽,事务206可以隐式地结束。
在成功地结束事务206之后,方法300可以前进到框326,或者在某些实施例中,环回到框302。成功完成事务206指示尚未发生安全事件;也就是,可疑代码未曾尝试对任何受监控存储器区域130的未授权访问,包括尝试执行用断点标记的可疑代码。在结束事务206之后,方法300的执行可以返回为在性质上为单线程的。例如,计算设备100可以在事务206成功地提交之后停止或以其他方式终结安全支持线程210的执行。在某些实施例中,在框326中,计算设备100可以将可疑代码报告为干净的。计算设备100可以使用任何报告方法;例如,计算设备100可以生成交互提醒、发送消息或调用对至少一个软件模块的调用或回调、生成人类可读报告、将可疑代码添加到白名单中以便允许未来执行或进行其他安全相关的任务。在完成框326之后,方法300环回到框302以便标识可疑代码。在某些实施例中,当环回到框302时,计算设备100可以修改事务206的上下文和环境并且在这种改变的情况下评估可疑代码的行为。
现在参考图4,在使用中,计算设备100可以执行用于检测并处置事务性终止的方法400。方法400可以部分地被体现为事务206的终止处理机132。方法400在框402中开始,其中计算设备100确定是否应当发生事务性终止。在某些实施例中,可以为图3的框316的任何实例执行框402的过程,如上所述。事务性终止可以由活跃事务与在计算设备100上执行的其他事务或线程之间的存储器冲突导致。例如,当事务206的可疑代码尝试写入先前由安全支持线程210读取的存储器位置时,则可能导致事务性终止。另外或可替代地,作为另一个示例,当事务206的可疑代码尝试写入稍后由安全支持线程210读取的存储器位置时,则可能导致事务性终止。导致事务性终止的具体情况可以取决于处理器120的事务性存储器支持122的实现方式。另外或可替代地,事务性终止可以由显式终止指令(诸如XABORT指令)或由遇到断点而导致。事务性终止还可以由执行事务性执行不支持的指令(例如,某些向量数学指令或带有对主存储器的未高速缓存访问的指令)、事务性硬件容量溢出、执行I/O操作或其他原因导致。计算设备100可以使用处理器120的硬件、处理器120的微代码、固件或软件的任何组合检测触发事务性终止的情况。如果不应当发生事务性终止,方法400环回到框402以便继续监控事务性终止。如果应当发生事务性终止,方法400前进到框404。尽管被示出为同步或基于轮询的过程,应当理解的是在某些实施例中,事务性终止的检测可以是异步的或中断驱动的。
在框404中,计算设备100终止并回滚终止事务206。计算设备100可以使用任何适当的技术回滚事务206。例如,在写高速缓存事务性存储器系统中,计算设备100可以丢弃与终止事务206相关联的所有高速缓存数据。作为另一个示例,在原位写入事务性存储器系统中,计算设备100可以从与终止事务206相关联的写日志恢复存储器的原始值。事务206可以由处理器120、处理器120的微代码和/或平台固件自动地回滚;也就是,回滚可以对于在计算设备100上执行的任何软件透明地发生。在回滚事务206之后,处理器120可以调用适当的终止处理机132。
在框406中,计算设备100可以分析计算设备100的设备状态以便确定是否已经发生安全事件。这个分析可以由终止处理机132执行或以其他方式响应于终止处理机132被调用而被调用。安全事件包括对一个或多个受监控存储器区域130的任何未授权访问。因此,安全事件可以包括例如未授权尝试修改受监控存储器区域130。这种未授权存储器修改可以由恶意软件尝试,诸如尝试拦截系统表、对OS或安全软件打补丁、或颠覆计算设备100的控制的隐匿技术。作为另一个示例,安全事件可以包括尝试执行存储器中的禁止位置,诸如系统栈、堆、面向返回的编程(ROP)小程序或面向跳的编程(JOP)小程序。这种未授权执行可以由恶意尝试执行任意代码导致。安全事件可能不包括例如不涉及受监控存储器区域130的数据冲突,诸如在并发执行事务和/或线程之间的普通数据冲突。
计算设备100可以基于事务性终止的原因确定安全事件是否已经发生。在框408中,在某些实施例中,计算设备100可以读取终止状态寄存器以便分析设备状态。例如,针对带有TSX的架构处理器,计算设备100可以读取EAX寄存器。终止状态寄存器可以提供有关终止原因的信息,诸如存储器冲突类型、是否遇到显式终止指令、或者是否遇到断点。如果终止状态寄存器指示事务性终止的不同原因,则可能尚未发生安全事件。在某些实施例中,在框410中,计算设备100可读取性能监控单元124以便分析设备(或处理器)状态。PMU 124可以提供信息以便确定事务性终止的原因,包括与终止有关的存储器地址,诸如终止指令的地址或冲突数据的地址。例如,计算设备100可以对冲突数据的存储器地址与受监控存储器区域130的存储器地址进行比较以便确定是否已经访问受监控存储器区域130。因此,计算设备100可以在安全事件所导致的事务性终止与并发事务和/或线程之间的典型数据冲突所导致的事务性终止之间进行区分。另外或可替代地,计算设备100可以对终止指令的存储器地址与在可疑代码内设置的任何断点的存储器地址进行比较。
在框412中,计算设备100确定是否已经发生安全事件。如上所述,当可疑代码写入或尝试写入受监控存储器区域130时或当可疑代码执行或尝试执行未授权存储器位置时,可以发生安全事件。如果已经发生安全事件,方法400分支到框414,其中,计算设备100报告安全事件。可以使用任何可用的技术报告安全事件,包括显示交互提醒、生成人类可读报告、将可疑代码放入黑名单、隔离或清除可疑代码、阻挡可疑代码的进一步执行、或执行另一个安全操作。在报告可疑事件之后,计算设备100可以恢复标识图3中示出的可疑代码。
返回参照框412,如果尚未发生安全事件,方法400前进到框416,其中,计算设备100增加终止计数。终止计数用于跟踪计算设备100已经尝试执行可疑代码的次数并且可以用于确保转发进展。终止计数可以被体现为与具体的可疑代码相关联的任何持久计数器。在框418中,计算设备100确定终止计数是否小于预定义的阈值终止计数。阈值终止计数可以被定义为相对少量的尝试,例如,三次尝试。如果终止计数大于等于阈值,方法400分支到框420,其中,计算设备100执行非事务性回落安全流程。持久终止可以指示可疑代码被故意构建为避免经由事务冲突方法进行检测,这个信息可以用作用于进一步分析的进一步疑点。例如,计算设备100可以在执行期间执行可疑代码的动态分析。这种动态分析通常比事务性执行慢很多;然而,执行回落流程可以相对稀少。在开始回落安全流程之后,计算设备100可以恢复标识图3中示出的可疑代码。
返回参照框418,如果终止计数小于阈值,方法400前进到框422。在框422中,计算设备100重新开始事务206。因为事务206出于除安全事件之外的原因终止,当重新尝试时,事务206可以成功地完成。计算设备100可以使用任何技术重新开始事务206。在说明性实施例中,计算设备100的执行跳转到方法300的框314、320,如图3所示。计算设备100然后开始安全支持线程210和事务206,如上所述。
示例
以下提供在此公开的技术的说明性示例。这些技术的实施例可以包括以下所描述的示例中的任何一个或多个以及任何组合。
示例1包括一种用于检测未授权存储器访问的计算设备,该计算设备包括:事务性执行模块,该事务性执行模块用于(i)执行被标识为可疑的代码段以及(ii)在该代码段的执行期间检测事务性终止;以及终止处理机模块,该终止处理机模块用于:(i)响应于检测到该事务性终止确定是否已经发生安全事件,该安全事件指示该代码段对受监控存储器位置的未授权存储器访问以及(ii)响应于确定该安全事件已经发生报告该安全事件。
示例2包括示例1所述的主题,并且进一步包括安全支持模块,该安全支持模块用于:与该代码段的执行并发地执行安全支持线程;以及该安全支持线程访问该受监控存储器位置;其中,用于检测该事务性终止包括用于检测由与对该受监控存储器位置的写入有关的事务性存储器冲突所导致的事务性终止。
示例3包括示例1和2中任一项所述的主题,并且其中,该受监控存储器位置包括该计算设备的操作系统的代码段。
示例4包括示例1至3中任一项所述的主题,并且其中,用于检测该事务性终止包括用于检测该受监控存储器位置的读取指令与该受监控存储器位置的写入指令之间的冲突。
示例5包括示例1至4中任一项所述的主题,并且其中,该安全支持线程包括该读取指令并且该代码段包括该写入指令。
示例6包括示例1至5中任一项所述的主题,并且其中,用于确定该安全事件是否已经发生包括用于确定该事务性存储器冲突是否是由对该受监控存储器位置的尝试写入导致的。
示例7包括示例1至6中任一项所述的主题,并且其中,用于确定该事务性存储器冲突是否是由对该受监控存储器位置的该尝试写入导致的包括用于对从该计算设备的性能监控单元检索的冲突数据位置的第一存储器地址与该受监控存储器位置的第二存储器地址进行比较。
示例8包括示例1至7中任一项所述的主题,并且进一步包括安全模块,该安全模块用于在该代码段内在该受监控存储器位置处设置断点;其中,用于检测该事务性终止包括用于响应于该代码段的执行到达该断点检测该事务性终止。
示例9包括示例1至8中任一项所述的主题,并且其中,用于设置该断点包括用于在该代码段中插入事务性终止指令。
示例10包括示例1至9中任一项所述的主题,并且其中,用于确定该安全事件是否已经发生包括用于确定该事务性终止是否是由对该代码段的执行到达该断点导致的。
示例11包括示例1至10中任一项所述的主题,并且其中,用于确定该事务性终止是否是由对该代码段的执行到达该断点导致的包括用于对终止指令的第一存储器地址与该断点的第二存储器地址进行比较。
示例12包括示例1至11中任一项所述的主题,并且进一步包括安全模块,该安全模块用于在事务性包络中包绕该代码段;其中,执行该代码段包括在该事务性包络中执行该代码段。
示例13包括示例1至12中任一项所述的主题,并且其中,用于包绕该代码段包括用于在该代码段中插入事务开始指令和事务结束指令。
示例14包括示例1至13中任一项所述的主题,并且其中,该事务性执行模块进一步用于完成该代码段的执行;以及响应于该代码段的该执行完成将该代码段报告为非恶意的。
示例15包括示例1至14中任一项所述的主题,并且其中,用于完成该代码段的该执行包括用于成功地执行事务结束指令。
示例16包括示例1至15中任一项所述的主题,并且其中,该终止处理机模块进一步用于:(i)响应于确定该安全事件尚未发生增加终止计数以及(ii)确定该终止计数是否与阈值终止计数具有预定关系;该计算设备进一步包括回落安全模块,该回落安全模块用于响应于确定该终止计数与该阈值终止计数具有该预定关系执行回落安全流程,该回落安全流程用于根据该终止计数分析该代码段。
示例17包括一种用于检测未授权存储器访问的方法,该方法包括:计算设备执行被标识为可疑的代码段;该计算设备在该代码段的执行期间检测事务性终止;该计算设备响应于检测到该事务性终止确定是否已经发生安全事件,该安全事件指示该代码段对受监控存储器位置的未授权存储器访问;以及该计算设备响应于确定该安全事件已经发生报告该安全事件。
示例18包括示例17所述的主题,并且进一步包括该计算设备与该代码段的执行并发地执行安全支持线程;以及该计算设备的该安全支持线程访问该受监控存储器位置;其中,检测该事务性终止包括检测由与对该受监控存储器位置的写入有关的事务性存储器冲突所导致的事务性终止。
示例19包括示例17和18中任一项所述的主题,并且其中,该受监控存储器位置包括该计算设备的操作系统的代码段。
示例20包括示例17至19任一项所述的主题,并且其中,检测该事务性终止包括检测该受监控存储器位置的读取指令与该受监控存储器位置的写入指令之间的冲突。
示例21包括示例17至20任一项所述的主题,并且其中,该安全支持线程包括该读取指令并且该代码段包括该写入指令。
示例22包括示例17至21任一项所述的主题,并且其中,确定该安全事件是否已经发生包括确定该事务性存储器冲突是否是由对该受监控存储器位置的尝试写入导致的。
示例23包括示例17至22任一项所述的主题,并且其中,确定该事务性存储器冲突是否是由对该受监控存储器位置的该尝试写入导致的包括对从该计算设备的性能监控单元检索的冲突数据位置的第一存储器地址与该受监控存储器位置的第二存储器地址进行比较。
示例24包括示例17至23任一项所述的主题,并且进一步包括该计算设备在该代码段内在该受监控存储器位置处设置断点;其中,检测该事务性终止包括响应于该代码段的执行到达该断点检测该事务性终止。
示例25包括示例17至24任一项所述的主题,并且其中,设置该断点包括在该代码段中插入事务性终止指令。
示例26包括示例17至25任一项所述的主题,并且其中,确定该安全事件是否已经发生包括确定该事务性终止是否是由对该代码段的执行到达该断点导致的。
示例27包括示例17至26任一项所述的主题,并且其中,确定该事务性终止是否是由对该代码段的执行到达该断点导致的包括对终止指令的第一存储器地址与该断点的第二存储器地址进行比较。
示例28包括示例17至27任一项所述的主题,并且进一步包括该计算设备在事务性包络中包绕该代码段;其中,执行该代码段包括在该事务性包络中执行该代码段。
示例29包括示例17至28中任一项所述的主题,并且其中,包绕该代码段包括在该代码段中插入事务开始指令和事务结束指令。
示例30包括示例17至29中任一项所述的主题,并且进一步包括该计算设备完成该代码段的执行;以及响应于该代码段的该执行完成将该代码段报告为非恶意的。
示例31包括示例17至30中任一项所述的主题,并且其中,完成该代码段的该执行包括成功地执行事务结束指令。
示例32包括示例17至31中任一项所述的主题,并且进一步包括:该计算设备响应于确定该安全事件尚未发生增加终止计数;该计算设备确定该终止计数是否与阈值终止计数具有预定关系;以及该计算设备响应于确定该终止计数与该阈值终止计数具有该预定关系执行回落安全流程,该回落安全流程用于根据该终止计数分析该代码段。
示例33包括具有处理器和存储器的计算设备,该存储器其中存储有多条指令,当由该处理器执行时,该多条指令致使该计算设备执行示例17至32中任一项所述的方法。
示例34包括一种或多种机器可读存储介质,包括存储在其上的多条指令,响应于被执行,该多条指令致使计算设备执行如示例17至32中任一项所述的方法。
示例35包括计算设备,该计算设备包括用于执行如示例17至32中任一项所述的方法的装置。

Claims (25)

1.一种用于检测未授权存储器访问的计算设备,所述计算设备包括:
事务性执行模块,所述事务性执行模块用于:执行被标识为可疑的代码段;以及在所述代码段的执行期间检测事务性终止;以及
终止处理机模块,所述终止处理机模块用于:响应于检测到所述事务性终止确定是否已经发生安全事件,所述安全事件指示所述代码段对受监控存储器位置的未授权存储器访问;以及响应于确定所述安全事件已经发生报告所述安全事件。
2.如权利要求1所述的计算设备,进一步包括安全支持模块,所述安全支持模块用于:
与所述代码段的执行并发地执行安全支持线程;以及
所述安全支持线程访问所述受监控存储器位置;
其中,用于检测所述事务性终止包括用于检测由与对所述受监控存储器位置的写入有关的事务性存储器冲突所导致的事务性终止。
3.如权利要求2所述的计算设备,其中,用于检测所述事务性终止包括用于检测所述受监控存储器位置的读取指令与所述受监控存储器位置的写入指令之间的冲突。
4.如权利要求3所述的计算设备,其中,所述安全支持线程包括所述读取指令并且所述代码段包括所述写入指令。
5.如权利要求2所述的计算设备,其中,用于确定所述安全事件是否已经发生包括用于确定所述事务性存储器冲突是否是由对所述受监控存储器位置的尝试写入导致的。
6.如权利要求5所述的计算设备,其中,用于确定所述事务性存储器冲突是否是由对所述受监控存储器位置的所述尝试写入导致的包括用于对从所述计算设备的性能监控单元检索的冲突数据位置的第一存储器地址与所述受监控存储器位置的第二存储器地址进行比较。
7.如权利要求1所述的计算设备,进一步包括安全模块,所述安全模块用于在所述代码段内在所述受监控存储器位置处设置断点,其中用于设置所述断点包括用于在所述代码段中插入事务性终止指令;
其中,用于检测所述事务性终止包括用于响应于所述代码段的执行到达所述断点检测所述事务性终止。
8.如权利要求1所述的计算设备,进一步包括安全模块,所述安全模块用于在事务性包络中包绕所述代码段,其中,用于执行所述代码段包括用于在所述事务性包络中执行所述代码段。
9.如权利要求8所述的计算设备,其中,用于包绕所述代码段包括用于在所述代码段中插入事务开始指令和事务结束指令。
10.如权利要求1所述的计算设备,其中:
所述终止处理机模块进一步用于:响应于确定所述安全事件尚未发生增加终止计数;以及确定所述终止计数是否与阈值终止计数具有预定关系;
所述计算设备进一步包括回落安全模块,所述回落安全模块用于响应于确定所述终止计数与所述阈值终止计数具有所述预定关系执行回落安全流程,所述回落安全流程用于根据所述终止计数分析所述代码段。
11.一种用于检测未授权存储器访问的计算设备,所述计算设备包括:
用于执行被标识为可疑的代码段的装置;
用于在所述代码段的执行期间检测事务性终止的装置;
用于响应于检测到所述事务性终止确定是否已经发生安全事件的装置,所述安全事件指示所述代码段对受监控存储器位置的未授权存储器访问;以及
用于响应于确定所述安全事件已经发生报告所述安全事件的装置。
12.如权利要求11所述的计算设备,进一步包括:
用于与所述代码段的执行并发地执行安全支持线程的装置;以及
用于通过所述安全支持线程访问所述受监控存储器位置的装置;
其中,用于检测所述事务性终止的装置包括用于检测由与对所述受监控存储器位置的写入有关的事务性存储器冲突所导致的事务性终止的装置。
13.如权利要求12所述的计算设备,其中,用于检测所述事务性终止的装置包括用于检测所述受监控存储器位置的读取指令与所述受监控存储器位置的写入指令之间的冲突的装置。
14.如权利要求13所述的计算设备,其中,所述安全支持线程包括所述读取指令并且所述代码段包括所述写入指令。
15.如权利要求12所述的计算设备,其中,用于确定所述安全事件是否已经发生的装置包括用于确定所述事务性存储器冲突是否是由对所述受监控存储器位置的尝试写入导致的装置。
16.如权利要求11所述的计算设备,进一步包括:
用于在所述代码段内在所述受监控存储器位置处设置断点的装置,其中,用于设置所述断点包括在所述代码段中插入事务性终止指令;
其中,用于检测所述事务性终止的装置包括用于响应于所述代码段的执行到达所述断点检测所述事务性终止的装置。
17.如权利要求11所述的计算设备,进一步包括用于在事务性包络中包绕所述代码段的装置;其中,用于执行所述代码段的装置包括用于在所述事务性包络中执行所述代码段的装置。
18.一种用于检测未授权存储器访问的方法,所述方法包括:
计算设备执行被标识为可疑的代码段;
所述计算设备在所述代码段的执行期间检测事务性终止;
所述计算设备响应于检测到所述事务性终止确定是否已经发生安全事件,所述安全事件指示所述代码段对受监控存储器位置的未授权存储器访问;以及
所述计算设备响应于确定所述安全事件已经发生报告所述安全事件。
19.如权利要求18所述的方法,进一步包括:
所述计算设备与所述代码段的执行并发地执行安全支持线程;以及
所述计算设备的所述安全支持线程访问所述受监控存储器位置;
其中,检测所述事务性终止包括检测由与对所述受监控存储器位置的写入有关的事务性存储器冲突所导致的事务性终止。
20.如权利要求19所述的方法,其中,检测所述事务性终止包括检测所述受监控存储器位置的读取指令与所述受监控存储器位置的写入指令之间的冲突。
21.如权利要求20所述的方法,其中,所述安全支持线程包括所述读取指令并且所述代码段包括所述写入指令。
22.如权利要求19所述的方法,其中,用于确定所述安全事件是否已经发生包括用于确定所述事务性存储器冲突是否是由对所述受监控存储器位置的尝试写入导致的。
23.如权利要求18所述的方法,进一步包括:
所述计算设备在所述代码段内在所述受监控存储器位置处设置断点,其中,设置所述断点包括在所述代码段中插入事务性终止指令;
其中,检测所述事务性终止包括响应于所述代码段的执行到达所述断点检测所述事务性终止。
24.如权利要求18所述的方法,进一步包括所述计算设备在事务性包络中包绕所述代码段;其中,执行所述代码段包括在所述事务性包络中执行所述代码段。
25.一种机器可读存储介质,包括存储在其上的多条指令,响应于被执行,所述指令致使计算设备执行如权利要求18至24中的任一项所述的方法。
CN201380080993.1A 2013-12-17 2013-12-17 使用事务性存储器检测未授权存储器修改及访问 Active CN105723348B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/075805 WO2015094189A1 (en) 2013-12-17 2013-12-17 Detection of unauthorized memory modification and access using transactional memory

Publications (2)

Publication Number Publication Date
CN105723348A CN105723348A (zh) 2016-06-29
CN105723348B true CN105723348B (zh) 2019-02-15

Family

ID=53403309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380080993.1A Active CN105723348B (zh) 2013-12-17 2013-12-17 使用事务性存储器检测未授权存储器修改及访问

Country Status (5)

Country Link
US (1) US9384148B2 (zh)
EP (1) EP3084615B1 (zh)
KR (1) KR101835250B1 (zh)
CN (1) CN105723348B (zh)
WO (1) WO2015094189A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10096038B2 (en) 2007-05-10 2018-10-09 Allstate Insurance Company Road segment safety rating system
US8606512B1 (en) 2007-05-10 2013-12-10 Allstate Insurance Company Route risk mitigation
US10157422B2 (en) 2007-05-10 2018-12-18 Allstate Insurance Company Road segment safety rating
US9932033B2 (en) 2007-05-10 2018-04-03 Allstate Insurance Company Route risk mitigation
CN104731696B (zh) * 2013-12-19 2017-10-10 腾讯科技(深圳)有限公司 定位程序代码中bug的方法及相关装置
US10096067B1 (en) 2014-01-24 2018-10-09 Allstate Insurance Company Reward system related to a vehicle-to-vehicle communication system
US9355423B1 (en) 2014-01-24 2016-05-31 Allstate Insurance Company Reward system related to a vehicle-to-vehicle communication system
US9390451B1 (en) 2014-01-24 2016-07-12 Allstate Insurance Company Insurance system related to a vehicle-to-vehicle communication system
US10796369B1 (en) 2014-02-19 2020-10-06 Allstate Insurance Company Determining a property of an insurance policy based on the level of autonomy of a vehicle
US10803525B1 (en) * 2014-02-19 2020-10-13 Allstate Insurance Company Determining a property of an insurance policy based on the autonomous features of a vehicle
US10783586B1 (en) 2014-02-19 2020-09-22 Allstate Insurance Company Determining a property of an insurance policy based on the density of vehicles
US10783587B1 (en) 2014-02-19 2020-09-22 Allstate Insurance Company Determining a driver score based on the driver's response to autonomous features of a vehicle
US9940676B1 (en) 2014-02-19 2018-04-10 Allstate Insurance Company Insurance system for analysis of autonomous driving
US9703726B2 (en) * 2014-06-24 2017-07-11 Bitdefender IPR Management Ltd. Systems and methods for dynamically protecting a stack from below the operating system
WO2016041592A1 (en) * 2014-09-17 2016-03-24 Irdeto B.V. Generating and executing protected items of software
US10540524B2 (en) * 2014-12-31 2020-01-21 Mcafee, Llc Memory access protection using processor transactional memory support
US9852295B2 (en) * 2015-07-14 2017-12-26 Bitdefender IPR Management Ltd. Computer security systems and methods using asynchronous introspection exceptions
US9823843B2 (en) * 2015-07-23 2017-11-21 Qualcomm Incorporated Memory hierarchy monitoring systems and methods
CN106488454B (zh) * 2015-08-28 2020-03-17 宇龙计算机通信科技(深圳)有限公司 一种连接外接设备的方法、装置及移动终端
US10269075B2 (en) 2016-02-02 2019-04-23 Allstate Insurance Company Subjective route risk mapping and mitigation
US10482248B2 (en) * 2016-11-09 2019-11-19 Cylance Inc. Shellcode detection
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10496311B2 (en) * 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10904291B1 (en) * 2017-05-03 2021-01-26 Hrl Laboratories, Llc Low-overhead software transformation to enforce information security policies
GB201708439D0 (en) 2017-05-26 2017-07-12 Microsoft Technology Licensing Llc Compute node security
US10565379B2 (en) * 2017-05-31 2020-02-18 Intel Corporation System, apparatus and method for instruction level behavioral analysis without binary instrumentation
KR102446444B1 (ko) 2018-06-14 2022-09-23 삼성전자주식회사 이상 환경으로부터 어플리케이션을 보호하는 전자 장치 및 그 동작 방법
US11074201B2 (en) * 2019-07-22 2021-07-27 Micron Technology, Inc. Apparatus with a security mechanism and methods for operating the same
US11436319B2 (en) 2020-01-27 2022-09-06 Rsa Security Llc Automated detection of user device security risks related to process threads and corresponding activity
US20210318961A1 (en) * 2021-06-23 2021-10-14 Intel Corporation Mitigating pooled memory cache miss latency with cache miss faults and transaction aborts
CN113449296B (zh) * 2021-07-20 2024-04-23 恒安嘉新(北京)科技股份公司 用于数据安全保护的系统、方法、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101410797A (zh) * 2006-03-30 2009-04-15 英特尔公司 无序处理器中的事务存储器
US7908656B1 (en) * 2007-04-23 2011-03-15 Network Appliance, Inc. Customized data generating data storage system filter for data security

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7231498B2 (en) 2005-03-02 2007-06-12 Microsoft Corporation Adaptive granularity refinement in detecting potential data races
US7930695B2 (en) 2006-04-06 2011-04-19 Oracle America, Inc. Method and apparatus for synchronizing threads on a processor that supports transactional memory
JP4806295B2 (ja) * 2006-05-25 2011-11-02 富士通株式会社 通信インターフェース装置及び通信方法
US7840947B2 (en) * 2006-06-09 2010-11-23 Oracle America, Inc. Delayed breakpoints
US8141163B2 (en) * 2007-07-31 2012-03-20 Vmware, Inc. Malicious code detection
US8055852B2 (en) * 2007-08-15 2011-11-08 Micron Technology, Inc. Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same
JP4572259B1 (ja) * 2009-04-27 2010-11-04 株式会社フォティーンフォティ技術研究所 情報機器、プログラム及び不正なプログラムコードの実行防止方法
US8473950B2 (en) * 2009-06-23 2013-06-25 Oracle America, Inc. Parallel nested transactions
US8327188B2 (en) * 2009-11-13 2012-12-04 Oracle America, Inc. Hardware transactional memory acceleration through multiple failure recovery
US8516202B2 (en) * 2009-11-16 2013-08-20 International Business Machines Corporation Hybrid transactional memory system (HybridTM) and method
US8474039B2 (en) * 2010-01-27 2013-06-25 Mcafee, Inc. System and method for proactive detection and repair of malware memory infection via a remote memory reputation system
US8739164B2 (en) * 2010-02-24 2014-05-27 Advanced Micro Devices, Inc. Automatic suspend atomic hardware transactional memory in response to detecting an implicit suspend condition and resume thereof
US8793471B2 (en) * 2010-12-07 2014-07-29 Advanced Micro Devices, Inc. Atomic program verification
US9268596B2 (en) * 2012-02-02 2016-02-23 Intel Corparation Instruction and logic to test transactional execution status
US9384004B2 (en) * 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US8682877B2 (en) * 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US8688661B2 (en) * 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US8966324B2 (en) * 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US8880959B2 (en) * 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US9183043B2 (en) * 2013-07-16 2015-11-10 Oracle International Corporation Systems and methods for adaptive integration of hardware and software lock elision techniques
US9244724B2 (en) * 2013-08-15 2016-01-26 Globalfoundries Inc. Management of transactional memory access requests by a cache memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101410797A (zh) * 2006-03-30 2009-04-15 英特尔公司 无序处理器中的事务存储器
US7908656B1 (en) * 2007-04-23 2011-03-15 Network Appliance, Inc. Customized data generating data storage system filter for data security

Also Published As

Publication number Publication date
US20160026581A1 (en) 2016-01-28
US9384148B2 (en) 2016-07-05
EP3084615B1 (en) 2020-06-24
KR101835250B1 (ko) 2018-03-06
EP3084615A4 (en) 2017-10-18
EP3084615A1 (en) 2016-10-26
CN105723348A (zh) 2016-06-29
WO2015094189A1 (en) 2015-06-25
KR20160099672A (ko) 2016-08-22

Similar Documents

Publication Publication Date Title
CN105723348B (zh) 使用事务性存储器检测未授权存储器修改及访问
TWI612439B (zh) 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體
US10353831B2 (en) Trusted launch of secure enclaves in virtualized environments
US11777705B2 (en) Techniques for preventing memory timing attacks
US8266395B2 (en) Detecting attempts to change memory
EP1974272B1 (en) Method and apparatus for detecting a fault condition and restoration thereafter using user context information
CN107408016B (zh) 使用处理器事务性内存支持的内存访问保护
TW201935305A (zh) 用於後快取互鎖之系統和方法
CN106575336A (zh) 对敏感代码恶意调用的检测与抑制
US9195550B2 (en) Method for guaranteeing program correctness using fine-grained hardware speculative execution
CN113467981A (zh) 异常处理的方法和装置
US9880947B2 (en) Return oriented programming stack pivoting protection
US9026859B1 (en) Safer mechanism for using pointers to code
EP3387535B1 (en) Apparatus and method for software self test
WO2018058414A1 (en) Overflow detection
CN113392395A (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
GR01 Patent grant
GR01 Patent grant