为什么软件定义边界(SDP)能有效改善 IaaS安全现状?

Posted 白宇929

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么软件定义边界(SDP)能有效改善 IaaS安全现状?相关的知识,希望对你有一定的参考价值。

“如今,IT和安全管理者已深刻认识到,企业和云提供商之间所面临的IaaS安全挑战:IaaS与传统的内网相比,有着不同的用户访问需求和安全需求,然而,这些需求并不能完全由传统安全工具或者IaaS供应商提供的安全架构来满足。”云深互联如是说。

例如:

◇企业往往需要对用户访问网络资源进行一定程度的限制,但传统的网络访问控制(NAC)和虚拟局域网(VLAN)解决方案在IaaS环境中并不适用,因为它是多租户、虚拟化的网络基础设施。

◇另外,在IaaS环境中,所有用户都需要对云资源进行“远程访问”,最成熟的手段无它,只有VPN。但是,随着当今移动办公、跨公司协作或动态云环境等场景广泛存在企业当中,VPN通过管理IP地址和端口的访问控制并不适用。

当前,IaaS 供应商通常会创建和推动“责任共享模型”,这个模型宣称IaaS供应商负责云的安全,而客户(企业)负责自己在云中的安全。下图是融合了几个领先IaaS供应商的理念而创建的责任共享模型。


许多企业还在尝试拥抱云安全责任共享概念,IaaS供应商提供的工具集由供应商自己创建时更是如此。这些工具倾向基于静态 IP 地址而不是基于用户(或身份),客户不能通过这种方法行之有效地管理基于用户的云资源的访问。因此,客户公司依赖应用级的身份验证来保护对这些资源的访问,致使内网里任何人都可对整个云网络进行访问。

从安全角度来看这自然存在相应风险——基于网络级的资源访问有太多可以被未经身份验证的攻击者利用的弱点。同时还有一个合规问题——企业经常要在敏感和受控环境中报告“谁访问了什么”。

如上图所示,SDP架构在与 IaaS供应商的责任共享模型中有重要作用。通过SDP,云客户可以在他们自身的安全共享控制部分采用更有效的方式。事实上,SDP也正在成为改变网络安全在整个企业中实践的催化剂——无论是在内网还是公有云的环境

IaaS参考架构

基础设施即服务(Infrastructure as a Service,IaaS)能够为消费者提供CPU、内存、存储、网络和其他基础计算资源,在这些资源之上,消费者能够部署和运行任意软件,包括操作系统和应用。消费者不需要关心底层云基础设施,但是可以控制操作系统、存储和部署的应用程序,也可能对特定的网络组件有控制能力。下图展示了一个IaaS环境的简化架构图,可以适用于公共云和私有云的部署。

该图显示了一个包含两组IaaS资源 (虚拟机),分成两个私有云网络的IaaS云环境。这些私有云网络可以对应不同的帐户, 或云环境中不同的私有区域 (如 AWS 虚拟私有云)。从网络访问的角度来看,这些私有云网络受到云防火墙的保护, 防火墙在逻辑上控制这些网络的访问进出。对进入这些私有云网络(间)的访问控制很快就会变得复杂,不同的云提供者有不同的工具集。本文中, 我们有意省略路由表、网关或 NACLs 等构件的复杂性, 以便我们能够集中精力于管理用户访问 IaaS 资源所面临的挑战。

1.IaaS安全需求新挑战

IaaS的网络访问存在一个重大的安全挑战。作为云安全责任共享模型的一部分, 网络安全直接依赖于企业。将私有云资源公开到公共互联网通常不是一个可接受的选项——仅依赖于身份验证来保护,显然不符合安全和合规要求。因此, 企业需要在网络层弥补这一差距。

由于如下几个原因,IaaS安全需求面临新的挑战。

1)位置只是一个普通的属性而已

不同的开发人员 (即使是座位相邻的开发者) 也可能需要不同类型的网络来访问不同的资源。例如, Sally是数据库管理员,需要访问运行数据库的所有服务器的3306端口。Joe坐在Sally旁边, 管理Purple项目的应用程序代码, 并需要使用SSH连接到那些运行Purple项目的应用服务器。Chris和小组其他人员不一样,他是远程工作的。他是Purple项目的应用程序开发员,尽管相隔千里也要求与Joe有相同的访问。

位置可能仅仅是访问策略需要考虑的属性之一,而非传统网络环境中网络访问层的主要驱动因素。

2)唯一的不变是变化

这是一个真理,在云环境中尤其如此。首先, IaaS环境中的计算资源是高度动态的,服务器实例不断地被创建和销毁7。手动管理和跟踪这些访问几乎不可能。其次, 开发者也是动态的 (尽管从个人的角度来看不一定如此)——至少他们可能同时在不同项目中担任不同的角色。

这个问题在DevOps 环境中被放大。开发、QA、发布和运维角色混合在一个团队中, 对“生产”资源的访问可以迅速改变。

3)IP地址难题

也许我们不需要传说中的网络管理员福尔摩斯 (CCIE #1), 但我们的 IPv4 世界确实面临着严峻的挑战:不仅用户的 IP 地址定期更改, 用户和IP地址之间也没有一对一的对应关系。下图说明了当访问规则完全由 IP 地址驱动时, 即使是简单的环境也会很复杂:


2.安全要求和传统安全工具?

从根本上说, 有两个问题需要解决:

◇安全地远程访问

◇用户访问的可见性和可控性

1)安全地远程访问

首先, 让我们考虑安全的远程访问问题。直到今天, 我们还没有发明一种将开发人员上传到云中的方法, 所以,所有的云用户都是远程的, 这意味着无论网络连接是公共互联网还是专用的直接连接,与云的通信都是在网络连接上发生。

企业通常通过使用VPN 解决这一问题, 通过建立站点到站点的VPN(如上面的图中的公司总部位置蓝色线所示), 或者从用户的设备通过VPN 集中器直接连到云。或者, 结合上述两个方案,将用户从其设备通过VPN连接到企业网络, 再从那里通过站点到站点的VPN进入云。

使用 VPN 在技术上解决了上面的问题的第一部分(安全地远程访问),它为从用户设备到云网络的网络通信提供了安全、加密的隧道。这有一些缺点,特别是如果所有的用户流量都需要先到公司网络,然后再去访问云,这将引入额外的延迟, 造成单点故障,并可能会增加带宽成本和VPN授权的购买成本。通过VPN直接从每个用户的设备连接到云有助于解决其中的一些问题,但可能会与用VPN同时进入企业网络的需求(例如访问内部开发资源)发生冲突。

普遍来说,如果VPN上应用程序通讯协议已经是加密的,例如HTTPS 和 SSH,并不会增强安全的保密性和完整性,VPN 可以提供帮助的一个方面是安全的可用性, 因为被VPN保护的资源可以确保不会公开可见, 从而防止 DDoS一类的攻击。

2)用户访问的可见性和控制

不管用户如何进入IaaS环境的(无论是否通过VPN),安全团队仍然需要控制 (并监视和报告) 在IaaS 环境中哪些用户可以访问哪些资源。

IaaS 平台提供了内置的工具来管理这一点,例如 AWS 中的安全组和 Azure 中的网络安全组, 基于 IP 地址控制对服务器的访问。

这是安全访问面临的最基础的挑战——企业需要解决用户访问问题, 但只被赋予了基于 IP 地址的访问控制工具。

在IaaS环境下,安全远程访问控制已经不再是一个特殊场景。所有用户都是“远程的”,因此,网络安全团队需要关心所有用户是如何访问资源的,而不仅仅是用户的一个子集。也就是说,安全的远程访问控制必须成为一个核心关注点,并且是采用IaaS的任何企业的整体策略的一部分。

3)为什么是SDP而不是VPN?

VPN是一种广泛用于安全远程用户访问控制的普遍技术。但是为什么企业不能继续使用这种被验证过的技术呢?

VPN很好地为远程用户提供对虚拟局域网或网段的安全访问,就好像它们实际在存在于企业网络一样。这种技术,在与多因子验证结合时,对于具有传统边界的企业以及静态用户和服务器资源来说效果很好。但是正如Gartner的调研报告所说,“DMZ和传统VPN是为上世纪90年代的网络设计的,由于缺乏保护数字业务所需的敏捷性,它们已经过时。”

