1 介绍

云计算优点

在虚拟化和高速网络技术的推动下,云计算正在成为未来的主要计算范式。云计算的一个显著特点是效用计算模型(即现收现付模型),用户可以根据其使用情况为计算机、存储或任何资源付费,无需预先购买硬件/软件或管理IT基础设施。云提供了一种无限资源的错觉,人们可以在需要的时候利用这些资源,只受希望在租用资源上花费的金额的限制。

云计算问题

尽管有很多好处,但组织,特别是那些处理潜在敏感数据的组织,对完全接受云模型犹豫不决。问题:

  • 数据完整性

    服务提供者会正确地提供我的数据吗?

    我的数据会被损坏吗?

  • 可用性

    我可以随时访问我的数据和服务吗?

  • 安全性

  • 隐私性

  • 保密性

    敏感数据会保持机密吗?

    我的数据容易被滥用吗?由其他租户?服务提供商?

解决办法

  • 在将数据数据存储到云之前进行加密

    实现机密性和隐私性的一种明显方法是在将数据存储到云中之前对其进行适当加密。通过这种方式,数据可以抵御所有类型的攻击。虽然加密数据减轻了许多保密问题,但它也提出了一个新的挑战——如何在云中继续处理加密数据?

    在过去的几十年里,许多加密方法和信息隐藏技术被开发出来,以支持加密数据的基本计算。但是,在近期内似乎不太可能出现一个具有足够实际用途的有效的一般解决方案。

  • 本章采用的方法:提倡一种替代/补充的基于风险的观点来确保数据库查询处理的安全,**基于风险的方法控制将哪些数据和计算卸载到公共云中,以及如何表示这些数据,以控制数据暴露的风险。**风险意识计算的目标从单纯地试图最小化成本(从而最大化性能)转变为在性能和敏感数据泄露风险之间实现平衡。

开发基于风险的策略会带来的挑战

  • 考虑到数据划分、表示、暴露的同步方式,以及在公共基础设施上用户的不同信任等级,我们需要有原则的方法来评估不同选择下数据丢失的风险。已有风险模型的情况下,下一个挑战是将权衡问题建模为一个多标准优化,我们需要在性能和暴露风险之间做权衡。这类多标准问题的两个特定设置可以是

    • 优化性能,同时确保暴露风险受到限制
    • 限制策略的额外开销,同时最小化数据丢失的风险。

    这种多标准优化的解决方案将允许我们确定数据应该如何存储和计算分区,这样所提议的系统在保持性能的同时限制/最小化敏感数据的损失。

  • 评估云上软件服务的安全性。云上的安全(例如,网络攻击)取决于基础设施、平台和服务的脆弱性。因为无论底层基础设施或平台是什么,软件服务的安全性都必须得到保证,并且必须在需要大量组合的不同服务组合之间进行测试。

2 混合云

混合云是由两个或两个以上不同的云基础设施(私有、社区或公共)组成的,它们仍然是不同的实体,但通过支持数据和应用程序可移植性的标准化或专有技术绑定在一起。它们提供了可以卸载到公共云的任务的灵活性,从而提供了提高吞吐量、降低运营成本的优势,同时保持了高水平的安全性。

基于风险的数据处理方法探索了如何在混合云中控制信息暴露的风险,其中组织数据和计算跨越安全节点和非安全节点。

这听起来很像DAS(Database as a Service),DAS的数据以加密形式存储在服务器端,查询处理在加密域上完成。当处理无法在加密域中继续时,数据将被传输到安全客户机,然后安全客户机可以解密数据并继续计算。这种处理的目标是最小化客户端的工作,同时最小化数据暴露。

云设置与DAS的不同

  • 与DAS不同的是,在DAS中,客户端的资源被假定为非常有限,而在云设置中,组织实际上可能拥有大量的资源,可以满足其大多数存储和查询处理需求。例如,在云设置中,数据可能只被部分外包,例如,只有不敏感的部分数据可能保存在云上。而且,只有在查询负载达到峰值时,计算才需要卸载到云上。从安全的角度来看,这是有影响的,因为涉及敏感数据的许多处理可以在私有端完成,例如,如果查询主要涉及敏感数据,它可以在私有端执行。
  • 在DAS中,由于目标是完全外包数据和计算,因此解决方案的重点是设计在加密表示上进行计算的机制(尽管这种技术可能会产生很大的开销)。相比之下,由于在混合云环境中,由于本地计算机可能具有重要的计算能力,导致敏感数据暴露数量有限的解决方案(可能会获得显著的性能增益)将成为有吸引力。
  • DAS工作主要处理数据库查询工作负载,但在云设置中,我们可能对更通用的计算机制(即不仅仅是数据库工作负载)感兴趣。例如MapReduce (MR)框架被广泛用于云中的大规模数据分析。因此,我们可能对混合云环境中MR作业的安全执行感兴趣。

3 混合云上的风险感知数据处理

针对不同使用场景并提出不同权衡的三种不同的混合云设置:

  • 外包:组织依赖公共云来满足其IT需求,并使用其有限的私有云执行补充任务,如过滤不正确的结果或解密加密的结果。这与DAS模型相似。
  • 云爆发:组织使用他们的私有云进行开发,测试和部署应用程序,并依赖于公共云来缓解由于不可预见的情况而引起的应用程序活动的突然峰值。
  • 完全混合场景:这些公司将整个混合云视为一个大的机器集群,并愿意将混合云之间的负载不平衡保持在尽可能小的程度,以获得最佳性能。在实现这一点时,他们更喜欢在私有云中处理敏感计算,而公共端主要执行工作负载的非敏感部分。

虽然在上述每种方法中实现风险感知处理的特定技术和解决方案依赖于问题的特定实例化,但每种方法的基础是工作负载和数据划分的底层挑战。我们通过以下两个示例来说明工作负载划分的挑战。

