时至今日,许多企业和政府机构都建有通信隔离网络或者在不同网络之间使用受限数据流。这些计算机网络都是针对特定环境创建的,因为这些环境中可能包含非常特别或者非常重要的信息,比如工业控制系统、处理特定数据的高度安全环境或者符合安全标准的生产网络等。在当代网络安全历史上,发生过诸如震网(Stuxnet)的恶意软件渗透进核电厂隔离网络中的真实事件。鉴于这个案例,我们可以看出,如果只是单纯地将计算机网络与其他网络断开是远远不够的(不管是通过断开网线还是断开WiFi连接方式)。任何类型的外部连接都有可能给计算机带来安全风险。本文分析了此类隐藏网络(Hidden Network)的可能性,介绍了如何检测此类网络的方法,并且介绍了如何在企业网络中对此类网络进行防护。
一、网络连接的安全风险
就数据网络安全方面而言,人们趋向于使用基于链路层的网络连接(如以太网、WiFi连接等等)来分析网络安全性。企业网络的复杂度远远超过这类网络,因此我们需要从多个角度分析企业网络的安全性。
对企业数据网络的流量分析是理解企业网安全性的主要方法。此外,我们也可以对使用常见协议的网络节点进行搜索分析,以了解企业网的安全性,这些节点往往是提供重要服务或者承担关键作用的节点。基于这些背景知识,我们可以得出结论,那就是基于风险的网络分析可以根据不同的准则在企业网安全方面为我们提供丰富的数据及信息。
以直观的方式映射网络结构是理解网络节点和网络设置的最佳选择,因此,这种情况下,使用远程测量方式来分析网络安全风险是非常必要的一种选择。通过分析网络上交换的数据,我们能够更好地理解网络整体结构以及网络内部的安全威胁。

图1. 反映不同节点以及节点连接情况的网络拓扑图
节点的表示方法以及节点的连接结构对网络内部不同边界的勾画来说特别重要,合适的表示方法可以在抵御入侵行为、检测攻击活动或者预先实施安防措施方面起到非常大的作用。
问题在于对网络的理解上。在许多情况下,人们将网络定义为一组连接在一起的计算机,各个节点之间可能通过不同的技术或者协议相互通信。在大多数情况下,普通用户或者系统、网络管理员乐于通过以太网或WiFi方式连接到不同机构的计算机上,本文针对的并不是这种场景。当某个组织没有对USB设备的使用做出限制时,它就容易受到隐藏网络的威胁。攻击者可以使用USB设备创建隐藏网络,在物理或逻辑隔离的计算机之间进行通信。
1.1 网络隔离及USB连接
我们通过一个简单的案例,使大家更好理解基于USB设备的隐藏网络的危害。假设某个组织的网络由3种类型的VLAN(虚拟局域网)组成,第一个VLAN包含:
1、计算机A。该计算机与同一VLAN的其他计算机相连。
2、计算机B。该计算机与同一VLAN的其他计算机相连。
第二个VLAN包含:
1、计算机C。该计算机与同一VLAN的其他计算机相连。
2、计算机D。该计算机与同一VLAN的其他计算机相连。
3、计算机E。该计算机与同一VLAN的其他计算机相连。
第三个VLAN包含:
1、计算机F。该计算机与同一VLAN的其他计算机相连。
网络拓扑大致如下图所示,从中我们可以看到VLAN对计算机的隔离效果。假设该机构的员工使用USB设备来传输数据,那么这些数据很有可能会从一个VLAN中的计算机传输到另一个VLAN中的计算机。USB设备本身就是一个安全威胁源,可以在组织内部创建一个隐藏网络。

图2. 计算机在不同VLAN中的连接情况
假设计算机F以及计算机E正在使用USB设备来交换信息,此时这两台计算机之间正在创建一个隐藏网络。这一情况可以使用两个节点(E和F)以及从USB设备来源主机到第二台主机之间的一条有向弧边来表示。

图3. 在已有网络拓扑上形成的一个覆盖型(overlapping)隐藏网络
二、操作系统中的USB设备连接情况
当某个USB设备在两台主机之间交叉连接时,这种情况就类似于植物的“授粉”现象。这原本是生物学领域的一个概念,这里指的是不同主机间通过USB设备交叉传递安全威胁或风险(即使这些主机不处于同一网络中)。
当用户连接USB设备时,Windows注册表中会创建一系列键值。这类信息价值很高,比如,在安全取证中,分析人员可借此了解信息泄露的源头或者在安全事件发生后进行溯源。
Windows系统注册表中的USBStor键值用于保存插入当前计算机的所有不同设备的信息。当某个USB设备插入到某台主机中时,我们可以在USBStor键值中找到这个设备的信息,这些信息足以用来识别这个USB设备。

图4. 已插入的USB设备在注册表中留下的信息
当USB设备插入到某台主机中时,我们可以收集到以下信息:
1、设备名
2、设备类型(Class)
3、设备类型的唯一标识符(ClassGUID)
4、设备所提供的服务,如硬盘服务
5、驱动
6、其他信息
2.1 隐藏链接:如何探测此类网络
了解了微软操作系统保存USB设备相关信息的位置及具体方式,我们就能知道是那些主体在共享这个USB设备。这样一来,我们可以使用两个节点来表示两台主机,使用一条弧边来表示这两台主机之间的连接。正是由于隐藏链接(Hidden Link)的存在,我们才能发现隐藏网络。此外,由于我们可以从操作系统
|