在WindowsAzure安全最佳实践 - 第 1部分:深度解析挑战防御对策中,我介绍了威胁形势以及在您的应用程序中采用深度防御的计划。
在本部分中,我将说明 Windows Azure的安全是一项共同责任,Windows Azure为您的应用程序提供超出内部部署应用程序需求的强大安全功能。但另一方面,它也暴露了您应该考虑的其他漏洞。最后,在应用程序开发过程中,您应该积极保护应用程序的安全。
本节将概括介绍 Windows Azure提供的功能。有关详细信息,请参阅全球基础服务在线安全。全球基础服务团队提供值得信赖的可用在线服务,可为您和 Microsoft Windows Azure 带来竞争优势。
此系列文章旨在为您提供更多背景信息,让您能够编写出适用于公共云的理想应用程序。
Windows Azure如何帮助保护主机?
您可能会说“别着急 Bruce。Windows Azure 如何帮助保护主机?”
WindowsAzure安全概述全面概括了 Windows Azure提供的安全功能。该文章由Charlie Kaufman和 Ramanathan Venkatapathy撰写。它从客户和 Microsoft运营的角度分析了可用的安全功能,介绍帮助提高Windows Azure安全性的人员和流程,并简单讨论了合规性。我将总结这些功能,并建议您阅读并理解该概述以进一步深入了解。
Windows Azure 旨在将通常构成应用程序(服务器、操作系统、网络和数据库软件等)基础的大部分基础结构抽象化,让您可以专注于构建应用程序。
从表面看,您会看到基于云的计算和存储,以便您构建和管理应用程序及其相关配置。迁移到 Windows Azure的每种方式可能都要求您具有您所控制的一定程度的授权。
我将在后面的文章中介绍您应针对身份验证机制执行的一些最佳实践。
Windows Azure 必须确保客户数据的机密性、完整性和可用性,就像任何其他应用程序托管平台一样。它还必须提供透明问责,让您和他们的代理能够跟踪您自己以及 Microsoft对应用程序和基础设施的管理情况。
Windows Azure 基于客户指定的角色实例数量,为每个角色实例创建一个虚拟机 (VM),然后在这些 VM上运行角色。这些 VM反过来在专用于云中的虚拟机管理程序(Windows Azure虚拟机管理程序)上运行。
有一个 VM比较特殊:它运行一个托管结构代理 (FA)、名为根操作系统的加固操作系统。FA反过来用于管理您的应用程序和存储节点。FA由结构控制器 (FC)进行管理,位于计算和存储节点之外(计算和存储群集由独立的 FC进行管理)。
关于 Azure安全性的 10 大注意事项
Windows Azure 必须确保客户数据的机密性、完整性和可用性,就像任何其他应用程序托管平台一样。它还必须提供透明问责,让客户和他们的代理能够跟踪他们自己以及 Microsoft对应用程序和基础设施的管理情况。
关于 Azure 安全性的 10 大注意事项这篇博客文章很好地总结了这些功能:
· 内部控制流量的 SSL相互身份验证。使用 SSL保护 Windows Azure内部组件之间的所有通信。
· 证书和私钥管理。为了降低证书和私钥暴露于开发人员和管理员面前的风险,这些证书和私钥通过独立的机制安装,而非通过使用这些证书和私钥的代码安装。
· 最小权限客户软件。您和其他客户对他们的 VM没有管理访问权限,默认情况下 Windows Azure中的客户软件只能在低权限帐户下运行(在以后的版本中,客户可以选择其他权限模式)。
· Windows Azure存储中的访问控制。每个存储帐户都有一个密钥,用于控制对存储帐户中所有数据的访问。这支持以下典型情形:存储与应用程序关联,这些应用程序完全控制其相关数据。
· 隔离虚拟机管理程序、根操作系统和来宾 VM。临界边界将根 VM 与来宾 VM 隔离并将不同的来宾 VM 相互隔离,这些 VM 由虚拟机管理程序和根操作系统进行管理。
. 隔离Fabric Controllers。Fabric Controllers是Windows Azure Fabric主要部分的中心协调指挥,对它进行重要控制可以减轻对Fabric Controllers的威胁,尤其是客户应用程序内可能受影响的 FA。
· 数据包筛选。虚拟机管理程序和根操作系统提供了网络数据包筛选器,确保不可信的 VM无法产生伪造流量,无法接收发给其他 VM的流量,无法与受保护的基础结构端点直接通信,且无法发送或接收不适用的广播流量。
· VLAN隔离。VLAN用于隔离 FC 和其他设备。
· 隔离客户访问。用于管理对客户环境的访问权限的系统(WindowsAzure门户、SMAPI 等)隔离在由 Microsoft 运行的 Windows Azure 应用程序内。
· 删除数据。在适当的情况下,超过有效的数据生命周期后仍应保密。调用删除操作后,Windows Azure存储子系统将客户数据变为不可用。
重要提示:即使是最强大的可用安全控件,也不会防范获得对凭据或密钥未经授权的访问权限的攻击者。因此,凭据和密钥管理是 Windows Azure安全设计和实施的关键组成部分。
数据完整性
要将数据计算和存储工作负载外包给 Windows Azure的客户当然希望数据能免遭未经授权的更改。详情如Windows Azure安全概述中所述。但在这里我想强调几个关键点。
客户数据完整性保护的主要机制在于Fabric VM设计本身。每个 VM 连接到三个本地虚拟硬盘 (VHD)。
• D:盘包含一个来宾操作系统版本,已更新最新的相关补丁,且可供客户选择。
• E:盘包含 FC基于客户提供的数据包构建的映像。
• C:盘包含配置信息、分页文件和其他存储。
操作系统和应用程序的完整性。D:和 E:虚拟驱动器实际上为只读,因为它们的
ACL 设置为禁止
客户进程的写入权限。这种设计严格保留了基础操作系统和客户应用程序的完整性。
配置完整性。只有通过 Windows Azure门户或 SMAPI 访问他们的托管服务的授权客户才能更改配置文件。根据在安全概述中描述的内部流程,在应用程序的生命周期中,客户配置的完整性会被保护、被维护并被持久化。
存储。每个存储帐户都有两个存储帐户密钥,用于控制对该存储帐户中所有数据的访问权限,因此只要可以访问存储密钥,即可完全控制相关数据。
Fabric。Fabric本身的完整性通过引导操作得到妥善管理。
可用性
云平台提供的主要优点之一是基于使用虚拟技术达成的扩展冗余的强大可用性。
复制的数据。数据在 Windows Azure中被复制到Fabric内的三个独立节点,以将硬件故障的影响减至最低。
地域分散的数据。客户可以创建第二个用于提供热故障切换功能的存储帐户,以利用 Windows Azure基础结构的地域分散特性。您可以在 Microsoft设施之间复制和同步数据。客户也可以编写自定义角色,从存储中提取数据进行私人异地备份。
每个 VM上的来宾代理 (GA)都会监视 VM 的运行状况。
服务操作
云计算平台实际上是外包计算环境,因此它必须能够定期向客户及其指定代理演示其安全运行。Windows Azure实施多层监控、记录和报告,以向客户提供这种可见性。首先,监控代理 (MA)收集许多位置(包括
FC和根操作系统)的监控和诊断日志信息,并将其写入日志文件。最终将经过整理的一部分信息推送到预先配置的 Windows Azure存储帐户中。此外,监控数据分析服务 (MDS)是一项独立的服务,
可读取各种监控和诊断日志数据,并总结/整理信息,同时将其写入到集成日志中。
服务操作。按设计向 Windows Azure开发人员和管理员给予足够的权限,以执行指派的运营和改进服务的职责。如本文档中所述,Microsoft部署包括以下机制在内的预防、侦测和被动式控制的组合,以帮助防范未经授权的开发人员和/或管理员操作:
· 对敏感数据进行严格的访问控制
· 结合使用各种控制,从而大大增强了对恶意活动的独立检测力度
· 多层监控、记录和报告
安全响应。可将 Microsoft安全漏洞报告至Microsoft 安全响应中心或通过电子邮件发送至 secure@microsoft.com。Microsoft将按照统一流程来评估和响应通过标准流程报告的漏洞和事件。
网络。通过对发送至和来自其他网络的流量强大筛选功能将 Windows Azure内部网络隔离开来。这为高速低风险的内部网络流量提供了一个“基架”,可以防范一般的恶意活动。
物理安全。系统不会比运行系统的物理平台更安全。Windows Azure运行于地域分散的 Microsoft设施,与其他 Microsoft Online Services共享空间和设施。每个设施设计为全天候运行,并采用各种措施以防止运营因停电、物理入侵和网络中断而受到影响。这些数据中心符合有关物理安全性和可靠性的行业标准,由 Microsoft运营人员进行管理和监控。它们设计用于“熄灯”操作。
合规性
可信的第三方认证提供了一个行之有效的方式,演示我们如何保护客户数据,而不给予独立审计师团队过多的访问权限,因为这可能会威胁到整体平台的完整性。
ISO 27001
针对信息安全管理系统 (ISMS)的在线服务安全性与合规性 (OSSC)使用ISO/IEC 27001:2005信息技术 — 安全技术 — 信息安全管理系统 —要求 (ISO/IEC 27001:2005)作为基础,因为它提供了一个完善的框架,可将风险评估纳入运行云基础结构的日常运营中。(有关该标准的副本,请访问http://www.iso.org。)
Windows Azure的核心服务在成功通过英国标准协会 (BSI) 的审计之后,又通过了ISO27001认证。您可以单击此处查看 ISO 证书的详细信息,其中列出了以下范围:
MicrosoftWindows Azure的信息安全管理系统包括对计算、存储 (XStore)、虚拟网络和虚拟机服务的开发、操作和支持,符合 Windows Azure ISMS于 2011 年 9 月 28日发布的适用性声明。ISMS满足 ISO/IEC 27001:2005 ISMS要求标准的条件。
ISO认证涵盖以下 Windows Azure功能:
· 计算(包括 Web role和 Worker role)
· 存储(包括 Blobs、表和队列)
· 虚拟机(包括 VM role)
· 虚拟网络(包括 TrafficManager和 Connect)
上述功能包括 Windows Azure服务管理功能和 Windows Azure管理门户,以及用于监控、运营和更新这些服务的信息管理系统。
Microsoft全球基础服务部用于托管 Windows Azure的数据中心获得了单独的ISO 27001 认证。
了解有关 ISO 27001 认证的详细信息。查看Windows Azure 的证书。
更新:Windows Azure团队推出了 Windows Azure 信任中心,让客户和合作伙伴能够更方便地访问合规性信息。请参阅推出的 Windows Azure 信任中心。
合规性框架
Microsoft 在线服务合规性框架(合规性框架)是 OSSC 针对该需求而制定的。该合规性框架包含用于定义合规性域、确定哪些目标适用于指定的团队或资产,以及了解如何满足域控制目标的详细信息的标准方法,该框架适用于一系列指定的法规或要求。
Microsoft 承诺遵守 Microsoft在线服务合规性框架。链接中的内容更详细地介绍了合规性框架,并提供了关于如何开发合规性域,以及在特定行业标准或法规要求的背景下对其应用控制目标的示例。GFS部门的 OSSC 团队采用 Microsoft 依据多年管理安全风险的经验而制定的相同安全性原则和流程。
Safe Harbor
Microsoft Corporation签署了SafeHarbor,并承诺履行此框架下的所有义务。
地理位置选择
您可以选择数据的存储位置。您可以跨多个系统、地域和监管区域细分客户数据和处理。
Microsoft 世界各地数据中心中的数据都基于您在 Azure门户中创建存储时指定的地理位置属性。您可以主动选择监管的数据驻留的地理位置,将合规性风险降至最低。
参考
· Windows Azure 获得英国标准协会的 IS0 27001 认证
· 适用于 Microsoft 云基础结构的信息安全管理系统
· 开发 Windows Azure 应用程序的最佳安全做法。
· 网络直播:在线服务安全性和合规性:Microsoft 在线服务合规性框架。
· 白板会话:在线服务安全性和合规性:Microsoft 在线服务合规性框架。
下一篇文章
Windows Azure 安全最佳实践 - 第 3 部分:确定安全框架。这篇文章探讨了如何检查应用程序并确定攻击面。安全框架的概念是一种方法,即先查看应用程序以确定威胁和响应[MX(1] ,再开始编码。我为您提供了一些清单,您可以在构建应用程序时使用。
以下是本系列中的文章的链接:
· Windows Azure 安全最佳实践 - 第 1 部分:深度解析挑战防御对策 。
· Windows Azure 安全最佳实践 - 第 3 部分:确定安全框架。
· Windows Azure 安全最佳实践 - 第 4 部分:需要采取的其他措施。
· Windows Azure 安全最佳实践 - 第 5 部分:基于Claims的标识,单点登录。
· Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性。
· Windows Azure 安全最佳实践 - 第 7 部分:提示、工具和编码最佳实践。
本文翻译自: