软件定义边界(SDP)

软件定义边界(SDP Software Defined Perimeter)

参考文章:软件定义边界SDP基于SDP技术构建零信任安全
参考文献: X Xie, Gan G , Y Chen. Research on SDP Software Defined Perimeter Initiating Host Protocol Configuration Algorithm[J]. IOP Conference Series: Earth and Environmental Science, 2020, 428(1):012054 (10pp).

出现背景

传统的网络架构都是通过一个固定的边界来实现内部网络与外部网络的分离,这个边界通常包含一系列的防火墙策略来阻止外部用户的访问,但是内部用户可以随意的对外访问。这种边界封锁了外部对于内部应用和设施的可见性和可访问性,确保了网络内部不受外部威胁的入侵。但是这种模型正在迅速变得过时,原因有两个:

  1. 黑客可以通过网络钓鱼等劫持边界内的设备,然后从网络内部进行横向的攻击。此外,由于自带设备、外包工作人员和合作伙伴的存在,边界内部设备增多,导致漏洞不断增加
  2. 随着云计算的普及,除了传统数据中心,企业正在不断采用外部云计算资源,如SaaS、PaaS、IaaS。因此,边界安全网络设备在拓扑上并不能很好地保护企业应用基础设施

由于以上问题,我们需要一种新的安全模型,这个模型可以理解上下文信息,如用户位置,用户使用什么设备来建立连接的,何时建立连接的,以及用户的角色。使应用程序所有者能够保护公共云或私有云中的基础架构,数据中心中的服务器,甚至保护应用程序服务器内部。

概念

软件定义的边界(SDP Software Defined Perimeter),也被Gartner称作零信任网络访问(ZTNA)。是2007年提出的,由云安全联盟(CSA)开发的一种安全框架,它根据身份控制对资源的访问。该框架基于美国国防部的“need to know”模型——每个终端在连接服务器前必须进行验证,确保每台设备都是被允许接入的。其核心思想是通过SDP架构隐藏核心网络资产与设施,使之不直接暴露在互联网下,使得网络资产与设施免受外来安全威胁。

在SDP架构中,服务器没有对外暴露的DNS或者IP地址,只有通过授权的SDP客户端才能使用专有的协议进行连接。

架构

SDP的体系结构由两部分组成:SDP主机和SDP控制器。SDP主机可以发起连接或接受连接。这些操作通过安全控制通道与SDP控制器交互来管理。因此,在SDP中,控制平面与数据平面分离以实现完全可扩展的系统。

SDP控制器:SDP控制器决定哪些SDP主机可以相互通信。SDP控制器可以将信息中继到外部认证服务,例如认证地理位置或身份服务器
SDP连接发起主机(Initiating Host):SDP连接发起主机(IH)与SDP控制器通信以请求它们可以连接的SDP连接接收方(AH)列表。在提供任何信息之前,控制器可以从SDP连接发起主机请求诸如硬件或软件清单之类的信息。
SDP连接接收主机(Accepting Host):默认情况下,SDP连接接收主机(AH)拒绝来自SDP控制器以外的所有主机的所有通信。只有在控制器指示后,SDP连接接收主机才接受来自SDP连接发起主机的连接

工作流

  1. 一个或多个SDP控制器服务上线并连接至适当的可选认证和授权服务(例如,PKI颁发证书认证服务、设备验证、地理位置、SAML、OpenID、Oauth、LDAP、Kerberos、多因子身份验证等服务)
  2. 一个或多个SDP连接接收主机(AH)上线,这些主机连接到控制器并由其进行身份验证。但是,他们不会应答来自任何其他主机的通信,也不会响应非预分配的请求
  3. 每个上线的SDP连接发起主机(IH)都与SDP控制器连接并进行身份验证
  4. 在验证SDP连接发起主机(IH)之后,SDP控制器确定可授权给SDP连接发起主机(IH)与之通信的SDP连接接受主机(AH)列表
  5. SDP控制器通知SDP连接接收主机(AH)接受来自SDP连接发起主机(IH)的通信以及加密通信所需的所有可选安全策略
  6. SDP控制器向SDP连接发起主机(IH)发送可接受连接的SDP连接接受主机(AH)列表以及可选安全策略
  7. SDP连接发起主机(IH)向每个可接受连接的SDP连接接收主机(AH)发起单包授权,并创建与这些SDP连接接受主机(AH)的双向TLS连接

在这里插入图片描述

工作例子

