我每次与开发人员讨论将应用程序迁移到云时都围绕着两个主要问题。
1. 首先是业务。将应用程序迁移到云可以带来怎样的规模经济?
2. 其次是安全问题。“云的安全性如何,尤其是Windows Azure?Windows Azure可以提供哪些优势?为保证应用程序的安全,我需要采取哪些措施?”
此外还有一个心照不宣的问题:“我如何让用户对云的使用体验就像使用内部部署应用程序一样顺畅?”
作为 ISV,我们希望向授权用户、客户和系统提供随时随地使用任何技术访问所需数据的功能,同时满足机密性、可用性和完整性方面的基本安全要求。
而且同样重要的是,我们希望让坏人远离这些数据。
本文是多篇有关软件设计挑战的文章中的第一篇,旨在说明如何才能让拥有访问权限的人顺利访问软件,同时阻止未经授权者访问。
此系列文章旨在为您提供更多背景信息,让您能够编写出适用于公共云的理想应用程序。
威胁
首先我将简要概括一下这些挑战。您的应用程序面临的威胁多种多样,与您能想到的内部部署应用程序面临的威胁相类似。但对于内部部署应用程序,有些关键威胁会得到缓解,因为它们在防火墙之后运行。
迁移到 Windows Azure云时,有些威胁会提高,有些则会降低。同您部署自己的应用程序时相比,缓解这些威胁变成了一个更深层次的合作。在您自己的服务器上部署应用程序时,您控制着对服务器的物理访问、操作系统、补丁以及用户的访问方式,等等。但随之而来的是加重了维护基础结构、确保执行备份、配置负载平衡器的责任。
但与 Microsoft合作时,全球基础服务团队可以应对各种客户需求,并承担与您的应用程序安全相关的部分责任。
这一点类似于由您负责基础结构的基础结构即服务 (IaaS)和与 Microsoft共享基础结构的平台即服务 (PaaS)之间的区别。
在这两种环境中,您需要考虑七个攻击矢量。
· 对应用程序进行管理的客户管理员。如何对应用程序进行部署、更新和数据访问?哪些人拥有访问权限以及如何对访问进行身份验证?
· 托管服务的管理中心。如何、何时、在哪里、用什么工具监视托管商管理员以及谁拥有托管服务的访问权限?
· 如何对服务器进行物理访问?它是否被放在办公桌下?是否具有武装防护措施?谁可以接触服务器以及谁拥有这些设备的物理访问权限?
· 用户可以访问哪些数据以及如何将数据提供给这些用户?用户有权查看哪些数据?
· 客户如何才能从应用程序内部攻击 Windows Azure?客户如何对系统进行越狱并损害系统?
客户使用 Azure来攻击其他网站时,会发生什么?
即使将应用程序迁移到云,传统威胁仍然存在。例如,您仍然需要防范跨站点脚本攻击 (XSS)和代码注入攻击。而提供商需要防范 DNS攻击和网络拥堵问题。
有些威胁进一步扩大,比如您需要考虑的数据隐私。您需要知道数据的存储位置和数据隔离,尤其是在多租户环境中。您还需要处理访问权限。
云服务提供商的性质带来了新的威胁。例如:
· 新权限升级攻击(VM到主机或 VM 到 VM)
· VM边界的越狱
· 网络劫持(对主机或 VM进行 Rootkit 攻击)
不过有些旧有威胁由于修补自动化和实例迁移到安全系统而得到了缓解。此外,云恢复能力改进了故障转移。
在本系列的接下来几篇文章中,我将描述如何才能保护数据,介绍 Windows Azure所提供的功能,并提供可供您查看更多详细信息的基本参考材料。
深度防御
在线服务安全性与合规性 (OSSC)团队负责管理 Microsoft云基础结构的安全,它隶属于全球基础服务部门。确保 Microsoft 云安全说明了如何通过对人员、流程、技术和经验的应用进行战略性协调,以持续改进 Microsoft云环境的安全。
采用深度防御的方法是 Microsoft提供值得信赖的云基础结构的基本因素。在多个层应用控制涉及采用保护机制、制定风险缓解战略以及在攻击发生时能够对其进行响应。
物理安全
使用技术系统来实现针对某些保障措施的访问和身份验证的授权自动化,是物理安全随着安全技术的进步而发生变革的体现之一。
OSSC 负责管理所有 Microsoft数据中心的物理安全,这对保持设施运营和保护客户数据至关重要。每个设施中都使用了安全设计和运营方面的既定精确程序。Microsoft通过不断增强每个周边层的进出控制,确保建立了外围和内围安全机制。
数据安全
Microsoft 根据需要向数据中心设备和网络连接应用多个安全层。例如,在控制平面和管理平面上使用了安全控制。配备了负载平衡器、防火墙和入侵防护设备等专门硬件来管理基于访问量的拒绝服务 (DoS)攻击。网络管理团队根据需要向分成几个部分的虚拟局域网 (VLAN)和应用程序设置分层访问控制列表 (ACL)。Microsoft通过网络硬件,使用应用程序网关功能来执行深度数据包检查并采取相应措施,例如发送可疑网络流量警报或拦截可疑网络流量。
为 Microsoft云环境配备了全局冗余内部和外部 DNS基础结构。冗余可提供容错功能,通过 DNS服务器的群集来实现。
身份认证和访问管理
Microsoft 使用“需要知道”和“最小权限”模型来管理对资产的访问。只要可行,就使用基于角色的访问控制来将逻辑访问权限分配给特定工作职能或责任范围(而不是个人)。这些策略规定,如果资产所有者未按照既定的业务需求明确授予访问权限,则默认情况下访问将被拒绝。
应用程序安全
Microsoft 开发团队采用的严格安全实践在 2004年正式形成了一个称为安全开发生命周期 (SDL)的流程。
参考
要了解更多信息,请访问全球基础服务在线安全。全球基础服务团队提供值得信赖的可用在线服务,可为您和 Microsoft Windows Azure 带来竞争优势。
下一篇文章
在Windows Azure 安全最佳实践 - 第 2 部分:Azure 提供哪些现成可用的安全机制中,我将说明 Windows Azure的安全是一项共同责任,Windows Azure为您的应用程序提供超出内部部署应用程序需求的强大安全功能。但另一方面,它也暴露了您应该考虑的其他漏洞。此外,我还将探讨合规性。
在其他即将发布的系列文章中,我将描述安全地进行总体应用程序设计、开发和部署可以采取的步骤。
以下是本系列中的文章的链接:
· Windows Azure 安全最佳实践 - 第 2 部分:Azure 提供哪些现成可用的安全机制。
· Windows Azure 安全最佳实践 - 第 3 部分:确定安全框架。
· Windows Azure 安全最佳实践 - 第 4 部分:需要采取的其他措施。
· Windows Azure 安全最佳实践 - 第 5 部分:基于Claims的标识,单点登录。
· Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性。
· Windows Azure 安全最佳实践 - 第 7 部分:提示、工具和编码最佳实践。
本文翻译自: