僵尸网络模型分析及解决方案

来源:互联网 发布:粤城电器淘宝店怎么样 编辑:程序博客网 时间:2024/05/22 10:35
僵尸网络的攻击要素

  下图显示了一个典型的僵尸网络结构

      Highslide JS

       攻击者首先会散布木马病毒感染大量的主机,然后这些主机就成为了所谓的僵尸然后与IRC(在线聊天系统,Internet Relay Chatting)服务器连接获取进一步的指令。

  IRC服务器既可以是IRC网络中的单台公用计算机也可以是攻击者处心积虑设置在受威胁计算机上的一个服务器。僵尸在受威胁的计算机上运行,这样就形成了一个僵尸网络。

典型案例

  攻击者的行动可以分裂为以下四步:

生成、配置、感染、控制

  生成步骤很大程度上依赖于攻击者的能力和要求。黑客会决定是否采用自己编写的僵尸代码或是仅对现存的代码作简单的修改。在现实的生活中,有大量的现成的僵尸。使用图形操作界面显得更为简单。难怪有大量的初学者就选择了这样一条简单之路。

  在配置阶段主要包括提供IRC服务器和通道信息。一旦被安装到受威胁的计算机中,僵尸计算机就会连接到指定的主机。攻击者首先会输入必要的数据来限制僵尸计算机的访问权限,保证渠道最终提供授权用户的清单(这些人可以控制僵尸网络)。在这一步骤中,僵尸就会带有典型的特征,例如会定义关于攻击目标和攻击形式的一些问题。

  在感染阶段,主要是使用不同的技术来传播僵尸——直接手段或是间接手段。直接手段包括利用操作系统或是服务的漏洞。间接手段就是使用一些软件,例如使用恶意的HTML网页对IE浏览器的漏洞进行攻击,使用点对点网络或是直接的客户点对点的文件传输来发布恶意软件。直接攻击一般都自动的伴有蠕虫病毒。蠕虫的任务就是寻找二级网络的系统相关漏洞然后感染僵尸代码。受感染的系统接着继续这样一个过程,这样攻击者就免去了花费大量时间来寻找新的受害者。

  在发布僵尸网络中所应用的机制是所谓的英特网背景噪音的重要原因。这些主要的端口分布在Windows中,特别是Windows2000和XP SP1,它们似乎是黑客们最钟情的目标,因为他们很容易就可以找到未下载补丁的Windows计算机,有些情况下,这些计算机连防火墙都省了。在家庭用户和小企业中很普遍,这些人往往忽视安全问题,并且宽带连接一直大敞。

Highslide JS

         表一 与漏洞服务相关的端口

  在控制步骤主要是指僵尸在指定的主机内生根之后一些事情。为了突破Windows,它会升级注册表,一般是
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/


僵尸网络安装后的第一件事情就是与IRC服务器取得联系然后在密码的帮助下成功进入控制渠道。IRC上的昵称是随机产生的。僵尸计算机然后就会接受来自于主机应用程序的命令。攻击者必须使用密码链接僵尸网络。这是必须的,因此外人不可能使用这一僵尸网络。

Highslide JS

   僵尸网络

  僵尸网络不仅提供控制数百台僵尸计算机的方法,还会提供相应的技术来隐藏其真实身份。这样就使得攻击来源模糊化难以侦查。对于我们来说很幸运的是,僵尸网络有其自身无法避免的弱点,就是其产生的异常流量很容易就被发现。这样,IRC的管理员就可以将僵尸网络拒之门外并且对相关用户做出通报。

  面对形势的变化,攻击者不得不提高他们的控制和命令技巧,这样就出现了僵尸网络萃取。僵尸使用动态的映射用户名配置到不同的主机上。藉此,攻击者可以轻易的将僵尸配置到新的服务器上,保证即时在被发现之后还能够运转自如。一些动态的域名服务器就是为此应运而生的,诸如dyndns.com,no–ip.com。

动态域名服务器

  动态域名服务器(RFC 2136)将域名链接到一个动态的IP地址上。通过调制解调器,ADSL以及光纤上网的用户根本就没有一个固定的域名。一旦用户联网,英特网服务提供商就会从一个IP库中随意分配一个未经使用的IP地址。当然,这一地址只会在那台计算机的上网的那段时间中保留。

  这一机制使ISP们最大限度的利用现有的IP库,但是这样损害了那些需要静态域名的用户的利益。为了解决这一问题,动态域名系统应运而生。ISP们实现此目的的一个手段是使用一个精心设计的程序,就是每当用户的IP地址转换的时候,它就会对DNS数据库做出标记。

  为了隐藏这一行为,IRC渠道设计的时候就限制了访问并且隐藏行为。典型的僵尸网络渠道的IRC模式有以下:+k(访问时需要密码),+s(渠道不会出现在公众网络渠道里),+u(只有操作员在用户名单里可见),+m(只有使用+v语态地位的用户才可以进入这一渠道)。许多专业的黑客使用的是特制的IRC服务器加密所有在通讯中的相关交流。还有一个趋势就是他们使用各种个性化的IRC服务器软件,可以用来窃听非标准端口或是使用改进版的通讯协议,这样普通的IRC客户机就不能进入这一网络。

