不了解僵尸网络,你就不会明白我们正身处现代网络战争的战场中央,这里没有炮火和硝烟,但却时时上演Call of Duty5中的僵尸攻击波……当然,最糟糕的莫过于,当我们开始关注自己的电脑如何变成僵尸时,我们的城市和家园已经上演《生化危机》第四集。好了,准备亡命天涯之前,跟资深安全顾问Rik Ferguson一起温习一下前三集的功课吧。
就在Melissa病毒横扫全球之后,网络安全人员已疲惫不堪之际,ILOVEYOU病毒已蠢蠢欲动,然而,一波更隐密的新形态敌人正暗度陈仓、悄悄越过防线……
起初,一开始有两个竞争对手在争夺Bot网络先锋的宝座:Sub7与Pretty Park,前者是木马程序,后者是蠕虫程序。两者都导入了IRC通讯管道来让受害计算机接收恶意指令的概念。这两个恶意软件(这样说可能Sub7的作者不太同意,因为这位“黑帮份子”比较喜欢用“远程管理工具”这个名词)都是在1999年首次出现,从此开始,Bot网络的技术就不断进步。
僵尸网络发展史上有几项重大事件。首先,全球化Bot威胁(GTbot)在2000年出现。GTbot是以mIRC客户端为基础发展出来,因此它可以根据IRC事件来执行客制化程序码(script)。此外,同样重要的是,它会使用TCP和UDP封包,所以很适合执行基础的拒绝服务攻击(Denial of Service),有些攻击甚至可以扫瞄已遭Sub7感染的主机,然后将它们“更新”成GTbot计算机。
2002年,随着SDBot和Agobot的出现,Bot网络的技术也有重大进展。SDBot是一个单独的二进制文件,用C++撰写而成。它的制造者将此“产品”商业化,让其原始码广为流传,结果,许多后来的Bot程序都多少引用了SDbot的程序代码或概念。同年,Agobot又有新的突破。Agobot导入了模块化、分阶段运送酬载的攻击概念。攻击的第一阶段会先安装后门程序,第二阶段会尝试停用防病毒软件,第三阶段会防止用户连上信息安全厂商网站。凡是近年来曾经遭到恶意软件攻击的使用者,对于这些技巧应该都还不算陌生。早期的Bot程序主要是用来远程遥控与信息窃取,但是在模块化与原始码开放之后,变种的数量就大幅增加,功能也大为扩充。慢慢地,恶意软件作者也开始利用数据加密来勒索被害人,并且利用HTTP和SOCKS代理器来将受害计算机用于后续联机用途或者当成FTP服务器来储存非法数据。
2003年出现的Spybot是先前SDbot的进化版,新增了键盘侧录、数据采矿、垃圾即时消息等功能。同年窜起的还有Rbot,此Bot程序率先采用SOCKS代理器,并且内含DDoS分布式拒绝服务攻击和信息窃取工具。Rbot也是第一个使用压缩和加密算法来躲避侦测的Bot程序家族。同样在2003年首次出现的还有点对点(P2P)Bot网络,叫做Sinit,后来,Agobot模块也纳入这项P2P功能。次年,从Agobot衍生的Polybot首度采用变形(polymorphism)技巧来躲避侦测,该程序会尽可能不断改变自己的样貌。
此时Bot程序已逐渐扬弃原先的IRC通讯管道,因为防火墙很少会开启这个端口,而且其通讯协议在网络流量当中很容易辨认。因此,Bot程序开始透过HTTP、ICMP和SSL端口来通讯,而且经常使用自定义的协议。此外,它们也持续精进其P2P通讯技巧,这一点我们在五年后的Conficker恶意软件上可以看到。
本文是《僵尸网络发展历史探讨》系列三篇文章的第一篇,此系列文章将讨论僵尸网络Botnet的发展历史与演变。