基于动态内存重映射和缓存清除的侧信道攻击防御方法及其装置与流程

文档序号:11251264阅读:503来源:国知局
基于动态内存重映射和缓存清除的侧信道攻击防御方法及其装置与流程

本发明属于网络安全技术领域,特别涉及一种基于动态内存重映射和缓存清除的侧信道攻击防御方法及其装置。



背景技术:

随着云计算产业的不断发展,云环境下的安全问题得到了广泛的关注。为了提高资源的利用率,云虚拟化技术要求不同租户共享底层的物理资源,使得一个租户可以通过探测另一个租户访问共享资源的行为特征,推测目标租户的敏感信息,实现侧信道攻击。其中,基于缓存的侧信道攻击由于实现方法多样、攻击结果可靠,带来的危害也最大。近年来,相关领域的专家研究并实现了多种缓存攻击,可以达到诸如窃取高级加密标准(aes)的加密密钥和rsa公钥加密算法的解密密钥,以及监控用户键盘操作等目的。

然而,当前针对这种攻击的防御主要依靠资源的隔离实现,虽然可以取得较好的安全性,但是这与云中资源共享的基本理念是相违背的。并且,当前提出的防御方法都是攻击无感的,不仅难以达到针对性的防御效果,而且容易造成资源的浪费。因此,急剧膨胀的云产业急需一种能够满足要求的安全解决方案,可以实时感知基于缓存的侧信道攻击,并且在尽量不影响资源共享的基础上能够实现高效的防御。



技术实现要素:

针对现有技术中的不足,本发明提供一种基于动态内存重映射和缓存清除的侧信道攻击防御方法及其装置,有效解决现有技术中因防御操作对云资源共享等问题,具有较好的防御效果。

按照本发明所提供的设计方案,一种基于动态内存重映射和缓存清除的侧信道攻击防御方法,基于虚拟机监控器和硬件多层级缓存架构实现,该方法包含如下内容:

收集虚拟机监控器上运行的虚拟机信息,该虚拟机信息至少包含每一个虚拟机所占用的物理页面,以及虚拟机提交的保护内存;同时实时监测当前发生的基于缓存的侧信道攻击,得到攻击目标信息,该攻击目标信息至少包含:被攻击的目标虚拟机、攻击频率和被攻击的缓存层;

根据收集的虚拟机信息及实时监测得到的攻击目标信息,选取防御操作,其中,所述的防御操作根据攻击目标信息中被攻击的缓存层选取缓存清除操作或内存动态重映射操作;

以攻击目标信息中攻击频率执行选取的防御操作。

上述的,根据攻击虚拟机在攻击目标虚拟机时攻击虚拟机和目标虚拟机两者访问缓存的行为相似,检测当前可能发生的基于缓存的侧信道攻击,得到攻击目标信息。

上述的,硬件多层级缓存架构包含用于缓存数据和指令的第一级缓存层,用于单核统一缓存的第二级缓存层,及用于统一共享缓存的第三级缓存层。

优选的,选取防御操作,包含如下内容:将目标虚拟机所占用的物理内存页面分为敏感页面和普通页面两类,根据攻击目标信息中被攻击的缓存层,若为第一级缓存层,则确定防御操作为缓存清洗操作,每一次目标虚拟机执行敏感操作后,随机清洗部分或全部缓存;若为第二级缓存层或第三级缓存层,则确定防御操作为内存动态重映射操作,动态随机交换敏感页面和普通页面两者之间的内存映射关系,混淆缓存行为特征和目标信息关联。

更进一步,缓存清洗操作,包含如下内容:

a1)构建缓存清洗页面集合;

a2)依次访问缓存清洗页面集合中每一个内存页面,清洗与敏感目标页面对应的缓存。

优选,a1中构建缓存清洗页面集合,包含如下内容:对于s个映射到与敏感目标页面相同的缓存位置的内存页面,随机选择w个内存页面作为该敏感目标页面的清洗页面集合,其中,s≥w,w是缓存的关联系数。

更进一步,内存动态重映射操作,包含如下内容:

b1)根据虚拟机信息中虚拟机所占用的物理页面及虚拟机提交的保护内存,定位虚拟机上存储目标信息的敏感页面,将目标虚拟机所占用的物理内存页面分为敏感页面和普通页面两类,从虚拟机监控器负责页表中随机选择两个页表项;

b2)获取所选择页表项对应的物理内存页面;

b3)清除地址翻译缓存,并禁止其他进程对页表项和对应物理内存页面的访问;

b4)交换两个物理内存页面的存储内容,并交换两个页表项内容;

b5)恢复其他进程对页表项和对应物理内存页面的访问。

优选,b1中从虚拟机监控器负责页表中随机选择两个页表项,两个页表项中:一个为敏感页面表项,另一个为普通页面表项。

一种基于动态内存重映射和缓存清除的侧信道攻击防御装置,基于虚拟机监控器和硬件多层级缓存架构实现,包含攻击检测模块、信息收集模块、防御决策模块及执行模块,其中,

攻击检测模块,用于实时监测当前发生的基于缓存的侧信道攻击,获取攻击目标信息,该攻击目标信息至少包含:被攻击的目标虚拟机、攻击频率和被攻击的缓存层;

