谁动了我的计算机 专家说,在如今的网络环境里,一台全新安装的计算机从连接网络到被感染病毒只需要不到45分 钟…… 谁动了我的计算机 可怕的“45分钟定律” 早些时候,网络上公布了一份专家报告称:在当前这个病毒、蠕虫和黑客出没的网络上,一台刚 安装好Win2000/XP等主流操作系统的计算机从连接网络到被感染病毒或被入侵的最长时间为45分 钟,而实际上,如果考虑到所处网段和黑客扫描的活跃状态,这个时间也许会更短。 许多网民都看过这份报告,依靠网络获得经济收入的美术设计师小江也不例外,他是属于SOHO一 族的,为一些公司制作LOGO、效果图,所有的交互都在网络上进行,久而久之,小江开始变得非 常依赖网络,他的所有工具都从网络上获得,除非真的无处可寻,否则他绝对不会去软件市场购 买光盘,如果操作系统的安装可以通过网络进行,他恨不得抽屉里一张光盘都没有。他始终认为, 既然网络这么便利,又何必把资金浪费在软件版本更新不及时的用光盘做载体的软件上呢? 这天小江比较烦,因为他的电脑昨天被表弟玩出问题了,小江虽然在电脑美术方面有过人之处, 但是系统维护方面却一窍不通,在他的胡乱摆弄后,系统彻底罢工,这下只能重装系统了。 因为这次小江已经知道了“45分钟定律”,所以安装好驱动程序后,他立即连接上网络,来到 Windows Update网站下载补丁,可是补丁还没打完,机器就出现异常了:突然间的一次蓝屏重启后,每 次进系统都在1分钟倒计时后重启,很明显是被感染XX波蠕虫了。小江欲哭无泪,他还没来得及 打补丁呢,怎么预防网络上的漏洞蠕虫?不上网就不会被感染,可是那样怎么打补丁? 网络在给人们提供便利的时候,还带来了严重的危机。也许,面对这个高科技时代里“先补丁 还是先连网”的问题,困惑的不仅仅是小江…… 我们都知道,就目前的网络环境而言,能避免被“黑”一下的方法只有用多个防御措施把自己 武装起来,而刚安装好的系统之所以会被轻易入侵,是因为这样的系统什么防御措施都没有, 完全是对外界开放的,无怪乎病毒和入侵者能轻易进来。45分钟,已经属于很长的时间了。 既然刚安装的系统如此不堪一击,那么岂不是所有新装的系统都不能轻易上网?其实这个问 题比“先有蛋还是先有鸡”更好解决。首先要清楚,无论是什么样的病毒和黑客,他们能入 侵的途径只有一个,就是系统与网络之间的窗口——网络端口。每个网络端口都是由特定的应 用程序控制的,系统漏洞往往都是因为这些程序代码出了疏忽的地方,例如无法正确处理带有 恶意指令的网络数据包,当系统接收处理这些数据后,就会出现例外错误,如果被影响的程序 属于系统运行必备组件,那么计算机轻则死机,重则被黑客入侵,这就是远程入侵的实质, 它们必须通过端口进行。 既然端口是个敏感地带,那么,如果我们在安装系统后设法阻止端口的外部访问,让外部数据 包无法顺利连接计算机,这样不就可以免疫最初的网络攻击了吗?而网络防火墙就是一种能阻 止端口访问的程序。 所以,打破“45分钟定律”的方法就是: 在不连接网络的情况下安装好系统和驱动程序; 2. 安装网络防火墙,记得配置规则为“禁止任何人连接端口”或与之类似的规则; 连接网络,去Windows Update打完所有补丁; 4. 安装防病毒软件; 视用户个人能力,设置系统服务和管理规则等加强措施。 经过这5步最初设置,计算机防御病毒和入侵的能力将会大大提高。毕竟,这样已经是一个好 的开头,只要以后再多加防范,病毒和黑客就没那么容易动你的计算机了。 “傀儡网络”离你有多远? 现在才开始上网的用户是幸福的,因为他们不必经历几年前那些用户必须经历的慢如蜗牛的拨 号网络,我至今都还记得当初在2001年时听闻一个在上海的网友可以直接在线聆听MP3后,口水 淌了一地的情景,这在当今网络环境的人听来简直不可思议,可是经历那个时代的人都清楚, 当时的下载速度能达到9KB/s是件多么自豪的事情——可是放到现在来看待呢?不会抱怨网络慢 的都不属于正常人。 正因为现在的个人网络速度越来越快了,于是一种新的攻击体系也开始浮出水面,这就是“傀 儡网络” Net,或称“僵尸网络”),这种入侵早期仅用于服务器,入侵者们也是千方百计要在受害者 的计算机里“下马”,即种植一个木马服务端。看到这里你也许会说,这不就是现在最滥用的 木马手段吗,何必旧事重提?如果你有此想法,那你一定没有理解“Zombie”的含义。在“傀 儡网络”的领域里,入侵者并不是对你机器上的数据感兴趣,而是为了方便它们能够以你的身 份去完成某些事情罢了。在这种情况下,植入你机器的后门不会做出破坏你机器的事情,因为 正如寄生虫和宿主的关系一样,如果宿主死亡,寄生虫还靠什么活下去?“傀儡网络”正是依 赖被害人计算机的寄生虫,因此它不会随便做出破坏行为让宿主发现异常,否则幕后黑手还凭 什么来控制整个“傀儡网络”的运作? 细心的读者会从我的描述中看出一个很熟悉的攻击体系结构,那就是拒绝服务攻击DDoS的控 制模型:攻击者控制网络上大量被种植了DDoS服务端的计算机对目标发起垃圾数据攻击。实 际上,早期的“傀儡网络”就是为了实现这个任务而运作的,它需要大量高带宽高数据吞吐量 的网络节点设备才能发动高流量的数据洪水(图3.早期的傀儡网络模型),在以前大家普遍使 用Win98系统来拨号上网的时候,这点数据吞吐量和系统的稳定性并不能满足“傀儡网络”的 需求,于是当时这种体系仅仅限于在服务器系统之间感染传播,因此没有造成大规模危害。 时过境迁,如今个人计算机的网络速度最少都能达到512kbps的流量,于是新的一轮“傀儡 网络”攻击拉开了序幕,要知道入侵个人计算机往往要比入侵服务器容易得多!虽然个人计 算机网络速度相对于服务器而言还是太慢了点,可是黑客如果入侵控制数十台1Mbps的个人 计算机形成一个“傀儡网络”,其攻击强度不会低于他拼了老命才得手的一台10Mbps的网 络服务器。衡量一下两边的利弊,你认为他会选择入侵谁?于是在这个高带宽的网络时代 里,个人用户也会被“傀儡网络”的黑手触到了。(图4.现在的傀儡网络模型)而且由于个 人用户的系统环境相对于服务器系统环境所带的防御检测工具更少,于是这个攻击体系的寿 命将会相对的延长。如果要追寻利用个人计算机做“傀儡网络”的不足,可能仅仅因为个人 计算机相对服务器而言的不稳定性质致使它不能24小时待命而已,但是别忘记网络服务器和 个人计算机之间的比例差异。设想一下,如果当初搞瘫整个世界网络的并不是专门针对SQL服 务器的SQL蠕虫,而是RPC DCOM或者LSASS蠕虫,恐怕没有一台根域名服务器能幸免了吧,这种由上亿台个人计算机组 成的“傀儡网络”将会比服务器形成的“傀儡网络”攻击遭受的损失更大。 而且“傀儡网络”能实现的攻击还不仅仅限于DDoS,入侵者能通过更改傀儡服务器端来实 现其他功能,例如“跳板攻击”、“多级代理”等,前者可以借刀杀人,后者可以隐藏真正 的入侵者。 要检测计算机是否感染了“傀儡网络”是一件需要耐心的事,因为它们通常不会让你的系 统看起来有什么不妥,除了在“傀儡网络”发动DDoS攻击时由于带宽和性能消耗而表现出的 系统响应缓慢、网络速度突降以外再没任何不良反应,没有网络攻防经验的一般用户根本不 会想到自己的计算机正在被别人用来做破坏工具(图5.傀儡网络服务端不易被察觉),而且 因为无法预知“傀儡网络”什么时候发动攻击,更增加了检测难度。但是由于木马也需要和 控制端进行数据交互,因此需要开放端口监听连接,除非感染的是反弹类型的木马,否则通 常可以用端口检测程序配合进程名称判断程序是否值得怀疑,但是有一些傀儡木马被设定为 在指定时间自动对固定目标发动攻击,这样的木马由于不需要控制,根本连端口都不用开, 例如当时攻击微软网站的SCO蠕虫,遇到这样的木马,平时是无害的,可是过了爆发那一天 以后,如果“傀儡网络”的作者加入了逻辑炸弹,让木马连同宿主一起销毁,那就不是闹着 玩的了,所以这类木马隐藏的危机要比随时能控制的木马更大,若清除不及时,可能会带来 恶性后果。 通常,如果用户不是那么粗心的使用者,那么要发现“傀儡网络”也不算难事,因为一般 的“傀儡网络”也属于木马类型,无论隐藏得多深,都要有数据通讯的,用端口查看工具 就能发现本地监听的端口,直接清理掉即可;如果是反弹型的“傀儡网络”,虽然表面上 不开端口,可是别忘了它也要接收控制端指令的,而一般作者的习惯都是让木马在启动或 者检测到网络可用后马上自动连接事先设定的IP读取指令,因此它更容易暴露自己,对于 一般用户来说,最简单的检测方法是在开机后打开嗅探工具,然后再连接网络,记录此时 的数据连接,如果重复几次连接都发现本机自动发出对某个固定地址的连接请求的数据, 就要怀疑是否感染反弹木马了,再配合防火墙的“应用程序网络状态”功能,很快就能 把“傀儡网络”揪出来。 三.来自内核的欺骗——Rootkit木马 老宏是一家大公司的资深网管之一,常年负责维护整个公司的网络运作和安全设置,几 年下来平安无事,可是最近公司网络频频出问题,职员电脑里的资料也遭遇盗窃,公司 管理阶层很注重这事情,怀疑网络已经被入侵,老宏和其他网管从天亮就开始在机房里 忙着检查系统,由于公司内部网络复杂,十几台承担各种网络功能的服务器系统也不尽 相同,客户机更是多不胜数,连续几天下来,检测工作一无进展,负责系统检测的老宏 更是想不通,所有系统看起来都没有被入侵的痕迹,也查找不到可疑文件和进程,那究 竟是什么东西在折腾?无奈之下,公司暂时切断了内部网络,老宏在一台被独立出来的 基于Linux系统的网络服务器旁看着显示器发呆。屏幕上进程监视程序里都是熟悉的进 程,也没有任何数据传输,因为连接内部的网线已经拔掉了,网络服务也已经停止了。 老宏点了支烟,望着不远处的交换机出神,在烟雾缭绕中,他仿佛看到交换机面板上代 表这台网络服务器的数据指示灯在闪烁,公司网络没出问题的时候,这里有多么繁忙的 数据传输啊,它代表着公司业务的……老宏突然吓得差点把烟甩掉,因为他突然清醒过 来了:交换机的数据指示灯真的一直在闪烁!他转头看看显示器上的流量统计,它们却 一直没变化!显示器表达的信息与交换机表达的信息不能同步,老宏只觉得整个机房变 得诡异起来…… 这样的事情并不一定会发生在所有个人计算机用户的身上,因为它们并非主流的群体, 然而一旦不幸发生,却会给你带来远比以前遭受的一切病毒袭击更恐惧的感受,你会 惊恐的发现系统有点异常行为、敏感数据遭遇盗窃、甚至有明显的木马感染的表现, 但是杀毒软件报告你的系统完好,你用流行的进程查看工具也没有发现可疑程序,但是 你的机器却一直表现异常…… 正如自然界的规则一样,最流行的病毒,对生物的伤害却是最小的,例如一般的感冒, 但是最不流行的病毒,却是最夺命的。Rootkit木马就是信息世界里的AIDS,一旦感染 ,就难以用一般手段消灭了,因为它和自然界里的同类做的事情一样,破坏了系统自身 检测的完整性——抛开术语的描述也许难以理解,但是可以配合AIDS的图片想象一下, 由于AIDS破坏了人体免疫系统,导致白细胞对它无能为力,只能眼睁睁看着人体机能被 慢慢破坏。计算机系统没有免疫功能,但是它提供了对自身环境的相关检测功能——枚 举进程、文件列表、级别权限保护等,大部分杀毒软件和进程工具都依赖于系统自带的 检测功能才得以运作,而Rootkit木马要破坏的,正是这些功能。 要了解Rootkit木马的原理,就必须从系统原理说起,我们知道,操作系统是由内核( Kernel)和外壳(Shell)两部分组成的,内核负责一切实际的工作,包括CPU任务调度、 内存分配管理、设备管理、文件操作等,外壳是基于内核提供的交互功能而存在的界面, 它负责指令传递和解释。由于内核和外壳负责的任务不同,它们的处理环境也不同,因此 处理器提供了多个不同的处理环境,把它们称为运行级别(Ring),Ring让程序指令能访 问的计算机资源依次逐级递减,目的在于保护计算机遭受意外损害——内核运行于Ring 0级别,拥有最完全最底层的管理功能,而到了外壳部分,它只能拥有Ring |