月光博客 » 互联网络 » 僵尸网络的检测与防御方法

僵尸网络的检测与防御方法

  僵尸网络(botnet)由一系列被恶意软件感染的主机组成,受到一个被称为僵尸主控机(botmaster)远程控制。僵尸网络可以被用于执行一系列恶意活动,例如分布式拒绝服务攻击、发送垃圾邮件、窃取个人信息、执行分布式计算任务等。

  僵尸网络的通信方式主要有中心式、P2P以及混合两种方式,在中心式中,僵尸主机(bot)通过合法的通信信道进行通信,一般使用IRC(Internet RelayChat)的通信方式。当一台主机被感染之后,会与IRC服务器建立连接。botmaster会建立IRC command andcontrol (C&C)信道控制僵尸主机,并实现下发入侵命令以及更新僵尸主机行为等指令。这种中心式的方式存在单点失效的风险,一旦IRC服务器被查出,整个僵尸网络就会失去控制,同时监控从主机到服务器的流量内容,很容易检测出僵尸主机。

  因此有新的僵尸网络依据P2P的方式进行通信。这种方式能够避免单点失效的缺陷,因此僵尸网络比较稳健。但是,这种僵尸网络构建成本高、通信的时延高。

  由于上述两种组网方式的僵尸网络都存在缺陷,因此出现两者的混合方式。有的僵尸网络还基于HTTP协议进行C&C信号传输,使得这些流量可以绕过传统的防火墙,当这些流量经过加密时,也可以穿透具有DPI功能的设备。因此就需要根据其通信行为将其检测出来。

  一个僵尸网络的生存周期包括形成、C&C、攻击、后攻击四个阶段。形成阶段由攻击者入侵有漏洞的主机,并在其上执行恶意程序,使之成为僵尸主机。一旦成为僵尸主机之后,botmaster会通过各种方式与之通信。之后根据botmaster的指令执行攻击行为。后攻击阶段是指botmaster对僵尸网络进行升级更新。

  传统的检测僵尸网络的方法一般在形成、攻击阶段,利用僵尸主机存在的行为特征,例如通信的数据内容。一些基于网络流量行为分析的方法可以检测僵尸网络,主要是从通信流量特征的角度去检测的,例如流量的通信周期,这种方法可以检测出一些加密的僵尸主机流量,同时还可以检测出新型的僵尸网络。

  僵尸网络是如何控制的?

  僵尸网络的核心特征是能够从僵尸牧民那里接收更新的指令。与网络中的每个机器人通信的能力允许攻击者交替攻击向量,更改目标IP地址,终止攻击以及其他自定义操作。僵尸网络设计各不相同,但控制结构可分为两大类:

  客户端/服务器僵尸网络模型

  客户端/服务器模型模仿传统的远程工作站工作流,其中每台机器连接到中央服务器(或少量集中式服务器)以访问信息。在此模型中,每个机器人将连接到命令和控制中心(CnC)资源,如Web域或IRC通道,以便接收指令。通过使用这些集中式存储库为僵尸网络提供新命令,攻击者只需修改每个僵尸网络从命令中心消耗的源材料,以便更新受感染机器的指令。控制僵尸网络的集中式服务器可以是攻击者拥有和操作的设备,也可以是受感染的设备。

  在任何这些客户端/服务器模型中,每个机器人将连接到命令中心资源,如Web域或IRC通道,以便接收指令。通过使用这些集中式存储库为僵尸网络提供新命令,攻击者只需修改每个僵尸网络从命令中心消耗的源材料,以便更新受感染机器的指令。

  从有限数量的集中式源向僵尸网络更新指令的简单性是这些机器的漏洞; 为了使用集中式服务器删除僵尸网络,只需要中断服务器。由于此漏洞,僵尸网络恶意软件的创建者已经发展并转向新模型,该模型不易受到单个或几个故障点的干扰。

  点对点僵尸网络模型

  为了规避客户端/服务器模型的漏洞,最近使用分散的对等文件共享组件设计了僵尸网络。在僵尸网络中嵌入控制结构消除了使用集中式服务器的僵尸网络中存在的单点故障,使缓解工作更加困难。P2P机器人可以是客户端和命令中心,与其相邻节点携手传播数据。

  点对点僵尸网络维护一个可信计算机列表,用户可以通过这些计算机提供和接收通信并更新其恶意软件。通过限制机器人连接的其他机器的数量,每个机器人仅暴露给相邻设备,使得更难跟踪并且更难以缓解。缺乏集中式命令服务器使得对等僵尸网络更容易受到僵尸网络创建者以外的其他人的控制。为了防止失去控制,分散的僵尸网络通常是加密的,因此访问受到限制。

  总结

  通过上述的例子,我们可以知道僵尸网络绝非无药可解的顽疾。应对这一威胁,需要同时从网络和主机两个层面着手,而网络和主机所需采用的产品或技术必须能够覆盖僵尸网络攻击和传播的每一途径,这样既可免受僵尸网络之害,创造良好的内部网络环境,并为净化互联网安全做出一份贡献。

 

顶一下 ▲()   踩一下 ▼()

相关文章

发表留言