考虑一个MapReduce (MR)作业序列。在MR中,一种用集群上的并行分布式算法处理大型数据集的编程模型,输入文件可以跨混合云存储,MR作业可以定义为在既可以在公共机器,也可以在私有机器上运行。第一个挑战是如何以一种风险有限的方式分发文件。例如,我们可以限制敏感数据的暴露,只在公共机器上存储非敏感数据。然而,这并不能完全解决问题,因为在执行过程中,敏感数据可能需要转移到公开方,从而产生暴露的可能性。因此,我们的目标是对MR作业进行划分,使这些数据分发到文件块中,以及在执行过程中稍后的变换不会导致不受约束的暴露。

作为另一个示例,现在考虑一个数据管理工作负载,其中包含一组数据库查询,希望在保证一定时间的情况下定期执行这些查询。对于给定的私有基础设施,工作负载可能太大,可以将一些查询转移到公共端。即使在这样的体系结构中,也可能存在多种选择。将整个查询转移到公共端—当然,这需要将查询执行的相应数据也转移并存储在公共端。或者,也可以使用DAS风格的查询操作符实现,通过这种实现,公共端和私有端可以合作地划分查询执行任务。无论是哪种情况下,都将会有工作负载分布挑战,来阻止无限制数据暴露。

3.1 工作负载分配准则

性能

工作负载为WWW,WWW的执行分布在私有端和公共端,相应的计算分别用WprivW_{priv}Wpriv​和WpubW_{pub}Wpub​表示。注意,WprivW_{priv}Wpriv​和WpubW_{pub}Wpub​一起执行可以实现WWW。此外,让工作负载WWW所需的数据集RRR被划分为RpubR_{pub}Rpub​和RprivR_{priv}Rpriv​,这表示公共和私有机器之间的数据划分(注意,RpubR_{pub}Rpub​和RprivR_{priv}Rpriv​可能不严格对应于分区,而且可能重叠)。数据的分区使得RprivR_{priv}Rpriv​ (RpubR_{pub}Rpub​)包含了工作负载WprivW_{priv}Wpriv​ (WpubW_{pub}Wpub​)所需的所有数据。给定WpubW_{pub}Wpub​和WprivW_{priv}Wpriv​的情况下,混合云中的数据处理体系结构的性能与的WWW的总体运行时间成正比。我们使用ORunT(W,Wpub)ORunT(W, W_{pub})ORunT(W,Wpub​)来表示性能因素。估计预期的总运行时间取决于各种因素,如工作负载WWW的特征、WprivW_{priv}Wpriv​和WpubW_{pub}Wpub​之间的控制流(例如,它们需要顺序运行还是可以并行执行)、机器/基础设施的速度、在数据需要在公共和私有机器之间转换时的网络吞吐量、数据RpubR_{pub}Rpub​的底层表示等等。

数据泄露风险