VPN有两个缺点,使它们不适合当今的需求。首先,它们对所分配的网络提供非常粗粒度的访问控制。它们的目标是让远程用户的行为就像在本地网络上一样,这意味着所有用户都可以对整个虚拟局域网VLAN进行完全的网络访问。尝试配置VPN以为不同用户提供不同级别的访问是不现实的。它们也不能很容易地适应网络或服务器集群的变化。VPN根本无法跟上当今的动态发展的企业的需要。

其次,即使公司对VPN所提供的控制级别感到满意,但VPN只是一种控制远程用户的竖井式解决方案——它们不会帮助保护本地内网中的用户,这意味着组织需要一组完全不同的技术和策略来控制本地用户的访问。这将使协调和匹配这两个解决方案所需的工作量成倍增加。而且,随着企业采用混合和基于云计算的计算模型,VPN就更难被有效地使用。

4)虚拟桌面基础设施(VDI)

虚拟桌面基础设施(VDI)是一组技术,可以让企业在企业数据中心的集中式服务器机群中托管大量的桌面操作系统实例。这些实例可以是桌面操作系统的虚拟化实例,也可以是许多用户并发登录到的桌面操作系统的多用户版本。与VPN一样,VDI一直是企业用来远程访问其网络和应用程序的一种重要机制。

总的来说,在今天的云计算和移动世界中,VDI有一些缺点。首先,远程桌面的用户体验往往在小型的移动设备上表现不佳。它不会以一种响应的方式呈现,而且非常难以使用,因此会阻碍生产力。

其次,很多基于桌面的客户端/服务器C/S应用程序已经被重新编写为Web应用程序,从而减少了VDI的价值。第三,VDI集群的采购成本很高,尤其是如果它们是基于硬件的。最重要的是,随着越来越多的工作业务系统转移到云上,企业已经意识到VDI并不能解决远程应用程序的用户访问的问题。

事实上,VDI确实解决了部分远程访问问题——通常通过对从客户端设备到VDI服务器的流量进行加密,但它不能帮助解决核心的用户访问问题——控制一个特定用户可以访问的网络资源。在某些情况下,VDI会使多个用户出现在一个多用户操作系统中,从而使这个问题变得更加困难。在这种情况下,通过传统的网络安全解决方案进行网络访问控制实际上是不可能的。

VDI无疑是有一定的好处,但是它并不是为了控制用户对云网络和服务器资源的访问而设计的,因此在某些方面甚至会使这个问题变得更加困难。

3.SDP怎么解决这个问题?

SDP可以解决上面讨论的所有安全问题,为企业提供对IaaS环境的安全远程访问,并对用户访问做到细粒度的可见性和控制。

通过使用SDP,企业的云资源对于未经授权的用户完全不可见。这样完全消除了许多攻击方式,包括暴力攻击; 网络流量攻击,以及TLS漏洞攻击,如著名的“心脏出血Heartbleed漏洞” 和 “Poodle漏洞”。SDP通过在企业的服务器周围建立一张“暗网”,帮助它们成功地为云计算安全负责。

SDP以预认证和预授权作为它的两个基本支柱。通过在单数据包到达目标服务器之前对用户和设备进行身份验证和授权,SDP可以在网络层上执行最小权限原则,可以显著地缩小攻击面。

1)什么是软件定义边界(SDP)?

软件定义边界(SDP)架构由三个主要组件组成,如下所示:


用SDP术语来说,客户端(用户设备)指的是发起主机,网关指的是接收主机。在通过控制器进行身份验证后,客户端为每个网关建立加密的隧道(上面的图表显示了两个分布式网关,每个网关保护一组不同的资源,由单个控制器管理)。

SDP规范中的一个重要元素是单包授权(SPA)。使用这种技术,客户端基于一个共享密钥(seed)创建一个基于HMAC的一次性口令,并将其提交给SDP控制器和网关,作为连接建立过程发送的第一个网络数据包。

因为SDP控制器和网关拒绝无效的数据包(可能来自未经授权的用户),所以它们可以防止和未经授权的用户或设备建立TCP连接。由于非法的客户端可以通过分析单个数据包来区分,所以SDP控制器和网关所产生的计算负载是最小的。这极大降低了DDoS攻击的有效性,并使得SDP服务可以在面向公众的网络中可以更安全、更可靠地部署。

