不了解僵尸网络,你就不会明白我们正身处现代网络战争的战场中央,这里没有炮火和硝烟,但却时时上演Call of Duty5中的僵尸攻击波…当然,最糟糕的莫过于,当我们开始关注自己的电脑如何变成丧心病狂、毁人草坪的僵尸时,我们的城市和家园已经上演《生化危机》第四集。好了,准备亡命天涯之前,跟趋势科技的大帅哥Rik Ferguson一起温习一下前三集的功课吧。作者:趋势科技资深安全顾问 Rik Ferguson
(本文是一系列三篇文章的第一篇,此系列文章将讨论僵尸网络 Botnet的发展历史与演变,请务必持续锁定我们最新的内容。)
就在 Melissa 病毒横扫全球之后,网络安全人员已疲惫不堪之际,ILOVEYOU 病毒已蠢蠢欲动,然而,一波更隐密的新形态敌人正暗度陈仓、悄悄越过防线…
起初,一开始有两个竞争对手在争夺 Bot 网络先锋的宝座:Sub7 与 Pretty Park,前者是木马程序,后者是蠕虫程序。两者都导入了 IRC 通讯管道来让受害计算机接收恶意指令的概念。这两个恶意软件 (这样说可能 Sub7 的作者不太同意,因为这位「黑帮份子」比较喜欢用「远程管理工具」这个名词) 都是在 1999 年首次出现,从此开始,Bot 网络的技术就不断进步。
殭尸网络/傀儡网络 Botnet发展史上有几项重大事件。首先,全球化 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 代理器 (proxy) 来将受害计算机用于后续联机用途或者当成 FTP 服务器来储存非法数据。
2003 年出现的 Spybot 是先前 SDbot 的进化版,新增了键盘侧录、数据采矿、垃圾即时消息 (Instant Messaging Spam,简称 SPIM) 等功能。同年窜起的还有 Rbot,此 Bot 程序率先采用 SOCKS 代理器,并且内含 DDoS 分布式阻断服务攻击和信息窃取工具。Rbot 也是第一个使用压缩和加密算法来躲避侦测的 Bot 程序家族。同样在 2003 年首次出现的还有点对点 (P2P) Bot 网络,叫做 Sinit,后来,Agobot 模块也纳入这项 P2P 功能。次年,从 Agobot 衍生的 Polybot 首度采用变形 (polymorphism) 技巧来躲避侦测,该程序会尽可能不断改变自己的样貌。
此时 Bot 程序已逐渐扬弃原先的 IRC 通讯管道,因为防火墙很少会开启这个端口,而且其通讯协议在网络流量当中很容易辨认。因此,Bot 程序开始透过 HTTP、ICMP 和 SSL 端口来通讯,而且经常使用自定义的协议。此外,它们也持续精进其 P2P 通讯技巧,这一点我们在五年后的 Conficker 恶意软件上可以看到。