云服务:降低风险,保持可用性

在云环境中使用云服务安全策略保持高可用性

企业和政府机构要求云服务提供更好的安全性,从而确保连续的运营可用性。为了实现这个目标,他们需要构造用于降低风险的云服务策略。了解云服务安全性以及如何降低云服务的风险,从而确保云环境中的高可用性和安全性。

Judith Myerson, 系统工程师兼架构师, Bell Atlantic

Judith M. Myerson 是一位系统工程师兼架构师。她感兴趣的领域包括中间件技术、企业级系统、数据库技术、应用程序开发、网络管理、安全性和项目管理。



2011 年 5 月 17 日

根据交付模型方案(SaaS、PaaS 或 IaaS),云服务安全策略关注云安全性的不同方面:

  • 软件即服务 (SaaS) 策略主要关注对出租给消费者的应用程序的访问管理,无论消费者是个人、企业还是政府机构。黑客可能通过分配恶意实例资源的恶意软件攻击 SaaS 应用程序,策略应该降低这种风险。例如,一个应用程序允许得到授权的牙医助理在指定的办公时间段下载牙医记录,黑客可能把这个时间段恶意地改为早上很早的时候以便于攻击。
  • 平台即服务 (PaaS) 策略主要关注保护数据,以及对在整个业务生命周期中由独立软件厂商、创业企业或大企业的部门创建和驻留的应用程序的访问管理。策略应该降低僵尸网络(botnet)使用 PaaS 作为命令和控制中心直接安装恶意应用程序(比如弄乱牙医记录)的风险。
  • 基础设施即服务 (IaaS) 策略主要关注管理虚拟机,以及保护数据和管理对云环境中虚拟机底层的传统计算资源的基础设施的访问。这个策略应该实现治理框架以降低虚拟机面对的风险。僵尸网络曾经使用 IaaS 作为命令和控制中心直接恶意更新虚拟机的基础设施。

本文简要讨论云服务安全问题的重要方面,然后描述风险评估和降低风险的步骤。

云服务安全性

云服务安全性会受到以下方面的威胁:

  • 有缺陷的虚拟化系统管理程序(hypervisor)
  • 缺少阈值策略
  • 膨胀的负载均衡
  • 不安全的密码技术

我们来详细讨论每一项。

有缺陷的虚拟化系统管理程序

所有类型的云服务都在虚拟机上运行,虚拟机在底层的虚拟化系统管理程序上运行,虚拟化系统管理程序允许多个操作系统共享同一硬件主机。不同信任级别的群体访问这些服务:用户、租用者和云管理员。例如,一个租用者可能签订包含 1000 个用户许可证的合约以访问某个 SaaS。

如果虚拟化系统管理程序有缺陷或被攻破了,那么所有实例资源和数据请求队列就都暴露了。攻击者可以恶意地影响阈值策略;阈值策略用于在工作负载高峰期间监视实例资源的消耗和数据请求队列 [了解更多信息]。对虚拟机之间通信所用的内部虚拟网络的控制不够明确,难以实施安全策略。对虚拟机的网络和安全控制职责可能没有很好地分隔。

黑客可以伪装成具有管理控制权的高特权用户,控制虚拟机,然后在虚拟化系统管理程序上执行恶意程序。例如,他可以访问目录文件以及恶意地为另一个虚拟机重新分配实例资源。他可以破坏在相同虚拟机上的租用者之间隔离存储、内存和路由的机制。

黑客可以从虚拟机中重新分配的实例资源中获取还没有清除的残留数据,从中窃取敏感的信息。黑客可以利用有缺陷的系统管理程序识别健康的虚拟机的邻居并监视它们的活动。他可以进入邻居的虚拟机并在 PaaS 应用程序中添加恶意代码。

缺少阈值策略

在使用服务之前,最终用户应该评估服务提供商的安全策略。需要对比云计算与内部环境的安全状况,确保云服务安全策略包含 实例资源、用户和数据请求阈值策略。

资源阈值策略用于监视在工作负载高峰期间额外消耗的实例资源量。用户阈值策略检查同时登录和退出云服务的用户数量,以及用户数量是否正在接近许可证指定的最大用户数量。

如果不建立这些策略,会有以下风险:

  • 如果没有资源阈值策略,就无法知道实例资源是否达到总容量,这会导致云服务提供商在不发出警告的情况下关闭服务。
  • 如果没有用户阈值策略,就无法知道当前的用户数量是否接近最大数量,以及有多少用户在使用完云服务之后没有退出。黑客可以识别这些用户。
  • 如果没有数据请求阈值策略,就无法知道数据请求队列的大小。黑客可以用恶意数据请求(比如 SQL 注入的请求)淹没队列,造成这些队列达到最大容量。

膨胀的负载均衡

负载均衡用于分发实例资源和数据请求。例如,每个实例资源的负载应该不超过容量的 50%,这样如果一个实例出现故障,健康的实例可以接管失败的实例的业务事务。

每个队列的数据请求负载应该不超过队列容量的 50%,这样如果一个队列出现故障,健康的队列可以接管原本发给失败的队列的数据请求。

