CN107408016B - 使用处理器事务性内存支持的内存访问保护 - Google Patents

使用处理器事务性内存支持的内存访问保护 Download PDF

Info

Publication number
CN107408016B
CN107408016B CN201580071977.5A CN201580071977A CN107408016B CN 107408016 B CN107408016 B CN 107408016B CN 201580071977 A CN201580071977 A CN 201580071977A CN 107408016 B CN107408016 B CN 107408016B
Authority
CN
China
Prior art keywords
transaction
computing device
security
response
transactional
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
CN201580071977.5A
Other languages
English (en)
Other versions
CN107408016A (zh
Inventor
R·杰缅季耶夫
I·幕蒂克
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.)
McAfee LLC
Original Assignee
McAfee 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 McAfee LLC filed Critical McAfee LLC
Publication of CN107408016A publication Critical patent/CN107408016A/zh
Application granted granted Critical
Publication of CN107408016B publication Critical patent/CN107408016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • 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
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Abstract

用于检测未授权内存访问的技术包括具有处理器的计算装置,处理器具有事务性内存支持。该计算装置执行安全协助线程,该安全协助线程使用事务性内存支持启动事务。在所述事务内,安全协助线程将任意数据写入一个或更多个被监视内存位置。安全协助线程等待而不提交事务。安全协助线程可能无休止地循环。计算装置的事务性内存支持检测由被监视内存位置的外部读取引起的事务性中止。计算装置分析事务性中止,并且确定是否发生安全事件。如果发生了安全事件,则计算装置执行安全响应。被监视内存位置可以包括内存映射操作系统库、内核数据结构、可执行映像、或者可能被恶意软件扫描的其它内存结构。还描述并且要求其它实施方式。

Description