一个安装了SDP客户端的用户点击了桌面上的一个应用程序,这时开始了单包授权过程,SPA数据包包含一把秘钥,SDP控制器通过秘钥识别身份,PKI之后还会用于验证、授权、设备完整性检测,随后,控制器将用户的IP信息发给AH,这样,AH就知道了一会谁会过来进行建立连接,这时SDP客户端会和AH建立一个TLS隧道,之后客户端会穿过这个隧道运行应用程序,与此同时,客户端与AH始终保持和控制器的通信,随时交换信息,如果客户端的秘钥被窃取或变为无效,则会立即断开连接,并切断网络上所有应用系统与服务器的可见性。如果设备有被攻陷的迹象,它将不再被认为是可信的,也将立即与网络断开并不能访问任何资源。

SDP与NAC(终端准入控制系统)的区别

NAC通常只在第二层(链路层)工作,而SDP到7层都有效,这意味着用户可以被授权访问服务器1上的应用系统A,而不让访问同一个服务器上的B或者C,在SDP中,未授权用户甚至无法看到该服务器上除A之外的任何其它应用系统
对比而言,NAC方案中授权用户可以看到整个网络中的任何资源,这样是无法避免被黑客进行横向攻击的。

部署模式

客户端—网关模型
在客户端—网关的实施模型中,一个或多个服务器在 SDP 连接接受主机(AH)后面受到保护, 这样,SDP 连接接受主机(AH)就充当客户端和受保护服务器之间的网关。此实施模型可以在企业网络内执行,以减轻常见的横向移动攻击,如服务器扫描、操作系统和应用程序漏洞攻击、中间人攻击、传递散列和许多其他攻击。或者,它可以在 Internet 上实施,将受保护的服务器与未经 授权的用户隔离开来,并减轻诸如拒绝服务(DoS)、SQL 注入、操作系统和应用程序漏洞攻击、 中间人攻击、跨站点脚本(XSS)、跨站点请求伪造(CSRF)等攻击。

客户端—服务器模型
客户机到服务器的实施在功能和优势上与上面讨论的客户机到网关的实施相似。然而,在这种情况下,受保护的服务器将运行可接受连接主机(AH)的软件,而不是位于运行该软件的服务器前面的网关。客户机到网关实施和客户机到服务器实施之间的选择通常基于受保护的服务器数量、负载平衡方法、服务器的弹性以及其他类似的拓扑因素。

服务器—服务器模型
在服务器到服务器的实施模型中,可以保护提供代表性状态传输(REST)服务、简单对象访问协议(SOAP)服务、远程过程调用(RPC)或 Internet 上任何类型的应用程序编程接口(API) 的服务器,使其免受网络上所有未经授权的主机的攻击。例如,对于 REST 服务,启动 REST 调用的服务器将是 SDP 连接发起主机(IH),提供 REST 服务的服务器将是可以接受连接的主机(AH)。为这个用例实施一个软件定义边界可以显著地减少这些服务的负载,并减轻许多类似于上面提到 的攻击。这个概念可以用于任何服务器到服务器的通信。

客户端—服务器—客户端模型
客户端到服务器到客户端的实施在两个客户端之间产生对等关系,可以用于IP电话、聊天和视频会议等应用程序。在这些情况下,软件定义边界会混淆连接客户端的 IP 地址。作为一个微小的变化,如果用户也希望隐藏应用服务器,那么用户可以有一个客户端到客户端的配置。

应用场景

企业应用隔离
对于企业网络内部,攻击者可能通过入侵网络中的一台计算机进入内部网络,然后横向移动获得高价值信息资 产的访问权限。 在这种情况下,企业可以在其数据中心内部署 SDP,以便将高价值应用程序与数 据中心中的其他应用程序隔离开来,并将它们与整个网络中的未授权用户隔离开来。 未经授权的用户将无法检测到受保护的应用程序,这将减轻这些攻击所依赖的横向移动。

私有云和混合云
SDP 的软件覆盖特性使其可以轻松集成到私有云中,以利用此类环境的灵活性和弹性。 此外,企业可以使用 SDP 隔离隐藏和保护其公共云实例,或者作为包含私有云和公共云实例和/或跨云集群的统一系统。

软件即服务(SaaS)
软件即服务(SaaS)供应商可以使用 SDP 架构来保护他们提供的服务。在这种应用场景下,SaaS 服务是一个SDP连接接受主机(AH),而所有连接服务的终端用户就是 SDP 连接发起主机(IH)。这样使得 SaaS 产商可以通过互联网将其服务提供给全球用户的同时不再为安全问题担忧。

基础设施即服务(IaaS)
基础设施即服务(IaaS)供应商可以为其客户提供 SDP 即服务作为受保护的入口。 这使他们 的客户可以充分利用 IaaS 的灵活性和性价比,同时减少各种潜在的攻击。