如果虚拟机中的恶意软件破坏了实例资源的负载均衡,就可以用恶意事务淹没这些资源,导致每个资源达到容量的 100%。

不可能把业务事务从失败的资源实例转移到健康的实例。膨胀的负载均衡无法实现故障转移机制,比如实例资源或负载共享冗余。

不安全的密码技术

需要用某种形式的加密技术保护数据的机密性和完整性。即使数据不是敏感数据或个人数据,在云中传输和操纵数据时也应该用密码技术加以保护。

黑客可以利用密码分析技术或恶意的实例资源破解密码算法。他们可以寻找密码算法中的缺陷,然后恶意修改它们,让强的加密算法变弱。

黑客还可以查明密码算法的最新版本,然后在自己的计算机上执行反向工程以了解算法的工作过程。


降低云服务的风险

可以按经济有效的方式通过应用安全控制降低风险,从而降低黑客攻破资产的漏洞并威胁到实现的可能性。

在尝试降低风险之前,需要识别要保护的资产。最简单的风险评估过程如下:

  1. 识别资产
  2. 分析风险
  3. 应用安全对策
  4. 执行运行后或事件后评估

要记住的关键概念是,在任何阶段都可以再次执行前面的步骤,从而加入新增的或原来没有发现的变量。

首先识别资产 — 硬件、软件、网络组件、个人、用户、文档和设备;这些和其他资产是云服务的直接组成部分。在识别资产之后,尝试分析风险;在此期间,如果发现遗漏了某些资产,随时可以重复第一步以更新资产集,然后重复第二步。

如果在执行第三步(应用安全对策)期间发现没有考虑到某些风险,可以返回到第二步,分析这些风险,判断每个风险的潜在损失或发生的可能性。可以从第三步返回到第一步以更新要保护的资产集。

在第四步中,定期地重新评估风险,因为新的风险、安全控制措施、基础设施技术和法律会影响安全状况。

我们来详细讨论每个步骤。

步骤 1. 识别资产

云消费者和提供商需要识别硬件和软件资产,估算更换每个资产的成本。他们应该维护并定期更新资产集,当出现组织重组、能源效率更高的技术、更好的故障转移机制和新的数据私密性法律时,资产集可能会发生变化。

当使用 PaaS 模型和 IaaS 模型时,消费者有更多的控制能力,但是如果向 SaaS 提供商租用服务,消费者需要识别的硬件和软件资产要少得多。

现在,看看对于每个云服务类型需要识别的资产。

SaaS 资产
因为云消费者具有的控制能力只是从他的桌面、笔记本电脑或移动设备访问应用程序,所以他需要识别的资产只有移动设备操作系统、应用程序和默认程序。因此,把设备资产集限制为使用 SaaS 所需的程序是很重要的。把个人使用的程序(比如下载的游戏)与访问 SaaS 所需的程序放在同一设备上是不合适的。

云提供商至少应该控制以下资产:

  • 操作系统
  • 硬件
  • 网络基础设施
  • 访问管理应用程序
  • 实例资源
  • SaaS 应用程序升级和补丁

消费者不负责识别它们。

PaaS 资产
云消费者需要识别的资产就是他们能够控制的资产:平台的整个业务生命周期中的所有应用程序(例如电子表格、文字处理、备份、帐单、工资处理、发票处理)。

在 PaaS 模型中,云提供商至少应该控制以下资产:

  • 操作系统
  • 硬件
  • 网络基础设施
  • 实例资源

云消费者不负责识别这些资产。

IaaS 资产
云消费者需要识别的资产就是他们能够控制的资产:操作系统、网络设备以及在虚拟机级部署的应用程序。消费者可以增加或减少实例资源和虚拟服务器的数量或存储区域块。

云消费者无法控制基础设施和底层组件。提供商需要识别这些资产。

步骤 2. 分析风险

风险就是黑客利用云服务的漏洞可能导致的损失或发生这种情况的可能性。如果不应用经济有效的对策,云服务就很容易受到漏洞的影响,黑客可能利用漏洞发起攻击。

风险可能给资产带来的损失取决于风险对每个资产的影响(例如,对于总是可用的文档资产,没有影响;对于云环境中的实例资源资产,如果没有足够的保护措施,影响可能非常大)。风险可能给资产带来的损失还取决于威胁出现的频繁程度。

如何利用漏洞
我们通过一个简单的示例看看黑客如何综合利用以下漏洞发起对实例资源资产的攻击。这些漏洞是:

  • 应用程序缺少阈值模块
  • 在实例资源中残留的数据
  • 在虚拟化网络中基于网络的控制不足
  • 对特权用户的监视不足

好的应用程序划分为模块,模块相互交互以执行一个或一系列任务;这意味着开发人员很容易通过重用现有模块或添加新模块修改应用程序。如果应用程序缺少阈值模块(它设置实例资源的最大容量和数据请求的数量),消费者和提供商就无法知道实例资源或数据请求是否已经达到限制。他们无法知道黑客是否在驻留健康虚拟机的物理服务器上创建了恶意虚拟机,等他们发现时已经太晚了(例如已经发生了拒绝服务攻击)。黑客可以用恶意实例资源和恶意数据请求淹没恶意虚拟机的邻居,由此实现拒绝服务攻击。他们诱使受害者增加虚拟机数量,直到达到物理服务器的最大容量。

