起源及演化过程
Botnet是随着自动智能程序的应用而逐渐发展起来的。在早期的 IRC聊天网络中,有一些服务是重复出现的,如防止频道被滥用、管理权限、记录频道事件等一系列功能都可以由管理者编写的智能程序所完成。于是在1993 年,在IRC 聊天网络中出现了Bot工具——Eggdrop,这是第一个Bot程序,能够帮助用户方便地使用IRC 聊天网络。这种bot的功能是良性的,是出于服务的目的,然而这个设计思路却为黑客所利用,他们编写出了带有恶意的Bot 工具,开始对大量的受害主机进行控制,利用他们的资源以达到恶意目标。
日期 Bot名称 制作者(姓名或绰号) 描述
1993.12 Eggdrop Robey Pointer Jeff Fisher 第一个非恶意IRC 机器人程序
1999.6 PrettyPark 匿名 第一个恶意的使用IRC 作为控制协议的Bot
2000 GT-Bot Sony,mSg 和DeadKode 第一个广泛传播的基于mIRC 可执行脚本的IRC Bot,
2002.2 SDbot SD 第一个基于代码的单独的IRC Bot
2002.9 Slapper 匿名 第一个使用P2P协议通讯的Bot
2002.10 Agobot Ago 不可思议的强壮、灵活和模块化的设计
2003.9 Sinit 匿名 使用随机扫描发现对端的P2P Bot
2004.3 Phatbot 匿名 基于WASTE 协议的P2P Ago
2004 Rbot/rxbot Nils RacerX90等 SDbot的后代,
2004 Gaobot 匿名 第一类Bot,使用多种手段传播
2004.5 Bobax 匿名 使用HTTP 协议做命令和控制机制。
20世纪90年代末,随着分布式拒绝服务攻击概念的成熟,出现了大量分布式拒绝服务攻击工具如TFN、TFN2K和Trinoo,攻击者利用这些工具控制大量的被感染主机,发动分布式拒绝服务攻击。而这些被控主机从一定意义上来说已经具有了Botnet的雏形。
1999 年,在第八届DEFCON 年会上发布的SubSeven 2.1 版开始使用IRC 协议构建攻击者对僵尸主机的控制信道,也成为第一个真正意义上的bot程序。随后基于IRC协议的bot程序的大量出现,如GTBot、Sdbot 等,使得基于IRC协议的Botnet成为主流。
2003 年之后,随着蠕虫技术的不断成熟,bot的传播开始使用蠕虫的主动传播技术,从而能够快速构建大规模的Botnet。著名的有2004年爆发的 Agobot/Gaobot 和rBot/Spybot。同年出现的Phatbot 则在Agobot 的基础上,开始独立使用P2P 结构构建控制信道。
2004 年5 月出现的基于HTTP 协议构建控制信道的Bobax。
从良性Bot的出现到恶意Bot的实现,从被动传播到利用蠕虫技术主动传播,从使用简单的IRC协议构成控制信道到构建复杂多变P2P结构的控制模式,再到基于HTTP及DNS的控制模式,Botnet逐渐发展成规模庞大、功能多样、不易检测的恶意网络,给当前的网络安全带来了不容忽视的威胁。
定义
僵尸网络是在网络蠕虫、特洛伊木马、后门工具等传统恶意代码形态的基础上发展、融合而产生的一种新型攻击方式。从1999 年第一个具有僵尸网络特性的恶意代码PrettyPark 现身互联网,到2002 年因SDbot 和Agobot 源码的发布和广泛流传,僵尸网络快速地成为了互联网的严重安全威胁。第一线的反病毒厂商一直没有给出僵尸程序(bot)和僵尸网络的准确定义,而仍将其归入网络蠕虫或后门工具的范畴。从2003 年前后,学术界开始关注这一新兴的安全威胁,为区分僵尸程序、僵尸网络与传统恶意代码形态,Puri及McCarty均定义“僵尸程序为连接攻击者所控制IRC 信道的客户端程序,而僵尸网络是由这些受控僵尸程序通过IRC 协议所组成的网络”。为适应之后出现的使用HTTP 或P2P 协议构建命令与控制信道的僵尸网络,Bacher 等人给出了一个更具通用性的定义:僵尸网络是可被攻击者远程控制的被攻陷主机所组成的网络。僵尸网络与其他攻击方式最大的区别特性在于攻击者和僵尸程序之间存在一对多的控制关系。Rajab 等人在文献中也指出,虽然僵尸网络使用了其他形态恶意代码所利用的方法进行传播,如远程攻击软件漏洞、社会工程学方法等,但其定义特性在于对控制与命令通道的使用。
综合上述分析,僵尸网络是控制者(称为Botmaster)出于恶意目的,传播僵尸程序控制大量主机,并通过一对多的命令与控制信道所组成的网络。