平台即服务(PaaS)
平台即服务(PaaS)供应商可以通过将 SDP 架构作为其服务的一部分来实现差异化。 这为最 终用户提供了一种嵌入式安全服务,可以缓解基于网络的攻击。

基于云的虚拟桌面基础架构(VDI)
虚拟桌面基础架构(VDI)可以部署在弹性云中,这样 VDI 的使用按小时支付。 然而,如果 VDI 用户需要访问公司网络内的服务器,VDI 可能难以使用,并且可能会产生安全漏洞。 但是, VDI 与 SDP 相结合,可通过更简单的用户交互和细粒度访问解决了这两个问题。

物联网(IoT)
大量的新设备正在连接到互联网上。管理这些设备或从这些设备中提取信息抑或两者兼有的 后端应用程序的任务很关键,因为要充当私有或敏感数据的保管人。软件定义边界可用于隐藏这些服务器及其在 Internet 上的交互,以最大限度地提高安全性和正常运行时间。

SDP和VPN的区别

目前,虚拟专用网络(VPN)是很多公司远程访问的解决方案之一。但是,VPN用户一旦获得授权就可以广泛访问公司网络上的资源。这种广泛访问的方法使潜在的敏感资源和信息暴露给VPN用户和攻击者。因此,围绕软件定义的边界解决方案(SDP)成为安全远程访问的一个更具吸引力的替代方案。
传统的VPN具有过度信任、访问广泛、复杂等问题。首先传统VPN遵循以网站为中心的拓扑结构,具有广泛的信任度。其次在传统的VPN网络访问中,一旦用户登陆了VLAN,他们的主机就可以广播地址解析协议(ARP),以检查是否有其他东西连接到这个网段。由于地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这最终会创建一个相当大的攻击界面,供黑客使用。最后,在企业迁移到云时,VPN管理变得复杂。IT管理员必须在不同的地理位置配置和协调VPN、防火墙策略。这反过来又很难拦截未经授权的访问。

SDP和VPN之间的差异概述如下:

  • 与受 VPN 网关保护的服务器相比,创建受 SDP 保护的服务器需要不同的工作量。在 SDP 情况 下,一旦 SDP 控制器上线,用户可以通过软件设置,根据需要创建尽可能多的受保护服务器, 并且可以通过 LDAP 关联区分授权用户和未授权用户。
  • 与 SDP 相比,设置 VPN 网关以保护单个服务器的资本和运营成本更高。 SDP 是可以部署在云环境中的软件架构。
  • SDP 可以同时用于安全和远程访问,而 VPN 网关则不能。如果要尝试在企业内使用 VPN 客户端和 VPN 网关来保护某个服务器,则用户无法使用远程访问 VPN 来访问服务器(因为 VPN 客户端已连接到远程访问 VPN 网关)然而 SDP 通信则可以在远程访问 VPN 之上进行。
  • SDP 可防止 DDoS 攻击,而 VPN 网关则不会。 SDP 连接接受方可以部署在与其保护的应用服务器不同的拓扑不同的位置,甚至从而对授权用户隐藏真实位置
    在这里插入图片描述

SDP带来的改变

SDP改变了传统的网站连接方式。在传统的连接中,首先,客户端需要建立与服务器端的连接,这一步骤使服务端暴露在公网中,若服务端有漏洞,则有可能被利用;其次,用户通过登录页面输入用户名和密码,这一步骤有可能使得用户名和密码被窃取;最后,除用户名和密码外还可使用多因素认证,通过多因素认证,可以抵抗用户名和密码的丢失,但是多因素认证对于用户而言不是很友好。而在SDP中,首先,客户端进行多因素认证,认证设备的可靠性等,这一步对用户而言是透明的。认证通过之后,才进入用户登录阶段。这两步均是客户端与Controller进行交互,不涉及对于具体服务的访问。当认证通过后,客户端才能够与可访问的服务建立连接。
在这里插入图片描述

因此,SDP通过三种方式对抗基于网络的攻击:透明多因素认证可以抵抗用户凭据丢失、服务器隔离可以抵抗服务器利用、TLS双向认证可以抵抗连接劫持。
SDP可以提供对于网络系统、服务和应用的以人为中心、可管理的、普遍存在的、安全的和敏捷的访问。它解决了TCP/IP中的一个设计漏洞(在认证之前即对报文进行处理)。由于SDP的部署代价更低,因此,SDP可能颠覆网络防火墙和VPN技术。SDP同样有可能颠覆传统的网络安全技术部署,如NAC,Switch-to-Switch加密,内部的VPN能力。这是因为SDP的软件Agent技术可以部署在任何其支持的操作系统上,从而创建一个及时的和动态的网络边界。

猜你喜欢

转载自blog.csdn.net/shn111/article/details/125204649