恶意代码就是一段对计算机用户有害的程序。它包括病毒,蠕虫,特洛伊木马,还有一些广告软件,它们可以在没有经过授权的情况下收集计算机用户的信息。恶意代码的危害从单纯的烦人的广告,到严重的窃取身份或者财务信息。即使是有严格的防火墙规则,实时更新的补丁和防病毒软件,你仍然不能阻止大多数危险类型的恶意代码秘密地将自己安装在系统里。仍然必须另外采用过滤的方式和针对某种恶意代码的技术,来防止恶意代码偷偷地自动安装。
能够自动安装的恶意代码,也被称为自动下载,通过不安全的浏览器的ActiveX 和 Browser Helper Objects (BHOs)绕过网络安全措施,自动下载的程序可以“劫持”你的网络浏览器或者记录下你的密码。恶意代码可能会在没有被检测到的情况下运行,因为操作系统和浏览器都缺乏识别攻击的能力。如果网络上的任何人拥有当前用户的权限, ActiveX 和 BHOs默认会允许他编写代码并轻易地下载到计算机上去。下载新的函数是BHOs惟一的功能,也是ActiveX的主要目标之一。不幸的是,微软并没有构建任何的安全措施。这就是为什么在日常活动,特别是网络冲浪的时候不使用特权账号(例如,管理员)那么重要的原因了。
反病毒工具与反恶意代码的工具有所区别,因为他们感染不同的部分。因为反病毒程序才开始涉及更广阔的恶意代码领域,市场是不成熟的。但是它增长迅速,由于微软,Symantec和McAfee加入了这场比赛,或者将新的特性集成进了现有的工具中,(请注意,微软的Windows恶意代码删除工具和Windows反间谍软件(beta版)只能运行在Windows2000或者更新版本的操作系统下,而上百万的用户仍然使用没有保护措施的旧系统)。相反,来自较小的厂商的大量的商业和免费的反恶意代码的产品在一段时间内都是可用的。这些产品分为两类:预防类和监测/删除类,然而,由于更多的成熟产品开始同时做到这两点,这两类产品之间的界限正在消失。预防类的,例如Javacool Software SpywareBlaster 和Spybot-Search & Destroy带有使系统免疫的功能,它的目标是通过ActiveX kill bit,或者其他类似的手段来防止恶意代码安装(见Blocking spyware via the ActiveX kill bit)。
然而,监测/删除类的产品,例如Lavasoft Ad-Aware 和 Aluria Software Spyware Eliminator也可帮助你在事后清除。最好是在一个工作站上运行多个产品,因为每个产品都有不同的监测方法,以及不同的恶意代码数据库。
另一种选择是,Mike Lin的StartupMonitor采用一种不同的方式,当任何代码企图将自己设置为系统启动时运行的时候,它都会报警,但是这个产品很低效。这是一种有趣的方式,但是许多代码,例如反病毒扫描代码和更新代码都合理地要在系统启动的时候运行。对于终端用户来说,并不容易辨别这两种类型之间的差异。
自动安装的恶意代码最初从网络服务器上下载得到。但是一旦它安装好了,它就会通过其他的方式来进行蔓延,这种方式是可以阻塞的。你可以在防火墙、网关、邮件服务器中过滤内容,甚至是通过IPSes进行。然而,如果没有影响到合理的商务活动,很难从以上所有地方移除恶意内容。例如,如果你在防火墙或者IPS中阻塞了所有的ActiveX,你就不能执行Windows更新服务了。
监测防火墙或者IDS日志,可以在事后向你发出警告。另外,各种各样的出口过滤(应用在防火墙、路由器和IPSes中)也可以通过限制出口访问来阻塞恶意代码向你的边界蔓延。这可以打击一些恶意代码,例如keystroke loggers,但是较智能的恶意代码仍然可以找到出去的路径。
出口和内容过滤都可以应用在现代的防火墙上。它们之间的区别就是,出口过滤涉及了防火墙的规则或者是路由器的访问控制列表。出口过滤标识了什么样的通信(端口/协议、来源、目标)可以走到哪里去。然而,内容过滤控制了什么内容允许通过。
你还可以创建主机文件(或者DNS记录),这会对在本地主机上解决众所周知的恶意代码问题有帮助,它可以将其指回到你自己的计算机上,从而避免恶意代码感染或蔓延。或者,你还可以在防火墙中创建一个需要阻塞的站点的黑名单。并且,在个人计算机上的出口过滤也是有效的。例如,Check Point的 ZoneAlarm(区域警报)显示计算机上的哪段代码在访问网络。这个策略需要你培训用户,教他们如何判定触发防火墙的合法程序。
最后,你也许想要考虑使用除了Internet Explorer之外的任何浏览器。当然,更换浏览器是一项困难的任务,特别是对于大企业来说,但是这也是值得考虑的一个选择,考虑到额外的安全措施,在所有其他的主流浏览器中都有弹出阻塞和标记浏览功能。