软件定义边界(SDP Software Defined Perimeter)
参考文章:软件定义边界SDP、基于SDP技术构建零信任安全 参考视频:Zero trust and SDP details 参考文献: 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).
出现背景
传统的网络架构是通过固定的边界将内部网络与外部网络分开,通常包含一系列防火墙策略来防止外部用户访问,但内部用户可以随意访问。该边界阻碍了内部应用程序和设施的可见性和可访问性,并确保了网络内部不受外部威胁的入侵。但这个模型很快就过时了,有两个原因:
- 黑客可以通过网络钓鱼劫持边界内的设备,然后从网络内部进行横向攻击。此外,由于设备、外包人员和合作伙伴的存在,边界内的设备增加,导致漏洞增加
- 随着云计算的普及,除传统数据中心外,企业还不断采用外部云计算资源,如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连接启动主机(IH)与SDP控制器通信以请求它们可以连接的SDP连接接收方(AH)列表。控制器可以从SDP连接启动主机请求诸如硬件或软件清单之类的信息。 :默认情况下,SDP连接接收主机(AH)拒绝来自SDP控制器以外所有主机的所有通信。只有在控制器指示后,SDP只接受连接接收主机SDP连接启动主机的连接
工作流
- 一个或多个SDP在线控制器服务并连接到适当的可选认证和授权服务(例如,PKI证书认证服务、设备验证、地理位置SAML、OpenID、Oauth、LDAP、Kerberos、多因子身份验证等服务)
- 一个或多个SDP连接接收主机(AH)在线,这些主机连接到控制器并验证其身份。然而,他们不会回应任何其他主机的通信,也不会回应非预分配的请求
- 每个上线的SDP连接启动主机(IH)都与SDP连接控制器进行身份验证
- 在验证SDP连接启动主机(IH)之后,SDP确定可授权的控制器SDP连接启动主机(IH)与之通信的SDP连接接收主机(AH)列表
- SDP控制器通知SDP连接接收主机(AH)接受来自SDP连接启动主机(IH)的通信以及加密通信所需的所有可选安全策略
- SDP控制器向SDP连接启动主机(IH)发送可接受的连接SDP连接接收主机(AH)列表和可选的安全策略
- SDP连接启动主机(IH)对每一个可接受的连接SDP连接接收主机(AH)发起单包授权,创建这些SDP连接接收主机(AH)的双向TLS连接
工作例子
一个安装了SDP当单包授权过程开始时,客户端用户点击桌面上的应用程序,SPA数据包含一把秘钥,SDP控制器通过秘钥识别身份,PKI然后,控制器将用于验证、授权和检测设备的完整性。IP信息发给AH,这样,AH知道谁会过来建立一段时间的连接,这时SDP客户端会和AH建立一个TLS隧道后,客户端将通过隧道运行应用程序。同时,客户端和AH始终与控制器保持通信,并随时交换信息。如果客户端的密钥被盗或无效,将立即断开连接,并切断网络上所有应用系统和服务器的可见性。如果设备有被攻击的迹象,它将不再被认为是可信的,它将立即与网络断开,无法访问任何资源。
SDP与NAC(终端准入控制系统)的差异
NAC通常只在第二层(链路层)工作,SDP7层有效,这意味着用户可以被授权访问服务器1上的应用系统A,不允许访问同一服务器上的B或BC,在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)可供应商使用 SDP 架构保护他们提供的服务。在这种应用场景下,SaaS 服务是一个SDP连接接收主机(AH),所有连接服务的终端用户都是 SDP 连接启动主机(IH)。这样使得 SaaS 制造商可以通过互联网向全球用户提供服务,而不再担心安全问题。
服务是基础设施(IaaS)供应商可以为其客户提供服务SDP 即服务作为受保护的入口。 这使他们 的客户可以充分利用 IaaS 的灵活性和性价比,同时减少各种潜在的攻击。
平台即服务(PaaS)供应商可以通过将 SDP 架构作为其服务的一部分来实现差异化。 这为最 终用户提供了一种嵌入式安全服务,可以缓解基于网络的攻击。
虚拟桌面基础架构(VDI)可以部署在弹性云中,这样 VDI 的使用按小时支付。 然而,如果 VDI 用户需要访问公司网络内的服务器,VDI 可能难以使用,并且可能会产生安全漏洞。 但是, VDI 与 SDP 相结合,可通过更简单的用户交互和细粒度访问解决了这两个问题。
大量的新设备正在连接到互联网上。管理这些设备或从这些设备中提取信息抑或两者兼有的 后端应用程序的任务很关键,因为要充当私有或敏感数据的保管人。软件定义边界可用于隐藏这些服务器及其在 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技术可以部署在任何其支持的操作系统上,从而创建一个及时的和动态的网络边界。