以函数为目标的虚拟机切换的制作方法_2

文档序号:9221617阅读:来源:国知局
间356,可发生虚拟机切换,使硬件执行函数322 (在虚拟机320上)。函数306可能已经结束执行,或者可能已经因虚拟机切换而被中断。随后,在时间358,另一虚拟机切换可发生,在该时间,函数306的第二实例可被执行(或者,如果它之前被中断,则同一函数306可继续进行)。类似于时间356,函数322可能要么已经结束,要么已经被中断。在稍后的时间360,又一个虚拟机切换可发生,使硬件执行函数324。随后,在时间362,所述硬件可结束函数324的执行,并且可继续在同一虚拟机320上执行函数322 (如果被中断)或者开始执行函数322的另一实例。然后,在稍后的时间364,另一虚拟机切换可发生,并且所述硬件可继续在虚拟机302上执行函数306 (如果被中断)或者执行函数306的第三实例。所述硬件然后可在时间366结束函数306的第三实例的执行,并在同一虚拟机302上开始执行函数308。
[0031]如示图300中所描绘的,在一些情况下,可在单个函数的执行之间或单个函数的执行期间发生虚拟机切换。在这些情况下,攻击者可能能够收集关于这些单个函数的时序信息。例如,假设虚拟机320 (以及函数322和324)与攻击者相关联。攻击者可能随后能够得到关于虚拟机302上的函数306的时序信息(例如,它执行花费了多久)。例如,攻击者可能能够测量从在时间356结束执行函数322和在时间360开始执行函数324所经过的时间。随着时间的过去,攻击者可能能够收集到损坏函数306正处理的数据的足够的时序信息统计。例如,如果函数306与密码算法或密钥相关联,则攻击者可能能够使用收集的数据来确定与该密码算法/密钥相关联的性质,从而损坏该密码处理。
[0032]图4说明本文中所述的至少一些实施例布置的、用于实现以函数为目标的虚拟机切换的示例处理。
[0033]如示图400中所描绘的,用于实现以函数为目标的虚拟机切换的处理可从操作402开始,在操作402中,VMM对将受到保护的运行处理(或将被执行的处理)进行概要分析。在一些实施例中,概要分析可涉及识别与运行处理相关联的特定函数、函数流程(例如,函数彼此之间如何转变)和函数时序。所识别的函数流程可包括函数路径、函数转变、函数转变的概率、和/或关于函数在运行处理中彼此如何相关的其它信息。例如,如果在虚拟机302上执行的处理被概要分析,则所识别的函数流程可示出:函数304可转变到(或调用)函数306、308和/或310。类似地,函数306可转变到它本身或转变到函数308。所识别的函数时序可指示每个函数在运行处理期间通常操作的(绝对的或相对的)时间量。例如,所识别的函数时序可指示特定函数运行给定持续时间中的特定时间量(例如,Ims中的100 μ s)或该时间的特定比例(例如,该时间的10% )。
[0034]随后,在操作404中,可使用在操作402中收集的信息来构建概率表。在一些实施例中,概率表可包括关于与运行处理相关联的单个函数和特定函数在给定时间被执行的概率的信息。
[0035]在下一个操作406中,可选择在操作404中构建的概率表中的一个或多个目标函数供VMM进行VM切换概率调整。在一些实施例中,所选目标函数可以是被视为最易于攻击或最抗攻击的那些函数。例如,这些函数可基于列出最易于攻击或最抗攻击的函数的脆弱性表来选择。在一些实施例中,脆弱性表可由运行处理的所有者提供。脆弱性表还可(可改为)通过针对具有特定格式的函数(例如,密码函数)和/或当高值数据(例如,信用卡数据)被处理时执行的函数监视运行处理来构造。
[0036]—旦如上所述那样已经选择了目标函数(一个或多个),就可提高与所选函数相关联的虚拟机切换概率。在一些实施例中,如果VM切换是随机的,则与目标函数相关联的VM切换概率可与该函数的执行概率相关。提高该函数的VM切换概率可使得该函数的执行概率向攻击者隐藏,或者至少使攻击者花费更多的时间来收集时序信息。在一些实施例中,可改为降低函数的VM切换概率。
[0037]在一些实施例中,VM切换概率调整可基于期望的概率改变速率。该速率可由处理所有者、数据中心VMM或任何其它合适的实体选择,并且可基于攻击者收集统计上足够的用于攻击的时序信息可能所需的时间。在一些实施例中,表示期望的概率改变速率的缓慢变化时序输入可用于根据时间函数调整VM切换概率。例如,缓慢变化时序输入可包括具有满足期望的概率改变速率的最小导数的非周期性伪随机函数。
[0038]一旦目标函数(一个或多个)已经被选择并且适当的VM切换概率已经被调整,VMM就可针对目标函数(一个或多个)来监视运行处理。如果在操作408检测到目标函数,则可确定该目标函数是否已经达到了在操作406中确定的VM切换概率目标。如果没有达到所述VM切换概率目标,则可在操作414执行VM切换。VM切换可在目标函数正在执行的同时或者在目标函数已经完成执行之后发生。在一些实施例中,操作408可在它开始执行之前检测目标操作,并且VM切换也可在目标操作开始执行之前发生。如果目标函数已经达到了 VM切换概率目标,则处理可返回到操作408。
[0039]另一方面,如果在操作408尚未检测到目标函数,则可在操作410中确定是否已经达到了 VM切换窗口。VM切换窗口可被选为在VM切换之间施加最大时间,以使得由于VM切换概率调整而导致的性能降低被减小或被最小化。如果尚未达到VM切换窗口,则处理可返回到操作408。另一方面,如果在操作410中确定已经达到了 VM切换窗口,则可在操作414执行VM切换。在一些实施例中,VM切换可以切换到被配置为在与运行处理相同的硬件上执行的另一虚拟机。
[0040]在一些实施例中,上述VM切换调整处理还可与将该处理周期性地迀移到不同硬件相组合。例如,不是(或者除了 )使VM切换处理在不同硬件上的VM之间切换,而是可将同一 VM移至同一数据中心或另一数据中心处的不同硬件。这可进一步挫败攻击者收集用于边信道攻击的函数信息的能力。
[0041]图5说明根据本文中所述的至少一些实施例布置的、可用于以函数为目标的虚拟机切换的通用计算装置。
[0042]例如,计算装置500可用于执行如本文中所述的以函数为目标的虚拟机切换。在示例的基本配置502中,计算装置500可包括一个或多个处理器504和系统存储器506。存储器总线508可被用于处理器504和系统存储器506之间的通信。基本配置502在图5中通过内部虚线内那些部件而被示出。
[0043]取决于期望的配置,处理器504可以是任何类型,包括但不限于微处理器(μ P)、微控制器(μ C)、数字信号处理器(DSP)或它们的任何组合。处理器504可包括一个或多个等级的高速缓存,诸如一个等级的高速缓存存储器512、处理器核514和寄存器516。示例处理器核514可包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或它们的任何组合。示例存储器控制器518也可与处理器504 —起被使用,或在一些实施方式中存储器控制器518可以是处理器504的内部部分。
[0044]取决于期望的配置,系统存储器506可以是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或它们的任何组合。系统存储器506可包括操作系统520、虚拟机(VM)管理服务522和程序数据524。VM管理服务522可包括用于执行如本文中所述的以函数为目标的虚拟机切换的概要分析模块525和函数选择模块526。除了其它数据之外,程序数据524可包括如本文中所述的概率数据528等。
[0045]计算装置500可具有其它特征或功能以及用于促进基本配置502和任何所需的装置和接口之间的通信的附加接口。例如,总线/接口控制器530可被用来促进基本配置502与一个或多个数据存储装置532之间经由存储接口总线534的通信。数据存储装置532可以是一个或多个可移除存储装置536、一个或多个不可移除存储装置538或它们的组合。举几个例子来说,可移除存储装置和不可移除存储装置的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘装置、诸如压缩盘(⑶)驱动器或数字通用盘(DVD)驱动器的光盘驱动器、固态驱动器(SSD)和磁带驱动器。示例计算机存储介质可包括在信息存储的任何方法或技术中被实施的易失性和非易失性、可移除和不可移除的介质,诸如计算机可读指令、数据结构、程序模块或其它数据。
[0046]系统存储器506、可移除存储装置536和不可移除存储装置538是计算机存储介质的示例。计算机存储介质包括但不限于:RAM、ROM、EEPR0M、闪存或其它存储技术、CD-ROM、数字通用盘(DVD)、固态驱动器或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储器装置或可用于存储期望的信息以及可被计算装置500访问的任何其它介质。任何这样的计算机存储介质可以是计算装置500的部分。
[0047]计算装置500也可包括用于促进从各种接口装置(例如,一个或多个输出装置542、一个或多个外围接口 544和一个或多个通信装置546)到基本配置502的经由总线/接口控制器530的通信的接口总线540。示例输出装置542中的一些包括图形处理单元548和音频处理单元550,其可被配置为与诸如显示器或扬声器的各种
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1