信息收集模块,用于收集虚拟机监控器上运行的虚拟机信息,该虚拟机信息至少包含每一个虚拟机所占用的物理页面,以及虚拟机提交的保护内存;

防御决策模块,用于根据攻击检测模块获取的攻击目标信息及信息收集模块收集的虚拟机信息,选取防御操作,其中,所述的防御操作为缓存清除操作或为内存动态重映射操作;

执行模块,用于将目标虚拟机所占用的物理内存页面分为敏感页面和普通页面两类,执行防御决策模块选取的防御操作。

上述的防御装置中,所述的执行模块包含缓存清洗单元和内存动态重映射单元,其中,

缓存清洗单元,根据执行防御决策模块选取的缓存清洗操作,构建缓存清洗页面集合,并依次访问缓存清洗页面集合中每一个内存页面,清洗与敏感目标页面对应的缓存;

内存动态重映射单元,用于根据执行防御决策模块选取的内存动态重映射操作,动态随机交换敏感页面和普通页面的内存映射关系,混淆缓存行为特征和目标信息关联。

本发明的有益效果:

本发明基于虚拟机监控器实现,通过攻击检测、信息收集,决策执行,实现防御操作,并通过内存动态重映射方法,通过不断更新虚拟内存和物理内存的映射关系,混淆物理缓存访问的行为特征和目标信息之间的关联,有效防止缓存攻击;实现通过感知当前系统的安全状况,并根据感知得到的攻击频率和受攻击的缓存目标动态地确定需要执行的防御操作以及对应操作的执行频率,使得缓存攻击能够被有效防御,并且兼顾虚拟机监控器的运行效率;有针对性的进行防御,避免资源浪费,保证云计算产业的安全性,可以实时感知基于缓存的侧信道攻击,并且在尽量不影响资源共享的基础上实现高效防御。

附图说明:

图1为本发明的方法流程示意图;

图2为缓存侧信道攻击防御实现过程原理图;

图3为动态内存重映射方法流程图;

图4为缓存清洗方法流程图;

图5为本发明的装置示意图;

图6为缓存侧信道攻击防御装置原理图。

具体实施方式:

下面结合附图和技术方案对本发明作进一步清楚、完整的说明,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种基于动态内存重映射和缓存清除的侧信道攻击防御方法,基于虚拟机监控器和硬件多层级缓存架构实现,参见图1所示,该方法包含如下内容:

收集虚拟机监控器上运行的虚拟机信息,该虚拟机信息至少包含每一个虚拟机所占用的物理页面,以及虚拟机提交的保护内存;同时实时监测当前发生的基于缓存的侧信道攻击,得到攻击目标信息,该攻击目标信息至少包含:被攻击的目标虚拟机、攻击频率和被攻击的缓存层;根据虚拟机提交的保护内存范围,计算该虚拟机需要保护的目标物理页面。

根据收集的虚拟机信息及实时监测得到的攻击目标信息,选取防御操作,其中,所述的防御操作根据攻击目标信息中被攻击的缓存层选取缓存清除操作或内存动态重映射操作;

以攻击目标信息中攻击频率执行选取的防御操作。

本发明实施例提供的基于动态内存重映射和缓存清除的侧信道攻击防御方法,基于虚拟机监控器实现,通过手机虚拟机监控器上运行的虚拟机信息并实时监测当前发生的基于缓存的侧信道攻击,根据收集到的虚拟机信息及实时监测情况,动态选取防御操作,以相应的大公鸡频率进行执行,使得缓存攻击能够被有效防御,并且兼顾虚拟机监控器的运行效率,有针对性的进行防御,避免资源浪费,保证云计算产业的安全性。

为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,如图2所示,本发明实施例提供一种基于动态内存重映射和缓存清除的侧信道攻击防御方法,基于虚拟机监控器和硬件多层级缓存架构实现,硬件多层级缓存架构包含用于缓存数据和指令的第一级缓存层,用于单核统一缓存的第二级缓存层,及用于统一共享缓存的第三级缓存层,参见图2所示,该方法包含如下内容:

101、收集虚拟机监控器上运行的虚拟机信息,该虚拟机信息至少包含每一个虚拟机所占用的物理页面,以及虚拟机提交的保护内存;102、同时根据攻击虚拟机在攻击目标虚拟机时攻击虚拟机和目标虚拟机两者访问缓存的行为相似,实时监测当前发生的基于缓存的侧信道攻击,得到攻击目标信息,该攻击目标信息至少包含:被攻击的目标虚拟机、攻击频率和被攻击的缓存层。

103、根据收集的虚拟机信息及实时监测得到的攻击目标信息,选取防御操作,其中,所述的防御操作根据攻击目标信息中被攻击的缓存层选取缓存清除操作或内存动态重映射操作.。

