云安全并不矛盾

云经常被描述为计算领域的下一个大事件。几年前,它是Web,在那之前是Internet。云是最重要的。消费者将个人数据存储在云端。您现在可能正在以某种形式使用云。

通过詹姆斯Wickett 2011年12月9日

今天,“云”经常被描述为计算领域的“下一个大事件”。几年前,它是Web,在那之前是Internet。然而,目前云技术处于最前沿。消费者将个人数据存储在云端。您现在可能正在以某种形式使用云。据估计,2013年将有超过1480亿美元用于云计算。1大大小小的公司都在使用云来开展业务和存储关键信息。云现在是主流。

在美国国家仪器公司(NI),我们的一个团队正致力于利用云来帮助解决现实世界的问题。我们为此开发的一个产品是FPGA Compile Cloud,这是一种云服务,允许NI LabVIEW FPGA的用户在基于云的环境中执行复杂的FPGA编译工作。这些编译有时需要24小时才能完成,并且可能包含高度敏感的控制逻辑或其他敏感信息。FPGA编译云是构建在公共云基础设施产品之上的软件服务产品。(国家仪器公司使用亚马逊网络服务(AWS)和微软Azure来托管其云解决方案。)因为我们知道我们的客户期望高级别的安全性(以及性能和可用性),所以我们已经解决了身份验证、加密和网络访问控制问题,以确保我们的云解决方案的安全性。

云计算的范例要求云消费者将其信任边界扩展到当前网络和基础设施之外,以包含云提供商。本文只涉及处理云的安全影响的一个子集,但是希望这些信息能够帮助您开始保护您自己的云实现。

首先,定义云是有帮助的。首先,它是关于弹性和可伸缩的计算和存储资源,可以根据需要分配(参见图1)。分配时,这些资源是抽象的,因此开发人员不需要关心底层基础设施,只需使用抽象的服务层来分配或销毁资源。通常,云使用公用事业计费,因此您只需为使用的内容付费。

美国国家标准与技术研究所(NIST;www.nist.gov)定义了三种类型的云:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。通过定义不同的云部署模型(公共、私有、混合和社区),NIST还增加了另一层复杂性。2在所有这些定义中,可能更容易确定云不是什么。它不是大型机计算的回归,也不是托管、Web或虚拟化。围绕云的一些困惑是由于在许多营销材料中包含了“云”这个词,而这些材料过去读起来是“Web”。云不是Web。

云中的安全性

云计算的核心——弹性计算、可伸缩资源、服务层、抽象基础设施和公用事业计费——允许您将系统的功能部分卸载给提供商,并完成以前不可能完成的事情。但伴随这些新好处而来的是一种固有的新形式的风险和安全威胁格局。与几乎所有云实现相关的云安全有三个主要领域:身份验证、加密和网络访问控制。