实践中的命令与控制——Agobot

  我们先来看一下一个实际的攻击场景,这样我们就可以更清晰的了解僵尸网络的命令与控制操作的相关过程。这一任务包括两台计算机。第一台计算机在一台基于UnrealIRCd 3.2.3上使用的IRC服务器,还有两台基于Vmware工作站的虚拟的Windows XP SP1机器(都存在潜在的感染风险)。第二台由僵尸牧者操控僵尸网络,实用的是Irssi,一个原原本本的IRC客户机。

  为了使这一发工程学更加困难,Agobot执行一些常规的反制措施,包括SoftICE or OllyDbg调试器的使用,并且针对虚拟的Vmware和Virtual PC也做出了应对措施。因此就有必要劫持源代码绕开Vmware的保护,在僵尸被安装到我们虚拟的系统之前。

  配置

  第一步就是使用简单的图形操作界面配置僵尸(见下图)。输入的信息包括名称和IRC服务器的端口,通道名称,拥有密码的管理员的清单,最后,僵尸将要侵袭的文件名和目录。一些插件也需要激活,诸如网络嗅探支持还有多形态引擎。这一步骤的结果就是config.h文件夹,这是僵尸网络编辑的根本。

Highslide JS      

 Agobot配置操作界面

命令与控制

  一旦僵尸被编辑成功,这两台测试系统就被感染了。主机已经连接上IRC服务器然后就会进入这一渠道为了能够对僵尸做出操作命令行。

Highslide JS
      
    主服务器和通道链接

  为了对僵尸进行有效控制,授权是必须的。这一步很简单,发一个命令到通道中即可:.login FaDe dune

Highslide JS    

    用户和密码授权

  然后第一个僵尸被要求在被感染的计算机上运行一系列的进程:/msg FakeBot–wszyzc .pctrl.list

Highslide JS      

  来自于僵尸计算机对主机的回应

  然后第二台僵尸被要求寻找系统信息并且cdkeys所有的安全程序:
  /msg FakeBot2–emcdnj .bot.sysinfo
  /msg FakeBot2–emcdnj .harvest.cdkeys


Highslide JS  

   来自于第二台僵尸计算机对主机的回应

  在这一例子中,我们使用了一个很简单的功能,但是Agobot提供了很丰富的命令和功能,下表做了一些列举:

Highslide JS

     表二 Agobot的一些命令

如何保护你的计算机

  以下,我们将阐述如何从用户和管理员两个维度有效的防止僵尸的感染及其攻击

PC用户的防御策略

  前面提到僵尸的感染主要是通过蠕虫,它们游荡在网络之中寻找有漏洞的机器。因此第一步就是实时升级你的系统,下载补丁和系统补丁,不仅仅是你的操作系统还有你所有与网络相联系的应用程序。

  自动升级是一个不错的主意。还有要注意不要打开可疑邮件。

  不要浏览支持ActiveX和JavaScript的脚本语言(至少要控制其使用)。

  最根本的就是要使用反病毒和反木马软件并且实时更新。尽管如此,许多僵尸仍然会突破杀毒软件的阻截,因此需要安装个人防火墙,特别是电脑一天24小时都开着的话。

  僵尸网络出现的重要标志就是网络连接和系统下载。下面是一个简单有效的探测可疑链接的方法:C:/>netstat –an

Highslide JS      

   在感染系统中的Netstat

Netstat

  Netstat对于Windows和Unix操作系统都很有效,它的主要功能就是控制活跃端口,Netstat检查TCP和UDP端口并且提供关于网络活动的详细信息。UNIX系统netstat显示所有的流量信息。同样哈有关于出流量的选择,

  一些可能的连接状态:

  · ESTABLISHED –所有的主机均连接
  · CLOSING 远程主机正关闭连接
  · LISTENING –主机进入监听连接
  · SYN_RCVD –远程主机请求连接
  · SYN_SENT –主机开始新的连接
  · LAST_ACK –关闭连接之前发送报告
  · TIMED_WAIT, CLOSE_WAIT –远程主机终止连接
  · FIN_WAIT 1 –客户机终止连接
  · FIN_WAIT 2 –两台主机终止连接

  观察ESTABLISHED连接特别是6000–7000之间的TCP端口(通常是6667)。如果你发现你的计算机受到威胁,断开网络,清除系统,重启,再检查一遍。

  管理员防御策略

  管理员应该实时关注最新漏洞信息,多读一些网络安全信息。可以订阅Bugtraq,这个很不错。还有就是要教育用户以及制定相关安全政策。

  管理员很有必要学一下与入侵检测系统,防火墙,电子邮件服务器还有代理服务器生成的日志。这有助于查明不正常流量,很可能就是僵尸网络现身的标志。一旦注意到一场流量,使用嗅探器侦查来确认子网罗以及产生这一流量的计算机。上述建议你会认为理所当然,但是却很容易被忽略。

  还有一点就是使用先进的手段研究和侦查威胁。其中一个技术就是蜜罐技术。蜜罐就是专门设置引诱威胁的计算机,其主要功用就是搜集威胁的来源然后管理员就会找出解决问题的办法。

  最后,姑且不论我们的工具和建议,最有效的防御僵尸网络的方法就是用户本身及其警觉性。其它一切解决方案都只是外部因素。