虚拟机放置策略选取装置、共存攻击防御方法及虚拟机部署方法、装置与流程

文档序号:13674878阅读:659来源:国知局

本发明属于网络安全技术领域,特别涉及一种虚拟机放置策略选取装置、共存攻击防御方法及虚拟机部署方法、装置。



背景技术:

云计算平台利用虚拟化技术共享计算资源,改变了原来的计算模式,可以提高硬件资源的利用率、灵活性和可用性,已被广泛地应用于许多领域,如政务、医疗、卫生、教育、金融、国防等等。虚拟化技术将底层的物理资源抽象化,可以根据用户需求动态分配资源,不仅提高了计算能力,同时可以降低能耗。云计算环境下为了最大化底层物理平台的使用效率,通常不同用户的虚拟机需要运行在同一服务器上,彼此之间逻辑隔离开来,共享底层物理资源。

云计算平台统一管理的资源没有地域、种类和架构限制,其开放性和资源的可利用性是以往任何计算模式所无法比拟的。然而,这种资源共享的模式在提高资源利用率的同时,也给攻击者提供了便利。例如,恶意用户的虚拟机通过与目标虚拟机共存在同一个硬件服务器中,然后通过建立侧信道可以绕过虚拟机之间的逻辑隔离机制,获取目标虚拟机上的敏感信息。varadarajan等人的实验表明,即便是目前应用广泛且技术相对成熟的亚马逊ec2、谷歌gce、微软的azure等云环境,攻击者实现共存的概率也是相当高的,存在极大的安全隐患。这是因为这些厂商采用的虚拟机放置方法大多是固定、单一和静态的,恶意用户经过一定时间的探测,这些方法中的调度机制就能被逆推出来,攻击者可以提前预知云计算系统分配给目标虚拟机的位置,从而大大增加攻击成功的可能性。一旦云计算服务提供商无法保证数据的私密性、完整性,也就失去了用户基本的信任,云计算的发展将受到限制。为了抵御云计算平台中虚拟机共存攻击,保证正常用户敏感信息不泄露,研究随机、多样和动态的虚拟机放置方法具有重要的实际意义。



技术实现要素:

针对现有技术中的不足,本发明提供一种虚拟机放置策略选取装置、共存攻击防御方法及虚拟机部署方法、装置,针对现有方法中存在的固定、单一、静态等缺点,考虑调度算法逆推和放置漏洞等情形,通过动态选择相应的虚拟机放置策略,可以有效阻止云计算环境中的虚拟机共存攻击,保障共享资源的安全性和可靠性。

按照本发明所提供的设计方案,一种虚拟机放置策略选取装置,包含:策略选择模块、策略资源池和随机数生成器,其中,

策略资源池,用于放置所有可选的虚拟机放置策略;

随机数生成器,用于生成策略选择模块选取虚拟机放置策略的随机数;

策略选择模块,用于根据随机数生成器提供的随机数从策略资源池中选取作为当前虚拟机资源分配请求的虚拟机放置策略。

上述的,策略资源池中每个虚拟机放置策略均设置有对应编号。

上述的,所述的随机数生成器服从[0,1]区间均匀分布。

一种基于虚拟机放置策略动态变化的共存攻击防御方法,基于上述的虚拟机放置策略选取装置实现,实现过程包含如下内容:

a)、针对虚拟机资源分配请求,按照预先设定负载状态阈值参数集合对所有服务器进行分类;

b)、统计每个分类中所包含的服务器个数,并计算其与服务器总数的比值;将[0,1]区间划分为若干子区间;

c)、通过随机数生成器利用均匀分布随机函数生成一个[0,1]区间内的随机数,依据随机数选择策略资源池中的对应虚拟机放置策略作为当前虚拟机资源分配请求的虚拟机放置策略;

d)、依据选定的虚拟机放置策略,获取承载所述的虚拟机资源分配请求的服务器;

e)、更新相应服务器负载信息,返回a)等待接收处理新的虚拟机资源分配请求。

优选的,a)中负载状态阈值参数集合t={t1,t2,…,tm},j=1,2,…,m,t中参数的个数m取决于全部可选择虚拟机放置策略的个数。