其中,选取防御操作,包含如下内容:将目标虚拟机所占用的物理内存页面分为敏感页面和普通页面两类,根据攻击目标信息中被攻击的缓存层,若为第一级缓存层,则确定防御操作为缓存清洗操作,每一次目标虚拟机执行敏感操作后,随机清洗部分或全部缓存;若为第二级缓存层或第三级缓存层,则确定防御操作为内存动态重映射操作,动态随机交换敏感页面和普通页面两者之间的内存映射关系,混淆缓存行为特征和目标信息关联。敏感操作包含涉及目标敏感信息的操作。

更进一步,缓存清洗操作,如图4所示包含如下内容:

a1)构建缓存清洗页面集合;

a2)依次访问缓存清洗页面集合中每一个内存页面,清洗与敏感目标页面对应的缓存。

优选,a1中构建缓存清洗页面集合,包含如下内容:对于s个映射到与敏感目标页面相同的缓存位置的内存页面,随机选择w个内存页面作为该敏感目标页面的清洗页面集合,其中,s≥w,w是缓存的关联系数。利用同样的方法可以得到其他敏感目标页面的清洗页面集合。

更进一步,内存动态重映射操作,如图3所示,包含如下内容:

201)根据虚拟机信息中虚拟机所占用的物理页面及虚拟机提交的保护内存,定位虚拟机上存储目标信息的敏感页面,将目标虚拟机所占用的物理内存页面分为敏感页面和普通页面两类,从虚拟机监控器负责页表中随机选择两个页表项,如果敏感页面所占比例较大,可以进行适当调整,随机选择两个敏感页面表项;

202)获取所选择页表项对应的物理内存页面;

203)清除地址翻译缓存;

204)禁止其他进程对页表项和对应物理内存页面的访问;

205)交换两个物理内存页面的存储内容;

206)交换两个页表项内容;

207)恢复其他进程对页表项和对应物理内存页面的访问。

优选,b1中从虚拟机监控器负责页表中随机选择两个页表项,两个页表项中:一个为敏感页面表项,另一个为普通页面表项。

104、以攻击目标信息中攻击频率执行选取的防御操作。

通过内存动态重映射方法,不断更新虚拟内存和物理内存的映射关系,混淆物理缓存访问的行为特征和目标信息之间的关联,有效防止缓存攻击;实现通过感知当前系统的安全状况,并根据感知得到的攻击频率和受攻击的缓存目标动态地确定需要执行的防御操作以及对应操作的执行频率,使得缓存攻击能够被有效防御,并且兼顾虚拟机监控器的运行效率;有针对性的进行防御,避免资源浪费,保证云计算产业的安全性,可以实时感知基于缓存的侧信道攻击,并且在尽量不影响资源共享的基础上实现高效防御。

对应于上述的基于动态内存重映射和缓存清除的侧信道攻击防御方法的实施例,如图5所示,本发明实施例提供一种基于动态内存重映射和缓存清除的侧信道攻击防御装置,基于虚拟机监控器和硬件多层级缓存架构实现,包含攻击检测模块、信息收集模块、防御决策模块及执行模块,其中,

攻击检测模块,用于实时监测当前发生的基于缓存的侧信道攻击,获取攻击目标信息,该攻击目标信息至少包含:被攻击的目标虚拟机、攻击频率和被攻击的缓存层;

信息收集模块,用于收集虚拟机监控器上运行的虚拟机信息,该虚拟机信息至少包含每一个虚拟机所占用的物理页面,以及虚拟机提交的保护内存;

防御决策模块,用于根据攻击检测模块获取的攻击目标信息及信息收集模块收集的虚拟机信息,选取防御操作,其中,所述的防御操作为缓存清除操作或为内存动态重映射操作;

执行模块,用于将目标虚拟机所占用的物理内存页面分为敏感页面和普通页面两类,执行防御决策模块选取的防御操作。

具体的,如图6所示,所述的执行模块包含缓存清洗单元和内存动态重映射单元,其中,

缓存清洗单元,根据执行防御决策模块选取的缓存清洗操作,构建缓存清洗页面集合,并依次访问缓存清洗页面集合中每一个内存页面,清洗与敏感目标页面对应的缓存;

内存动态重映射单元,用于根据执行防御决策模块选取的内存动态重映射操作,动态随机交换敏感页面和普通页面的内存映射关系,混淆缓存行为特征和目标信息关联。

基于攻击虚拟机在攻击目标虚拟机时,两者访问缓存的行为是相似的原理,实时检测系统中存在的基于缓存的侧信道攻击,获取被攻击的目标虚拟机和目标缓存层,以及攻击频率;收集虚拟机监控器上运行的虚拟机的相关信息,包括该虚拟机占用的内存页面,并基于用户提交的需要保护的目标信息判断哪些是需要保护的目标页面。根据实时检测信息及收集到的信息,基于被攻击的缓存层在缓存清洗和内存页面动态重映射之间进行选择作为防御操作,基于攻击的频率选择防御操作的执行频率;选择缓存清洗操作时,利用对与目标页面映射到相同缓存位置的其他页面进行内存访问,去除敏感操作执行过程中的缓存访问痕迹;选择内存动态重映射时,交换两个内存页面对应的内容和页表内容,并且将对应的缓存(包括tlb)置于无效,混淆攻击者对于探测到的缓存访问行为和目标敏感操作之间的关联,实现较好的防御效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他科编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1