7.6.1 恶意代码的常规预防技术

7.6.1 恶意代码的常规预防技术

恶意代码的常规预防技术主要包括:系统监控、源监控、个人防火墙、系统加固等。

1.系统监控技术

系统监控技术(实时监控技术)已经形成了包括注册表监控、脚本监控、内存监控、邮件监控、文件监控在内的多种监控技术。它们协同工作形成的防护体系,使计算机预防恶意代码的能力大大增强。据统计,计算机只要运行实时监控系统并进行及时升级,基本能预防80%的恶意代码,这一完整的防护体系已经被所有的安全公司认可。当前,几乎每个恶意代码防范产品都提供了这些监控手段。

实时监控概念最根本的优点是解决了用户对恶意代码的“未知性”,或者说是“不确定性”问题。用户的“未知性”其实是计算机反恶意代码技术发展至今一直没有得到很好解决的问题之一。值得一提的是,到现在还总是会听到有人说:“有病毒?用杀毒软件杀就行了。”问题出在这个“有”字上,用户判断有无恶意代码的标准是什么?实际上等到用户感觉到系统中确实有恶意代码在作怪的时候,系统已到了崩溃的边缘。

实时监控是先前性的,而不是滞后性的。任何程序在调用之前都必须先过滤一遍。一旦有恶意代码侵入,它就报警,并自动查杀,将恶意代码拒之门外,做到防患于未然。这与等恶意代码侵入后甚至遭到破坏后再去杀毒是不一样的,其安全性更高。互联网是信息技术交流的大趋势,它本身就是实时的、动态的,网络已经成为恶意代码传播的最佳途径,迫切需要具有实时性的反恶意代码软件。

实时监控技术能够始终作用于计算机系统之中,监控访问系统资源的一切操作,并能够对其中可能含有的恶意代码进行清除,这也正与医学上“及早发现、及早根治”的早期治疗方针不谋而合了。

2.源监控技术

密切关注、侦测和监控网络系统外部恶意代码的动向,将所有恶意代码源堵截在网络入口是当前网络防范恶意代码技术的一个重点。

人们普遍认为网络恶意代码防范必须从各个不同的层次堵截其来源。趋势监控系统(Trend Virus Control System,TVCS)不仅可完成跨网域的操作,而且在传输过程中还能保障文件的安全。该套系统包括针对Internet代理服务器的InterScan,用于Mail Server的Scan Mail,针对文件服务器的Server Protect,以及用于终端用户的PC-Cillin等全方位解决方案,这些防范技术整合在一起,便构成了一道网关防毒网。

另外,消息跟踪查寻协议(Message Tracking Query Protocol,MTQP)允许电子邮件发送者跟踪邮件的消息,并监测邮件的传输路线。通过这个协议,用户可以像跟踪UPS或Fed Ex投递的包裹一样跟踪邮件信息。电子邮件发送者能收到邮件已经被接收者收到的消息。同样,电子邮件的接收者也可以知道发送者身份。这个协议也包括简单邮件传递协议(SMTP),它提供必要的跟踪信息的消息。

3.个人防火墙技术

个人防火墙以软件形式安装在最终用户计算机上,阻止由外到内和由内到外的威胁。个人防火墙不仅可以检测和控制网络技术数据流,而且可以检测和控制应用级数据流,弥补边际防火墙和防病毒软件等传统防御手段的不足。个人防火墙和边际防火墙的区别是,前者可以监测和控制应用级数据流。如果一个根本不应该对外联网的应用程序对外发起了网络连接,个人防火墙就会将这个行为报告给用户,这可以预防木马、后门等恶意代码的攻击。

个人防火墙的作用是阻断这些不安全的网络行为。它对计算机发往外界的数据包和外界发送到计算机的数据包进行分析和过滤,将对不正常的、恶意的和具备攻击性的数据包拦截,并且向用户发出提醒。