优选的,a)中设定t中元素的个数加2等于可选虚拟机放置策略的个数,负载状态在同一个阈值区间的服务器归为一类。

优选的,a)中设定0,t1,t2,…,tm,1为一个等差数列,ti=i/(m+1),i=1,2,…,m。

优选的,b)包含如下内容:

b1)、每个分类中包含的服务器个数分别记为n1,n2,…,nm+2,其与总个数n的比值分别记为p1,p2,…,pm+2,其中,pl=nl/n,l=1,2,…,m+2;

b2)、依据则有m+2个区间:

b3)、根据m+2个区间中数据,将[0,1]区间划分为m+2个不同的子区间,并分别记为z1,z2,…,zm+2。

进一步,c)中依据随机数选择策略资源池中的对应虚拟机放置策略,包含:依据随机数所在的区间zl,l=1,2,…,m+2,选取策略资源池的第l个虚拟机放置策略。

一种虚拟机部署方法,包含:

将策略资源池中的各个策略以过滤器和称重器形式写入调度分配组件中;

根据用户需求参数,调度分配组件利用随机数生成器生成的随机数选择相应的用于执行调度算法的过滤器和称重器;

根据收集到的各物理节点资源信息,调度分配组件通过过滤器对物理节点进行过滤,并通过称重器对余下的物理节点的资源可利用情况进行加权打分,根据得分情况选取物理节点作为待部署节点;

调度分配组件通知选取的待部署节点进行虚拟机实例部署。

所述的用户需求参数,至少包含:虚拟处理器数量、内存大小和磁盘空间。

通过称重器对余下的物理节点的资源可利用情况进行加权打分,根据加权打分情况选取得分最高的物理节点作为待部署节点。

一种虚拟机部署装置,包含:放置策略写入模块,参数获取模块,放置策略选取模块,节点过滤模块,计算模块及部署模块,其中,

放置策略写入模块,用于将策略资源池中的各个策略以过滤器和称重器形式写入调度分配组件中;

参数获取模块,用户获取用户需求参数,将用户需求参数传输至调度分配组件;

放置策略选取模块,调度分配组件根据用户需求参数并利用随机数生成器生成的随机数选择相应的用于执行调度算法的过滤器和称重器;

节点过滤模块,收集各物理节点系统信息并定期报告物理节点资源可利用情况,调度分配组件根据资源可利用信息通过过滤器对物理节点进行过滤;

计算模块,调度分配组件通过称重器对过滤后余下的物理节点的资源可利用情况进行加权打分,根据得分情况选取物理节点作为待部署节点;

部署模块,调度分配组件通知选取的待部署节点进行虚拟机实例部署。

本发明的有益效果:

本发明利用所有服务器的负载信息,动态选取相应的虚拟机放置策略,可以很好解决传统方法因固定性、静态性及单一性而易于被恶意用户攻击预测相应放置策略等情形;服务器的比值信息易于计算,引入的计算量可以忽略不计,具有很强的实用价值;对共享资源的安全技术具有重要的指导意义。

附图说明:

图1为本发明中的虚拟机放置策略选取装置示意图;

图2为本发明中的共存攻击防御方法流程示意图;

图3为本发明中的虚拟机部署方法流程示意图;

图4为本发明中的虚拟机部署装置示意图;

图5为实施例中基于虚拟机放置策略动态化的共存攻击防御方法流程图;

图6为实施例中放置策略池构建及放置策略选择方法流程图;

图7为实施例中基于虚拟机放置策略动态化的共存攻击防御方法基于openstack实现框图。

具体实施方式:

为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。

云计算平台利用虚拟化技术共享计算资源,云计算平台统一管理的资源没有地域、种类和架构限制,其开放性和资源的可利用性是以往任何计算模式所无法比拟的。然而,这种资源共享的模式在提高资源利用率的同时,也给攻击者提供了便利。现有厂商采用的虚拟机放置方法大多是固定、单一和静态的,恶意用户经过一定时间的探测,这些方法中的调度机制就能被逆推出来,攻击者可以提前预知云计算系统分配给目标虚拟机的位置,从而大大增加攻击成功的可能性。鉴于此,本发明实施例提供了一种虚拟机放置策略选取装置,参见图1所示,包含:策略选择模块101、策略资源池102和随机数生成器103,其中,