如果以前分配的实例资源在没有完全清除数据的情况下重新分配给相同或不同的用户,就会出现残留的数据。实例资源包括内存、缓存、进程、会话、阈值和存储资源。黑客可以在实例资源中寻找受害者的个人信息。

如果网络级的安全控制在 IaaS 网络基础设施中无效,就会出现在虚拟化网络中基于网络的控制不足。这会限制得到授权的管理员对基础设施的访问。IaaS 管理员无法在虚拟网络中应用基于 IP 的网络分段等标准控制措施,黑客可以利用这一情况。IaaS 提供商可能不允许基于网络的漏洞扫描,因为他们无法区分善意的网络扫描和攻击活动。区分真实网络与虚拟网络上的通信流的控制也不足(例如,同一服务器上的系统管理程序上两个或更多虚拟机之间的通信)。

如果提供商对黑客的恶意活动没有进行足够的监视,就会出现对特权用户的监视不足。在这种情况下,黑客可能伪装成具有管理访问权的特权用户,从系统管理程序获得对虚拟机的访问权。例如,具有这种访问权的黑客可以创建恶意的实例资源和数据请求队列,而提供商无法发现他们在做什么。另一个示例是把健康虚拟机的实例资源恶意地重新分配给另一个虚拟机。

对漏洞的严重性进行分级
当然,您必须开发自己的分级系统,对不同类型的漏洞的潜在损失进行分级。我按照以下优先级对各种漏洞的潜在损失进行分级:

  • 黑客如何进入
  • 他在寻找什么
  • 他有什么工具

例如,黑客可以伪装成具有管理访问权的特权用户进入系统并执行恶意操作,而真正的系统管理员不会马上注意到。黑客还可以通过发送 SQL 注入找到文件名,然后寻找这些文件中的残留数据。

黑客进入虚拟机之后,他可以使用黑客工具启动恶意的网络扫描攻击活动,并把这些活动伪装成善意的网络扫描。攻击活动包括列出每个应用程序中的模块。如果黑客发现应用程序没有包含阈值模块,就可以通过使用或创建工具分配实例资源,直到达到最大容量。

步骤 3. 应用安全对策

安全评估的下一步在概念上相当简单,但是与许多事情一样,真正做起来有点儿困难 — 判断降低风险的对策是否经济有效,即实现对策的好处是否超过成本。应该降低黑客利用漏洞的可能性,同时提高 ROI。

有一点很重要:如果发现对策不是经济有效的,那么仍然会残留一些风险,无法降低这些风险。您需要学会承受它们,而不是花更多的钱解决它们。这是风险评估和应对中最不容易让人接受的概念之一:降低某些风险的成本太高,与它提供的好处相比不值得。

但是,如果有过多残留的风险 而且经济有效的对策太少,由于几个原因您应该重复风险评估步骤:

  • 如果这是您在风险评估和应对方面最初的尝试之一,您可能希望重复风险评估步骤,以此提高识别资产、分析和了解风险以及判断对策的广度和深度及应用方法的技能。
  • 还希望随时关注经济有效的新对策和云基础设施技术。
  • 另外,如果购买保险比实现对策便宜的话,应该考虑通过购买保险转移一些残留的风险。

本文中提到的示例可以采用以下对策:

  • 确保建立实例资源、用户和数据请求阈值策略。
  • 在重新分配实例资源之前,彻底清除其中的残留数据。
  • 实现故障转移机制、业务连续性和灾难恢复计划。
  • 监视特权用户;检查这些用户的背景和登录活动,监视物理服务器、网络和其他基础设施组件的状态。
  • 向消费者和提供商说明降低风险的对策的好处。

步骤 4. 执行后期评估

应该每三年进行一次风险评估。如果出现以下情况,可能需要更频繁地重新评估风险:

  • 出现了新的云服务技术,它们可能影响软件、硬件和网络资产。
  • 出现了新漏洞和新威胁。
  • 出现了新的对策,它们可以有效地降低以前残留的风险。
  • 想出了降低风险的新方法。
  • 组织的变化(比如合并)对所有类别的资产产生了重大影响。
  • 法律和法规出现了重大变化。

实际上,如果您负责组织的云服务的风险评估和应对,可能应该每周检查一次这些方面的信息。可以考虑通过新闻 feed 了解新的威胁和漏洞。


结束语

降低云服务的风险并保持高可用性需要前瞻性的风险计划,从而解决相关的问题,包括对于每个云类型要识别什么资产、要分析什么风险、哪些对策是经济有效的以及在降低风险之后要评估什么。开发人员、用户和业务分析师需要相互协作以降低云服务的风险。团队会发现解决这些问题会让降低云服务风险的工作容易得多。

参考资料

学习

获得产品和技术

  • 查看可以在 IBM Smart Business Development and Test on the IBM Cloud 上使用的 产品镜像

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Cloud computing, SOA and web services
ArticleID=659411
ArticleTitle=云服务:降低风险,保持可用性
publish-date=05172011