2)基于用户而不仅仅是IP地址策略

由于SDP系统是以用户为中心的(也就是说,在允许任何访问之前,它们先验证用户和设备),因此它们允许企业基于用户属性创建访问策略。通过使用诸如目录组成员、IAM-分配的属性和角色等机制,公司可以以一种对业务、安全和合规性团队有意义的方式定义和控制对云资源的访问。相比之下,传统的网络安全系统完全基于IP地址,根本不考虑用户。

4.软件定义边界(SDP)的优势

部署SDP的企业将在直接改善安全性的几个维度受益,我们希望在本文档的其余部分中清楚地表达出来。SDP的其他好处包括运维效率、简化的合规性工作和降低成本等。下面我们将进行一一探讨。

1)运维效率

与达到特定级别的安全性所需的手工工作相比,SDP的自动化策略执行在运维上体现了显著的好处。从另一个角度来看,一个企业可以通过SDP轻松获得的安全性级别实际上是不可能通过传统的安全工具实现的。

2)简化合规性工作

SDP的实施产品通常提供每个用户访问权限和活动的详细记录,这是由于网关对所有客户端网络流量进行日志记录和控制。因此,SDP可以根据这些细节提供自动化的合规性报告。

而且,由于SDP支持对用户访问的细粒度控制,企业通过将其网络分割成更小的、隔离的部分来获得降低合规性需要的范围。

3)降低成本

SDP可以帮助企业以多种方式降低成本。首先,对访问策略的自动执行减少了为响应用户或服务器更改而手动更新和测试防火墙规则的需求。在较大的企业中,这通常是其IT人员日常工作的一部分,因此这提供了一个减少工作量和人工成本的机会(特别是在外包模型中)。它还将提高业务和技术人员的生产效率,同时也可以有效降低硬成本(特别是对于小时工或外包的工人)。

其次,简化的合规性工作将减少准备和执行审计所需的时间和精力。这两项活动都需要第三方咨询师,节省的每一小时都是直接的成本节约。

最后,SDP还可以给企业带来一种替代其他技术的方案,从而降低成本。例如,我们已经看到一些企业在考虑升级传统NAC的网络交换机时选择了SDP,这为他们节省了数十万美元的资本支出。

5.SDP、身份及访问管理

SDP、身份及访问管理(IAM)在很多方面都是互补的。首先,SDP能实现对已经部署的IAM系统进行身份验证,这可以加速SDP的上线。这种身份验证可能通过连接到本地LDAP或AD服务器,或者使用SAML之类的标准来实现。

其次,SDP实施产品通常使用IAM用户属性(如目录组成员、目录属性或角色)作为SDP策略的元素。例如,一个SDP策略可能会定义为“目录组中的所有销售用户都可以在443端口上访问销售门户的服务器。”这是一个很好的例子,说明SDP系统如何为现有的IAM系统增值(并扩展能力)。

最后,SDP系统也可以包含在由IAM系统管理的身份生命周期中。通常被称为“参加者,移动者,离开者”,IAM系统中管理与用户帐户和访问权限相关的业务和技术流程。部署SDP的企业应该将SDP管理的网络权限包含到它们的IAM供应系统中。例如,当IAM系统在应用程序X中为Sally Smith创建一个新帐户时,SDP系统应该同时创建相应的网络权限。

综上所述,这种集成很好地支持了第三方用户访问SDP系统。云深互联认为,SDP控制器信任第三方IAM系统提供的身份验证和用户身份生命周期的所有权管理。因此,当第三方用户在它们的IAM系统中被禁用时(这对企业的用户禁用流程非常关键),用户将自动无法访问SDP保护的资源,因为他们不能通过关联进行身份验证。这个关联很好地解决了第三方访问的一个常见问题。

以上是关于为什么软件定义边界(SDP)能有效改善 IaaS安全现状?的主要内容,如果未能解决你的问题,请参考以下文章

为什么软件定义边界(SDP)更适合远程访问应用场景?

虚拟私有网络即将消亡,软件定义边界(SDP)正在走来

虚拟私有网络即将消亡,软件定义边界(SDP)正在走来

零信任-发展历程及概念

《代码大全》第五部——代码改善

转:SDP介绍