身份验证。云中的身份验证与其他计算领域中的身份验证不同。许多SaaS产品的用户希望能够使用属于他们的凭证(例如,谷歌、OpenID、Twitter)来访问使用开放身份验证协议(如OAuth (https://oauth.net).即使它没有与第三方凭证集成,也需要通过安全连接(如SSL(安全套接字层))进行身份验证,并且应该发出一个随机令牌,而不是在每个请求中来回发送凭证。这与传统Web应用程序中的会话具有相同的目的。对已发出的令牌、过期和安全传输强制执行随机性对于构建安全的Web服务至关重要。

对于IaaS云解决方案,身份验证不再使用用户名和密码。由于云的公共性质,这种类型的身份验证太容易受到暴力破解和字典攻击的攻击。相反,所有服务都必须使用密钥和证书来保护,这些密钥和证书不再是您所知道的东西(例如密码),而是您现在所拥有的东西。那么,如何对其他人隐藏这些密钥和证书呢?控制密钥使用的一种方法是使用密钥存储或密钥服务,并普遍使用加密。控制密钥的第二种方法是通过设置策略和过程来频繁地更改密钥。

加密。客户数据和其他敏感项(例如用于身份验证的安全证书)必须在以下三种情况下进行加密:数据在网络上传输时、数据处于静止状态时和数据备份时。当数据通过网络时,应该使用标准的非对称加密协议,如SSL/TLS或VPN(虚拟专用网络)。这种技术在传统Web应用程序中是标准的。然而,在云中,重要的是要记住,您是在一个无法控制的网络上运行。因此,当数据在云应用程序中的不同实例之间移动时,在这些路径上进行加密也是很重要的。

当数据处于静止状态或备份时,可以部署不同的策略来加密数据,从整个磁盘加密到仅加密数据库特定记录中的敏感数据。实现有效的加密策略的关键是了解您的数据,而不一定是实际使用的加密。

由于数据至关重要,因此了解数据在系统中的流动方式非常重要。对于任何在云中创建新应用程序的团队来说,最好的练习之一是“威胁建模”,它在数据流经系统时跟踪数据,并质疑关于数据的假设。一旦知道敏感数据暴露在哪里,就可以专注于保护数据。

网络访问控制。防火墙——长期以来的安全安慰剂——在云中也有所不同。您再也不能依靠外围保护来保证系统的安全。在云计算中,你的资产是公开的;它们与其他云消费者共享网络空间。大多数云供应商为消费者提供类似防火墙的功能,您可以根据发送方和接收方的源和端口来控制流量。使用此特性,云使用者可以创建规则,将系统外部的流量以及云系统内部的流量列入白名单。

亚马逊网络服务(aws.amazon.com)提供安全组来限制内部和外部流量。与包含一个防火墙来覆盖整个网络不同,“防火墙”可以用于云环境中的每个实例。有了这些规则,就只允许匹配规则的通信,并且有可能确保数据库服务器永远无法通过ssh(安全shell)连接到前端Web服务器,或者无法从身份验证系统中scp(安全复制)文件。基于主机的防火墙和ids(入侵检测系统)在云架构中也很有用。

采取下一步措施拥抱云

在美国国家仪器公司,我们通过多种方法解决了身份验证、加密和网络访问控制问题。通过使用安全传输层和发出强制过期的随机令牌,为客户实现身份验证。对于任何持久映像的构建过程,我们清除所有私有信息和密钥。除了添加加密之外,一些设计决策还减少了存储在服务器端的敏感数据量。对于FPGA Compile Cloud,一旦完成的结果返回给客户,作业就不再存储。关于网络访问控制,我们在Amazon Web Services中实现了安全组,这些安全组的作用域非常严格,只允许某些流量进出不同类型的实例。我们还使用安全代码分析工具和第三方顾问(除了我们自己认证的安全人员)来确保我们提供尽可能安全的解决方案。

这里提供的信息只触及了云安全的表面。根据您的应用程序架构,您将有特定的需求,并且应该考虑日志记录、监视、渗透测试、静态代码分析、访问管理接口等方面的安全性。2008年底,安全社区认识到需要更多关于云安全的信息,并成立了云安全联盟(CSA;https://cloudsecurityalliance.org).该组织最近发布了云计算关键重点领域安全指南,这是一份免费文档,涵盖了云计算安全的特定领域。这份报告可以在CSA网站上找到,3.这将是学习更多云安全知识的一个很好的下一步。

2010年,计算安全社区采取了额外的步骤来创建能够抵御攻击并在逆境中持续存在的软件。该组织采用了硬件世界的术语,提出了构建坚固的软件,这个想法已经开始扎根(www.ruggedsoftware.org)。看看坚固的软件(从一开始就有安全需求的软件)是否会在开发社区中增长,以及如何增长,将是一件有趣的事情。

无论如何,云计算有助于促进创新,降低进入门槛。关键是要记住,你所处的环境不是你能完全控制的——或者不应该完全信任的。实现对这种环境有意义的安全控制是至关重要的。

James Wickett, CISSP, CCSK,是国家仪器公司的网络系统工程师。www.ni.com

也可以在上面搜索“云”控制工程网站www.globalelove.com查看与2011年12月封面故事相关的基于云的自动化的文章集。

1要了解更多信息,请阅读读写云上的2010年云计算现状;https://www.readwriteweb.com/cloud/2010/11/3-infographics-about-cloud-com.php。

2有关更多信息,请阅读NIST特别出版物800-145,云计算的NIST定义;https://csrc.nist.gov/publications/nistpubs/800 145/sp800 - 145. - pdf。

3.关于云计算关键重点领域的安全指南可在https://cloudsecurityalliance.org/wp-content/uploads/2011/07/csaguide.v2.1.pdf