7.7.2 防治策略
1.单机用户防治策略
单机用户系统具有如下的特点:
只有一台计算机;
上网方式简单(只通过单一网卡与外界进行数据交互);
威胁相对较低;
损失相对较小。
由此可见,个人用户的恶意代码防治工作相对简单。但是由于大多数单机用户的计算机安全意识相对淡薄,特别是恶意代码防范技术更是十分的匮乏,因此,单机用户不但需要易于使用的防范软件,而且需要简单的使用方法等方面的培训。
对于个人用户的恶意代码防治一般可以采用以下技术措施。
(1)新购置的计算机,安装完成操作系统之后,第一时间进行系统升级,保证修补所有已知的安全漏洞。
(2)使用高强度的口令,如字母、数字、符号的组合,并定期更换。对不同的账号选用不同的口令。
(3)及时安装系统补丁,安装杀毒软件并定时升级和全面查杀。恶意代码编制技术已经和黑客技术的逐步融合,下载、安装补丁程序和杀毒软件升级并举将成为防治恶意代码的有效手段。
(4)重要数据应当留有备份。特别是要做到经常性地对不易复得数据(个人文档、程序源代码等)使用刻录光盘的介质完全备份。
(5)选择并安装经过权威机构认证的安全防范软件,经常对系统的核心部件进行检查,定期对整个硬盘进行检测。
(6)使用网络防火墙(个人防火墙)保障系统的安全性。
(7)当不需要使用网络时,就不要接入互联网,或者断掉连接。
(8)设置杀毒软件的邮件自动杀毒功能。不要随意打开陌生人发来的电子邮件,无论它们有多么诱人的标题或者附件。同时也要小心处理来自熟人的邮件附件。
(9)正确配置恶意代码防治产品,发挥产品的技术特点,保护自身系统的安全。
(10)充分利用系统提供的安全机制,正确配置系统,减少恶意代码入侵事件。
(11)定期检查敏感文件,保证及时发现已感染的恶意代码和黑客程序。
2.个人用户上网基本策略
网络在给人们的工作和学习带来便利的同时也促进了恶意代码的发展与传播,毋庸置疑,网络成了恶意代码传播的最重要媒介。因此,采用规范的上网措施是个人计算机用户防范恶意代码侵扰的一个关键环节。根据个人用户的上网特点,在此给出了个人计算机用户上网的基本策略。
(1)关闭浏览器Cookie选项。Cookie中通常保存的一些敏感信息有用户名、计算机名、使用的浏览器和曾经访问的网站。如果用户不希望这些内容泄漏出去,尤其是当其中还包含有私人信息的时候,可以关闭浏览器的Cookie选项。禁用Cookie对绝大多数网站的访问不会造成影响,并且可以有效防止私人信息的泄露。
(2)使用个人防火墙。防火墙的隐私设置功能允许用户设置计算机中的哪些文件属于保密信息,从而避免这些信息被发送到不安全的网络上。防火墙的恶意代码防范功能还可以防止网站服务器在个人未察觉的情况下跟踪自己的电子邮件地址和其他个人信息,保护计算机和个人数据免遭黑客入侵。
(3)浏览电子商务网站时尽可能使用安全的连接方式。通常浏览器会在状态栏中使用一个锁形图标表示当前连接是否被加密。在进行任何的交易或发送信息之前,要阅读网站的隐私保护政策。因为有些网站会将你的个人信息出售给第三方。
(4)不透露关键信息。关键信息包括个人信息、账号和口令等。黑客有时会假装成ISP服务代表并询问你的口令。其实,真正的ISP服务代表是不会询问用户的口令的。
(5)避免使用过于简单的密码,尽量使用字母和数字的组合并定期更换密码。
(6)不要随意打开电子邮件附件。特洛伊木马程序可以伪装成其他文件,潜伏在计算机中使得黑客能够访问你的文档,甚至控制你的设备。
(7)扫描计算机并查找安全漏洞,提高计算机防护蠕虫等恶意代码的能力。
(8)使用软件的稳定版本并及时安装补丁程序。各种软件的补丁程序往往用于修复软件的安全漏洞,及时安装软件开发商提供的补丁程序是十分必要的。
(9)尽量关闭不需要的组件和服务程序。在默认设置下,系统往往会允许使用很多不必要而且很可能暴露安全漏洞的端口、服务和协议,如文件及打印机共享服务等。为确保安全,可以删除不使用的服务、协议和端口。
(10)尽量使用代理服务器上网,代理服务器作为一个中间缓冲,可以保证用户正常地浏览任何站点,同时,也能隐藏用户的计算机。
3.企业用户防治策略
一个好的企业级恶意代码防治策略应包括以下几个部分:
开发和实现一个防御计划;
使用一个可靠的恶意代码扫描程序;
加固每个单独系统的安全;
配置额外的防御工具。
整个防御应当涵盖所有受控计算机和网络中的策略和规章,包括终端用户的培训,列出实用工具,建立对付突发事件的方法等。为了更有效地防范恶意代码,企业中的每一台计算机都要进行统一配置。作为防御计划的一部分,选择一个优秀的恶意代码防范软件是非常关键的。最后,在多个工具的共同作用下,实现一个良好且坚固的防治体系。
本策略可以作为一个大规模企业的计算机安全防御体系的一部分,它可以与企业已有的使用许可制度(Acceptable Use)和物理安全(Physical Security)政策及规章相互配合。
(1)建立防御计划
1)预算的管理
不管恶意代码防御计划是否有效或有效性是否高效,它都会花费时间、资金和人力,因此,企业在决定购买相关产品之前需要仔细考虑,虽然,成功打造一个恶意代码防御计划令人非常高兴,但如果因为资金和资源不足而使计划实施半途而废却不是好结果。对于一个良好的防御计划,可从以下几点进行判断:
尽量减少费用;
保护公司的可信性;
提高最终用户对计算机的信心;
增加客户和IT人员的信心;
降低数据损失的危险性;
降低信息被窃的危险性。
2)精选一个计划小组
为了使计划顺利进展,还需要一个管理维护者的身份,因此,要挑选实现防御计划所需要的人员,同时指定小组的主要领导人员。小组成员包括恶意代码安全顾问、程序员、网络技术专家安全成员,甚至包括终端用户组中的超级用户。小组成员的多少依赖于企业编制的大小,但要注意的是,小组的规模要尽量小,以便于在一个合理的时间内进行有效管理。
3)组织操作小组
操作小组要完成下列工作:实现相关软件和硬件机制来制定防范恶意代码的解决方案;负责方案和相关软件和硬件机制的更新;应急处理等。
4)制定技术编目
在启动恶意代码防御计划前,必须获得企业级的技术编目。除了要注意用户、PC、笔记本式计算机、PDA(个人数码助理)、文件服务器、邮件网关以及Internet连接点的数目之外,还应该记录操作系统的类型、主要的软件类型、远程位置和广域网的连接平台。通过以上所有的数据可以找到企业需要保护的内容,最终的解决方案也必须考虑到上面的所有因素。
5)确定防御范围
防御范围是指被防御对象的范围。被防御用户可能包括:公司办公室、区域办公室、远程用户、笔记本式计算机用户、瘦客户机等。计算机平台可能会涉及IBM兼容机、Windows NT、Windows 3.X、DOS、Macintosh、UNIX、Linux、文件服务器、网关、邮件服务器Internet边界设备等。整个计划可以防御所有的计算机设备或者仅仅防御那些处于危险环境的设备。不论最终防御范围如何,都必须把“范围”文字化,记录在文档的最显要部位。
6)讨论和编写计划
计划需要详细描述下列内容:恶意代码防范工具所部署的位置以及需要部署哪些工具,防范工具所保护的资产,防范工具如何部署以及何时、如何进行升级工作,如何定义一个通信途径,最终用户培训以及处理突发事件的一个快速反应小组等细节问题。这一部分可以作为最终计划的轮廓。在整个计划中,需要详细说明恶意代码防范工具的使用和部署以及对每个PC进行安全部署的步骤。
7)测试计划
在开始大范围的部署产品之前,应该在测试服务器和工作站上进行试验。在测试环境下,如果测试成功,就可以开始小范围的部署产品了。整个部署的过程需要分阶段进行。首先在企业的一个比较完整的部门部署,然后逐步地在其他区域展开。采用这种部署策略可以逐步地检验并修正各种工具。如果不进行测试,就贸然进行大范围的产品部署,可能会出现很多问题并带来很多损失。有些情况下,贸然部署带来的损失甚至要远大于没有任何防护情况下恶意代码造成的损失。
8)实现计划
虽然讨论和编写计划非常麻烦,但是实现计划更加麻烦,不仅需要投入大量的资金、人力和时间,而且在实现计划时,应当选择一个合适的顺序,并根据这个顺序逐步采买产品,逐步部署系统。一个典型的顺序是,首先在邮件服务器或文件服务器部署恶意代码防范工具,然后在终端用户的工作站上进行防范工具的安装和部署工作。笔记本式计算机和远程办公室可以列入第二批考虑的范围,并可以从第一批的安装部署中获得一些经验。经过集中的整理,就不会漏掉任何计算机了。
9)提供质量保证测试
计划实现之后,需要对工具和过程进行一些测试。首先,检测各个系统的恶意代码防范工具是否正在工作。经常采取的方法是:向一个被保护的系统发送一个恶意代码测试文件,或者是其他类型的测试,不要使用那些一旦失控就会造成大范围破坏的文件去测试。许多公司都使用EICAR测试文件。然对软件机制和恶意代码数据库的更新问题进行测试。最后,在整个企业范围进行弱点测试,从而确认防御部分是否能够保护它们所需保护的所有资产。
10)保护新加入的资产
制定策略来保护新加入的计算机。部署小组经常有能力来保护那些在原始计划下定义的所有资产,但是一个月后总是忘了对新的计算机进行修改。对新加入的计算机应该进行全面检测,从而保证整个企业网络是安全的。
11)对快速反应小组的测试
恶意代码发作的时候,通常会用到快速反应小组。通过一个预先伪装的发作来检测快速反应小组。这给了所有人一个机会来联系他们的任务,检测通信系统,并解决所有问题。测试演习中发现的小问题如果没有得到解决,往往就会长期存在。根据是否定期复查的情况,用户应该在每年中每隔一段时间或者是操作改变后,测试一下有关小组。
12)更新和复查的预定过程
没有什么安全计划是稳定的。软件、硬件和操作系统都是在改变的。用户行为和新技术都会使新的危险出现在企业环境里。企业的计划应该被视为是一个“时刻更新的文档”,应该预先定义定期复查的过程,并且对它的成效性进行评估。当新的危险出现或者是当计划开始变得落后的时候,及时地复查就应该开始了。
(2)如何有效地执行计划
到目前为止,小组已经组建,相关的环境也收集好了,该是制订计划的时候了。恶意代码防御计划应该囊括所有恶意代码进入企业的途径。绝大多数不怀好意的程序初次进入系统都是通过电子邮件系统的。可是,普通病毒、蠕虫和木马病毒也可以通过磁盘文件、Internet下载、即时消息客户端软件进入系统。很久以前,扫描插入的磁盘以及禁止软盘启动就可以达到封锁恶意代码入口的功能。但今天,用户需要考虑磁盘、Internet、邮件、笔记本式计算机,PDA、远程用户以及其他允许数据或代码进入保护区的所有因素。
很多企业外部计算机和网络通常和企业内部受保护的资源是相互连接的。如果考虑到其他企业公司的计算机相互感染的问题,平等的解决方案就是他们也采用相同的尺度来降低感染你的区域的可能性。厂商、第三方、与外部计算机或网络有连接的商业伙伴都需要遵循一个最低标准的规定,并签署一个文件以证明他们理解了有关的规定。有时,公司的防御计划中的做法和采用的工具可以被外界的计算机和网络所参考,或者作为对已使用的反恶意代码软件进行升级的范例。
1)计划核心
以下提到的三个目标就是整个防御计划的基石。
①使用值得信赖的反恶意代码扫描引擎;
②调整PC环境以阻止恶意代码的传播;
③使用其他的工具提供一个多层的防御。
使用一个可靠、最新的恶意代码扫描引擎是整个计划的基石。恶意代码扫描引擎在通过检测和清除恶意代码实现保护计算机方面是很成功的,每一个公司都应该使用它。可是,今天纯粹依赖于恶意代码扫描引擎则是一个错误。历史一次次地证明,扫描引擎无法也永远无法阻止所有的恶意入侵。用户必须假定恶意代码可以通过其恶意代码防御系统,并采取措施来降低它的传染性。如果做得正确,在那些得到保护的PC上,恶意代码就不会发作。最后,应该考虑其他的防御和检测工具来保护用户的环境,并迅速跟踪相关的漏洞。
2)软件部署
计划中应该详细地列出实现政策和过程所需的人力资源。通常来说,在部署所有的工具时,需要通过多种技巧才能够取得同等的效果。网络管理员需要在文件和邮件服务器上测试和安装软件。调整本地工作站需要烦琐的技术工作(除非对部属工具非常精通)。需要估计出每个人花费在测试和安装软件上的时间,并建立一个部署进度表。
3)分布式更新
一旦恶意代码防御工具配置完毕,如何保证它们的更新呢?许多反恶意代码工具允许通过中央服务器下载更新包,并将更新包发往当地的工作站。工作站的调整必须一次次地手动配置或者是使用中央登录脚本、脚本语言、批处理文件、微软系统管理服务器(Systems Management Server,SMS)来完成。尽管这些方式有助于对分布工具进行自动升级,但还需要对大的更新进行手工测试。拥有多种台式机和大型局域网的大组织可以采用多种升级方式,其中包括自动分布工具、CD-ROM、磁盘、映射驱动器和FTP等,可以使用适合于用户环境的工具。同样,对于那些具有支配地位的人们(包括雇员和最终用户),也需要对更新负有责任,因为总是有一些小组负责人或部门经常忘记更新。
4)沟通方式
防御计划的核心就是通信。当恶意代码发作时,最终用户和自动报警系统会提醒防御小组的成员。小组成员需要相互联系从而召集队伍。小组领导者需要提醒管理者。小组中的某些人被指定负责企业和防恶意代码厂商的联系工作。事先需要定义一个指挥系统,从而保证报告以最新的状态从小组发往每一个独立的最终用户。
在一个典型的计划中,应明确地制定任务和责任,并建立一个反馈机制,每一个应付突发危机事件的小组成员(快速反应小组)都会分别负责与特定的部门或分区领导之间的联系工作,使得最终用户、部门可以和小组取得联系。被联系的部门领导对他管理下的雇员负有责任。
5)最终用户的培训
虽然编写了计划,但是那些最终用户有可能忽略这些预先提出的建议。最好对最终用户做出一个集体通知和培训。培训应该包括对恶意代码领域的简要概括,并讨论普通病毒、蠕虫、木马、恶意邮件和不怀好意的Internet代码。用户应该意识到,从Internet下载软件、安装好看的屏幕保护和运行好笑的执行文件都是很危险的事情。培训材料应该说明相关的危险以及公司为了降低这些危险所作的努力,包括每一个员工为了降低恶意代码传播的可能性而做出的努力。
需要让最终用户了解,只有通过认证的软件才可以安装到公司的计算机上。软件不能从网上下载,不可以从家里带来,也不能根据以前没有认证但是安装成功的例子而进行。用户需要被告知,一旦恶意代码发作就需要向合适的负责人或部门报告,并被告知破坏纪律会带来惩罚性的处理。用户需要签署一个表格以证明他们对规定的理解。该表格将被收入雇员个人记录中。
6)应急响应
每个计划都需要制定小组成员面对恶意代码发作时应采取的措施。通常来说,配置好的防御工具会保护用户的环境,但是偶尔有新的恶意代码会绕过防御设施或者一个未受保护的计算机,并将一个已知的威胁到处传播。另外,还有一个普遍的问题:计划需要说明如何处理多个恶意代码感染同时发作的问题,并且同时报告快速反应小组。以下就是面对一次恶意代码事故需要考虑的步骤。
①向负责人报告事故
不管恶意代码的发作是如何被人第一次发现的,第一个知道本恶意代码发作的小组成员都应该向小组负责人报警,并且向其他小组成员通报。通信工具必须是快速的、可靠的,并且不受恶意代码的干扰。例如,按照常规采用了通过Internet邮件向其他小组成员发送紧急记录,而邮件网关可能已经被恶意代码破坏了。小组人员在发现邮件威胁已经出现的时候,会通过电话、手机等人工通知或者通过基于HTML(超文本标记语言)的邮件通知相关成员。
②收集原始资料
赶到的小组成员应该注意收集资料,并相互共享所知道的恶意代码的相关信息,以得到对恶意代码的概要性了解,例如,它是通过邮件传播的吗?哪儿最先出现问题?已经开始传播了多久?它会修改本地文件系统吗?它是属于哪一种恶意代码?它是用什么语言编写的?
③最小化传播
完成了最初的资料收集以后,小组人员应该尽快采取措施以使恶意代码的传播最小化。如果是邮件蠕虫病毒,可以关闭邮件服务器或阻止来自Internet的访问。如果恶意代码已经修改或破坏了文件服务器上的文件,则应断开用户的连接并关闭登录。如果攻击很严重,可以考虑关闭相关的服务器和工作站,也可以不关闭服务器而进行恶意代码清除工作,但是会花费更多的时间,如果面对一个相似的环境,应该让高级管理人员来确定是不是需要最小化关机时间或最小化服务间断的时间。此外,确认拥有服务器和服务关闭的有关记录,从而可以很快地恢复服务。
④让最终用户了解最新的危险
在公司入口处和公共场合张贴关于本次恶意代码发作和用户应该做些什么的署名告示,将是一个通知用户的比较好的途径。如果恶意代码从用户公司已经传播到其他公司了,注意尽量和他们进行沟通。例如,邮件蠕虫病毒,虽然你可以通过邮件发送一个报警通知,但是通常来不及阻止它们。在发现问题时,不应该只通知那些受到感染的部门,还要通知那些没有被感染的部门。没有感染的部门可以监测传播的先兆,并且警告他们的用户不要打开特定的邮件等。让最终用户了解有关人员正在处理问题,当可以安全地使用特定的服务和服务器的时候,指挥中心会和他们联系的。同样也要通知管理层,让他们知道事态的进展情况。
⑤收集更多的事实
到目前为止,快速反应小组在一定意义上控制了故障,并采取了措施阻止更大的危害。快速反应小组应该收集信息并讨论问题,并把新的恶意代码交到反恶意代码软件公司进行分析。
⑥制订并实现一个最初的根除计划
用自己所学的东西实现一个有秩序的根除计划。例如,对于绝大多数邮件蠕虫病毒,首先删除所有的受感染的邮件(Microsoft Exchange服务器上的EXMERG就是一个较好的工具),最好删除或者是替换那些被损坏或感染了的文件。可疑的文件应该移动到一个隔离区域里,以方便随后的分析。通过使用中央登录脚本,可以启用批处理文件来查找恶意代码,并从PC上删除它们以及修复毁坏的文件。
可以考虑在清除以前做一个受害系统的完全备份,从而为以后的分析做好准备。确保那些好心的技术人员不会删除那些恶意代码的所有备份,若没有留下任何东西就无法分析恶意代码的所作所为。删除所有的恶意代码的备份只会使清除工作更加复杂,而不是简化。
首先,始终在一套测试用的计算机上面运行清除程序,以保证清除程序不会造成更多的损失。其次,在少数不同的区域里的普通计算机上面运行清除程序。然后,验证恶意代码程序已经被彻底地清除,即程序已经根除了毁坏,再也没有新的损失了。只有这个时候,才可以将该清除程序公之于众,并通过预先设定的通信机制来警告最终用户并额外提供有用的建议。
⑦验证根除工作正在进行
派出操作小组中的成员验证最终用户的计算机已经彻底地得到清理,并监视通信通道查找问题。有时在这个时候,会发现当初在早期分析时小组没有注意到的东西。如果有这样的问题存在,清除程序应该进行合适的调整,并再次发放给所有的受感染的用户。将清除工作的情况向操作人员和最终用户进行通报。
⑧恢复关闭的系统
在系统清除完毕后,就可以将关闭的系统再次启动了。根据以往的经验,系统一旦启动,用户就会很快开始登录系统。根据当初记录的禁止的系统名单,就可以知道需要启动哪些项目去掉那个关于警告用户有关事项的通告,并且通知用户可以按照正常的程序登录了,并告知是否还有其他没有启动的系统。
⑨为恶意程序的再次发作做好准备
为恶意代码的再次发作做好准备,并将此事告知最终用户。通常情况下,发现最初攻击问题所花的时间越长,问题就越容易再次发生。在早期DOS引导恶意代码的时代,公司发现被感染病毒恶意代码时,通常会是几个月到一年以后。到那个时候,感染的磁盘在公司流传,直到再次发作。
(3)如何正确配置恶意代码扫描引擎
恶意代码扫描引擎的基本功能就是详细地检查目标文件,并且和已知的恶意代码数据库进行比较。良好的恶意代码扫描引擎的特征有以下几点:速度、准确性、稳定性、透明度,运行平台用户可定制性、自我保护、扫描率、磁盘急救、自动更新、技术支持、日志、通知、处理部件的能力。前瞻性研究和企业性能决定是否运行恶意代码扫描引擎不是一件费脑筋的事情,决定所要运行的位置就是一个难题了。恶意代码扫描引擎可以运行在台式机、邮件服务器、文件服务器和Internet边界设备。下面是一些在部署恶意代码扫描引擎前需要考虑的问题。
1)确定扫描时间
如果在一个文件服务器或台式机上配置了恶意代码扫描软件的话,就需要做出一个何时扫描文件的决定。扫描时间分如下几类:
①实时扫描因为任何原因访问到的文件;
②定时扫描;
③按需扫描;
④只扫描进入的新文件。
很多扫描程序允许扫描因为任何原因访问到的文件,包括进入的新文件、出去的文件、文件副本,打开或移动的文件。尽管这是最安全的选择,但扫描所有因为任何理由访问到的文件会造成明显的性能下降。曾经见到过这种情况,当恶意代码扫描引擎启动了这个功能后,工作站的性能因而降低了到原来的1/3。一次又一次扫描同一个旧的应用程序文件,每一次程序启动都只会带来很少的好处,这将造成明显的性能下降。
一些管理员意识到,随时扫描所有的文件会造成性能大幅度的下降,取而代之的是定期(如每个周一的早上)对所有的文件进行扫描。如果全体最终用户不会介意的话,这倒不是坏消息。可是,很多用户不愿意在他们能够进入计算机前,当其计算机扫描的时候等待30分钟。如果想做定时的扫描,最好选择在高峰时间以外的时候进行。
另外,一些管理员刚好走向了另外一个极端方向,即禁止了所有的扫描,允许用户决定何时开始扫描,叫作按需扫描。工作站仅仅是在需要的时候再进行检查,就等于和几乎没有保护一样。依赖于定时扫描或按需扫描都会使得新的感染在扫描工作之间发生,这并不是一个好的选择。
根据经验,按预先定义的文件扩展名(或全部文件)对进入的文件扫描,将是一个最好的选择。如果系统在安装反恶意代码扫描前是干净的,就只需要扫描新的文件。很多组织采用混合的方法:邮件服务器扫描所有进出的邮件;文件服务器扫描所有预先定义文件扩展名的进入文件;在非高峰时间定时对全部文件进行扫描;使用的工作站都设置了预先定义的文件类型的实时保护。这种混合的方法工作良好,除非有新的文件类型引入(如SHS文件),在这些例子中,将新的文件类型添加到默认扫描中是很重要的。
2)基于Internet的扫描
一些反恶意代码公司都有通过Internet发布到PC上的产品,例如,Mc Afee的myCIO.com(http://www,mycio.com)。一个客户端的程序安装到本地机器上,但是更新、报告和其他的模块存储到Internet上。尽管这样的努力赢得了好评,但其产品并不是普通台式机客户端的替代品。它们安装、扫描过于缓慢。如果用户在一个已经被感染了的计算机上面安装它们,很可能会有混乱的情况发生。
3)新软件加入系统
很多应用软件需要在安装它们以前禁止恶意代码扫描软件运行扫描。如果建议这样做或Readme文件提到了这些问题,请按照建议办。当然,这给了恶意代码一条进入系统的通道。除非建议中明确指出关闭保护软件或经历了很多次的安装失败,否则不建议关闭保护程序来安装一个新的软件。如果第一次安装后新的程序无法正常工作,建议卸载它,然后关闭扫描引擎,再重新安装一次。
4)配置额外的防御工具
不能仅仅只依靠恶意代码扫描引擎就希望在与恶意代码的“战斗”中取得胜利。下面将介绍一些其他工具,这些工具无法保证拒恶意代码于千里之外,但是却可以加强系统的安全性。
①防火墙
对于任何一个公司或任何一个单独接入Internet的PC而言,防火墙是一个基本的防御组件,对于宽带连接也是如此。防火墙,在它最基本的级别,可以通过端口号和IP地址防范网络通信。一个好的防火墙策略允许将预先设置好的端口打开,而关闭其他所有的端口。如果一个程序,如木马恶意代码,力图通过一个封闭的端口建立一个Internet会话,这个企图不会成功,并且会被记录在案。更重要的是,防火墙可以制止黑客对网络或PC的攻击企图和探测。
企业应该考虑那些拥有高信誉度和第三方安全组织(如ICSA Labs)推荐的企业级的防火墙。某些防火墙是基于硬件的解决方案,如Sonic Wall的Internet Firewall Appliance或者Cisco PIX。其他一些防火墙,诸如Check Point的Firewall-1、Axent的Raptor Firewall和Network Associates Gauntlet等都是基于软件的。
②入侵检测系统
入侵检测系统(Intrusion Detection System,IDS)可以工作在两种方式下。一种方式是IDS对系统进行一次快照,并报告任何试图改变被监视区域的尝试。另一种方式复杂一些,它监视PC或网络动态寻找恶意行为(叫作攻击特征)。攻击特征的一个例子是对多个子网的端口扫描。和防火墙一样,IDS能够对一个单独的PC或企业级的网络环境进行安装和监视。在保护一台PC的时候,它可能会监视注册表的变化、启动区域的变化、程序文件的变化和可疑的网络活动。网络IDS监视大型的网络特定的事件。它可以检测针对一个特定服务器的拒绝式服务的攻击特征。当攻击的特征被发现时,IDS会向管理员发出一个关于潜在攻击的警告。Internet Security Systems、Cisco、Axent和Network Associates是入侵检测系统方面的领导者。
IDS程序存在两个问题。第一个问题是,IDS程序需要用反恶意代码扫描引擎定期更新的特征库。显然这没有“逃出”反恶意代码公司的视线,它们中的一些公司正在开发IDS组件。无论如何,开发一个反攻击的特征库要比推出一套恶意代码普通字节集合的难度要高得多。而且攻击站点可以有多种绕过基于网络的IDS程序的方法。第二个问题是,基于网络的IDS在共享的网络更加适用。为了让IDS可以识别企业级的攻击,它必须同时对多个网段进行监视,并检测数据包。在今天的交换网络和加密通信中,IDS程序还是有些受限的。
③“蜜罐”
“蜜罐”(Honey Pot)是一个很有趣的概念。它们的前提是用户网络终究会被黑客侵入。“蜜罐”就是设计用来模拟看起来正常的重要服务器的“假”系统。一些“蜜罐”会保存有百余份看起来很可信的讨论一个虚假的重要产品的邮件和文件。它们的目标是易于让人攻破。“蜜罐”用户的目标是使得不受欢迎的黑客将他们的时间花费在“蜜罐”中,而不造成任何实际上的破坏,从而给了安全管理员足够的证据。管理员可以发现黑客是如何操作的,他们所使用的工具、他们试图找寻的漏洞是什么以及他们所处的地理位置。
“蜜罐”对于恶意代码防范有一定作用,一些反恶意代码公司开始使用类似“蜜罐”的模拟环境来诱骗恶意代码。反恶意代码软件将可疑的程序放到一个模拟的环境中,在这里程序可以自由地操作伪造的系统资源。反恶意代码程序观察程序所做的一切,如果它发现恶意行为时,就会向用户报警。用户的真实环境也因为模拟“蜜罐”的存在而不受影响。
④端口监视和扫描程序
端口监视和扫描程序是防火墙的一个简化版,它用来查找活动的TCP/IP端口。有关“端口扫描程序”(或“端口映射器”),在Internet上有很多的类似软件可以下载,可以用来在特定的计算机上或整个网络查找活动的端口。用户一般提交一个目标IP地址或地址范围,扫描程序就开始试探从1~1 024,甚至更高的端口进行扫描。如果以前没有用过端口扫描程序,那么,很可能对通信中所使用的未知的端口而感到吃惊。
无论如何,如果用户发现了一个不了解的端口,就需要跟踪使用它的程序或进程。端口扫描程序可以告诉用户计算机正在使用端口。找到那台计算机并启动程序了解哪些进程或程序正在使用特定的端口。对于端口扫描程序而言,比较难于指出这个端口起源于哪个文件或进程。Atelier Web Security Port Scanner(AWSPS)(http://www.atelierweb.com)是一款功能较完善的端口映射器,它可以工作在Windows 9X/Me/NT/2000下。它的Ports Finder(端口查找)模块可以深入到系统里去,并指出哪些程序正在使用哪些端口。一旦找到了文件,就可以检查它的合法性。
⑤Internet内容扫描程序
Internet内容扫描程序(Internet Content Scanner)是另外的一款恶意代码保护工具。同一般的基于特征数据库的反恶意代码扫描程序并不同的是,内容扫描程序是寻找恶意代码的行为。最复杂的产品对于所有的Internet下载的代码都提供“沙箱”一样的安全保护,并提供模拟的“蜜罐”环境,不仅仅只是Java Applet被放到“沙箱”里,ActiveX控件、VBScript文件和可执行文件亦是如此。最流行的Internet内容扫描程序是Finjan软件的(http://www.finjan.com)SurfinShield。它可以和Internet Explorer或者Netscape Navigator相互配合,组成内置的对基于Internet的可疑代码的监视,并提供对敏感区域的保护。当它检测到有程序企图访问本地系统资源,就会向用户报警并且阻止其行为。
Internet内容检查器在保护用户不受源于HTML的恶意代码伤害的问题上的成效是不错的,但是无法取代反恶意代码扫描引擎的作用。事实上,绝大多数的内容检查器无法检测所有的已知恶意代码。如果用了一个不是来自反恶意代码厂商的内容扫描程序,建议最好也运行一个反恶意代码扫描程序。一些厂商正在将Internet内容扫描引擎和它们的反恶意代码扫描程序相互连接,这些厂家包括Trend Micro,Network Associates和eSafe。
⑥良好的备份
没有什么可以比良好的备份更好的了。没有任何防御计划是完美的,而且在很多组织中恶意代码有时会攻破最新的防御。如果恶意传播代码攻击并造成了无法修复的破坏,而已有好的备份,就可以保证将它的损失降到最小的程度。如果无法确认备份的可靠性,那就值得忧虑了。