Risk(RpubRisk(R_{pub}Risk(Rpub​)是根据外包到公共云或在处理过程中暴露的数据,评估向公共云服务提供商披露敏感数据的风险。披露风险取决于多种因素:

  • 与RpubR_{pub}Rpub​包含的敏感数据项的数量成正比。RpubR_{pub}Rpub​中敏感数据项越大,Risk(Rpub)Risk(R_{pub})Risk(Rpub​)越高
  • 存储RpubR_{pub}Rpub​的表示格式(例如,加密级别)——使用不太安全的加密技术会带来更高的风险;
  • 这可能取决于敏感数据在RpubR_{pub}Rpub​中暴露的持续时间
  • 公共云对外部攻击的脆弱性——系统越脆弱,暴露风险就越高。

资源分配成本

Pricing(Rpub,Wpub)Pricing(R_{pub},W_{pub})Pricing(Rpub​,Wpub​),与在公共基础设施上存储数据和在公共机器上进行处理有关。该标准衡量将某种类型的公共云服务合并到混合云模型中所产生的财务成本(以美元为单位)。费用可分为以下两大类:

  • 预置成本:该类别衡量获取和维护私有云所产生的成本。
  • 云成本:这一类别可以进一步细分如下:
    • 弹性成本:用户只按他们使用的服务收费(即用即付)。
    • 订阅费用:定期(固定)向用户收取确定的费用。

终端用户的混合云模型实现的财务成本取决于几个因素,如数据模型/查询语言、存储表示等。一般来说,RpubR_{pub}Rpub​和WpubW_{pub}Wpub​越大,成本就越高。

以上三个因素——性能、风险和成本——提供了在混合云中比较基于风险处理的不同解决方案的主要标准。不奇怪的是,一系列可能的解决方案代表了这些因素之间的权衡。例如,以不受约束的方式无差别地将工作分配到公共机器的解决方案可能会优化性能,但从风险的角度来看,它们是次优的。同样,通过执行任何可能在私有机器上泄漏敏感数据的操作来最小化风险的解决方案,可能会严重影响性能,或者需要对私有基础设施进行大量投资,以满足应用程序的时效性目标,从而无法利用基于云的模型的优势。

基于风险的混合云处理方法允许用户以原则性的方式探索上述权衡,从而使用户能够有效地实现其性能、安全性和财务约束。例如,给定一个现有的私有云,用户可以指定他们愿意为使用公共资源而承担的成本,以及他们愿意承担的最大泄露风险。基于风险的方法可以尝试在用户指定的约束条件下优化性能。另一种表述可能是,给定理想的性能和成本约束(假设存在这种优化的可行解决方案),将披露风险降至最低。

设计这种基于风险的方法的两个主要问题是

  • 根据基于风险的方法可以修改的参数,确定上述三个标准(性能、风险、成本)的度量,例如,工作负载分配、数据分区、获取用户可能拥有的云服务(和/或私有机器)的成本约束等。
  • 设计一种原则性方法,以确定满足用户的性能、成本和风险约束的参数的最佳实例化。

估算成本、性能相对容易一些。相比之下,在给定数据表示的情况下,由于数据暴露而造成的建模风险似乎明显更复杂。一般来说,它可能需要我们建模它有多有用向对手提供的信息,它将使对手能够做什么,和/或对数据所有者的损失(例如,经济损失)进行建模泄露。

3.2 工作负载划分问题(WPP)

考虑到前一节讨论的三个因素——性能、风险、资源分配成本,我们现在可以将工作负载划分问题形式化为一个多标准优化问题,该问题选择系统参数,如工作负载和数据划分,以便同时优化三个指标。我们将该问题建模为一个约束优化问题,其中一个指标得到优化,同时确保解决方案对于用户对其他指标指定的约束是可行的。一般来说,在WPP中,用户可以指定三个约束:TIME_CONSTTIME\_CONSTTIME_CONST、DISC_CONSTDISC\_CONSTDISC_CONST和PRA_CONSTPRA\_CONSTPRA_CONST,其中

  • TIME_CONSTTIME\_CONSTTIME_CONST对应于工作负载W需要完成的最大时间
  • PRA_CONSTPRA\_CONSTPRA_CONST作为在公共云上存储和处理数据所花费的最大允许货币成本的上限
  • DISC_CONSTDISC\_CONSTDISC_CONST表示在公共云上存储敏感数据时可以承担的最大允许数据披露风险。

因此,WPP可以被指定为在混合云部署上分配工作负载WWW(隐式地分配数据集RRR),这样三个因素中的一个被最小化,其余两个受到约束。接下来,让我们探讨一下前面介绍的三种不同云设置的问题公式:

WPP对外包模式的定义

使用混合云的组织外包模式大多依赖于公有云,因为公有云的私有资源非常有限。在具有风险意识的数据处理环境中,外包模型的目的是将尽可能多的敏感计算推给私有端,同时满足特定的总体运行时间和货币成本限制。因此,在给定数据集RRR和工作负载WWW的情况下,WPP是一个优化问题,其目标是找到子集Wpub⊆WW_{pub}\sube WWpub​⊆W和Rpub⊆RR_{pub}⊆RRpub​⊆R,使总披露风险Risk(Rpub)Risk (R_{pub})Risk(Rpub​)最小化。
minimizeRisk(Rpub)subjectto(1)ORunT(W,Wpub)≤TIME_CONST(2)Pricing(Rpub,Wpub)≤PRA_CONST\mathrm{minimize}\ \ \ \ \ \ Risk(R_{pub})\\ \mathrm{subjectto}\ \ \ \ \ \ \ \ (1)ORunT(W,W_{pub})\le TIME\_CONST\\ (2)Pricing(R_{pub},W_{pub})\le PRA\_CONST minimize      Risk(Rpub​)subjectto        (1)ORunT(W,Wpub​)≤TIME_CONST(2)Pricing(Rpub​,Wpub​)≤PRA_CONST
云爆发模型的WPP定义

在云爆发模型中,最终用户更有可能通过支付最小成本在指定的时间限制内完成给定的工作负载。此外,在满足这些要求的同时,人们可能希望将WPP正式化如下:给定数据集RRR和工作负载WWW, WPP是一个优化问题,其目标是找到子集Wpub⊆WW_{pub}\sube WWpub​⊆W且Rpub⊆RR_{pub}\sube RRpub​⊆R,从而使执行WWW产生的总货币成本Pricing(Rpub,Wpub)Pricing(R_{pub}, W_{pub})Pricing(Rpub​,Wpub​)最小化。
minimizePricing(Rpub,Wpub)subjectto(1)ORunT(W,Wpub)≤TIME_CONST(2)Risk(Rpub)≤DISC_CONST\mathrm{minimize}\ \ \ \ \ \ Pricing(R_{pub},W_{pub})\\ \mathrm{subjectto}\ \ \ \ \ \ \ \ (1)ORunT(W,W_{pub})\le TIME\_CONST\\ (2)Risk(R_{pub})\le DISC\_CONST minimize      Pricing(Rpub​,Wpub​)subjectto        (1)ORunT(W,Wpub​)≤TIME_CONST(2)Risk(Rpub​)≤DISC_CONST
WPP对完全混合模型的定义

在完全混合动力设置中,主要目标是性能最大化。此外,在跨集群分配计算时,最终用户可能希望对暴露风险和金钱成本设置一个上限。给定数据集RRR和工作负载WWW, WPP可以被建模为一个优化问题,其目标是找到子集W——pub⊆WW——{pub}\sube WW——pub⊆W和Rpub⊆RR_{pub}\sube RRpub​⊆R,让WWW的整体执行时间被最小化。
minimizeORunT(W,Wpub)subjectto(1)Pricing(Rpub,Wpub)≤PRA_CONST(2)Risk(Rpub)≤DISC_CONST\mathrm{minimize}\ \ \ \ \ \ ORunT(W,W_{pub})\\ \mathrm{subjectto}\ \ \ \ \ \ \ \ (1)Pricing(R_{pub},W_{pub})\le PRA\_CONST\\ (2)Risk(R_{pub})\le DISC\_CONST minimize      ORunT(W,Wpub​)subjectto        (1)Pricing(Rpub​,Wpub​)≤PRA_CONST(2)Risk(Rpub​)≤DISC_CONST
总体工作负载执行时间ORunT(W,Wpub)ORunT(W, W_{pub})ORunT(W,Wpub​)

性能指标WPP变体要么旨在最小化给定任务工作负载WWW的总体执行时间,要么试图将其保持在一个阈值以下。假设WpubW_{pub}Wpub​中的任务在公有云上执行,那么混合云上W中的任务的执行时间可以表示为:

其中,runTx(t)runT_x(t)runTx​(t)表示任务t∈Tt\in Tt∈T在站点xxx上的估计运行时间,其中xxx是公共(x=pub)(x = pub)(x=pub)或私有(x=priv)(x = priv)(x=priv)云。任务在公共/私有机器上的运行时间本身取决于机器特征和任务。

数据泄露风险

与存储数据的公共端分区(即RpubR_{pub}Rpub​)相关的泄露风险估计如下:

其中,sens(Ri,s)sens(R_i,s)sens(Ri​,s)是数据项Ri∈RpubR_i\in R_{pub}Ri​∈Rpub​中包含的敏感值的数量,它们存储在公共云上。当然,我们使用的是一种简单的测量方法即暴露的敏感资料数目-作为上述公式中风险的量度。

资源配置成本

估算使用公共云服务的财务成本如下:

其中store(Rpub)store(R_{pub})store(Rpub​)表示在公共云上存储一个Rpub∈RR_{pub}\in RRpub​∈R子集的货币成本,freq(t)freq(t)freq(t)表示任务t∈Wt\in Wt∈W的访问频率,proc(t)proc(t)proc(t)表示在公共云上处理ttt的相关货币成本。

3.3 WPP全混合设置解决方案

在上面,我们抽象地讨论了各种混合云设置的WPP。为了使讨论更加具体,在本节中,我们将为WPP问题的一个实例化勾画一个基于动态规划的解决方案。具体来说,我们考虑了一个完全混合的云部署,它必须用于计算数据库查询的工作负载。此外,在该解决方案中,我们将做一个简化的假设,即数据都不加密地存储在私有机器和公共机器上。因此,暴露风险可以直接计算为外包给公共机器的敏感数据的数量。正如我们前面所说,WPP在完全混合的部署模型中试图找到给定数据集和工作负载的一个子集,这些子集可以被发布到公共云上。WPP问题试图通过在几种约束条件下最小化跨混合云的工作负载的总处理时间来实现这一目标。

然而,WPP可以简化为一个更简单的版本,在这个版本中,问题只试图找到WpubW_{pub}Wpub​,因为RpubR_{pub}Rpub​可以被视为等价与⋃t∈WpubbaseData(t)\bigcup\limits_{t\in W_{pub}}baseData(t)t∈Wpub​⋃​baseData(t),其中baseData(t)baseData(t)baseData(t)表示精确执行任务ttt所需的最小数据项集。换句话说,使整体性能最小化的任何其他解R′R'R′都应该是⋃t∈WpubbaseData(t)\bigcup\limits_{t\in W_{pub}}baseData(t)t∈Wpub​⋃​baseData(t)的超集,⋃t∈WpubbaseData(t)\bigcup\limits_{t\in W_{pub}}baseData(t)t∈Wpub​⋃​baseData(t)仍然是最不敏感的数据暴露和货币成本的解。也就是说,我们可以简化问题,工作负载划分好了,数据也就可以认为划分好了。

因此,WPP可以被认为是一个问题,它的目标是找到查询工作负载的子集,在不违反给定约束的情况下最小化工作负载执行时间。

为了表示WPP及其输入和约束条件,我们使用以下表示法:WPP(W,PRA_CONST,DISC_CONST)WPP(W, PRA\_CONST, DISC\_CONST)WPP(W,PRA_CONST,DISC_CONST)。我们还假设查询工作负载WWW和约束PRA_CONSTPRA\_CONSTPRA_CONST和DISC_CONSTDISC\_CONSTDISC_CONST都是预先给定的。

求解WPP的动态规划方法

给定查询工作负载子集的指数数量,我们使用动态规划的方法来寻找最佳的一个。我们现在提出算法1,它产生一组查询WpubW_{pub}Wpub​作为WPP(W,PRA_CONST,DISC_CONST)WPP(W, PRA\_CONST, DISC\_CONST)WPP(W,PRA_CONST,DISC_CONST)的解决方案。

算法1使用数据结构pubW,并经常调用标记为checkConstr的方法。这些构造的目的如下:

  • pubW[i][j][k]:该数据结构维护WPP(Wi,j,k)WPP(W^i,j,k)WPP(Wi,j,k)的公共端任务集,其中Wi=(t1,t2,...,ti)W^i =(t_1,t_2,...,t_i)Wi=(t1​,t2​,...,ti​)。假设最大可接受成本和最大披露风险分别等于jjj和kkk,该数据结构存储来自前iii个任务的查询,这些任务被选中在公共云上处理,从而最小化前iii个任务的总体响应时间。请注意,pubW[i][j][k]⊆Wi\sube W^i⊆Wi
  • checkConstr(W',j',k'):该方法返回在公共端执行W′W'W′中的查询时,是否满足货币成本限制jjj和披露风险限制kkk。特别地,该方法检查store(⋃t∈W′baseData(t))+∑t∈W′(freq(t)×proc(t))<j′store(\bigcup\limits_{t\in W'} baseData(t)) + \sum\limits_{t\in W'} (freq(t)\times proc(t)) <j'store(t∈W′⋃​baseData(t))+t∈W′∑​(freq(t)×proc(t))<j′ 与sens(⋃t∈W′baseData(t))<k′sens(\bigcup\limits_{t\in W'}baseData(t)) <k'sens(t∈W′⋃​baseData(t))<k′是否成立。

为了便于读者理解,我们提出了动态规划算法背后的概念。直观上,WPP(Wn,PRA_CONST,SENS_CONST)WPP(W^n,PRA\_CONST, SENS\_CONST)WPP(Wn,PRA_CONST,SENS_CONST)可以概括为WPP(Wi,j,k)WPP(W^i, j,k)WPP(Wi,j,k)。由于这个一般问题的解是WiW^iWi的一个子集,对于WiW^iWi最后一个任务ttt有两种可能的情况,tit_iti​要么在WPP(W’,j,k)WPP(W’,j, k)WPP(W’,j,k)的解中,要么不在。因此,这两种情况都应该仔细调查。在展开这两种情况之前,让我们通过一个例子来说明我们的算法是如何工作的。假设我们的工作负载WWW包含三个任务(即W={t1,t2,t3}W = \{t_1,t_2,t_3\}W={t1​,t2​,t3​}),需要求解WPP(W3,j,k)WPP(W^3, j,k)WPP(W3,j,k)。下面给出了关于这三个查询的详细信息。

在深入调查这两个不同的案例之前,我们需要检查将t3t_3t3​分配给公共方是否违反了任何约束。如果我们将t3t_3t3​交付给公共方,那么总体货币成本和总体披露风险将分别至少为25美元和20个敏感细胞(假设∀1<i<3,freq(i)=1)\forall 1<i<3, freq(i)=1)∀1<i<3,freq(i)=1).如果j<25j < 25j<25或k<20k < 20k<20,那么任何考虑t3t_3t3​作为公共侧查询的解都不是可行的,进而WPP(W3,j,k)=WPP(W2,j,k)WPP(W^3, j,k) = WPP(W^2,j,k)WPP(W3,j,k)=WPP(W2,j,k)。请注意,由于在私有端执行任何查询不会导致违反任何约束,因此这种情况基本上不需要进行可行性分析。现在,我们可以进入每个案例的细节。

  • 情况1

    如果t3t_3t3​运行在公共端,那么将有超过1个WPP子问题需要调查。这是由于在公共方面段可能执行的t3t_3t3​将为总货币成本价值带来至少15美元,最多25美元。在暴露风险方面,数量将在0到20个敏感细胞之间。原因是,部分(或整个)baseData(t3)baseData(t_3)baseData(t3​)可能已经部分包含在解决方案WSW_SWS​中,对于某些WPP(W2,j′,k′)WPP(W^2, j',k')WPP(W2,j′,k′)来讲,在⋃t∈WSbaseData(t)\bigcup\limits_{t\in W_S}baseData(t)t∈WS​⋃​baseData(t)之外存储baseData(t3)baseData(t_3)baseData(t3​)可能不会带来如上表所示的那么大的货币成本和披露风险。因此,为了最优地求解WPP(W3,j,k)WPP(W^3, j,k)WPP(W3,j,k),应研究其中j−25≤j≤j−15j- 25\le j\le j - 15j−25≤j≤j−15和k−20≤k≤kk- 20 \le k\le kk−20≤k≤k的WPP(W2,j,k)WPP(W2, j,k)WPP(W2,j,k)(第18-26行)。但是,通过t3t_3t3​与WPP(W2,j,k)WPP(W^2, j,k)WPP(W2,j,k)的并集形成的每个候选查询集都应该进行测试,以确保它不违反任何约束,并且在Case 1(第21行)中获得的所有解中,它是性能方面的最佳解决方案。如果它确实产生了最好的解决方案,那么它将是Case 2中的备选解决方案之一。

  • 情况2

    如果查询t3t_3t3​在私有端运行,那么WPP(W3,i,j)=WPP(W2,i,j)WPP(W^3,i, j) = WPP(W^2,i, j)WPP(W3,i,j)=WPP(W2,i,j)