使用处理器事务性内存支持的内存访问保护
相关申请的交叉引用
本申请要求2015年3月27日提交的名为“MEMORY ACCESS PROTECTION USINGPROCESSOR TRANSACTIONAL MEMORY SUPPORT”的美国实用专利申请序列号No.14/670982的优先权,并且其在35U.S.C.§119(e)下要求2014年12月31日提交的名为“MEMORY ACCESSPROTECTION USING PROCESSOR TRANSACTIONAL MEMORY SUPPORT”的美国临时专利申请序列号No.62/098641的优先权。
背景技术
计算机安全的一个方面涉及保护计算机系统免受怀有恶意的软件(也称为“恶意软件(Malware)”)的侵害。恶意软件有很多形式;然而,许多常见恶意软件可以对计算机内存中的未授权位置进行读取或其它访问。例如,某些恶意软件扫描计算机内存以定位有用的库或其它代码来访问系统API。因此,一系列不常见内存读取可能是恶意活动的有用指标。可以使用基于页面的异常(即,页面错误)来检测未授权的读取。使用基于页面的异常检测未授权的读取通常要求操作系统和/或管理程序支持,并且可能仅以相对粗略的分辨率(例如,每4k内存页面)来检测读取。
一些计算机处理器为硬件事务性内存提供支持。事务性内存允许程序员指定被称作“事务”的一段代码,以独立地和在原子级执行。即,直到交易被成功提交为止,在事务内发生的内存操作对于计算系统上执行的其它事务或线程是不可见的。成功提交之后,在事务期间进行的所有内存改变都可以立即用于系统上的其它线程。事务性内存可以通过以下实现:推测性地执行事务,检测在执行事务期间发生的任何内存冲突,然后响应于内存冲突中止并且回滚事务。内存冲突例如包括尝试写入到已被另一个事务读取或写入的内存位置的事务。事务性内存可以简化用于并行计算的编程模型。硬件事务性内存支持的一个商业可用例子是在
Figure BDA0001337828280000011
公司制造的某些处理器上可用的事务性同步扩展(
Figure BDA0001337828280000012
TSX)。2013年12月17日提交的未决申请PCT/US2013/075805和2014年3月28日提交的美国申请序列号No.14/228842描述了使用硬件事务性内存支持来检测未授权的内存写入(内存修改)的两种技术。
附图说明
本文所描述的概念通过举例的方式而非限制的方式在附图中进行了例示。为了简单和清楚说明起见,图中所示的元件不必按比例绘制。在认为合适的情况下,参考标号在附图中进行了重复,以指示对应或类似的元件。
图1是用于检测未授权内存访问的计算装置的至少一个实施方式的简化框图;
图2是图1的计算装置的环境的至少一个实施方式的简化框图;以及
图3是用于检测可以通过图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在高速缓存行级别(例如,64字节)而不是更粗糙的内存页面级别来监视内存。对未授权读取的即时反应可以减少用于利用的时间窗口。而且,计算装置100可以通过允许在软件中创建灵活的硬件级内存监视器来改进易用性。
计算装置100可以被具体实施为用于执行本文所述功能的任何类型的装置。例如,计算装置100可以被具体实施为而不限于台式计算机、服务器计算机、工作站、膝上型计算机、笔记本计算机、移动计算装置、智能电话、平板计算机、蜂窝电话、手机、消息传递装置、可佩戴计算装置、车辆远程信息处理装置、分布式计算系统、多处理器系统、消费者电子装置、和/或被设置成执行本文所述功能的任何其它计算装置。如图1所示,例示性计算装置100包括:处理器120、输入/输出子系统126、存储器128、以及数据存储装置134。当然,在其它实施方式中,计算装置100可以包括其它或附加组件,诸如台式计算机中常见的那些(例如,各种输入/输出装置)。另外,在一些实施方式中,一个或更多个例示性组件可以被结合到或以其它方式形成另一组件的一部分。例如,在一些实施方式中,存储器128或其部分可以结合在处理器120中。
处理器120可以被具体实施为能够执行本文所述功能的任何类型的处理器。例示性处理器120是多核处理器;然而,在其它实施方式中,处理器120可以被具体实施为单核或多核处理器、数字信号处理器、微控制器、或者其它处理器或处理/控制电路。例示性处理器120包括四个处理器内核122,其中,每个都是能够执行编程指令的独立处理单元。尽管例示性处理器120包括四个处理器内核122,但在其它实施方式中,处理器120可以包括更少或更多数量的处理器内核122。另外,尽管例示性计算装置100包括单个处理器120,但在一些实施方式中,计算装置100可以包括多于一个处理器120。例如,计算装置100可以被具体实施为具有共享内存互连的对称多处理系统。
该例示性处理器120还包括硬件事务性内存支持124,其允许处理器120推测地执行已知为事务的代码段。事务是原子的,意指在将事务挂起时由该事务执行的内存操作对于其它事务、内核122、逻辑处理器、和/或处理器120的线程来说不可见。当事务完成时(还已知为提交),该事务的所有内存操作立刻变得可用于计算装置100的其余部分。当事务内的内存访问与另一个事务或线程冲突时,例如,当线程从已经由未提交事务写入的内存位置读取时(或当两个事务和/或线程写入同一内存位置时),处理器120可以中止冲突事务,丢弃任何相关联的正在进行的事务性内存改变。特别地,处理器120可以在检测到内存冲突时“急切地”中止冲突事务,而不等待该事务尝试提交。处理器120可以使用高速缓存一致性机制来实现急切冲突检测。处理器120可以以任何粒度级别检测冲突内存位置,例如,每缓存行、每字、或者每内存单元。在中止时,处理器120可以调用中止处理程序,重启该事务(一次或多次),或者响应于中止的事务调用非事务性回退代码。在一些实施方式中,事务性内存支持124可以具体实施为在由
Figure BDA0001337828280000041
公司制造的某些处理器120上可用的
Figure BDA0001337828280000043
事务性同步扩展(
Figure BDA0001337828280000042
TSX)。
内存128可以被具体实施为能够执行本文所述功能的任何类型的易失性或非易失性存储器或数据储存器。在操作中,内存128可以存储在计算装置100的操作期间使用的各种数据和软件,诸如操作系统、应用程序、程序、库、以及驱动程序。例示性内存128包括一个或更多个被监视内存区域130和中止处理程序132。如下面进一步描述的,被监视内存区域130是针对所尝试的未授权内存访问监视的内存的特定区域。这种被监视内存区域130可以包括加载的或内存映射的库、可执行映像、内核数据结构、或其它重要内存区域。中止处理程序132可以包括在事务性中止事件中被调用以处理潜在安全违规的一个例程或多个例程,如下进一步描述的。
内存128经由I/O子系统126可通信地耦接至处理器120,该子系统可以被具体实施为便于与处理器120、内存128、以及计算装置100的其它组件的输入/输出操作的电路和/或组件。例如,I/O子系统126可以被具体实施为或另外包括内存控制器集线器、输入/输出控制集线器、固件装置、通信链路(即,点到点链路、总线链路、电线、线缆、导光板、印刷电路板迹线等)、和/或其它组件和子系统,以便于输入/输出操作。在一些实施方式中,I/O子系统126可以形成芯片上系统(SoC)的一部分并且与处理器120、内存128、以及计算装置100的其它组件一起结合在单个集成电路芯片上。
数据存储装置134可以被具体实施为被配置用于数据的短期或长期存储的任何类型的一个装置或多个装置,例如,如内存装置和电路、存储卡、硬盘驱动器、固态驱动器、或其它数据存储装置。数据存储装置134可以被用于存储包括操作系统软件和应用软件的、用于执行的软件或其它数据。这样的软件可能最初是不受信任的并且可能是恶意的,例如,从第三方供应商下载的软件。
计算装置100还包括能够实现计算装置100与远程计算装置之间的通信的通信子系统136,其可以被实现为任何通信电路、装置、或其集合。通信子系统136可以被配置成使用任一种或更多种通信技术(例如,无线或有线通信)和关联协议(例如,以太网、
Figure BDA0001337828280000051
WiMAX、HSPA+、LTE等)来实现这种通信。通信子系统136可以被具体实施为包括无线网络适配器的网络适配器。
在例示性实施方式中,计算装置100还包括显示器138。计算装置100的显示器138可以被具体实施为能够显示数字信息的任何类型的显示器,诸如液晶显示器(LCD)、发光二极管(LED)、等离子显示器、阴极射线管(CRT)、或其它类型的显示装置。显示器138例如可以被用于将安全分析的结果传达给用户。
现在参照图2,在该例示性实施方式中,计算装置100在操作期间建立环境200。该例示性环境200包括:安全模块202、安全协助线程模块204、以及安全响应模块208。环境200的各个模块可以被具体实施为硬件、固件、软件、或其组合。例如,环境200的各种模块、逻辑、以及其它组件200可以形成计算装置100的处理器120或其它硬件组件的一部分,或另外由其构建。这样,在一些实施方式中,环境200的任何一个或更多个模块可以被具体实施为电气装置的电路或集合(例如,安全电路、安全协助线程电路等)。
安全模块202被配置成启动一个或更多个安全协助线程206,以监视该被监视内存区域130。安全模块202可以被具体实施为可以使用该被监视内存区域130的任何安全软件,并且可以被具体实施为一个或更多个操作系统、管理程序、操作系统模块、驱动程序、可信代码、或其它安全软件。安全协助线程206均可以被具体实施为可在计算装置100的内核122或逻辑处理器上运行的任何独立执行线程,诸如操作系统线程、轻量级进程、操作系统进程、操作系统内核线程、或用户软件线程。在创建时,可以向每个安全协助线程206提供被监视内存区域130的地址或被监视内存区域130的一部分。在一些实施方式中,安全协助线程206不被新近创建,而是可以从线程池中被选择或另外被预先生成。
安全协助线程模块204被配置成通过安全协助线程206使用处理器120的事务性内存支持124启动事务。安全协助线程模块204还被设置成通过安全协助线程206在该事务内向相关联的被监视内存区域130写入任意数据。安全协助线程模块204被配置成检测由被监视内存区域130的外部读取引起的该事务的事务性中止;即,源自事务之外的代码执行的对被监视内存区域130的读取。安全协助线程模块204可以被配置成响应于检测到事务性中止来执行事务性中止处理程序132。
安全响应模块208被配置成响应于检测到事务性中止来确定是否发生了安全事件,并且如果发生了安全事件,则执行一个或更多个安全操作。这些功能可以由中止处理程序132执行或作为中止处理程序132的一部分执行。安全响应模块208可以被配置成响应于确定发生了安全事件而报告该安全事件或暂停(halt)计算装置100。
现在参照图3,在使用时,计算装置100可以执行用于检测未授权内存访问的方法300。该方法300开始于框302,其中,计算装置100识别内存128的要监视的一个或更多个区域130。那些被监视内存区域130可以被具体实施为任何内存内映像、可执行文件、或通常被恶意软件扫描的其它数据结构。在一些实施方式中,被监视内存区域130可以包括加载(内存映射)系统库的部分或全部。例如,常见策略是恶意代码在内存128中扫描所加载的操作系统库(诸如WindowsTM操作系统的KERNEL32.DLL库)。恶意代码可以通过读取和解释所加载映像的数据结构(诸如PE报头、节表、和/或PE目录)来验证加载的便携式可执行(PE)映像是否为KERNEL32.DLL。例如,恶意代码可以确定所加载映像的文件类型(例如,PE或DLL),定位输出表,并循环输出表以查找到用于额外系统渗透的函数的指针。恶意代码通常可以使用针对函数LoadModule和GetProcAddress的输出,因为那些函数允许由来自标准DLL的期望API的名称进行调用。普通非恶意软件可能非常罕见地访问被监视内存区域130。
在框304中,计算装置100创建一个或更多个安全协助线程206。如上所述,该安全协助线程206均可以被具体实施为可在计算装置100的内核122或逻辑处理器上运行的任何独立执行线程,诸如操作系统线程、轻量级进程、操作系统进程、操作系统内核线程、或用户软件线程。每个安全协助线程206可以被指配给被监视内存区域130的部分或全部。在一些实施方式中,计算装置100可以创建额外的备份安全协助线程206,以允许连续监视和在覆盖范围内没有间隙。
在框306中,计算装置100执行与被监视内存区域130相关联的每个安全协助线程206。框306(例如,框308、310、312)的处理可以同时、平行、或另外由安全协助线程206同时期执行。在框308中,安全协助线程206启动事务并识别相关联的中止处理程序132。在一些实施方式中,该事务可以通过执行特定指令(例如,XBEGIN指令)来启动。可以将中止处理程序132的地址作为自变量传递给事务开始指令。另外地或另选地,可以存在用于指定中止处理程序132的地址的单独指令。如上所述,如果在执行该事务期间发生事务性中止,则计算装置100的处理器120自动地将执行转移至中止处理程序132。
在框310中,仍然在该事务内执行的安全协助线程206盖写被监视内存区域130。安全协助线程206可以用任意值盖写被监视内存区域130。写入操作可以将与被监视内存区域130相关联的内存高速缓存行添加至该事务的写入集合中。因为事务被隔离并且是原子(atomic)的,所以对被监视内存区域130的改变对于由计算装置100执行的其它线程和/或进程来说不可见。
在框312中,安全协助线程206进入无限等待循环而不提交该事务。安全协助线程206可以使用任何技术来等待而不提交事务,诸如执行循环、休眠、或另外产生安全协助线程206的执行。在等待时,被监视内存区域130的任何外部读取(例如,从另一线程和/或事务读取)导致读/写冲突。处理器120检测读/写冲突并中止该事务。内存冲突的检测和事务性中止的后续生成可以由处理器120的硬件、处理器120的微代码、固件、软件、或那些技术的任何组合来执行。内存冲突和其它事务性中止的检测对于在处理器120上执行的软件来说可以是透明的,其可以仅在由处理器120调用中止处理程序132之后才意识到事务性中止。如果没有发生读/写冲突,则方法300在框312中继续执行。如果发生读/写冲突,则该事务被中止,并且方法300转换至在框314开始的中止处理程序132。
在一些实施方式中,在框314中,从中止处理程序132执行的计算装置100启动一个或更多个备份安全协助线程206。如上所述,计算装置100可以创建或另外初始化被用于提供对被监视内存区域130的连续监视的备份安全协助线程206。备份安全协助线程206可以启动新事务并且对被监视内存区域130进行写入,如以上结合框306描述的。因此,备份安全协助线程206可以允许计算装置100在执行中止处理程序132的同时继续监视被监视内存区域130。
在框316中,从中止处理程序132执行的计算装置100响应于事务性中止执行安全分析,以确定是否发生了安全事件。安全事件包括对一个或更多个被监视内存区域130的任何未授权访问,诸如从被监视内存区域130的未授权读取。这种未授权内存读取可以由恶意软件执行,诸如rootkit在尝试调用任意API之前尝试识别和映射操作系统库,钩住所选API,或另外破坏计算装置100的控制。计算装置100可以分析描述事务性中止原因的数据,以确定是否发生了安全事件,例如,通过读取处理器120的中止状态寄存器或性能监视单元来确定中止的原因、中止指令的地址、冲突数据的地址或、其它信息。
在框318中,计算装置100确定是否发生了安全事件。如上所述,当来自安全协助线程206外部的恶意代码从被监视内存区域130读取时,可能发生安全事件。如果没有发生安全事件,则方法300循环回到框306以执行安全协助线程206,重启该事务,并继续监视被监视内存区域130。如果发生了安全事件,则该方法300前进至框320。
在框320中,计算装置100执行安全响应。计算装置100可以执行任何恰当的安全响应,诸如报告安全事件,终止导致事务性中止的软件,或者暂停计算装置100以防止被包括代码的潜在执行。可以使用任何可用技术来报告安全事件,包括显示交互式警报,生成人可读报告,或执行另一安全操作。在执行安全响应之后,方法300循环回到框306,以执行安全协助线程206,重启该事务,并继续监视被监视内存区域130。
示例
下面提供本文所公开技术的例示性示例。所述技术的实施方式可以包括下述示例中的任一个或更多个、以及任何组合。
示例1包括一种用于检测未授权内存访问的计算装置,该计算装置包括:处理器,该处理器包括事务性内存支持;安全协助线程模块,该安全协助线程模块通过所述计算装置的安全协助线程使用所述处理器的所述事务性内存支持启动事务;响应于所述事务的启动,通过所述安全协助线程对被监视内存位置进行写入;以及响应于对所述被监视内存位置的写入来检测所述事务的事务性中止,其中,所述事务性中止由读取所述被监视内存位置引起,并且其中,所述读取从所述事务外部产生;以及安全响应模块,该安全响应模块用于(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包括一种用于检测未授权内存访问的方法,该方法包括以下步骤:通过所述计算装置的安全协助线程使用所述计算装置的处理器的事务性内存支持启动事务;响应于启动所述事务,通过所述安全协助线程对被监视内存位置进行写入;响应于对所述被监视内存位置的写入,通过所述计算装置检测所述事务的事务性中止,其中,所述事务性中止由所述被监视内存位置的读取引起,并且其中,所述读取从所述事务外部产生;响应于检测到所述事务性中止,通过所述计算装置确定是否发生了安全事件;以及响应于确定发生了安全事件,通过所述计算装置执行安全操作。
示例15包括示例14的主题,并且还包括通过所述计算装置启动所述安全协助线程;其中,启动所述事务的步骤包括:响应于启动所述安全协助线程而启动所述事务。
示例16包括示例14和15中的任一个的主题,并且其中,所述被监视内存位置包括内存映射操作系统库的一部分。
示例17包括示例14-16中的任一个的主题,并且其中,所述被监视内存位置包括可执行映像的一部分。
示例18包括示例14-17中的任一个的主题,并且其中,所述被监视内存位置包括操作系统内核数据结构的一部分。
示例19包括示例14-18中的任一个的主题,并且其中,检测所述事务性中止的步骤包括:通过所述安全协助线程等待,而不响应于对所述被监视内存位置的写入提交所述事务。
示例20包括示例14-19中的任一个的主题,并且还包括:响应于检测到所述事务性中止,通过所述计算装置执行事务性中止处理程序,其中,执行所述事务性中止处理程序的步骤包括:确定是否发生了所述安全事件。
示例21包括示例14-20中的任一个的主题,并且其中,确定是否发生了所述安全事件的步骤包括:比较从所述计算装置的性能监视单元检索的冲突数据位置的第一内存地址与所述被监视内存位置的第二内存地址。
示例22包括示例14-21中的任一个的主题,并且其中,确定是否发生了所述安全事件的步骤包括:基于所述计算装置的中止状态寄存器来确定所述事务性中止的原因。
示例23包括示例14-22中的任一个的主题,并且其中,执行所述安全操作的步骤包括:报告所述安全事件。
示例24包括示例14-23中的任一个的主题,并且其中,执行所述安全操作的步骤包括:暂停所述计算装置。
示例25包括示例14-24中的任一个的主题,并且还包括:响应于确定未发生安全事件而通过所述安全协助线程重启所述事务。
示例26包括示例14-25中的任一个的主题,并且还包括:响应于检测到所述事务性中止,通过所述计算装置启动第二安全协助线程;通过所述计算装置的所述第二安全协助线程使用所述计算装置的所述处理器的事务性内存支持启动第二事务;并且响应于启动所述第二事务,通过所述第二安全协助线程对所述被监视内存位置进行写入。
示例27包括一种计算装置,该计算装置包括:处理器;和内存,该内存中存储有多个指令,该指令在通过所述处理器执行时,使所述计算装置执行示例14-26中的任一个所述的方法。
示例28包括一种或更多种机器可读存储介质,该机器可读存储介质中存储有多个指令,该指令响应于被执行而导致计算装置执行示例14-26中的任一个所述的方法。
示例29包括一种计算装置,该计算装置包括用于执行示例14-26中的任一个所述的方法的装置。
示例30包括一种用于检测未授权内存访问的计算装置,该计算装置包括:用于通过所述计算装置的安全协助线程使用所述计算装置的处理器的事务性内存支持启动事务的装置;用于响应于启动所述事务,通过所述安全协助线程对被监视内存位置进行写入的装置;用于响应于对所述被监视内存位置的写入来检测所述事务的事务性中止的装置,其中,所述事务性中止由所述被监视内存位置的读取引起,并且其中,所述读取从所述事务外部产生;用于响应于检测到所述事务性中止来确定是否发生了安全事件的装置;以及用于响应于确定发生了安全事件来执行安全操作的装置。
示例31包括示例30的主题,并且还包括用于启动所述安全协助线程的装置;其中,用于启动所述事务的装置包括用于响应于启动所述安全协助线程而启动所述事务的装置。
示例32包括示例30和31中的任一个的主题,并且其中,所述被监视内存位置包括内存映射操作系统库的一部分。
示例33包括示例30-32中的任一个的主题,并且其中,所述被监视内存位置包括可执行映像的一部分。
示例34包括示例30-33中的任一个的主题,并且其中,所述被监视内存位置包括操作系统内核数据结构的一部分。
示例35包括示例30-34中的任一个的主题,并且其中,用于检测所述事务性中止的装置包括用于通过安全协助线程等待而不响应于对所述被监视内存位置的写入而提交所述事务的装置。
示例36包括示例30-35中的任一个的主题,并且还包括用于响应于检测到所述事务性中止来执行事务性中止处理程序的装置,其中,用于执行所述事务性中止处理程序的装置包括用于确定是否发生了所述安全事件的装置。
示例37包括示例30-36中的任一个的主题,并且其中,用于确定是否发生了所述安全事件的装置包括:用于比较从所述计算装置的性能监视单元检索的冲突数据位置的第一内存地址与所述被监视内存位置的第二内存地址的装置。
示例38包括示例30-37中的任一个的主题,并且其中,用于确定是否发生了所述安全事件的装置包括:用于基于所述计算装置的中止状态寄存器来确定所述事务性中止的原因的装置。
示例39包括示例30-38中的任一个的主题,并且其中,用于执行所述安全操作的装置包括用于报告所述安全事件的装置。
示例40包括示例30-39中的任一个的主题,并且其中,用于执行所述安全操作的装置包括用于暂停所述计算装置的装置。
示例41包括示例30-40中的任一个的主题,并且还包括用于响应于确定未发生安全事件而通过所述安全协助线程重启所述事务的装置。
示例42包括示例30-41中的任一个的主题,并且还包括:用于响应于检测到所述事务性中止来启动第二安全协助线程的装置;用于通过所述计算装置的所述第二安全协助线程使用所述计算装置的所述处理器的事务性内存支持启动第二事务的装置;并且用于响应于启动所述第二事务通过所述第二安全协助线程对所述被监视内存位置进行写入的装置。

Claims (20)

1.一种计算装置,所述计算装置包括:
安全协助线程模块,所述安全协助线程模块用于执行安全协助线程,所述安全协助线程:
使用事务性内存支持启动事务;
在所述事务内,将虚拟数据写入被监视内存位置;以及
在不提交所述事务的情况下进入无限等待循环,所述事务响应于所述被监视内存位置的读取触发事务性中止,所述读取从所述事务外部发起;以及
检测所述事务的事务性中止;以及
安全响应模块,所述安全响应模块响应于检测到所述事务性中止:(i)确定所述被监视内存位置的读取是否由恶意软件导致,以及(ii)当确定所述读取由恶意软件导致时,执行以下处理中的至少一个:终止包含所述恶意软件的软件程序、生成报告、以及暂停所述计算装置。
2.根据权利要求1所述的计算装置,其中,所述被监视内存位置包括内存映射操作系统库、可执行映像、以及操作系统内核数据结构的至少一部分。
3.根据权利要求1和2中的任一项所述的计算装置,其中,所述安全响应模块响应于检测到所述事务性中止来发起事务性中止处理程序,所述事务性中止处理程序使得确定所述读取是否由恶意软件导致。
4.根据权利要求1和2中的任一项所述的计算装置,其中,确定所述读取是否由恶意软件导致包括:比较从所述计算装置的性能监视单元检索的冲突数据位置的第一内存地址与所述被监视内存位置的第二内存地址。
5.根据权利要求1和2中的任一项所述的计算装置,其中,确定所述读取是否由恶意软件导致包括:访问所述计算装置的中止状态寄存器。
6.根据权利要求1和2中的任一项所述的计算装置,其中,所述事务是第一事务,所述安全协助线程是第一安全协助线程,所述安全协助线程模块进一步使第二安全协助线程响应于检测到所述事务性中止来执行,并且所述第二安全协助线程使用所述计算装置的事务性内存支持启动第二事务;以及响应于所述第二事务的所述启动,所述第二安全协助线程对所述被监视内存位置进行写入。
7.根据权利要求1和2中的任一项所述的计算装置,其中,所述计算装置还包括处理器,所述安全协助线程模块、所述安全协助线程、以及所述安全响应模块中的至少一个由所述处理器形成。
8.根据权利要求1和2中的任一项所述的计算装置,其中,所述被监视内存位置与内存高速缓存行相关。
9.一种用于检测计算装置中的恶意代码的方法,所述方法包括以下步骤:
使用处理器的事务性内存支持发起事务,所述事务响应于被监视内存位置的读取触发事务性中止,所述事务包括将虚拟数据写入到所述被监视内存位置并且在不提交所述事务的情况下进入无限等待循环;以及
响应于所述事务性中止,通过所述处理器执行指令来确定所述被监视内存位置的读取是否由恶意代码导致;以及
响应于确定所述被监视内存位置的读取由所述恶意代码导致,执行以下处理中的至少一个:终止与所述恶意代码相关的软件程序、生成报告、以及暂停所述计算装置。
10.根据权利要求9所述的方法,其中,所述被监视内存位置包括内存映射操作系统库的一部分、可执行映像的一部分、或操作系统内核数据结构的一部分中的至少一个。
11.根据权利要求9所述的方法,所述方法还包括以下步骤:响应于检测到所述事务性中止,通过所述处理器执行事务性中止处理程序,所述事务性中止处理程序执行确定所述被监视内存位置的读取是否由所述恶意代码导致。
12.根据权利要求9、10和11中的任一项所述的方法,其中,所述事务是第一事务,并且所述方法还包括以下步骤:
响应于所述事务性中止,通过利用所述处理器执行指令,生成安全协助线程;
通过利用所述处理器执行所述安全协助线程,使用所述事务性内存支持启动第二事务;以及
通过利用所述处理器执行所述安全协助线程,将虚拟数据写入所述被监视内存位置。
13.一种或多种计算机可读存储设备,所述一种或多种计算机可读存储设备包括多个指令,当所述多个指令被执行时,使得至少一个处理器至少:
大量生产安全协助线程,所述安全协助线程在不提交事务的情况下启动事务,所述事务使用事务性内存支持,所述事务包括对被监视内存位置的写入,所述事务响应于所述被监视内存位置的读取触发事务性中止,由指令生成的读取在所述安全协助线程外部执行;
响应于所述事务性中止,确定所述被监视内存位置的读取是否由恶意指令导致;以及
响应于确定所述被监视内存位置的读取由所述恶意指令导致,执行以下处理中的至少一个:终止与所述恶意指令相关的软件程序、生成报告、以及暂停计算装置。
14.根据权利要求13所述的一种或多种计算机可读存储设备,其中,所述被监视内存位置包括内存映射操作系统库的一部分。
15.根据权利要求13所述的一种或多种计算机可读存储设备,其中,所述被监视内存位置包括可执行映像的一部分。
16.根据权利要求13所述的一种或多种计算机可读存储设备,其中,所述被监视内存位置包括操作系统内核数据结构的一部分。
17.根据权利要求13、14和15中的任一项所述的一种或多种计算机可读存储设备,其中,当被执行时,所述安全协助线程使得所述至少一个处理器在所述写入之后在不提交所述事务的情况下进入无限等待循环。
18.根据权利要求13、14、15和16中的任一项所述的一种或多种计算机可读存储设备,其中,所述指令还使得所述至少一个处理器响应于检测到所述事务性中止执行事务性中止处理程序,所述事务性中止处理程序使得确定所述读取是否由恶意指令导致。
19.根据权利要求13、14、15和16中的任一项所述的一种或多种计算机可读存储设备,其中,所述安全协助线程是第一安全协助线程,所述读取是第一读取,所述事务是第一事务,并且所述事务性中止是第一事务性中止,所述指令还使得所述至少一个处理器:
响应于检测到所述第一事务性中止,启用第二安全协助线程;以及
利用所述安全协助线程,检测由所述被监视内存位置的第二读取导致的第二事务性中止。
20.根据权利要求13、14、15和16中的任一项所述的一种或多种计算机可读存储设备,其中,所述被监视内存位置与内存高速缓存行相关。
CN201580071977.5A 2014-12-31 2015-11-30 使用处理器事务性内存支持的内存访问保护 Active CN107408016B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462098641P 2014-12-31 2014-12-31
US62/098,641 2014-12-31
US14/670,982 2015-03-27
US14/670,982 US10540524B2 (en) 2014-12-31 2015-03-27 Memory access protection using processor transactional memory support
PCT/US2015/062903 WO2016109071A1 (en) 2014-12-31 2015-11-30 Memory access protection using processor transactional memory support

Publications (2)

Publication Number Publication Date
CN107408016A CN107408016A (zh) 2017-11-28
CN107408016B true CN107408016B (zh) 2020-05-12

Family

ID=56164212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580071977.5A Active CN107408016B (zh) 2014-12-31 2015-11-30 使用处理器事务性内存支持的内存访问保护

Country Status (5)

Country Link
US (1) US10540524B2 (zh)
EP (1) EP3241116B1 (zh)
JP (1) JP6367490B2 (zh)
CN (1) CN107408016B (zh)
WO (1) WO2016109071A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540524B2 (en) * 2014-12-31 2020-01-21 Mcafee, Llc Memory access protection using processor transactional memory support
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US10613897B1 (en) * 2016-12-21 2020-04-07 Ca, Inc. Systems and methods for creating program-specific execution environments
US10713357B2 (en) * 2017-11-23 2020-07-14 Nicira, Inc. Detecting lateral movement using a hypervisor
US10678922B2 (en) * 2017-11-23 2020-06-09 Nicira, Inc. Detecting arbitrary code execution using a hypervisor
US10824751B1 (en) * 2018-04-25 2020-11-03 Bank Of America Corporation Zoned data storage and control security system
US10929556B1 (en) 2018-04-25 2021-02-23 Bank Of America Corporation Discrete data masking security system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1319203A (zh) * 1998-07-22 2001-10-24 艾利森电话股份有限公司 涉及数据库中事务处理的方法
CN101023431A (zh) * 2004-09-15 2007-08-22 英特尔公司 用于在安全执行期间资源的无死锁总线保护的系统和方法
CN101495976A (zh) * 2005-07-29 2009-07-29 微软公司 直接更新软件事务存储器

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321314B1 (en) 1999-06-09 2001-11-20 Ati International S.R.L. Method and apparatus for restricting memory access
EP1248200A1 (de) 2001-04-06 2002-10-09 Micronas GmbH Verriegelungsschaltung zur Verhinderung eines unzulässigen Zugriffs auf die Speichereinrichtung eines Prozessors
US20030115479A1 (en) 2001-12-14 2003-06-19 Jonathan Edwards Method and system for detecting computer malwares by scan of process memory after process initialization
US7130911B2 (en) 2002-02-11 2006-10-31 Intel Corporation Method for monitoring unauthorized access to data stored in memory buffers
US7490187B2 (en) * 2002-05-15 2009-02-10 Broadcom Corporation Hypertransport/SPI-4 interface supporting configurable deskewing
US7418729B2 (en) * 2002-07-19 2008-08-26 Symantec Corporation Heuristic detection of malicious computer code by page tracking
DE102004014940A1 (de) * 2003-03-26 2004-10-21 Kyocera Corp. Halbleitervorrichtung, Verfahren zum Aufwachsen eines Nidridhalbleiters und Verfahren zur Herstellung einer Halbleitervorrichtung
EP1507414B1 (en) * 2003-08-15 2008-04-30 STMicroelectronics Limited Circuit for restricting data access
US9384348B2 (en) * 2004-04-29 2016-07-05 James A. Roskind Identity theft countermeasures
US7971246B1 (en) * 2004-04-29 2011-06-28 James A. Roskind Identity theft countermeasures
US8417814B1 (en) 2004-09-22 2013-04-09 Symantec Corporation Application quality of service envelope
EP1894101A1 (de) 2005-06-23 2008-03-05 Bayerische Motorenwerke Aktiengesellschaft Verfahren und vorrichtung zum überwachen eines unerlaubten speicherzugriffs einer rechenvorrichtung, insbesondere in einem kraftfahrzeug
US8180971B2 (en) * 2005-12-09 2012-05-15 University Of Rochester System and method for hardware acceleration of a software transactional memory
US7890612B2 (en) * 2006-05-08 2011-02-15 Electro Guard Corp. Method and apparatus for regulating data flow between a communications device and a network
US8270588B2 (en) * 2006-10-04 2012-09-18 Ronald Schwartz Method and system for incoming call management
US7711678B2 (en) 2006-11-17 2010-05-04 Microsoft Corporation Software transaction commit order and conflict management
US20080083031A1 (en) 2006-12-20 2008-04-03 Microsoft Corporation Secure service computation
WO2008094512A2 (en) * 2007-01-29 2008-08-07 The Ohio Sate University Research Foundation System for expression of genes in plants from a virus-based expression vector
US8396937B1 (en) * 2007-04-30 2013-03-12 Oracle America, Inc. Efficient hardware scheme to support cross-cluster transactional memory
US8701189B2 (en) 2008-01-31 2014-04-15 Mcafee, Inc. Method of and system for computer system denial-of-service protection
JP2009284024A (ja) * 2008-05-19 2009-12-03 Fujitsu Ltd フレーム伝送装置およびフレーム伝送方法
KR20110044884A (ko) 2008-07-28 2011-05-02 어드밴스드 마이크로 디바이시즈, 인코포레이티드 가상화가능한 진보된 동기화 기능
US8776063B2 (en) 2008-11-26 2014-07-08 Oracle America, Inc. Method and system for hardware feedback in transactional memory
US8627017B2 (en) 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US8356166B2 (en) * 2009-06-26 2013-01-15 Microsoft Corporation Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers
US8161247B2 (en) 2009-06-26 2012-04-17 Microsoft Corporation Wait loss synchronization
US20120079245A1 (en) * 2010-09-25 2012-03-29 Cheng Wang Dynamic optimization for conditional commit
US8640230B2 (en) 2011-12-19 2014-01-28 International Business Machines Corporation Inter-thread communication with software security
GB2503470B (en) * 2012-06-27 2014-08-13 Nordic Semiconductor Asa Memory protection
US20140282891A1 (en) * 2013-03-15 2014-09-18 Stephen Frechette Method and system for unique computer user identification for the defense against distributed denial of service attacks
KR101835250B1 (ko) * 2013-12-17 2018-03-06 인텔 코포레이션 트랜잭셔널 메모리를 사용한 비인가 메모리 수정 및 액세스의 검출
US20150278123A1 (en) * 2014-03-28 2015-10-01 Alex Nayshtut Low-overhead detection of unauthorized memory modification using transactional memory
US9756118B2 (en) * 2014-04-28 2017-09-05 Vmware, Inc. Virtual performance monitoring decoupled from hardware performance-monitoring units
US9323701B2 (en) * 2014-07-29 2016-04-26 Netapp, Inc. Technique for synchronizing IOMMU memory de-registration and incoming I/O data
US9507938B2 (en) * 2014-12-23 2016-11-29 Mcafee, Inc. Real-time code and data protection via CPU transactional memory support
US10540524B2 (en) * 2014-12-31 2020-01-21 Mcafee, Llc Memory access protection using processor transactional memory support

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1319203A (zh) * 1998-07-22 2001-10-24 艾利森电话股份有限公司 涉及数据库中事务处理的方法
CN101023431A (zh) * 2004-09-15 2007-08-22 英特尔公司 用于在安全执行期间资源的无死锁总线保护的系统和方法
CN101495976A (zh) * 2005-07-29 2009-07-29 微软公司 直接更新软件事务存储器

Also Published As

Publication number Publication date
JP2018500687A (ja) 2018-01-11
WO2016109071A1 (en) 2016-07-07
CN107408016A (zh) 2017-11-28
EP3241116B1 (en) 2019-10-23
US10540524B2 (en) 2020-01-21
US20160188243A1 (en) 2016-06-30
JP6367490B2 (ja) 2018-08-01
EP3241116A4 (en) 2018-07-25
EP3241116A1 (en) 2017-11-08

Similar Documents

Publication Publication Date Title
CN107408016B (zh) 使用处理器事务性内存支持的内存访问保护
EP3084615B1 (en) Detection of unauthorized memory modification and access using transactional memory
TWI612439B (zh) 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體
US10032024B2 (en) System and method for virtual partition monitoring
CN102067083B (zh) 对虚拟化环境中的中断结束消息的懒惰处理
EP3063692B1 (en) Virtual machine introspection
CN113467981A (zh) 异常处理的方法和装置
US9251022B2 (en) System level architecture verification for transaction execution in a multi-processing environment
CN117234729B (zh) 动态内存保护方法、装置、计算机设备及存储介质
US9535772B2 (en) Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels
KR102443089B1 (ko) 컴퓨팅 디바이스에서의 동기화
US10310914B2 (en) Methods and systems for recursively acquiring and releasing a spinlock
CN112416695B (zh) 一种全局变量监控方法、装置、设备及存储介质
WO2023283872A1 (en) System management mode runtime resiliency manager

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: McAfee limited liability company

Address before: American California

Applicant before: Mcafee Inc

GR01 Patent grant
GR01 Patent grant