如果把杀毒软件比作铠甲和防弹衣,那么个人防火墙可以比作是护城河或是屏护网,隔断内外的通信和往来,外界侦查不到内部的情况,也进不来,内部人员也无法越过这层保护将信息送达出去。除了阻断向外发送密码等私密信息,阻挡外界的控制外,个人防火墙的作用还在于屏蔽来自外界的攻击,如探测本地的信息和一些频繁的数据包流向本地。

像网络层的边界防火墙一样,个人防火墙可以控制端口。此外,个人防火墙的最大特点是采用以应用程序为中心的方式控制数据流,根据应用程序开放和关闭端口。例如,Sasser蠕虫试图通过445端口连接到PC上。个人防火墙能够通过关闭445端口防止PC感染Sasser蠕虫。

个人防火墙通过监测应用程序向操作系统发出通信请求,进行应用程序级的访问控制。首先,个人防火墙将每个应用程序与它发出的网络连接请求建立关系。然后,个人防火墙根据用户定义的规则,决定允许或是拒绝该应用程序的网络连接请求。这样可以防止未经许可的应用程序建立与Internet的非法连接。个人防火墙可以有效阻止蠕虫、木马病毒和间谍软件的非法数据连接,进而有效防范它们。

4.系统加固技术

系统加固是防黑客领域的基本问题,主要是通过配置系统的参数(如服务、端口、协议等)或给系统打补丁减少系统被入侵的可能性。常见的系统加固工作主要包括安装最新补丁,禁止不必要的应用和服务,禁止不必要的账号,去除后门程序,内核参数及配置调整,系统最小化处理,加强口令管理,启动日志审计功能等。

在防范恶意代码领域,系统补丁的管理已经成为商业软件的必选功能,如360安全卫士就以补丁管理著称。一般和计算机相关的补丁不外乎系统安全补丁、程序bug补丁、英文汉化补丁、硬件支持补丁和游戏补丁5类,其中系统安全补丁是最重要的。

所谓系统安全补丁主要是针对操作系统量身订制的。对于最常用的Windows操作系统,由于开发工作复杂,代码巨大,出现蓝屏死机或者非法错误已是司空见惯。在网络时代,有人会利用系统的漏洞侵入用户的计算机并盗取重要文件,因此微软公司不断推出各种系统安全补丁,旨在增强系统的安全性和稳定性。

(1)宏病毒的预防

微软的Office软件人们经常使用,要防止宏病毒的侵袭,可以采取警觉的措施来手工预防。

1)根据AUTO宏的自动执行的特点。在打开Word文档时,可通过禁止所有自动宏的执行办法来达到防治宏病毒的目的。

2)当怀疑系统带有宏病毒时,首先应检查是否存在可疑的宏,也就是一些用户没有编制过,也不是Word默认提供而出现的宏,特別是出现一些奇怪名字的宏,如AAA-ZA0、AAAZFS等,肯定是病毒无疑,将它删除即可。即使删除错了,也不会对Word文档内容产生任何影响,仅仅是少了相应的“宏功能”而已。具体做法是,选择“工具”→“宏”→“删除”。如果需要,可以重新编制。

3)针对宏病毒感染Normal.dot模板的特点,用户在刚安装了Word软件后,可打开一个新文档,将Word的工作环境按照自己的使用习惯进行设置,并将需要使用的宏一次编制好,做完后保存新文档。这时生成的Normal.dot模板绝对没有宏病毒,可将其备份起来。在遇到有宏病毒感染时,用备份的Normal.dot模板覆盖当前的Normal.dot模板,可以起到消除宏病毒的作用。同样地,把WinwordStartup目录下的Powerup.dot、Prcadin.dot、Symbar.dot也做备份。这样,至少能保证Word每次启动时处于无毒状态。

4)当使用外来可能有宏病毒的Word文档时,如果没有保留原来文档排版格式的必要,可先使用Windows自带的写字板来打开,将其转换为写字板格式的文件保存后,再用Word调用。因为写字板不调用、不记录、不保存任何宏,文档经此转换,所有附带上的宏(包括宏病毒)都将消失。