在计算了两种情况下的最佳候选解决方案后,我们的算法比较了两种解决方案的总体预期运行时间,并选择最小的一个作为WPP(W3,j,k)WPP(W^3, j,k)WPP(W3,j,k)的解决方案。

上面的算法要求我们确定给定工作负载W和任意数据划分的各种成本(即暴露、金钱和查询执行)。我们注意到,在我们的模型中,所产生的公开风险只依赖于公共端分区RpubR_{pub}Rpub​,而RpubR_{pub}Rpub​又是使用给定的查询工作负载隐式定义的。但是,确定查询执行时间和成本取决于查询工作负载。它们都可以被估计为单个查询的成本之和。

实验结果

当所有计算都在私有云(private)上执行时,我们首先计算查询工作负载的运行时间。随后的实验使用这种情况作为基准,以确定早期提出的解决WPP问题的动态规划方法的性能。

动态规划方法的实验

这些实验的目的是测量动态规划方法解决WPP的性能。为了完成这些实验,我们按照以下方式改变所有考虑的参数:

  • 资源分配成本:资源分配成本在工作负载执行过程中可能发生的最大成本值的25%到50%之间变化。根据上述成本度量定义,当数据集RRR完全存储在公共云上,而整个查询工作负载在公共机器上执行时,会产生最大成本。
  • 我们定义了四种不同的总体敏感度级别:No-Sensitivity(整个数据集是不敏感的)、1% -Sensitivity、5% -Sensitivity和10% -Sensitivity(行项表的元组中的1,5和10%都是敏感的)。
  • 我们将七个不同的敏感数据暴露水平定义为0%(没有敏感数据暴露)、10,25,40,50,75和100%(所有定义的敏感数据都可能暴露)。