策略资源池101,用于放置所有可选的虚拟机放置策略;

随机数生成器102,用于生成策略选择模块选取虚拟机放置策略的随机数;

策略选择模块103,用于根据随机数生成器提供的随机数从策略资源池中选取作为当前虚拟机资源分配请求的虚拟机放置策略。

将所有虚拟机放置策略组合成一个策略资源池,为放置策略的多样化提供支撑,策略选择模块可动态选择策略资源池中的策略。

为便于计算,策略资源池中每个虚拟机放置策略均设置有对应编号。

上述的,所述的随机数生成器服从[0,1]区间均匀分布。

基于上述的虚拟机放置策略选取装置,本发明的实施例还提供一种基于虚拟机放置策略动态变化的共存攻击防御方法,参见图2所示,包含如下内容:

001)、针对虚拟机资源分配请求,按照预先设定负载状态阈值参数集合对所有服务器进行分类;

002)、统计每个分类中所包含的服务器个数,并计算其与服务器总数的比值,并利用计算得到的比值将[0,1]区间划分为若干子区间;

003)、通过随机数生成器利用均匀分布随机函数生成一个[0,1]区间内的随机数,依据随机数选择策略资源池中的对应虚拟机放置策略作为当前虚拟机资源分配请求的虚拟机放置策略;

004)、依据选定的虚拟机放置策略,获取承载所述的虚拟机资源分配请求的服务器;

005)、更新相应服务器负载信息,返回001)等待接收处理新的虚拟机资源分配请求。

优选的,001)中负载状态阈值参数集合t={t1,t2,…,tm},j=1,2,…,m,t中参数的个数m取决于全部可选择虚拟机放置策略的个数。

优选的,001)中设定t中元素的个数加2等于可选虚拟机放置策略的个数,负载状态在同一个阈值区间的服务器归为一类。

优选的,001)中设定0,t1,t2,…,tm,1为一个等差数列,ti=i/(m+1),i=1,2,…,m。

优选的,002)包含如下内容:

b1)、每个分类中包含的服务器个数分别记为n1,n2,…,nm+2,其与总个数n的比值分别记为p1,p2,…,pm+2,其中,pl=nl/n,l=1,2,…,m+2;

b2)、依据则有m+2个区间:

b3)、根据m+2个区间中数据,将[0,1]区间划分为m+2个不同的子区间,并分别记为z1,z2,…,zm+2。

进一步,003)中依据随机数选择策略资源池中的对应虚拟机放置策略,包含:依据随机数所在的区间zl,l=1,2,…,m+2,选取策略资源池的第l个虚拟机放置策略。

为了便于说明,先引入一些符号,设云计算环境包含的服务器数n,并记第i个服务器为si,1≤i≤n,第i个服务器的负载状态为bi∈[0,1],特别地,bi=0表示该服务器处于关机或休眠状态,bi=1表示该服务器正处于满负荷工作状态。系统负载阈值参数集合t={t1,t2,…,tm},j=1,2,…,m,其中,通常m<n,t可以固定不变或按需进行调整。接收虚拟机资源分配请求后运行如下内容:

第一步,依据t将[0,1]完整划分为m+2个区间,分别是:{0},(0,t1],(t1,t2],…,(tm,1],特别地,集合{0}代表处于休眠或关机状态的服务器负载状态,服务器满负荷运行,没有多余资源接受新的虚拟机请求时,其负载状态为1,将负载状态落在一个区间内的服务器归为一类,并统计每类服务器个数,例如,若b1∈(t1,t2],b2∈(tm,1],b3∈(t1,t2],则b1和b3归为第3类,b2归为最后一类;

第二步,计算每类包含的服务器个数与总服务器数n的比值,并依据这些比值对[0,1]区间完整划分为m+2个区间,分别记为z1,z2,…,zm+2;

