回顾一下,我们检测到三种不同类型的异常情况:通讯量分配出现的大量变化引起的突发性异常情况;定期与目标通讯引起的持续性异常情况,即使通讯量很小(如与僵尸网络指挥与控制系统通讯);许多网络用户开始采取相同行动引起的通用性异常情况。这三种异常情况与我们的系统发布的三种类型的报警有关。表2列出了一些知名的恶意软件类型,表明哪一种类型的恶意软件会触发哪一种警报。
表2 知名恶意软件类型及其警报(来源:英特尔公司,2009年)
僵尸网络踪迹
我们从三个独特的僵尸网络家族收集了通讯踪迹。我们在一台主机上执行了僵尸电脑代码并且在一个星期的时间里记录数据包踪迹。我们使用同一台主机在许多星期里运行三种不同的僵尸电脑程序。这台主机在每一次收集数据之前都清理干净原来的数据并且安装原来的Windows XP。此外,我们关闭了自动更新功能,并且设置防火墙丢弃所有入网的数据包。为了跟踪每一个踪迹,我们丢弃没有对应这个主机源地址和目标地址的全部数据包。使用Bro软件可以把这些数据包踪迹转换为通讯流。其余的分析就使用这个通讯流。我们在这个阶段的目标之一是理解不同行为的检测,也就是攻击行为和频道行为(当恶意软件呼叫家里的时候)。在我们收集的踪迹中,这两种行为我们都看到了。因为许多现实中的僵尸网络产生很少的通讯量(设法隐蔽自己),检测控制渠道是非常重要的。我们简单地解释一下这三种僵尸网络和这些通讯流是如何分类的:
SDBot。SDBot是一个经过充分研究的僵尸网络,使用IRC作为沟通渠道,但是利用非标准的端口。然而,IRC服务器很容易从域名中挑出来,如irc.undernet.org。这个踪迹暴露了在控制窗口中的两个独特的原子。其余的通讯流包括在邻近网络前缀上运行的扫描。我们在端口135、139、445和2079(一种知名的商业杀毒软件产品)上发现了大量的扫描。在这些踪迹中,我们看到在众所周知的IRC端口上的连接,并且利用这个知识识别控制通讯(IRC通讯)和攻击通讯流。
Zapchast。这种僵尸网络也使用IRC作为沟通渠道并且使用众所周知的IRC端口(6666和6667)。我们在这个踪迹中一共发现了5个IRC服务原子(大约13个独特的IP地址)。这个攻击通讯流主要是网络输入输出系统通讯。
Storm(风暴)。这个僵尸网络是以P2P网络为基础的,与其它僵尸网络有很大的不同。这些踪迹比其它僵尸网络的踪迹大两倍。缺少单一目的地的服务器或者缺少一个明确的端口要发现这个僵尸网络的控制渠道是很困难的。我们必须采用试探法做这个事。事实是风暴僵尸网络使用UDP协议连接到P2P网络。
我们观察UDP通讯流(双向流动的通讯流)并且注意到大量的数据包的尺寸都很小并且是固定的(这种通讯流在非标准端口流动,不可能是攻击性的)。我们把这些通讯流当作是维护通讯的指示器并且隔离了全部有关的端口。经过这些端口的UDP通讯流被当作这个僵尸网络控制渠道的一部分。我们确实看到了非常少的HTTP和SSH通讯流。这些通讯流也可能与控制有关。这些通讯流的数量不影响我们的检测结果。风暴僵尸网络的攻击主要是阻塞TCP端口25(SMTP)。