然后,我们计算了这三个参数的不同组合下查询工作负载的总体性能,其结果如图1所示。从图1中可以得到的第一个观察结果是,当用户愿意冒额外的风险在公共端存储更敏感的数据时,他们可以在总体执行时间上获得相当大的加速(甚至超过50%)。另一方面,图1还表明,在公共端资源上花费的货币支出大幅低,即使用户冒着额外的风险,将越来越多的敏感数据存储在公共云上(资源分配成本50%的图表显示,即使允许在公共资源上花费更多的钱,这些情况下的整体性能也相对相同,这表明仅约PRA_CONSTPRA\_CONSTPRA_CONST 50%的预算就足以提高性能节省高达50%)

图1还显示,当用户在资源分配上投入更多资金时,可以获得相当大的总体工作负载性能提升(甚至超过50%)。这是意料之中的,因为当更多的资源被分配到公共端时,我们可以更好地利用混合云提供的并行性。因此,混合云由于更多地使用固有的并行性而提高性能的直觉是正确的。最后,从图1中,我们还注意到,我们可以以相对较低的风险(≈40%)和资源分配成本(≈50%)实现查询性能的显著提高(≈50%)。

3.4 基于混合云的风险感知MapReduce

作为混合云中基于风险的数据处理的另一个例子,让我们考虑一个可能访问敏感数据的MapReduce作业。Hadoop等MR框架在大规模数据分析中广泛流行。MR编程模型使用两个函数运算符来处理数据:

MapReduce系统使用分布式文件系统(DFS)作为其底层存储机制(Hadoop使用HDFS)。主节点通过跟踪文件块如何分布在所有从节点上来管理整个文件系统。
另一方面,每个从节点上运行的进程管理该节点的存储基础设施。然后,该体系结构使用MR范式在节点集群上以并行的方式处理存储在DFS中的数据。MR框架通常由一个主服务器和几个从服务器组成。主节点负责在从节点之间调度MR作业,从节点负责执行给定的子任务。通过将其中一个节点标记为主节点
其余的节点作为从节点,可以使MR范式在混合云上工作。

4 云端软件脆弱性评估

由于基础设施、平台和应用程序的脆弱性,评估云环境下软件服务的安全性具有挑战性。最近发生的针对银行网站的拒绝服务网络攻击事件,充分说明了云计算安全风险分析的重要性。人们发现,各种云服务和公共网站托管服务受到了存在多年的恶意软件的感染。一个安全风险分析框架可以用来发现现有的漏洞,帮助组织保护自己免受网络攻击。这样的框架在云计算的背景下打开了几个挑战。复杂性的增加是因为在云环境中,软件可以实际运行的平台或基础设施可能是未知的或无法保证的。这意味着无论底层基础设施或平台如何,都必须确保软件服务的安全性,这需要大量的组合。云计算和面向服务的体系结构(SoA)环境中的另一个常见趋势是服务组合,通过组合现有服务可以快速创建新服务。同样,必须在大量平台和基础设施组合上测试组件服务的安全性级别。

在本节中,我们简要介绍一种新的云计算系统脆弱性评估框架VULCAN
VULCAN的主要设计特点之一是易于使用的界面,可用于评估基于云的系统部署的安全漏洞。另一个重要的特性是可扩展性。VULCAN框架的不同组件(即本体脆弱性评估、组件、本体知识库、语义自然语言处理器、脆弱性类指数等)可以集成到任何现有的评估框架中。同样,任何额外的安全漏洞分析组件都可以集成到VULCAN中。VULCAN有效支持:

  • 软件漏洞建模
  • 云计算和移动环境漏洞分析
  • 软件渗透工具环境
  • 通过使用本体知识库上的推理任务,从已知的漏洞中发现新的漏洞

在我们提供VULCAN组件和设计的技术概述之前,我们简要回顾了文献中开发的脆弱性评估技术和框架的最新状况。

4.1 脆弱性评估技术和工具

漏洞评估框架是一个支持一组工具的结构,该工具允许安全从业者创建和部署漏洞,以查找漏洞。例如,Mercury就是基于Android系统的评估框架之一。Mercury是一个框架,它提供了一个交互工具,允许与设备上运行的目标应用程序进行动态交互。

先前对漏洞评估的研究已经产生了一些解决方案。

漏洞分析最重要的技术之一是描述攻击图的概念,攻击图描述了攻击者利用系统漏洞达到所需状态的方式。我们在VULCAN上的工作使用本体作为根节点来发现目标系统的已知漏洞,然后为其初始化攻击图生成。

4.2 Vulcan:云计算漏洞评估框架

评估框架VULCAN的主要目的是为云环境提供完整的脆弱性评估。VULCAN基于本体脆弱性评估。利用我们的本体漏洞数据库(OVDB),对其进行了适当的云计算扩展,并提供了相应的定义。我们的框架有两个重要的特性。第一个特性是访问国家漏洞数据库(NVD)中列出的当前已知漏洞的概念化集合。第二个特点,是利用强大的本体推理能力来搜索我们的漏洞知识库。此外,还能够从特定目标系统的已知现有漏洞中发现新漏洞。Vulcan实现了从NVD数据源自动创建本体知识库的过程。为了使用关于当前已知漏洞的最新信息,我们将发现、提取它们并填充我们的OVDB的过程自动化。我们的漏洞数据源来自不同的存储库和来源,如NVD和web搜索。我们的框架也允许我们进行渗透测试。将OVDB与Metasploit辅助模块等攻击漏洞数据库进行映射。在该框架中,漏洞及其利用程序被映射在一起,提供了一个完整的渗透测试环境。