第三步,利用服从区间[0,1]内均匀分布的随机数生成器生成一个随机数k,依据其所处的子区间(zl,l=1,2,…,m+2)选取放置策略池中的第l个虚拟机放置策略,放置策略池至少包含m+2个不同的放置策略,常见的如轮换调度策略(依此循环选择每一个具有足够剩余资源的服务器承载虚拟机资源分配请求)、最多虚拟机调度策略(选取当前承载虚拟机资源最多且仍具有剩余资源承载新虚拟机资源分配请求的服务器)、最少虚拟机调度策略(选取当前承载虚拟机资源最少的服务器)、随机虚拟机分配策略(随机选取一个具有剩余资源承载新虚拟机资源分配请求的服务器)等等;

第四步,依据选取的虚拟机放置策略,选择相应的服务器si,只需要确定相应的服务器即可,不用完成整个虚拟机资源分配过程,具体的虚拟机资源分配操作可以其他服务进程完成;

第五步,更新所有服务器的负载信息,返回第一步等待接收或处理已在缓存队列中的新虚拟机分配请求。

利用所有服务器的负载信息,动态选取相应的虚拟机放置策略,可以很好解决传统方法因固定性、静态性及单一性而易于被恶意用户攻击预测相应放置策略的缺点,提高共享资源的安全性和可靠性,大大降低虚拟部署计算的成本。

基于上述内容,本发明实施例还提出一种虚拟机部署方法,参见图3所示,包含:

011)、将策略资源池中的各个策略以过滤器和称重器形式写入调度分配组件中;

012)、根据用户需求参数,调度分配组件利用随机数生成器生成的随机数选择相应的用于执行调度算法的过滤器和称重器;

013)、根据收集到的各物理节点资源信息,调度分配组件通过过滤器对物理节点进行过滤,并通过称重器对余下的物理节点的资源可利用情况进行加权打分,根据得分情况选取物理节点作为待部署节点;

014)、调度分配组件通知选取的待部署节点进行虚拟机实例部署。

所述的用户需求参数,至少包含:虚拟处理器数量、内存大小和磁盘空间。

通过称重器对余下的物理节点的资源可利用情况进行加权打分,根据加权打分情况选取得分最高的物理节点作为待部署节点。

基于上述的虚拟机部署方法,本发明的实施例还提供一种虚拟机部署装置,参见图4所示,包含:放置策略写入模块201,参数获取模块202,放置策略选取模块203,节点过滤模块204,计算模块205及部署模块206,其中,

放置策略写入模块201,用于将策略资源池中的各个策略以过滤器和称重器形式写入调度分配组件中;

参数获取模块202,用户获取用户需求参数,将用户需求参数传输至调度分配组件;

放置策略选取模块203,调度分配组件根据用户需求参数并利用随机数生成器生成的随机数选择相应的用于执行调度算法的过滤器和称重器;

节点过滤模块204,收集各物理节点系统信息并定期报告物理节点资源可利用情况,调度分配组件根据资源可利用信息通过过滤器对物理节点进行过滤;

计算模块205,调度分配组件通过称重器对过滤后余下的物理节点的资源可利用情况进行加权打分,根据得分情况选取物理节点作为待部署节点;

部署模块206,调度分配组件通知选取的待部署节点进行虚拟机实例部署。

下面结合附图5~7对本发明做进一步解释说明:

参见图5所示的基于虚拟机放置策略动态化的共存攻击防御:

步骤a01:针对新的虚拟机放置请求,首先按照系统预先设好的负载状态阈值参数集合t={t1,t2,…,tm},j=1,2,…,m,对所有服务器进行分类,类的个数由t中元素个数而定,而t中参数的个数取决于全部可选择虚拟机放置策略的个数,通常设定t中元素的个数加2等于可选虚拟机放置策略的个数,负载状态在同一个阈值区间的服务器归为一类,t1,t2,…,tm的具体数值视情况而定,如设定0,t1,t2,…,tm,1构成一个等差数列,则容易计算得到ti=i/(m+1),i=1,2,…,m。

步骤a02:计算每个类包含的服务器个数(分别记为n1,n2,…,nm+2)与总个数n的比值,并分别记为p1,p2,…,pm+2,即pl=nl/n,l=1,2,…,m+2。显然有可对应另外一组m+2个区间:这一比值会随着各服务器负载的变化而变化,具有一定的随机性,这样就利用这些比值将[0,1]区间划分为m+2的不同的子区间,并分别记为z1,z2,…,zm+2。

