发现僵尸网络的常用方法

般而言,个人用户侧重发现本机上的僵尸程序,计算机安全应急组织侧重发现活跃的僵尸网络。 对于使用Windows操作系统的个人用户来说,发现僵尸程序(Bot)的难度取决于该程序的隐蔽程度。Bot平时潜伏在被控主机上,等待控制者发来的命令,此时,Bot的网络活动只限于与服务器之间的PING/PONG命令,引起的流量和网络连接很少。而且,Bot未必使用IRC协议常用的TCP 6667端口,所以很难察觉。但根据CNCERT/CC的观察,目前的Bot很少处于静止状态,它们总是在扫描、传播自身(因为很多Bot加入频道后会将频道主题解释为命令,而主题多数是扫描命令),这时,系统的网络连接会大大增加,对系统资源的占用也可能导致机器明显变慢,症状和普通的蠕虫没有区别。用户可以在命令行(cmd.exe)里输入“netstat-an”命令,如果出现本地IP向多个目标 IP的相同端口(如135,445)发起连接的现象,则很可能是扫描行为。发现扫描后,可以用端口与进程对应工具,如fport.exe,找到扫描进程,从而发现可疑的恶意程序。用户也可以直接使用netstat命令观察本机对外建立的活跃的网络连接的情况,积累足够的经验之后也可以发现Bot建立的可疑连接。 如果Bot未进行扫描和拒绝服务攻击这种引起流量突变的活动,而只是窃取用户敏感信息,如银行卡、邮件的账号和密码、CD-Key、按键记录并通过邮件或网页访问的方式通知控制者,则难以发现。可以采取的措施是安装防火墙。这样,当Bot访问互联网时,防火墙会提示“某文件试图访问…是否允许?”,用户可以根据文件名和端口判断该程序的合法性,判断是不是自己运行的程序或系统程序?发现可疑则禁止该文件访问互联网。 当然,如果Bot将访问互联网的功能插入到IE等进程内,则可以有效地穿透防火墙,因为 IE总是被用户允许的。另外,近期还发现有些Bot采用rootkit技术隐藏自身进程,不排除将来Bot利用rootkit技术隐藏网络通信的可能,因为隐藏进程和网络通信是rootkit的基本功能,也都容易实现。这些都给个人用户发现和清除Bot带来困难,即使是计算机专业人员也如此! 因此,与僵尸网络进行对抗、保护用户的安全和利益,是安全组织、网管等不容推卸的责任。如果他们掌握了一个僵尸网络的具体情况,可以在其所管理的网络中对僵尸网络的控制服务器地址或动态域名实施屏蔽,这样可以更直接和快速地避免其他计算机加入到僵尸网络中。之后再逐渐为用户提供工具或者咨询,帮助用户清除留在其计算机中的僵尸程序。国际上一些计算机安全应急组织之间开始交换这种信息,就是基于这样的思路。在CNCERT/CC的倡议下,亚太地区也即将展开这样的工作。 对于应急组织,发现并控制活跃的僵尸网络是重要的工作。现有的发现僵尸网络的方法主要有三种:(1)利用蜜罐(honeypot)捕获Bot样本;(2)利用IDS监测;(3)在IRC服务器上利用僵尸网络的行为特征。 1.利用蜜罐(Honeypot) 部署多个蜜罐捕获传播中的Bot,记录该Bot的网络行为(通过Honeywall)。通过人工分析网络日志并结合样本分析结果,可以掌握该Bot的属性,包括它连接的服务器(dns/ip)、端口、频道、连接/频道/控制密码等信息,获得该僵尸网络的基本信息甚至控制权。 实验表明,一台未打补丁的Windows主机,接入互联网后平均25分钟即可感染恶意程序。所以,利用蜜罐可以捕获Bot,从而根据Bot运行时连接的服务器发现僵尸网络。 这种方式被证明是一种有效的手段,国际项目“honeynet project”在2004年11月到2005年3月期间,只使用两台蜜罐(1台通过HoneyWall记录日志、1台使用mwcollect捕获新的样本),就发现了180个僵尸网络,每个僵尸网络的规模从几百个到几万个不等,共涉及到30万个被控主机。同时还收集到5500个样本,共800种(有些样本是相同的)。在2004年11月到2005年1月,共观察到406次DDoS攻击,攻击目标共179个。 2.利用网络IDS 对于具有IRC协议解析能力的IDS,可以根据IRC Bot常用命令,如JOIN、PASS、PRIVMSG、NICK、TOPIC、NOTICE等及其命令参数来发现未知僵尸网络。 如果不具有IRC 协议解析功能,也可以根据TCP数据报文的内容发现可疑僵尸网络,可疑的数据报文包含udp、syn、ddos、http://、download、.exe、update、scan、exploit、login、logon、advscan、lsass、dcom、beagle、dameware等。 3.利用僵尸网络的行为特征 ①快速加入型Bot 这类Bot通常利用蠕虫传播,一旦在受害主机上运行,就按预定义的参数连接IRC服务器、加入指定的频道接受指令。短期内大量IRC客户端加入同一服务器的同一频道是可疑的。 ②长期连接型Bot 正常用户很少长期停留在一个频道中,而Bot只有在接受“退出”、“休眠”、“自杀”等命令后才会退出。 ③发呆型Bot Bot与正常用户另一个不同之处是Bot很少“说话”,经常“发呆”,靠ping/pong命令来维持连接。 利用行为监测是由DdoSVax项目提出的,该项目可以针对以上类型的Bot预警。 4.三种发现方式的对比 ①发现的僵尸网络类型和范围不同 IDS只能发现监测范围之内的Bot活动,而位于互联网任何一个位置的蜜罐有可能捕获任意有感染该蜜罐能力的Bot,进而发现该Bot所在的僵尸网络。但是蜜罐不能发现停止传播而单纯执行命令的Bot,也不能发现对该蜜罐系统无攻击能力的Bot,而IDS则不存在这些问题。行为监测适合于发现较大规模且严格使用IRC协议的僵尸网络。 ②蜜罐具有更强的消息收集能力 IDS的监测方法是相对单一的,它必须针对已知的(IRC)协议监测符合条件的网络通信内容。如果Bot采用了非IRC协议或与IRC RFC不兼容的修改版本,IDS就不能发现它们的活动;而根据报文内容监测又存在高误报的问题。蜜罐则不存在这些问题,它捕获的Bot会收到来自僵尸网络(包括控制命令)的所有消息,无论与IRC协议是否相关。但是,对于经过修改的IRC服务器,蜜罐可能无法收到很多消息,比如新用户的加入,从而无法掌握僵尸网络的规模,而监测则不存在这个问题。行为监测法适合于发现僵尸网络,不适合收集信息。 ③IDS有更强的发现控制者的能力 控制服务器收到控制者的命令后,会将该命令转发给所有Bot,而转发的信息中可能隐藏了控制者的地址,这使得蜜罐难以发现控制者的地址,而IDS则有潜力发现控制者的活动,即使控制者通过代理连接控制服务器。例如,控制者通过socks v4代理向Server发送一个“TOPIC #rBot :.advscan lsass 200 5 0 -r -s”的命令的过程: a)源地址为控制者,目的地址为代理 ->TOPIC #rBot :.advscan lsass 200 5 0 -r -s/n b)源地址为代理,目的地址为控制服务器 ->TOPIC #rBot :.advscan lsass 200 5 0 -r -s/n c) 源地址为控制服务器,目的地址分别为Botnet内每一个Bot <-:ControllerNICK!ControllerUSER@socks(HOST or IP) TOPIC #rBot :.advscan lsass 200 5 0 -r -s/r/n 上述网络通信内容可以被IDS发现,而蜜罐捕获的Bot只能收到最后一条消息,蜜罐可以从这条消息中发现代理的IP、部分IP或编码过的IP,因为获得的是代理的IP,就丢失了发现控制者的机会。而IDS则有可能发现上面3个通信,即使获得两条,比如1和3,1的服务端在3中是发送消息端,判断1的服务端是代理。再结合代理验证工具确认是代理后,则1的客户端就是可疑的控制者。对于多级代理,情况会更复杂,取决于IDS的部署范围。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值