下面我们简要讨论如下图所示的VULCAN的不同组件(VULCAN架构图)。

  • NVD(National Vulnerability Database,国家漏洞数据库)

    NVD是符合SCAP标准的漏洞数据库。NVD数据库从各种相关的漏洞数据库收集漏洞信息,并将信息编译到单个数据库中。NVD数据库中的典型漏洞条目包括从适当的漏洞数据库中收集的漏洞标识符、漏洞描述、存在该漏洞的软件及其版本列表、漏洞严重性评分(CVSS)等。这些漏洞数据库是由MITRE维护的行业标准数据库。VULCAN使用NVD作为源,将漏洞信息填充到本体知识库中。

  • OKB:本体知识库(Ontology Knowledge Base)

    OKB是NVD数据库中漏洞信息的本体数据库。NVD在XML提要中提供漏洞数据库。我们从XML提要中提取漏洞信息,并填充本体知识库。NVD XML提要中的漏洞信息出现在各种标记中。这些标记中的所有信息都映射到本体中定义的各种类和属性。

  • 系统分类器

    系统分类器是提供给索引器的动态输入,索引器将对本体知识库中的类进行分类。一个示例分类包括云计算领域中的各种供应商和云计算服务的每个服务级别中的各种软件或硬件组件。我们可以提供任何我们想要的详细和深度的系统分类器。索引器将这些系统分类器作为输入,遍历本体知识库并创建索引。该索引由根据我们提供的系统分类器分组的漏洞组成。任何领域或供应商的软件或硬件更改都需要更新系统分类器并重新索引本体知识库。

  • 索引器

    Indexer是负责爬取本体知识库以创建索引的软件。SNLP模块又会根据用户的查询使用该索引来搜索本体知识库。将索引器设置为每当本体知识库和/或系统分类器更改时运行。索引器识别与系统分类器中列出的软件或硬件组件相关的所有漏洞,并在索引中对它们进行相应的分组。

  • 漏洞类索引:漏洞类索引是按系统分类器提供的类别分组的所有漏洞的列表。这些组被称为“脆弱性类”。漏洞类将帮助用户在特定域或子域内搜索漏洞。在顶层有云计算课程。云计算有一个叫做PaaS的子类,而PaaS类的子类是Xen hypervisor。在Xen类中,我们有索引器从本体知识库中提取的漏洞列表

    SNLP:语义自然语言处理器使用户能够搜索和推理漏洞。它包括各种子组件,这些子组件能够进行模式匹配、关键字搜索以及对本体知识库中类的属性和关系进行推理。SNLP从用户那里获取输入,并试图理解用户的需求。然后,根据输入,它为他提供所请求产品和/或类的漏洞列表。SNLP能够查找所请求产品的漏洞,并列出不同供应商的特定类或产品中的漏洞。它还可以分析和列出用户应用程序中使用的技术或框架的漏洞。

  • 其他组件:上面详细介绍了VULCAN的主要组件和模块,其架构的其余部分如图2所示是可定制的功能,为我们的框架提供了用于云系统测试的方法。漏洞列表由SNLP组件处理用户自然语言查询后生成。此外,攻击数据库是一个独立的攻击模块来源,在我们的案例研究中,我们利用Metasploit模块进行测试。然后,我们有我们的目标云系统,正在评估它是否容易受到前一阶段发现的漏洞的影响。

我们通过上面描述的一组相互连接的组件实现了我们的VULCAN。在OKB的实现中,我们提取NVD数据并将其存储在一个通过资源描述框架(RDF)三元组实现的图数据库中。通过我们的图形数据库,我们生成了一个本体,使我们能够执行一些推理任务,这对VULCAN中的脆弱性评估非常有用。这三个组件:分类器、索引器和漏洞类索引器共同实现了云计算的动态漏洞评估。在我们的SNLP实现中,我们依靠我们的本体知识库获取信息和我们的模块的能力来正确地获取云计算相关的搜索结果。

我们设想云计算用户、提供商和安全分析人员可以使用VULCAN功能对其云环境执行不同类型的评估。此外,我们的框架非常灵活,开发人员可以根据自己的需要创建和添加新的模块和组件来扩展它。此外,用户可以将我们的VULCAN功能集成到任何其他兼容的移动、桌面或云安全评估框架中。最终,VULCAN应该能够通过其已知的漏洞减轻当前云环境可能面临的威胁。所提出框架能够单独暴露这些漏洞,而且对于给定的云系统目标,应该能够通过执行推理任务发现新的可能的漏洞。

一个典型的用例场景是使用VULCAN组件和模块来评估一个使用Mercury Framework的android设备的漏洞:

  1. 用户提供动态输入,例如Android(该数据提供给我们VULCAN框架的系统分类器模块)和自然语言查询,例如“评估可能允许未经授权访问我的设备的漏洞?”(这个查询是在我们的VULCAN语义自然语言处理器- SNLP中处理的)。
  2. 系统分类器生成可能的基于android的解决方案,并将它们提供给Indexer模块。然后,Indexer创建相关的漏洞索引,这些索引用于从漏洞类索引模块生成漏洞组。一个名为Root Access的示例漏洞组包含这些cve-id的索引数据:CVE-2011-3874、CVE-2011-1823和CVE-2009-2692。
  3. SNLP组件将对用户查询执行推理任务,并使用创建的漏洞组数据。它将通过对话代理界面向用户返回相关结果,如存在漏洞的It产品和符合用户查询的其他必要信息。
  4. 使用我们的中间件应用程序,我们将找到的IT Products映射到一个名为Test的Mercury框架[17]模块,以检测漏洞,该漏洞允许恶意应用程序获得根访问权限,从而对目标android用户设备中的产品发起攻击。
  5. 然后,VULCAN跟踪模块有效负载的部署,并报告设备上的攻击是否成功,以及这些IT产品的测试漏洞是否仍然存在或已修复。

5 结论

在这篇论文中,我们探讨了云安全处理环境中的两个挑战。虽然云计算提供了新的机会,而且正变得越来越普遍。随着个人、服务和组织转向使用云资源,他们面临着对数据失去控制的根本挑战。此外,将处理转移到云上的关键决定取决于云基础设施本身的脆弱性。

本文介绍了我们在开发云计算漏洞评估工具方面的初步工作。本文探讨了与服务组合和软件将在其上执行的基础设施的部分知识相关的挑战。为了解决由于失去控制而引起的问题,本文探索了混合云环境下的风险感知处理模型。混合云是由两个或两个以上不同的云基础设施(私有、社区或公共)组成的,它们仍然是唯一的实体,但通过支持数据和应用程序可移植性的标准化或专有技术绑定在一起。混合云为云环境中的安全处理提供了新的机会,这样就可以控制公共机器上敏感数据的处理。这就提出了跨私有和公共机器划分工作负载和数据的基本挑战。本文将这种挑战形式化为一个多标准优化问题,并在各种混合云设置中实例化它。