步骤a03:利用均匀分布的随机函数生成一个[0,1]区间内的随机数,依据随机数所在的区间zl,l=1,2,…,m+2,来决定下一步将要使用的放置策略,这样通过前三步共同实现虚拟机放置策略的动态化、随机化和多样化,此时,通常可以选择资源池的第l个策略作为选定的放置。

步骤a04:依据选定的放置策略,计算得到承载虚拟机资源请求的服务器,其他具体的虚拟机资源分配操作可以让专门的服务进程进行处理。

步骤a05:更新相应服务器的负载信息,等待接收或处理新的虚拟机资源分配请求,并从步骤a01重新执行。

根据虚拟机放置请求,按照系统设定负载状态阈值对所有服务器进行分类,计算各分类中所包含服务器数占所有服务节点数的比值;利用均匀分布随机函数生成的随机数所在区间动态从放置策略池中选择虚拟机放置策略;并依据选定的虚拟机放置策略选择相应的服务器,启动具体虚拟机资源分配操作,并更新对应服务器负载信息,返回根据新接收到的虚拟机放置请求重新执行,实现虚拟机放置的动态性、随机性及多样性,有效抵御云计算平台中虚拟机的共存攻击,保证用户敏感信息不泄露,提高共享资源的安全性。

参见图6所示的虚拟机放置策略池构建及放置策略选择:

步骤b01:将所有可选的虚拟机放置策略组合为一个策略资源池,如轮询、最多虚拟机、随机和最少虚拟机策略等,并对每个策略进行编号,资源池中至少包含m+2个放置策略,供策略选择模块使用,若多于m+2个放置策略,则可以动态选择其中的m+2个供策略选择模块使用,将所有放置策略组合成一个策略的资源池,为放置策略的多样化提供支撑。

步骤b02:利用服从[0,1]区间均匀分布的随机数生成器生成一个随机数,设该随机数落在子区间zl中,则策略选择模块将选择策略池中的第l个策略作为本次请求的虚拟机放置策略。

放置策略池中设有多个策略,供策略选择模块动态选取;策略选取模块利用[0,1]区间均匀分布的随机数生成器动态随机选取放置策略,实现虚拟机放置策略的动态变化,对虚拟机的共存攻击进行有效的防御。

参见图7所示的基于openstack和动态放置策略的虚拟机部署实现过程:

步骤c01:将虚拟机放置策略池中的各个策略以过滤器和称重器的形式写入到nova-scheduler组件中。

步骤c02:用户向nova-api组件发送请求,申请创建满足用户需求(包括vcpu数量、内存大小、磁盘空间等)的虚拟机实例。

步骤c03:当nova-api收到请求后,nova-api组件通过rabbitmq向nova-scheduler发送消息,然后nova-scheduler利用实施例二中的虚拟机放置策略选择方法选择相应的事先部署好的过滤器和称重器执行调度算法。

步骤c04:所有nova-compute组件根据hypervisor收集到的各物理节点的系统信息,定期报告资源可利用情况。根据报告的资源信息,nova-scheduler首先用对应的过滤器对不符合要求的物理节点进行过滤,然后基于称重器对剩余的物理节点根据其报告的资源可利用情况进行加权打分,选出得分最高的物理节点进行实例放置。

待选出物理节点后,nova-scheduler通过rabbitmq向对应物理节点上的nova-compute组件发送消息,通知其开始部署虚拟机实例。

虚拟机放置策略池以过滤器和称重器形式写入nova-scheduler,nova-scheduler通过上述的虚拟机放置策略选择方法动态随机选择相应的事先部署好的过滤器和称重器执行,解决现有云环境厂商采用虚拟机放置因固定、单一和静态等引起的信息泄露等安全问题,有效抵御云计算平台虚拟机共存攻击,通过动态随机及多样化的虚拟机放置策略,大大保证网络中共享资源的安全性,对网络安全技术推广具有重要的指导意义。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

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

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