零信任网络:在不可信网络中构建安全系统
上QQ阅读APP看书,第一时间看更新

1.3 威胁形势的演进

即使在互联网出现之前,计算机系统之间的远程通信也一直是人们追求的目标。那个时代的计算机远程通信通常是通过公共电话系统来实现的。用户和计算机系统可以拨入公共电话网络,将数据编码成音频信号来传输,以连接到远程计算机。因为物理上接触到远程计算机非常困难,所以公共电话网络的拨号接口成了当时常见的攻击向量。

在组织纷纷把主机服务器连接到互联网之后,网络攻击的发起方式也从公共电话网络转移到了互联网,互联网引发了网络攻击态势的变革。通过公共电话网络发起攻击会占用电话线路,这很容易被发现,而从IP网络上发起的攻击只是表现为TCP连接,这显然要隐蔽得多,攻击者可以长时间地进行漏洞利用和暴力破解尝试之类的攻击而不会引人怀疑。同时,这种转变还产生了更有影响力的攻击能力——利用恶意代码监听网络流量。

20世纪90年代末,世界上第一个(软件)特洛伊木马问世,并开始在互联网上传播。特洛伊木马欺骗用户安装恶意软件,然后打开一个端口等待连接请求。攻击者可以连接到这个开放的端口并远程控制目标计算机。

人们很快就意识到,需要一种保护互联网主机的方法,而设置硬件防火墙就是极好的选择(那时候大多数操作系统还没有基于主机的防火墙)。硬件防火墙能够在网络边界处强制执行安全策略,确保只允许列入白名单的“安全”的互联网流量进入内部网络。如果管理员无意中安装了向互联网开放端口(就像特洛伊木马一样)的软件,那么防火墙就可以阻断访问该端口的互联网连接。只有显式配置了允许访问该端口的策略,防火墙才会放行相应的网络连接。访问互联网主机的内部网络流量也同样可以进行控制,确保内部用户访问互联网主机的网络流量可以通过,但反过来则不行。这样可以防止攻击者利用被攻陷的隔离区的互联网主机横向移动进入内部网络。

虽然对隔离区的入站和出站网络流量都进行了严格的控制,从隔离区进入内部网络的难度非常大,但由于可以从互联网访问到隔离区的主机,因此它们仍然是攻击的主要目标。攻击者首先必须攻陷被防火墙保护的主机,然后安装用于隐蔽通信的软件,以便于把数据偷取出来。如果攻击者意图获得内部网络的访问权限,那么网络的拨号接口仍然是最容易利用的攻击入口。

事情发展到这里发生了有趣的变化,引入NAT原本的目的是使内部网络中的计算机能够访问互联网,现在它却变成了安全控制设备。这在某种程度上归功于NAT技术机制本身,而且也的确存在真实的安全需求。虽然内部网络中的计算机希望自由地访问互联网资源,但出于安全的考虑,仍然需要严格控制入站流量。部署NAT设备的网络和没有部署NAT设备的网络有一个重要的差别:前者放松了出站流量的安全控制策略。

这种网络架构与应用模式极大地改变了网络安全模型。位于可信内部网络中的主机可以直接与不可信的互联网主机通信,而互联网中那些不可信的主机也有机会滥用与自己通信的、位于可信内部网络中的计算机。更糟糕的是,恶意代码可以从内部网络向互联网上的主机发送消息,这就是今天我们都已经了解的攻击技术——回连(Phoning Home)。

回连技术是现代网络攻击技术的重要组成部分,其主要作用是从受保护的网络中把数据慢慢地偷取出来,但更重要的是,由于TCP协议的双向特性,使用回连技术也可以向受保护的网络中注入数据。

典型的网络攻击涉及多个步骤,如图1-6所示。首先,攻击者需要攻陷内部网络中的某一台计算机。攻击方法有很多种,可以在用户使用浏览器访问特定网页时,利用浏览器的安全漏洞发起攻击;也可以在给用户发送的电子邮件附件中植入恶意代码,利用内网计算机本地的安全漏洞发起攻击,等等。这种漏洞的有效负载非常小,只要建立起与远程互联网主机的连接,能够执行接收到的可执行代码即可。这类恶意代码通常被称为拨号器(Dialer)。

图1-6 客户端发起与攻击相关的连接,能够轻松穿透出站安全策略配置不强的防火墙

拨号器下载并安装真正用于攻击的恶意软件,然后恶意软件尝试与受攻击者控制的远程互联网主机建立新的连接,攻击者使用此连接向恶意软件发送指令,偷取敏感数据,甚至建立一个交互式的会话连接。于是,攻击者就可以把被攻陷的计算机当作跳板,在内部网络中发起进一步攻击。


出站安全

出站安全是一种非常有效的对抗拨号回连攻击的方法,可以检测并阻止拨号器回连的出站网络连接。但是,拨号器软件经常伪装成常规的Web流量,或者其他看似无害的“正常”网络流量。如果为了阻断攻击而配置过于严格的出站安全策略,则可能会影响Web的可用性及用户体验,组织的运维管理部门更关注这类现实的问题。

能够从内部网络中的某台主机发起攻击是一种非常强大的能力。这些主机拥有访问相同安全域中其他主机的权限(横向移动),甚至可能有权限与更高级别安全域内的主机通信。因此,攻击者首先攻陷内部网络中低级别安全域内的某台计算机,然后在网络中横向移动,最终获得更高级别安全域的访问权限。

回顾前面描述的攻击步骤,可以发现这类攻击有效地突破了基于网络边界的安全模型。边界安全模型的主要缺陷看起来有些微妙,但也是非常清晰的:基于网络区域定义安全策略,仅在网络边界处强制执行,并且仅使用了源和目标信息进行安全决策。