5)考虑到大部分Word用户使用的是普通的文字处理功能,很少使用宏编程,即对Normal.dot模板很少修改。因此,用户可以选择“工具”→“选项”→“保存”页面,选中“提示保存Normal模板”,这样,一旦宏病毒感染了Word文档后,用户从Word退出时,Word会提示“更改的内容会影响到公用模板Normal,是否保存这些修改内容?”,这说明Word已感染宏病毒,当然应选择“否”,退出后再采用其他方法杀毒。

(2)文件型病毒的预防

凡是文件型病毒,都要寻找一个宿主,寄生在宿主“体内”,然后随着宿主的活动到处传播。这些宿主基本都是可执行文件。可执行文件被感染,其表现症状为文件长度增加或文件头部信息被修改,文件目录表中信息被修改,文件长度不变而内部信息被修改等。

针对上述症状,可以设计一些预防文件型病毒的方法。

1)常驻内存监视INT 21H中断,给可执行文件加上“自检外壳”等。这些方法存在一些问题和不足之处,例如,常驻内存监视INT 21H中断这种方法,对非常驻内存型的病毒几乎没有作用。再如“新世纪”病毒,其传播时采用单步中断法通过INT 21H中断和检测系统调用内存低端的方法来逃避常驻内存的检测程序,从而使得利用中断向量检测病毒的软件工具和报警程序均无法检测到该病毒。还有一些常驻内存的检测程序经常与系统软件、应用软件冲突。

2)使用专用程序给可执行文件加上“自检外壳”。这种方法的不足之处在于对现有的可执行文件是否干净很难保证,如果已感染了病毒,再给其加上“自检外壳”,则情况将会更糟。根据实践来看,附加的“自检外壳”不能和可执行文件的代码很好地融合,常常和原文件发生冲突,使原文件不能正常执行。有时候,附加的“自检外壳”会被认为是一种新病毒而设法清除,附加的“自检外壳”只能发现病毒,而无法清除病毒。使用专有的程序给可执行文件增加“自检外壳”会使病毒制造者造出针对性的病毒来。

针对上述问题,可以提出另一种预防文件型病毒的方法——在源程序中增加自检及清除病毒的功能。这种方法的优点是可执行文件从刚生成起,就有抗病毒的能力,从而可以保证可执行文件的干净。自检清除功能部分和可执行文件的其他部分融为一体,不会和程序的其他功能冲突,也使病毒制造者无法造出针对性的病毒来。可执行文件感染不了病毒,文件型病毒就无法传播了。

此方法的核心就是使可执行文件具有“自检”功能,在被加载时检测本身的几项指标——文件长度、文件头部信息、文件内部采样信息、文件目录表中有关信息。其实现的过程是在使用汇编语言或其他高级语言时,先把上述有关的信息定义为若干大小固定的几个变量,给每个变量先赋一个值。待汇编或编译之后,根据可执行文件中的有关信息,把源程序中的有关变量进行修改,再重新汇编或编译,就得到了所需的可执行文件。

以上思想是基于以下事实:对于一个汇编语言或高级语言源程序,在不改变其控制语言和变量大小的情况下改变变量的值,再用同样的方法编译(汇编)后,两次得到的可执行文件的差异只有变量的值不同。

在常规预防的预防技术之外,还有一种特殊的恶意代码预防方法,该方法参考生物有机体注射疫苗来提高对生物病毒抵抗能力的原理,同样给计算机系统注射恶意代码疫苗的方法,可以预防计算机系统的恶意代码。正是基于这种思想,免疫技术成为了最早的防病毒技术之一。从本质上讲,计算机免疫技术是通过对计算机系统本身的技术提高自己的防范能力,是主动的预防技术。从早期的针对一种恶意代码的免疫技术到现在的数字免疫系统,恶意代码免疫技术经过了数十年的发展。