7480.22007-07-14 18:52:35
一. 谁是救世主

相信看过《黑客帝国》系列的朋友都不会对主人公尼奥感到陌生,这位闯入虚拟世界的程序员一次又一次演绎了“救世主”的角色,保护了城市居民,其形象早已深入人心。而离开电影后,我们广大的计算机用户要面对的又是另一种亦真亦假的数字虚拟世界——网络,这里同样潜伏着许多危险,同样存在“黑客帝国”,但这里却没有尼奥这个人的存在,我们能看到的,只有形形色色的安全厂商和他们所提供的安全工具,除此之外,似乎已经没有别的选择。

于是乎,许多用户把各种安全工具看成了这个世界中的“救世主”,我们看到许多关于安全工具的广告,我们购买市面上流行的防病毒软件,我们在听闻每周一次的“新病毒预警”时赶紧升级病毒特征库,我们每周都对电脑进行一次漫长的病毒扫描……许多人都这样做,许多人不得不这样做,因为我们把一切都交给杀毒工具了,我们什么都不需要做了,我们只管肆无忌弹的上网聊天看电影下软件,因为我们有杀毒工具,这些工具都具备一个“实时监测”的功能,它每时每刻都会检查我们刚下载的文件,我们感到自己很安全,我们以为这就是网络中的防御。

然而,事实真的如此美好吗?依稀记得有一句话好像是这么说的,“无论你做什么事情,你都不可避免要付出一定的代价”,在我们安然自得的享受由杀毒工具带来的安全防御的同时,我们也在付出相应的代价。为什么呢?因为杀毒工具是一套在系统启动的时候就开始运行直到关机或者用户退出它的时候才会停止运行的程序,它们的检测和防御机制的效率是不能和尼奥相比的。举个简单例子,学过编程的人大概都知道,象棋程序是最难写得完美的,因为象棋的走法从来都没有一个固定的模式,我们能创造出许多花样,但是程序不能,它只能按照有限的判断机制去决定每一步棋怎么走,这就是为什么如今的许多象棋程序看起来像个傻瓜的原因。有人也许会说,做一个强大的象棋程序把尽可能遇到的走法都写进去就可以了,这个象棋程序必然无敌。这样是可行的,但是由此带来的代价就是每个和它下棋的人可能都要花一辈子的时间了,因为程序在每走一步棋之前都要把所有尽可能遇到的情况都“思考”一遍,这样是要付出时间作为代价的,如果要缩短时间,就要让程序在同一时刻思考多种走法,但着时候,代价就变成庞大的系统资源消耗了——你能忍受么?

同样的缺陷正在杀毒软件身上发生,我们知道,大部分杀毒软件是采用“特征码”技术去搜索病毒的,就是说,杀毒软件引擎读取一个程序或文件内容,并与自身数据库里储存的已被确认为病毒程序体内某段特定代码进行匹配,一旦两者相同,杀毒软件就“确认”此文件为病毒。随着病毒家族的庞大,这个数据库体积的增长也到了不可忽视的地步,加载的速度也就慢了。而且数据库每增加一个病毒特征码,杀毒引擎的判断分支就要增多一条,相应的时间也会延长,为了避免出现扫描一个文件需要半小时的尴尬情况,杀毒软件会采用各种提高匹配速度的方案,但这些方案无一例外都要疯狂剥削用户的系统资源,如果一台电脑的配置并不是很高,那么在用户查毒的时候,他基本上已经不能正常做其他工作了,找个电视台慢慢看连续剧吧,这就是尼奥的代价。

那么,谁才是我们的救世主?答案就是——你自己。能信任的人永远只有自己,只要肯努力,每个人都可以做尼奥,不过这也是有代价的,因为它把系统资源的消耗转变为脑子的消耗,把判断分支和经验写入脑子里,在处理分支的效率上,人永远比程序要灵活,而且这样一来就不会出现依赖的恶性循环了,离开了杀毒软件,我们要学会靠自己来保护自己不被这个虚拟世界伤害到。现在,就让我们来做自己的救世主吧。

二. 做自己的救世主

小时候曾经看过一个故事《另一种侵略》,被人类打败的宇宙侵略者送给人类一种水晶,只要人类拿起它想一种物品,这个物品就会出现在自己面前,于是每个人都开始沉浸于无尽的享受中,再也没人去钻研科技国防了,几十年后,人类开始出现退化现象。这时候,宇宙侵略者又来访问地球了,这次它们只用了一条条鞭子就征服了地球,在最后一个人类被驱逐进囚笼之前,他回头含糊不清的说了句什么话——连他的舌头都退化得差不多了,也许他是说:“地球完了。”

以上的故事或许只是虚无的幻想,但类似的行为却正在当代发生,如果一个用户怀疑自己的电脑感染了后门,他的第一个反应大概会是打开杀毒工具。故事里的人类太依赖水晶的魔力,现实中的我们太依赖杀毒软件的方便快捷!也许有人会反对,既然能使用工具方便快捷的保护计算机安全,我又何必自寻烦恼学习安全防御?会这样想的用户没有想到网络的复杂,能闯进计算机的“客人”并非就是在各大安全工具厂商通缉名单上的成员,因为网络中还流传着一部分小规模使用而且没有被公开的“私人后门”(例如大部分DDoS后门工具其实都是自己写自己用的),有能力的人都可以自己写“私人后门”,然后通过多种途径放到别人的计算机上执行。这时候,“病毒库特征码”技术的局限性就开始显露了,被感染了“私人后门”的用户偶尔会察觉到计算机异常,然后他会开始查毒,结果因为渗透进系统的后门程序并没有在病毒特征库里“登记”过,杀毒软件就认不出它了,用户只能在浪费大量时间后看着杀毒软件报告的“没有发现病毒”消息继续“享受”被入侵的感觉。这个事实可笑吗?我们只能在自己信赖的尼奥面前被敌人杀死——甚至这个尼奥也不复存在了,如果后门能把它踢出内存并删除掉的话。

还是那句话,能信任的人只有自己,更何况这是网络。所以,我们不能再战战兢兢的躲在掩体里等待救世主消灭所有敌人了,我们要做自己的救世主!