CN106462507B - 抵抗对缓存的攻击 - Google Patents

抵抗对缓存的攻击 Download PDF

Info

Publication number
CN106462507B
CN106462507B CN201480075448.8A CN201480075448A CN106462507B CN 106462507 B CN106462507 B CN 106462507B CN 201480075448 A CN201480075448 A CN 201480075448A CN 106462507 B CN106462507 B CN 106462507B
Authority
CN
China
Prior art keywords
virtual machine
cache region
data
safe cache
safe
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.)
Expired - Fee Related
Application number
CN201480075448.8A
Other languages
English (en)
Other versions
CN106462507A (zh
Inventor
王兴元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian University of Technology
Original Assignee
Dalian University of Technology
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 Dalian University of Technology filed Critical Dalian University of Technology
Publication of CN106462507A publication Critical patent/CN106462507A/zh
Application granted granted Critical
Publication of CN106462507B publication Critical patent/CN106462507B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在虚拟计算环境的一些示例中,多个虚拟机可以在物理计算设备上执行,同时共享对应于物理计算设备的硬件部件。对应于物理计算设备的超级管理器可以被配置为将缓存的一部分指定给虚拟机中的一个以用于存储数据。超级管理器还可以被配置为识别在缓存中的所指定的部分中执行的敌意活动,进一步地,还可以被配置为对于所识别的敌意活动在其上执行的那些虚拟机上实施安全措施。

Description

抵抗对缓存的攻击
技术领域
本文描述的技术总体上涉及抵抗对专用于虚拟机的缓存的攻击。
背景技术
除非本文中另外指示,否则在本部分中所描述的方法对于本申请中的权利要求来说不是现有技术,并且不因包含在这部分中而被承认为现有技术。
在虚拟计算系统中,一个或多个虚拟机可以在物理计算设备上同时执行,并且共享对应于物理计算设备的计算资源。虚拟机中的每一个可以被各自的客户端使用,并且可以独立于其他虚拟机。共享的计算资源可以包括数据存储装置(例如缓存),其可以被用于为各自的客户端存储信息。
概述
一般地描述了用于在虚拟计算系统中抵抗对缓存的攻击的技术。本文所描述的各种技术可以以各种方法、系统、计算机程序产品和/或计算机可读介质来实施。
在一些示例中,各种实施例可以作为方法被实施。一些方法可以包括在计算设备上执行多个虚拟机;将所述计算设备中的缓存的一部分指定为安全缓存区域;将所述安全缓存区域分配给多个虚拟机中的一个虚拟机;响应于来自所述多个虚拟机中的所述一个虚拟机的存储数据的请求,将从所述多个虚拟机中的所述一个虚拟机中接收的所述数据存储在所述安全缓存区域中;以及继从将所述数据存储在所述安全缓存区域中开始经过一定时间量之后,删除在所述安全缓存区域中存储的所述数据,禁止所述多个虚拟机中的所述一个虚拟机在预定时间段内使用所述安全缓存区域,识别在所述预定时间段期间在所指定的安全缓存区域中执行的一个或多个未被授权的活动,以及对所述多个虚拟机中的、执行识别出的所述一个或多个未被授权的活动的一个或多个虚拟机实施安全措施。
在一些示例中,各种实施例可以作为系统被实施。一些系统可以包括数据清除器,其被配置为从将数据存储在缓存的安全缓存区域中开始经过随机时间量之后,清除存储在所述安全缓存区域中的所述数据,所述数据与多个虚拟机中的一个虚拟机相关联;阻断模块,其被配置为在预定时间段内,禁止所述多个虚拟机中的所述一个虚拟机使用所述安全缓存区域;敌意活动追踪器,其被配置为识别在所述预定时间段期间在所述安全缓存区域中执行的一个或多个未被授权的活动;以及安全模块,其被配置为对所述多个虚拟机中的、执行所述一个或多个未被授权的活动的一个或多个虚拟机实施安全措施。
在一些示例中,各种实施例可以作为具有存储在其上的可执行指令的计算机可读介质被实施。一些计算机可读介质可以存储当其被执行时使一个或多个处理器执行包括如下操作的指令:在计算设备上执行多个虚拟机;指定所述计算设备的缓存的一部分作为安全缓存区域;将所述安全缓存区域分配给所述多个虚拟机中的一个虚拟机;响应于来自于所述多个虚拟机中的所述一个虚拟机的存储数据的请求,将从所述多个虚拟机中的所述一个虚拟机接收的所述数据存储在所述安全缓存区域中;以及继从所述将所述数据存储在所述安全缓存区域中开始经过一定时间量之后:删除存储在所述安全缓存区域中的所述数据,禁止所述多个虚拟机中的所述一个虚拟机使用在预定时间段内所指定的安全缓存区域,识别在所述预定时间段期间在所指定的安全缓存区域中执行的一个或多个未被授权的活动,以及关闭所述多个虚拟机中的、执行识别出的所述一个或多个未被授权的活动的一个或多个虚拟机。
前面的概述仅仅是示例性的,而不意在以任何方式进行限制。通过参考附图以及下面的详细描述,除了上文所描述的示例性的方案、实施例和特征之外,另外的方案、实施例和特征将变得显而易见。
附图说明
在以下详细描述中,实施例仅被描述为实例,因为从下面的详细描述中各种改变和修改对于本领域的技术人员将会变得明显。在不同的附图中,同样的参考数字的使用指示相似的或相同的项目。在附图中:
图1示出可以在其中实现抵抗对缓存的攻击的示例系统;
图2示出可以实现抵抗针对其的攻击的示例缓存;
图3示出可以通过其来实现抵抗对缓存的攻击的示例超级管理器;
图4示出可以通过其来实现抵抗对缓存的攻击的操作处理流程的示例配置;以及
图5示出图示被配置为可以实现抵抗对缓存的攻击的示例计算设备的框图,
所有附图都根据本文所描述的至少一些实施例进行布置。
具体实施方式
在以下详细描述中,对附图进行参考,所述附图形成详细描述的一部分。除非上下文另外指示,否则在附图中,相似的符号通常标识相似的部件。此外,除非另外说明,每个连续的附图的描述可以参考来自于先前附图中的一个或多个的特征以提供本示例实施例的更清楚的上下文以及更实质性地解释。尽管如此,在具体实施方式、附图和权利要求中描述的实施例并不意味着是限制性的。在不脱离本文所提供的主题的精神或范围的情况下,可以利用其它实施例,以及可以进行其它改变。将要容易地理解的是,如本文总体描述并且在附图中图示的,本公开的各方面可以以广泛多样的不同配置被布置、替代、组合、分割和设计,所有这些在本文中都被明确地构想。
在物理计算设备上实施的虚拟计算系统中,物理计算设备的硬件资源可以被同时运行的多个虚拟机共享。当多个虚拟机共享对应于物理计算设备的缓存时,敌意虚拟机可以获得对于缓存的可被指定用于或专用于授权虚拟机的一部分的访问权。为了消除对于共享的资源中的任何资源的这样的未被授权的访问以及为了识别敌意虚拟机,虚拟计算系统的超级管理器可以被配置为针对被入侵的计算资源中的任何资源实施安全措施。这样的安全措施的示例可以包括超级管理器继在存储了信息或数据之后、一定时间量之后,删除在缓存中的被入侵部分中存储的信息和/或禁止甚至被授权的虚拟机访问缓存中的被入侵的部分。也就是说,因为在一定时间量已经流逝之后,甚至被授权的虚拟机可以被禁止访问缓存中的被入侵的部分,从而仍旧访问缓存的该部分的任何其他虚拟机可以被识别为敌意分子并且因此可以被关闭。
图1示出根据本文所描述的至少一些实施例被布置的、可以在其中实现抵抗对缓存的攻击的示例系统100。如图所示,系统100可以至少包括特权域102、多个虚拟机104A、104B、104C、…、104N、超级管理器106、以及可包括缓存110的硬件部件108。除非上下文对于虚拟机104A、104B、104C、…、104N中的一个或多个需要具体参考,否则可以对于“虚拟机104”进行集体参考。
特权域102可以指代可被配置为管理虚拟机104的软件部件。在一些示例中,在系统启动过程期间,可以通过超级管理器106来初始化特权域102中的多个参数。特权域102可以被授予一个或多个特权以经由超级管理器106管理虚拟机104中的不同方面。虚拟机104的各方面的非限制性示例可以包括开始、中断、停止、输入/输出请求等,针对虚拟机104的这些方面,可以将一个或多个特权授予给特权域102以进行管理。在至少一些示例中,特权域102可以被配置为针对虚拟机104中的一个或多个从缓存110中获取数据。
虚拟机104可以指代物理计算设备的一个或多个软件仿真,该软件仿真可以被配置为以与物理计算设备同样的方式而执行软件程序。如先前所述,虚拟机104可以被特权域102初始化和管理。
在一些示例中,虚拟机104中的一个或多个可以被配置为运行操作系统,该操作系统可以是独立于或不同于在虚拟机104的各个其他的虚拟机上正在执行的操作系统。
备选地或附加地,虚拟机104中的一个或多个可以被配置为执行单个软件程序、单个软件程序中的部分或单个进程。在执行期间,虚拟机104中的每一个可以被特权域102管理以间接地访问和使用示例系统100中的硬件部件108。
超级管理器106可以指代被配置为在硬件部件108中的一个或多个上直接执行的软件模块。同时地,超级管理器106可以被配置为从其他的软件模块(例如客户端,包括虚拟机104的相应的那些)接收一个或多个对计算任务的独立请求。为了促进这样的请求,响应于从不同的软件模块接收到的独立的请求,超级管理器106可以被配置为管理对于硬件部件108中的一个或多个的访问。
在一些示例实施例中,超级管理器106可以具有对于硬件部件108中的任意硬件部件的直接访问权。这样的直接访问权可能排斥可以在系统100上执行的一个或多个其他软件部件。换句话说,其他部件不可以具有对于硬件部件108的直接访问权。因此,超级管理器106可被配置为存储和维持与虚拟机104的执行相关的信息或数据,包括识别虚拟机104中的针对缓存110执行读/写活动的那些虚拟机。
如本文所引用的,针对缓存110的读取活动可以指代例如获取在硬件部件108中的一个或多个数据存储部件中存储的信息。针对缓存110的写活动可以指代例如将信息存储到硬件部件108中的一个或多个数据存储部件。
硬件部件108可以指代组成计算机系统100的一个或多个物理元件。硬件部件108的非限制性示例可以包括一个或多个存储器、一个或多个CPU、一个或多个网络适配器、一个或多个图形处理单元(GPU)、一个或多个主板等。
缓存110可以指代包括在硬件部件108中的、可以被虚拟机104中的一个或多个共享的,各个一个或多个存储器中的至少一部分。典型地,缓存110可以提供比各自的一个或多个存储器中的其他部分更快的读/写速度。
在至少一示例中,缓存110可被分成多条缓存线。可以将多条缓存线中的一条或多条指定给虚拟机104中的一个或多个。缓存线可被分别地指定给虚拟机104中的各自虚拟机以执行计算任务。
超级管理器106可以被配置为将最近最少使用(LRU)计数器与多条缓存线中的每条缓存线相关联。每个LRU计数器可以被配置为保持追踪在对应缓存线上执行的读/写活动。每当读/写活动在各自缓存线上被虚拟机104中的一个或多个执行时,LRU计数器的值可增加。在一些示例中,响应于来自于虚拟机的存储数据的请求,超级管理器106可以被配置为将缓存线中的一条或多条指定或专用为虚拟机104中的一个的安全缓存区域。从请求虚拟机接收的数据然后可以被存储在安全缓存区域。虚拟机104中的请求虚拟机然后可以被授权来访问安全缓存区域。虚拟机104中的请求虚拟机然后可以被称作授权虚拟机。
虚拟机104中的请求虚拟机可以不是访问或尝试访问安全区域的仅有的虚拟机。既然安全缓存区域可能未必与其他缓存线物理上隔离,虚拟机104中的其他虚拟机仍然可以能够访问该安全缓存区域。例如,原本会阻止未被授权的虚拟机的访问的安全故障可以导致虚拟机104中的一个或多个对于安全缓存区域的未被授权的访问,未必将这看作是敌意的。然而,当虚拟机104中的一个或多个通过违背来自超级管理器106的指令和/或违反由超级管理器106设置的禁止而获得对于安全缓存区域的未被授权的访问时,虚拟机104中的获得这样的访问的一个或多个虚拟机可被看作是敌意的。
备选地或附加地,继在将数据存储在安全缓存区域后、经过一定时间量之后,超级管理器106可以删除来自安全缓存区域被存储的数据和/或禁止虚拟机104中的一个授权虚拟机在预定时间段内访问安全缓存区域。该时间量可根据多个随机数生成算法(例如,Yarrow算法、Fortuna等)被超级管理器106随机地确定。敌意虚拟机仍然可以尝试访问安全缓存区域,而忽视该禁止。作为这样的动作的结果,访问安全缓存区域的虚拟机可以被确定为是敌意的。
基于安全缓存区域中的LRU计数器,超级管理器106可被配置为通过监视相关联的LRU计数器来检测针对安全缓存区域的未被授权的读/写活动。也就是说,未被授权的读/写可以通过一定时间量流逝之后的LRU计数器值的改变而被检测到。在至少一些示例中,超级管理器106可被配置为识别虚拟机104中的执行检测到的未被授权的读/写活动的那些虚拟机,以及在识别出的虚拟机上实施安全措施。这样的安全措施的示例可以包括关闭执行未被授权的读/写活动的识别出的虚拟机。
因此,图1示出可被配置为将硬件部件108的不同部分指定给虚拟机104中的不同虚拟机以及识别敌意虚拟机的未被授权的访问的示例虚拟计算系统。
图2示出根据本文所描述的至少一些实施例被布置的、可以实现抵抗针对其的攻击的缓存110的示例配置200。如图所示,缓存110可以至少包括与缓存线204A、204B、204C、…、204N相关联的多个LRU计数器202A、202B、202C、…、202N。除非上下文需要对于LRU计数器202A、202B、202C、…、202N中的一个或多个特定的参考,否则可对“LRU计数器202”进行集体参考;同样地,可对“缓存线204”进行集体参考。
LRU计数器202可以指代被配置为存储计数值的一个或多个部件或模块,计数值指示在缓存线204中的对应缓存线上执行的读/写活动的计数。根据各种实施例,LRU计数器202可被实施为软件、硬件、固件或其任何组合。
缓存线204可以指代缓存110中的一个部分或多个部分,其可分别地被指定用于或专用于虚拟机104中的一个或多个虚拟机。如上所述,缓存线204中的一条或多条可被指定为对于请求特定计算任务的虚拟机104中的一个虚拟机的安全缓存区域。出于安全目的,可以在该指定发生之前清除在一个或多个缓存线204中先前存储的数据,例如防止计算机病毒预加载到安全缓存区域。
安全缓存区域的尺寸可以相对于缓存110的总尺寸、通过该安全区域被指定用于或专用于的虚拟机104的数量来确定。例如,安全缓存区域的最大尺寸可能不超过一个值,该值等于缓存110的最大尺寸除以虚拟机104中的被指定/被专用的虚拟机的数量。
因此,图2示出包括多条缓存线204的缓存110的示例配置。缓存线204中的每一条可与LRU计数器202中的计数器相关联。
图3示出根据本文所描述的至少一些实施例布置的、可以通过其来实现抵抗对缓存的攻击的超级管理器106的示例配置300。如图所示,示例超级管理器106可以至少包括数据清除器302、阻断模块304、敌意活动追踪器306以及安全模块308。
数据管理器302可以指代可被配置为清除在缓存线被指定用于虚拟机104中的请求虚拟机(例如授权虚拟机)之前、先前已经被存储在缓存线204中的数据的软件模块。附加地或备选地,数据管理器302可以被配置为继在数据已经被存储后、经过一定时间量之后,清除存储在缓存110中的安全缓存区域中的数据。根据至少一些示例,数据清除器302可以被配置为在预定周期(例如每二十分钟)期间清除数据至少一次。当数据管理器302清除数据时,LRU计数器202可被重置为零。
阻断管理器304可以指代可被配置为在数据已经被数据管理器302清除之后的预定时间段内禁止所有的虚拟机104使用安全缓存区域的软件模块。因此,由于这样的禁止,如果在该预定时间段期间没有未被授权的虚拟机访问安全缓存区域,则LRU计数器202中的对应计数器可保留相同值。如上所述,因为缓存110可能未与阻断管理器304物理隔离,所以未被授权的虚拟机可以忽略这样的禁止并且访问安全缓存区域。
敌意活动追踪器306可以指代可被配置为识别在预定时间段期间在安全缓存区域中执行的未授权的读/写活动的软件模块。也就是说,敌意活动追踪器306可以基于在预定时间段期间的LRU计数器202的对应计数器的值来检测未被授权的读/写活动。因为超级管理器106可保持追踪对虚拟机104中的对缓存110执行读/写活动的那些虚拟机的识别,因此作为超级管理器106的部件的敌意活动追踪器306可以被配置为基于由超级管理器106维持的信息或数据来识别执行未被授权的读/写活动的虚拟机104中的那些虚拟机。识别出的虚拟机可被安全模块308视为是敌意的,因为这些虚拟机忽略由阻断模块304发出的禁止。
安全管理器308可以指代可被配置为实施一个或多个安全措施的软件模块,该安全措施可影响安全缓存区域和/或被检测和/或识别为已经执行可未被授权的读/写活动中的一个或多个的虚拟机。这样的安全措施的示例可以包括关闭上述识别出的虚拟机和/或警告系统管理员。如本文所引用的,系统管理员可以指代负责计算设备的维持、配置和可靠操作的人。
在一些示例实施例中,安全管理器308可被配置为在这样的实施之前执行自诊断处理,从而检测可使识别出的虚拟机访问安全缓存区域的硬件故障。自诊断处理可以指代由示例系统运行的一个或多个测试,测试可以包括存储器测试、网络连接测试、数据总线测试等。如果这样的硬件故障存在,安全模块308可以被配置为将硬件故障通知给系统管理员,并且可能使得安全措施没有必要。如果这样的硬件故障不存在,安全模块308可以被配置为对识别出的虚拟机实施安全措施以停止未被授权的读/写活动。
因此,图3示出超级管理器106的示例配置,其可至少包括数据清除器302、阻断模块304、敌意活动追踪器306以及安全模块308,它们单独地或组合地可以被配置为识别未被授权的活动,并且进一步实施安全措施以防止这样的活动。
图4示出根据本文所描述的至少一些实施例布置的、可以通过其来抵抗对缓存的攻击的操作处理流程的示例配置。如图所示,处理流程400可以包括通过作为示例系统100的一部分的各种部件执行的子过程。然而,处理流程400不限制于这样的部件,并且可以通过以下操作而被修改:重排序这里所描述的子过程中的两个或多个、排除子过程中的至少一个、增加另外的子过程、替换部件、或者甚至具有承担与下文描述的其他部件相一致的子处理角色的各种部件。处理流程400可以包括如由模块402、404、406、408、410、412、414和/或416所图示的各种操作、功能或动作。处理可在模块402处开始。
模块402(指定缓存)可以指代,响应于来自虚拟机104中的一个虚拟机的存储数据的请求,超级管理器106将缓存线204中的一条或多条指定为安全缓存区域,其被指定用于或专用于该一个虚拟机。如上文所述,缓存线204中的被指定的一条或多条中的每一条可与LRU计数器202中的一个相关联。相关联的LRU计数器可以被配置为保持追踪在缓存线204中的相应缓存线中执行的读/写活动。LRU计数器的值可随着由虚拟机104中的一个或多个在缓存线204中的缓存线上所执行的每个读/写活动而增加。模块402之后可以是模块404。
模块404(分配缓存)可以指代,超级管理器106将安全缓存区域分配给虚拟机104中的请求虚拟机。请求虚拟机然后可以被授权以访问安全缓存区域,并且因此被称作授权虚拟机。模块404之后可以是模块406。
模块406(存储数据)可以指代,超级管理器106将从授权虚拟机中接收的数据存储在安全缓存区域中。模块406之后可以是模块408。
模块408(使缓存安全)可以指代,超级管理器106执行一个或多个操作以检测和/或识别虚拟机104中的敌意虚拟机、以及还实施安全措施以阻止虚拟机104中的敌意虚拟机访问安全缓存区域。模块408可以包括子模块410、412和414。
子模块410(删除数据)可以指代,数据管理器302删除在缓存线被指定用于或专用于虚拟机104中的请求虚拟机(例如授权虚拟机)之前,在缓存线中先前存储的数据。数据管理器302可以进一步被配置为继在存储数据之后、经过一定时间量之后,清除在缓存110中的安全缓存区域中存储的数据。在一些实施例中,该时间量可以由超级管理器106根据上文描述的多个随机数生成算法来随机地确定。在至少一些示例中,数据管理器302可以被配置为在预定周期(例如每二十分钟)期间清除数据至少一次。继续该示例,当数据管理器302清除数据时,LRU计数器202可被重置为0。子模块410之后可以是子模块412。
子模块412(禁止访问)可以指代,阻断管理器304在数据已经被数据管理器302清除之后,禁止授权虚拟机、连同虚拟机104中的所有剩余虚拟机在预定时间段内使用安全缓存区域。因此,由于这样的禁止,如果在该预定时间段期间没有未被授权的虚拟机访问安全缓存区域,则LRU计数器202中的相应的计数器可保留相同值。子模块412之后可以是模块414。
子模块414(识别未被授权的活动)可以指代,敌意活动追踪器306识别在预定时间段期间在安全缓存区域中执行的未被授权的读/写活动。也就是说,敌意活动追踪器306可以基于在预定时间段期间的LRU计数器202中的相应的计数器的计数值来检测未被授权的读/写活动。因为超级管理器106可以保持追踪对虚拟机104中的在缓存110上执行读/写活动的那些虚拟机的识别,所以作为超级管理器106的部件的敌意活动追踪器306可以被配置为基于由超级管理器106维持的信息而识别虚拟机104中的执行未被授权的读/写活动的虚拟机。这样的虚拟机可被安全模块308确定为敌意分子,因为这些虚拟机忽略被阻断管理器304发出的禁止。子模块414之后可以是子模块416。
子模块416(实施安全措施)可以指代,安全模块308对被识别为已经执行未被授权的读/写活动的虚拟机实施安全措施。安全措施的示例可以包括关闭上述识别出的虚拟机和/或警告系统管理员中的至少一个。
如前所述,在一些示例实施例中,安全模块308可被配置为在这样的实施之前执行自诊断处理以检测可使识别出的虚拟机访问安全缓存区域的硬件故障。如果这样的硬件故障存在,安全模块308可以被配置为将硬件故障通知系统管理员,并且不可以执行安全措施。如果这样的硬件故障不存在,安全模块308可以被配置为对识别出的虚拟机实施安全措施以停止未被授权的读/写活动。
本领域的技术人员将要理解,对于本文所公开的这些以及其他处理和方法,在处理和方法中执行的功能可以以不同的顺序被实施。此外,概括的步骤和操作仅仅被提供作为示例,并且步骤和操作中的一些可以是可选择的、结合成更少的步骤和操作、或扩大为附加的步骤和操作,而不偏离所公开实施例的精髓。
图5示出图示根据本文所描述的至少一些实施例布置的、被布置用于可以实现抵抗对缓存的攻击的示例计算设备的框图。在非常基本配置中,计算设备500典型地包括一个或多个处理器504和系统存储器506。存储器总线508可以被用于在处理器504和系统存储器506之间的通信。
根据期望的配置,处理器504可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器504可以包括一个多等级缓存(例如一级缓存510和二级缓存512)、处理器核514以及寄存器516。示例处理器核514可以包括运算逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任意组合。示例存储器控制器518也可以与处理器504一起被使用,或在一些实施方式中,存储控制器518可以是处理器504的内部部分。
根据期望的配置,系统存储器506可以是任何类型,包括但不限于易失性存储器(例如RAM)、非易失性存储器(例如ROM、闪存等)或其任意组合。系统存储器506可以包括操作系统520、一个或多个应用522以及程序数据524。应用522可以包括攻击抵抗算法526,其可以被配置为执行如本文所描述的功能、包括关于图4中的处理400描述的功能。程序数据524可以包括攻击抵抗数据528,其可能对于比如利用本文所描述的攻击抵抗算法526识别虚拟机104中的敌意虚拟机的操作是有用的。在一些实施例中,应用522可以被布置以与操作系统520上的程序数据524操作,使得攻击抵抗的实施方式可以如本文所描述的那样被提供。所描述的基本配置502在图5中通过内部虚线内的那些部件图示出。
计算设备500可以具有促进基本配置502和任何需要的设备以及接口之间的通信的附加特征或功能、和附加接口。例如,总线/接口控制器530可以被用于促进在基本配置502和一个或多个数据存储设备532之间经由存储接口总线534的通信。数据存储设备532可以是可移除存储设备536、非可移除存储设备538或其组合。可移除存储和非可移除存储设备中的示例包括磁盘设备(例如软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(例如压缩盘(CD)驱动器或数字多功能盘(DVD)驱动器)、固态驱动器(SSD)以及磁带驱动器等等。示例计算机存储介质可以包括以任何方法或技术实现的用于信息(例如计算机可读指令、数据结构、程序模块或其他数据)存储的易失性和非易失性、可移除和非可移除介质。
系统存储器506、可移除存储设备536和非可移除存储设备538是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他的光存储装置、磁带盘、录音带、磁盘存储或其他磁盘存储设备、或可被用于存储期望信息并且可被计算设备500访问的任何其他介质。任何这样的计算机存储介质可以是计算设备500的一部分。
计算设备500也可以包括用于促进从各种接口设备(例如输出设备542、外围接口544和通信设备546)到基本配置502经由总线/接口控制器530的通信的接口总线540。示例输出设备542包括图形处理单元548和音频处理单元550,其可以被配置为经由一个或多个A/V端口552与各种外部设备(例如显示器或扬声器)通信。示例外围接口544包括串行接口控制器554或并行接口控制器556,其可以被配置为经由一个或多个I/O端口558与外部设备、比如输入设备(例如键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如打印机、扫描仪等)进行通信。示例通信设备546包括网络控制器560,其可以布置为促进与一个或多个其他计算设备562经由一个或多个通信端口564在网络通信链路上的通信。
网络通信链路可以是通信介质的一个示例。通信介质可以典型地通过计算机可读指令、数据结构、程序模块或在已调制数据信号(例如载波或其他传输机制)中的其他数据进行实施,并且可以包括任何信息递送介质。“已调制数据信号”可以是这样的信号,其具有以信号中的编码信息那样的方式设置或改变的其特征中的一个或多个。举例而言但不做限制,通信介质可以包括有线介质(例如有线网或直接有线连接)、以及无线介质(例如声波、无线电频率(RF)、微波、红外(IR)和其他无线介质)。如本文所使用的术语计算机可读介质包括存储介质和通信介质它们两者。
计算设备500可以被实施为小型体积便携式(或移动)电子设备(例如手机、个人数据助理(PDA)、个人媒体播放器设备、无线web查看设备、个人耳机设备、应用特定设备或包括上面功能的任何功能的混合设备)的一部分。计算设备500也可被实施为包括膝上型计算机和非膝上型计算机配置的个人计算机。
在说明性实施例中,本文所描述的操作和处理等中的任何可以被实施为存储在计算机可读介质上的计算机可读指令。计算机可读指令可被移动单元、网络元件和/或任何其他计算设备中的处理器所执行。
在系统的方面的硬件和软件实施方式之间存在一些小差别;硬件或软件的使用一般(但并非总是,因为在特定情况下硬件和软件之间的选择可能变得很重要)是一种体现成本与效率之间权衡的设计选择。存在可以通过其来实现本文所描述的处理和/或系统和/或其他技术的各种手段(例如硬件、软件和/或固件),并且优选的手段将随着所述处理和/或系统和/或其他技术所部署的环境而改变。例如,如果实施者确定速度和精确度是最重要的,实施者可选择主要为硬件和/或固件的手段;如果灵活性是最重要的,实施者可以选择主要是软件的实施方式;或者,同样也是选地,实施者可以选择硬件、软件和/或固件的一些组合。
前面的详细描述已经通过使用框图、流程图和/或示例阐述了设备和/或处理的各个实施例。在这些框图、流程图和/或示例包含一项或多项功能和/或操作的程度上,本领域技术人员将理解的是,可以通过各种各样的硬件、软件、固件或几乎其任意组合来单独地和/或共同地实现这些框图、流程图或示例内的每项功能和/或操作。在一个实施例中,本文所描述的主题的多个部分可经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成形式来实现。然而,本领域技术人员将理解的是,在本文公开的实施例的一些方案可以整体地或部分地在集成电路中等效地实现为:在一个或多个计算机上运行的一个或多个计算机程序(例如,实现为在一个或多个计算机系统上运行的一个或多个程序)、在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序)、固件、或几乎任何组合,并且将认识到,根据本公开内容,设计电路和/或编写用于软件和/或固件的代码将完全落在本领域技术人员的技能范围内。另外,本领域技术人员将理解的是,本文所描述的主题的机制能够作为程序产品以各种形式被分发,并且本文所描述的主题的示例性实施例都适用,而不论实际上用于实施分发的信号承载介质的特定类型如何。信号承载介质的示例包括但不限于以下:可记录型介质,诸如软盘、硬盘驱动器、CD、DVD、数字带、计算机存储器等;以及传输型介质,诸如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。
本领域技术人员将理解的是,在本领域内常见的是以本文阐述的方式来描述设备和/或处理,此后利用工程实践将这些所描述的设备和/或处理集成到数据处理系统中。也即,本文所描述的设备和/或处理的至少一部分可以通过合理量的实验集成到数据处理系统中。本领域技术人员将理解的是,典型的数据处理系统通常包括如下中的一种或多种:系统单元壳体,视频显示设备,诸如易失性和非易失性存储器的存储器,诸如微处理器和数字信号处理器的处理器,诸如操作系统的计算实体、驱动器、图形用户接口和应用程序的计算实体,诸如触摸板或触摸屏的一个或多个交互设备,和/或包括反馈回路和控制电机(例如用于感测位置和/或速度的反馈;用于移动和/或调整部件和/或数量的控制电机)的控制系统。典型的数据处理系统可利用任何适合的商业可用部件来实现,诸如在数据计算/通信和/或网络计算/通信系统中典型地提供的那些组件。
本文所描述的主题有时示出包含在不同的其它部件中的或与不同的其它部件连接的不同部件。应理解的是,这些所描绘的体系结构仅是示例性的,并且实际上可以实施实现相同功能的许多其它体系结构。在概念意义上,实现相同功能的任何部件布置是有效地“关联的”,使得实现期望的功能。因此,在本文被组合以实现特定功能的任何两个部件可视为彼此“关联”以使得实现期望功能,不论体系结构或中间组件如何。同样,任意两个如此关联的部件还可视为彼此“可操作地连接”、或“可操作地耦合”以实现期望的功能,并且能够如此关联的任意两个部件还可视为彼此“能够可操作地耦合”以实现期望功能。能够可操作耦合的具体示例包括但不限于能够物理上配对和/或物理交互的部件和/或能够无线交互和/或无线交互的部件和/或逻辑上交互和/或能够逻辑上交互的部件。
关于本文中实质上任何复数和/或单数术语的使用,本领域技术人员能够根据上下文和/或应用适当地从复数变换成单数和/或从单数变换成复数。为了清晰的目的,本文中可以明确地阐明了各种单数/复数置换。
本领域技术人员将理解,一般地,本文所使用的术语,尤其是随附权利要求(例如,随附权利要求的主体)中所使用的术语,通常意在为“开放式”术语(例如,术语“包括”应当解释为“包括但不限于”,术语“具有”应解释为“至少具有”,术语“包含”应解释为“包含但不限于”,等等)。本领域技术人员还将理解,如果意图表达引导权利要求记述项的具体数量,则这样的意图应该明确地记载于权利要求中,如果没有这样的记载,则这样的意图不存在。例如,为辅助理解,下面的随附权利要求可能包含了引导性短语“至少一个”和“一个或多个”的使用以引导权利要求记述项。然而,这种短语的使用不应解释为暗指不定冠词“一”或“一个”引导权利要求记述项将包含该所引导的权利要求记述项的任何特定权利要求局限于仅包含一个该记述项的实施例,即使当同一权利要求包括了引导性短语“一个或多个”或“至少一个”以及诸如不定冠词“一”或“一个”的(例如,“一”和/或“一个”应当解释为表示“至少一个”或“一个或多个”);这同样适用于对于用于引导权利要求记述项的定冠词的使用。另外,即使明确地记述了被引导的权利要求记述项的具体数量,本领域技术人员将理解到这些记述项应当解释为至少表示所记述的数量(例如,没有其它修饰语的裸记述“两个记述项”表示至少两个记述项或两个以上的记述项)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。此外,在使用类似于“A、B和C等中的至少一个”的惯用法的那些实例中,通常这样的构造旨在表达本领域技术人员理解该惯用法的含义(例如,“具有A、B和C中的至少一个的系统”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等等的系统)。本领域技术人员将进一步理解,表示两个或多个备选术语的几乎任何转折词和/或短语,无论是在说明书、权利要求或附图中,都应理解为设想包括一项、任一项或两项的可能性。例如,术语“A或B”将理解为包括“A”或“B”或“A和B”的可能性。
本领域技术人员将理解的是,出于任何以及全部的目的,诸如在提供所撰写的说明书方面,本文所公开的全部范围也涵盖了任何和全部的可能的子范围及其子范围的组合。能够容易地认识到,任何所列范围都充分地描述了同一范围并且使同一范围分解成至少均等的两半、三份、四份、五份、十份等等。作为非限制示例,本文所论述的每个范围能够容易地分解成下三分之一、中三分之一和上三分之一,等等。本领域技术人员还将理解的是,诸如“多达”、“至少”等所有的言词包括所记述的数量并且是指如上文所论述的随后能够分解成子范围的范围。最后,本领域技术人员将理解的是,范围包括每个独立的成员。因此,例如,具有1-3个单元的组是指具有1个、2个或3个单元的组。类似地,具有1-5个单元的组是指具有1个、2个、3个、4个、或5个单元的组,等等。
从上文中,应当理解的是,出于说明性的目的本文已经描述了本公开的各个实施例,并且可以在不脱离本公开的范围和精神的情况下,进行各种修改。相应地,本文所公开的各个实施例并不意在限制,其中真实的范围和精神通过随附的权利要求表示。

Claims (21)

1.一种用于抵抗对缓存的攻击的方法,所述方法包括:
在计算设备上执行多个虚拟机;
指定所述计算设备的缓存的一部分作为安全缓存区域;
将所述安全缓存区域分配给所述多个虚拟机中的一个虚拟机;
响应于来自于所述多个虚拟机中的所述一个虚拟机的存储数据的请求,将从所述多个虚拟机中的所述一个虚拟机接收的所述数据存储在所述安全缓存区域中;以及
继从将所述数据存储在所述安全缓存区域中开始经过一定时间量之后:
删除存储在所述安全缓存区域中的所述数据,
禁止所述多个虚拟机中的所述一个虚拟机在特定时间段内使用所述安全缓存区域,
识别在所述特定时间段期间在所指定的所述安全缓存区域中执行的一个或多个未被授权的活动,以及
对所述多个虚拟机中的、执行识别出的所述一个或多个未被授权的活动的一个或多个虚拟机实施安全措施。
2.根据权利要求1所述的方法,其中所述时间量被随机确定。
3.根据权利要求1所述的方法,还包括在所述指定之前,清除先前存储在所述缓存的所述一部分中的数据。
4.根据权利要求1所述的方法,其中所述安全缓存区域小于基于所述缓存的尺寸和所述多个虚拟机的数量确定的最大尺寸。
5.根据权利要求1所述的方法,其中所述安全措施包括关闭所述多个虚拟机中的、执行识别出的所述一个或多个未被授权的活动的所述一个或多个虚拟机。
6.根据权利要求5所述的方法,还包括在关闭所述多个虚拟机中的所述一个或多个虚拟机之前,对所述一个或多个未被授权的活动进行故障排除。
7.根据权利要求1所述的方法,还包括在特定周期期间删除存储在所述安全缓存区域中的所述数据至少一次。
8.一种攻击检测系统,包括:
数据清除器,其被配置为继从将数据存储在缓存的安全缓存区域中开始经过随机时间量之后,清除存储在所述安全缓存区域中的所述数据,其中所述数据与多个虚拟机中的一个虚拟机相关联;
阻断模块,其被配置为禁止所述多个虚拟机中的所述一个虚拟机在特定时间段内使用所述安全缓存区域;
敌意活动追踪器,其被配置为识别在所述特定时间段期间在所述安全缓存区域中执行的一个或多个未被授权的活动;以及
安全模块,其被配置为对所述多个虚拟机中的、执行所述一个或多个未被授权的活动的一个或多个虚拟机实施安全措施。
9.根据权利要求8所述的系统,还包括虚拟机管理器,其被配置为清除先前存储在所述安全缓存区域中的数据。
10.根据权利要求8所述的系统,其中所述安全缓存区域小于基于所述缓存的尺寸和所述多个虚拟机的数量确定的最大尺寸。
11.根据权利要求9所述的系统,其中所述安全措施包括关闭所述一个或多个虚拟机中的、执行所述一个或多个未被授权的活动的至少一个虚拟机。
12.根据权利要求8所述的系统,其中所述安全缓存区域包括多条缓存线,其中每条缓存线与记录在每条缓存线中执行的活动的计数的最近最少使用计数器相关联。
13.根据权利要求9所述的系统,其中所述虚拟机管理器还被配置为在特定周期期间删除存储在所述安全缓存区域中的所述数据至少一次。
14.根据权利要求11所述的系统,其中所述虚拟机管理器被配置为在所述安全模块关闭所述一个或多个虚拟机中的至少一个虚拟机之前,执行故障排除。
15.一种存储可执行指令的计算机可读介质,所述可执行指令在被执行时使得一个或多个处理器来执行包括如下的操作:
在计算设备上执行多个虚拟机;
指定所述计算设备的缓存的一部分作为安全缓存区域;
将所述安全缓存区域分配给所述多个虚拟机中的一个虚拟机;
响应于来自于所述多个虚拟机中的所述一个虚拟机的存储数据的请求,将从所述多个虚拟机中的所述一个虚拟机接收的所述数据存储在所述安全缓存区域中;以及
继从将所述数据存储在所述安全缓存区域中开始经过一定时间量之后:
删除存储在所述安全缓存区域中的所述数据,
禁止所述多个虚拟机中的所述一个虚拟机在特定时间段内使用所指定的安全缓存区域,
识别在所述特定时间段期间在所指定的安全缓存区域中执行的一个或多个未被授权的活动,以及
关闭所述多个虚拟机中的、执行识别出的所述一个或多个未被授权的活动的一个或多个虚拟机。
16.根据权利要求15所述的计算机可读介质,其中,所述操作还包括在所述指定之前,清除先前存储在所述缓存中的所述一部分中的数据。
17.根据权利要求15所述的计算机可读介质,其中所述时间量被随机确定。
18.根据权利要求15所述的计算机可读介质,其中所述安全缓存区域包括多条缓存线,其中每条缓存线与记录在每条缓存线中执行的活动的计数的最近最少使用计数器相关联。
19.根据权利要求15所述的计算机可读介质,其中,所述操作还包括在关闭所述多个虚拟机中的一个或多个虚拟机之前,对所述一个或多个未被授权的活动进行故障排除。
20.根据权利要求15所述的计算机可读介质,其中,所述操作还包括在特定周期中删除存储在所述安全缓存区域中的所述数据至少一次。
21.根据权利要求17所述的计算机可读介质,其中所述安全缓存区域的最大尺寸通过使所述缓存的尺寸被所述多个虚拟机的数量均分来确定。
CN201480075448.8A 2014-03-18 2014-03-18 抵抗对缓存的攻击 Expired - Fee Related CN106462507B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/073584 WO2015139195A1 (en) 2014-03-18 2014-03-18 Countering attacks on cache

Publications (2)

Publication Number Publication Date
CN106462507A CN106462507A (zh) 2017-02-22
CN106462507B true CN106462507B (zh) 2019-10-01

Family

ID=54143628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480075448.8A Expired - Fee Related CN106462507B (zh) 2014-03-18 2014-03-18 抵抗对缓存的攻击

Country Status (3)

Country Link
US (1) US9785769B2 (zh)
CN (1) CN106462507B (zh)
WO (1) WO2015139195A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191858B2 (en) * 2015-11-25 2019-01-29 Red Hat Israel, Ltd. Virtual machine memory lock-down
US9952890B2 (en) * 2016-02-29 2018-04-24 Red Hat Israel, Ltd. Kernel state data collection in a protected kernel environment
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10261821B2 (en) * 2016-12-02 2019-04-16 Dell Products L.P. System and method to expose remote virtual media partitions to virtual machines
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
GB201708439D0 (en) 2017-05-26 2017-07-12 Microsoft Technology Licensing Llc Compute node security
CN107959824A (zh) * 2017-10-31 2018-04-24 深信服科技股份有限公司 一种监控视频处理方法、物理服务器及存储介质
US10764318B1 (en) 2017-11-30 2020-09-01 United States Automobile Association (USAA) Detection failure monitoring system
CN108667682B (zh) * 2018-03-21 2020-11-06 北京天融信网络安全技术有限公司 基于安全网关深度包检测的连接同步方法、装置及介质
JP6988863B2 (ja) * 2019-08-08 2022-01-05 横河電機株式会社 プロトコルコンバータ、データ伝送方法、データ伝送プログラム、及び、データ伝送システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549022B2 (en) * 2006-07-21 2009-06-16 Microsoft Corporation Avoiding cache line sharing in virtual machines
US7565492B2 (en) 2006-08-31 2009-07-21 Intel Corporation Method and apparatus for preventing software side channel attacks
US8516201B2 (en) * 2006-12-05 2013-08-20 Intel Corporation Protecting private data from cache attacks
US8099574B2 (en) 2006-12-27 2012-01-17 Intel Corporation Providing protected access to critical memory regions
GB2460393B (en) * 2008-02-29 2012-03-28 Advanced Risc Mach Ltd A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry
JPWO2010097933A1 (ja) * 2009-02-27 2012-08-30 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8443376B2 (en) * 2010-06-01 2013-05-14 Microsoft Corporation Hypervisor scheduler
WO2013097068A1 (en) * 2011-12-26 2013-07-04 Intel Corporation Scheduling virtual central processing units of virtual machines among physical processing units
US9015838B1 (en) * 2012-05-30 2015-04-21 Google Inc. Defensive techniques to increase computer security
WO2014061068A1 (en) * 2012-10-19 2014-04-24 Hitachi, Ltd. Storage system and method for controlling storage system

Also Published As

Publication number Publication date
CN106462507A (zh) 2017-02-22
WO2015139195A1 (en) 2015-09-24
US20160246961A1 (en) 2016-08-25
US9785769B2 (en) 2017-10-10

Similar Documents

Publication Publication Date Title
CN106462507B (zh) 抵抗对缓存的攻击
US11121853B2 (en) Techniques for preventing memory timing attacks
CN106326743B (zh) 用于虚拟机中的恶意软件检测的方法和系统
CN105917345B (zh) 虚拟机之间的边信道攻击的检测
Baek et al. SSD-insider: Internal defense of solid-state drive against ransomware with perfect data recovery
US11341237B2 (en) Anomaly detection for computer systems
CN109711158A (zh) 基于设备的反恶意软件
CN103946855B (zh) 用于检测面向返回编程攻击的方法、装置和系统
CN105723348B (zh) 使用事务性存储器检测未授权存储器修改及访问
Irazoqui et al. MASCAT: Stopping microarchitectural attacks before execution
CN106682495A (zh) 安全防护方法及安全防护装置
CN104160404A (zh) 基于沙箱使用来检测、执行和控制访问权限
CN103339606B (zh) 用于并发软件环境的活动记录系统
CN103679039B (zh) 数据安全存储方法及装置
CN110059477A (zh) 一种攻击检测方法及装置
CN110462588A (zh) 虚拟机运行跟踪
CN108509791A (zh) 检测处理器的方法、检测装置以及检测系统
CN108351938A (zh) 校验针对程序代码的一部分所计算的安全值
CN107533624A (zh) 检测和防止设备的非法使用
US20210117541A1 (en) Using trap cache segments to detect malicious processes
CN107533602A (zh) 利用资源控制器的用于写时复制的存储器控制器的配置
Sangeetha et al. An optimistic technique to detect Cache based Side Channel attacks in Cloud
WO2011156538A1 (en) Magnetic field activated intrusion detection
Brandão et al. Employment of secure enclaves in cheat detection hardening
CN106599683B (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191001

Termination date: 20200318