|
序言 测试防毒软件不只是拿数个档案扫描一下看看有没有病毒。要达到测试的目的,测试必须在严谨及有正确方法之下进行。这文件的目的是提供一些方法测试防毒软件的方法及指出测试防毒软件时一些重要的标准。
以下是本文的重点:
- 测试防毒软件的目的。
- 防毒软件要测试什么:
- 手动扫描
- 存取扫描(常驻内存)
- 智能侦测 – 什么是智能侦测扫描及如何测试
- 样本撰取 – 为何样本撰取是防毒软件侦测的成功关建
- 测试错误侦测安全档案为病毒
为避免混乱,本文件所指的病毒是真正的病毒( Virus )及蠕虫( Worm )。其它恶意软件例如木马、广告软件将不会定义为病毒。
测试防毒软件的目的 测试防毒软件的目的非常简单;就是测试防毒软件扫 描病毒之能力,而这些病毒在现实生活中有机会感染用户。
以下的说话一听就知道是对的:
- 不能侦测病毒的防毒软件是没有用的。
- 越普遍的病毒越能够被防毒软件侦测出来。
不过,事情不是这么简单。防毒软件必须常常更新以侦测最新的病毒,所以一只防毒软件上一个月可以侦测所有病毒,不代表这个月也可以。防毒软件测试就是要确保该防毒软件在侦测病毒时达到标准:能够准确侦测到所用户有可能接触到的病毒。
不幸地,有很多防毒软件测试都犯了一些常见的错误。以下是一些常犯的重大错误。
- 不正确的测试方法
- 测试者用一些已修改的或为测试而创造的病毒进行测试
- 测试一些已更名的病毒档案
- 测试一些已破坏或不能运作的病毒
- 测试一些非病毒档案(因为其它产品错误地侦测该档案为病毒)
- 以不正确的设定进行测试
- 在测试时加入主观因素
其实只要把样本在测试前先复制一份,以上错误大都可以解决。在“样本撰取”的部份将会详述这关键问题。而主观因素就是测试者往往相信防毒软件产品应该侦测到广告软件(adware)或包含防火墙的功能,这些主观因素其实对测试一只防毒软件的扫毒能力完全没有关系。
以下是测试防毒软件的一些指引:
- 档案附加档名 - 档案应该保留原有的附加档名,而不是以更改的附加档名。 NOD32 拥有一个高效能的扫描引擎,为现实 环境作出优化而非“学术” 测试 。这代表当它会对现实生活可能接触到的病毒进行最好的 扫描。扫描一些非正常附加文件名的档案,例如 myscreensaver.exe 更名至 myscreensaver.ex$ ,这往往做成不可预知的甚至不正确的结果。因为 .ex$ 这种附加文件名是不可能在正常系统中执行,所以 NOD32 可以合理地忽略这个档案。
- 档案存放位置 - 档案应该存放在本硬盘中。除非特定要测试网络磁盘,病毒档案应放本机碟中。否则扫描 速度及对系统的影响的测试结果将会不准确。 NOD32 测试速度极高而且扫描时对系统的影响减至最少,如果目标档案是在 网络磁盘的 扫描 话 速度会受网络存取速度所影响而非软件本身。
- 扫描设定-测试前应先检查扫描设定。一些测试会使用“预设”的设定而一些会使用“最好”的设定。请联络 Eset 的成员以决定如何设定 NOD32 来进行非预设设定之测试。
- 病毒档案应该是真实而和没有被更改的样本,这可以通过比较已复制的病毒档案来确定。详细请参考本文“样本撰取”的部份。
- 已损坏,自创或非病毒档案不应该被测试,这包括一些仿真病毒档案-它们不是病毒所以不应用作测试。Eset 以能正确地侦测真实的病毒为荣,而非为通过某些测试而去侦测一些假病毒。
- 不 应改变病毒的正常在野(In the Wild)状态。病毒应为已知病毒。Eset将不会为任何目的(包括测试)而制造新病毒或新病毒变种。改变一只病毒(假设它是可复制的)将会制造一只新的 病毒,所以我们认为这是不道德及不专业的,我们将不会参与任何有特别制造或改变的病毒的测试。
- 用于错误警报测试的正常档案应存在于一个普通使用者系统,而非一些特别制造以欺骗防毒软件扫描仪的档案。
- 统 计上的完整性。样本选择应以健全的统计为基础,样本数目在测试中是重要的。以两、三个样本,甚或十至十五个样本作测试并不能构成在统计上有效的一套样本。 病毒在野清单(Wildlist)含有250至270个不同的目前的在野(ItW)病毒。样本数目越小,测试中的统计错误将越大。
- 应分开测试 “zoo” 病毒及在野(ItW)病毒。Zoo病毒是指未曾出现于在野病毒清单(Wildlist)的病毒。所以,这些病毒出现在一个正常使用者系统的机会很低。这说明测试这些病毒的重要性很小,而在统计学上,侦测这些病毒远比侦测在野(ItW)病毒次要。
- 当有产品遗漏病毒,或不能正确侦测,又或将一个正常档案误认为病毒,应回报给产品制造商验证或修正。
当测试一个防毒软件时,最重要是测试其侦测真实世界病毒的能力。防毒扫描仪有几种类型,于测试时须要知道它们的分别。
手动扫描仪 一个手动扫描仪,于用户要求时执行。可扫描所有档案,或是指定的档案或数据夹。
测试时的一些考虑:
- 扫描速度及扫描时对系统效能的影响
在测试手动扫描仪时,扫描速度及对系统效能的影响是重要的(虽然不比病毒侦测重要)。通常扫描会对系统效能带来影响,一个明显减慢系统的扫描仪是不理想的。尽可能缩短受影响时间也是很重要的,所以须要运作快速、占用少系统资源的扫描仪。
- 扫描参数
手动扫描仪通常有很多的选项可以设定,测试者应指定要使用的选项。使用 “最佳”设定与“预设”设定会带来不同的结果,并且通常会影响效能(如扫描速度)。在测试所有扫描仪时,测试方法将与平常用户使用扫描仪的方法相同。所以 病毒档案不应被更名或改变,并应放在本机磁盘中(除非扫描网络磁盘是测试的一部份)。
- 侦测时的动作
通常扫描仪会提供很多的选项以处理病毒档案。已执行的动作可能会对系统有影响,在大多数的测试中,将病毒报告储存到一个日志档案已经足够。
存取扫描仪 存取扫描仪加载到系统记体中,并干涉所有操作系统对档案系统的呼叫。这样可确保一个档案在传送到系统前已被扫描,所以能够避免系统受病毒感染。
测试时的一些考虑:
- 对系统效能的影响
因为存取扫描仪于系统启动时加载,并扫描所有存取的档案,这可以给系统带来明显的负面影响。这影响最少时是最理想的。通常最明显的效能影响是在开启一个程 式时──当扫描仪在启动状态,加载程序的所须时间是一个好的效能指示器(比较当扫描仪在关闭时的所须时间)。
- 侦测时的动作
预设的动作也很重要,例如当发现病毒时禁止存取该档案,或是只报告病毒而容许其继续执行。在测试时,通常最好是只报告病毒,因为系统上会有不寻常数量的病毒,其它的动作会影响测试结果。
- 系统稳定性
防毒扫描仪可能会负面地影响一个系统的稳定性,因而导致随机的程序冲突,甚至系统冲突。NOD32 已被证明能于Windows操作系统使用,及能于一个正常的系统中稳定地运作。
测试智能侦测扫描仪 智能侦测防毒扫描仪尝试辨认新的或已更改的病毒,让用户的系统在早期病毒未爆发前得到附加的保护。智能侦测扫描仪比较困难地正确测试;要留意的有以下数点:
- 扫描时的侵略性
NOD32 有两种智能侦测扫描等级:正常模式及进阶模式。进阶模式(进阶智能侦测模式)是一更具侵略性的扫描模式,它会特别留意某些档案种类。这模式为扫描仪的智能侦测能力提供一个更真确的表达,它用于所有重要的NOD32模块中。
- 错误警报等级
更具侵略性扫描的设定会增加错误警报的机会。这是因为于扫描时对档案有更大的猜疑。正常的档案被视为病毒档案是不理想的,但使用侵略性的智能侦测模式将无可避免地导致这个后果。
- 更新等级
要测试智能侦测,样本必须由测试时产品未知的病毒组成,否则测试的并非智能侦测能力。
- 产品年龄
留意,智能侦测能力通常会被经常更新,所以,以旧版本(数星期或数月)作测试并不能真实反映智能侦测能力。 一个产品最新的版本及不须作病毒定义更新是最理想的。
- 长时间测试
以一套大的病毒样本测试智能侦测能力是可能发生的,这会“冻结”产品(不更新)一段时间,然后测试在“冻结”与测试期间出现的病毒。
留意,于智能侦测能力测试失败一次的意义与用病毒数据更新而失败的意义是不同的。其中一个原因是病毒样本数目甚少,相对于所有在野病毒(因为只有很少,有 时甚至只有一只病毒出现)。另外,可以预期的是较旧的病毒当被知道时可透过更新及智能侦测模式侦测得到,因为智能侦测能力将于更新时改良,所以会对结果有 影响。
样本选择 病毒的定义是它能够自我复制。意思是当档案或脚本被执行时,它会将自己复制成一个或多个(很可能已修改的)档案或成为其它档案的一部份。没有这特性的档案 并不算是病毒,但这并不表示它不是有害的程序,这只表示它不是病毒而已,及不应包括在病毒样本内。可能有另一套专为这些有害程序而设的样本,例如:木马 (后门程序、间碟软件等),但不应将这些档案与病毒混淆,而这些档案不应被用作测试病毒侦测能力。要知道具权威性的在野病毒清单(即已流传到公共网络或电 脑的病毒,所以很可能出现于现实系统中),可参阅Wildlist (http://www.wildlist.org)
用于测试防毒扫描仪的样本必须由已验证及已复制的样本组成。测试中心对样本选择及验证有最终及完全的责任。有些常见问题应在样本选择时避免:
- 使用防毒扫描仪判断一个档案是否病毒。
档案能否自我复制是决定该档案是否病毒的唯一因素。使用扫描仪不是一个正确的方法,因为该产品的错误率及命中率并不是在统计学上对侦测能力有重大影响。
- 以正常档案测试(包括病毒遗下的非病毒档案)。
某些病毒使用辅助档案,如日志,或其它非病毒档案以达到其它目的,它们并不是病毒,因此病毒扫描仪不当它是病毒是正确的。
- 以无用的档案测试。
很多"zoo"病毒集含有很多无用的档案,这包括 Virus Dropper、已损坏的病毒、intended viruses,病毒使用的批处理文件及各种不是病毒的对象。如果一个档案不能自我复制,它就不是一个病毒,及不应用于病毒侦测能力测试。
- 以仿真病毒或denatured病毒测试。
同上,如一只病毒不能自我复制,它就不是一只病毒,及不应被病毒扫描仪侦测得到。事实上,如果它们被侦测出来,这就会是一个错误警报。
- 以被更改、重新命名或不自然地放置档案测试。
所有病毒应能自我复制及出现于系统中,并有正规的附加档名及在通常的模式中。
测试错误警报 一个防毒扫描仪应只侦测病毒,但这亦表示它不将正常档案侦测为病毒。 错误地将一个正常的档案标记为有病毒,这称为"错误警报"。这会为系统带来严重问题,包括重要档案被删除,这会导致系统不稳。这是为什么只用真实病毒测试 是很重要的。要预期一个防毒产品侦测非病毒最终会降低产品的价值,并带来更多错误警报的风险。一个错误警报测试应用于测试大量出现在一个正常系统的正常文件 案。以用户有机会在他们的系统看见的档案作测试是重要的,创造与病毒相似的档案是无益的,它不能反映在真实世界内扫描仪的能力。
以下是一些有明确定义测试方法的独立测试中心: ICSA Labs CheckMark (West Coast Labs) Virus Bulletin |