此外,本文概述了两种不同设置下的解决方案方法:(a)完全混合模型,其目标是通过支付最小的性能开销来划分工作负载以满足风险和cot需求。(b)混合云上的新的风险感知MR架构,允许在执行单个MR作业时承担风险,以提高性能。本文重点介绍了在混合云模型中处理计算的新方法,并确定了在开发有效解决方案时需要解决的挑战。

面向数据机密性的云计算脆弱性分析框架相关推荐

  1. STRIDE 威胁建模:面向安全应用程序开发的威胁分析框架

    一.什么是 STRIDE 威胁建模? STRIDE 威胁模型由Microsoft安全研究人员于 1999 年创建,是一种以开发人员为中心的威胁建模方法,通过此方法可识别可能影响应用程序的威胁.攻击.漏 ...

  2. 开源开放 | 图数据交互可视化分析框架 InteractiveGraph v0.3 版本发布

    图数据交互可视化分析框架 InteractiveGraph 日前发布 v0.3 版本,下载地址:https://github.com/grapheco/InteractiveGraph/release ...

  3. 面向数据发布和分析的差分隐私保护 -- 张啸剑

    面向数据发布和分析的差分隐私保护 读这篇综述的随记 基于k-匿名或者划分的隐私保护方法,只适应特定背景知识下的攻击而存在严重的局限性.差分隐私作为一种新出现的隐私保护框架,能够防止攻击者拥有任意背景知 ...

  4. 图数据交互可视化分析框架InteractiveGraph v0.3版本发布

    图数据交互可视化分析框架 InteractiveGraph日前发布v0.3版本,下载地址:https://github.com/grapheco/InteractiveGraph/releases/t ...

  5. Splunk—云计算大数据时代的超级日志分析和监控利器

          信息科技的不断进步,一方面使得银行业信息和数据逻辑集中程度不断得到提高,另一方面又成为银行业稳健运行的一大安全隐患.Splunk作为智能的IT管理运维平台,能够帮助银行业积极迎接.应对和解 ...

  6. 什么叫大数据,与云计算有何关系

    大数据(big data),是指无法在可承受的时间范围内用常规软件工具进行捕捉.管理和处理的数据集合. 大数据的4V特点:Volume(大量).Velocity(高速).Variety(多样).Val ...

  7. 科普丨数据中心、云计算、大数据之间有什么区别和联系?

    不少人把数据中心.云计算数据中心.大数据搞混淆,觉得这三者是一样的产品,其实有显著地区别,数据中心机房是一整套复杂的设施,如今,云计算即将成为信息社会的公共资源,而数据中心则是支撑云计算服务的基础设施 ...

  8. 数据中心、云计算、大数据之间的区别与联系

    数据中心不同于大数据和云计算,很多人容易把三者混淆或者认为是同样东西,其实三者有本质的不同.数据中心机房是一整套复杂的设施,如今,云计算即将成为信息社会的公共资源,而数据中心则是支撑云计算服务的基础设 ...

  9. powerdesigner 概念模型_“使用满足”分析框架下社交媒体用户持续使用行为的概念模型研究...

    推文信息 张敏,孟蝶,张艳."使用-满足"分析框架下社交媒体用户持续使用行为的概念模型研究[J].信息资源管理学报,2020,10(01):92-101. "使用-满足& ...

最新文章

  1. 大数据驱动的运营创新和探索
  2. lg android tv画面调试,细看系统设置 功能齐全设置简单_LG 60GB7800-CC_液晶电视评测-中关村在线...
  3. Leetcode 347.前K个高频元素
  4. 大数据技术如何实现核心价值
  5. mysql+last_query_cost_辛星简译MySQL中的last_query_cost
  6. Fiddler(FD)抓包工具汉化版及使用方法
  7. 变频器调试工具:ABB Drive Composer
  8. 汉源高科2个万兆光24千兆网口万兆机架式工业交换机支持G.8032(ERPS)标准的以太环网交换机
  9. 中文字符集编码unicode,gb2312,cp936,GBK,GB18030介绍
  10. android 关闭第三方应用,Android禁用第三方应用
  11. 树莓派linux声卡设置
  12. Java组合模式(Composite)
  13. dw版权信息栏如何制作_Dreamweaver怎么制作网页模板
  14. AutoRun类型分析
  15. C语言二级必须编译吗,c语言是计算机二级吗
  16. HDU Tody HDU2112
  17. 学会计为什么要学计算机基础,会计实操为什么要学习手工做账?
  18. 10以内数的组成分解图_10以内数的组成与分解
  19. 深圳软件测试培训:刚入行的软件测试工程师如何自学软件测试?
  20. 标星 2.7w+ 堪称史上最全的微信小程序开发资源汇总

热门文章

  1. Python map() 函数 特殊用法
  2. Zbrush中常用的8种笔刷,笔刷中的八大金刚你用过几个?
  3. Linux 功能强大的 路由器,一款功能强大的路由器系统-软路由-RouterOS
  4. 萌新谈相机与IMU的标定(转载)
  5. 闲聊Robots协议
  6. 《计算机系统与维护》— CPU的主要技术指标
  7. 基于python OpenCV多边形图像识别的实现
  8. 圆桌:满足客人空座需求,准备最少的椅子,合理安排客人入座圆桌
  9. VR广告:通过“虚拟房间”广告在VR中体验Lionsgate的JIGSAW
  10. STM32驱动开发(二)--USB Device RNDIS虚拟网卡(USB2.0 基础概念讲解)