前一阵,笔者参加了有关企业级安全软件评测的交流会。会后,笔者还与评测专家进行深入的交流。如何对企业级安全软件进行有效评测一直是笔者很感兴趣的内容,所以当时本打算就自己所听所感马上成文。可随着和评测专家更深入的交流,随着越来越多评测资料的查阅,突然发现自己似乎无从下笔了。
提到评测相信很多相关专业人员都会随口说出:黑盒测试、白盒测试、灰盒测试、静态测试、动态测试、功能测试、性能测试、压力测试、负载测试……等诸多IT软件、硬件产品的评测方法。而提到安全软件产品测试时,许多人第一个想到的可能就是病毒库测试,看看这些安全软件到底能扫出多少病毒。相信还会有人提到诸如静态扫描测试、动态防御测试、误报测试、安全性测试等等。
在2000年的时候有病毒1500个;2002年达到了2万多;2005年是11万;到了2007年达到60万;2008年全球的恶意病毒达到了180万;2009年已知的病毒会比2008年翻一番还要多。在2006年的时候如果一台电脑没有进行适当的防护,联上网在17分钟之内就会受到病毒的传染。那么现在呢,同样一台电脑,联网后最快的在4分钟之内就会被来自网络的病毒感染。病毒数量正在急速增长,最公平有效地病毒库测试方法就是搜集当今世界所有有效病毒进行扫描测试,但很显然,这是完全不可能的事情。不提如何搜集这些病毒,单就如此庞大的病毒库进行扫描所消耗的时间就不是评测所能接受的。
在评测交流会上,来自赛门铁克安全技术与响应中心的终端防护产品集团经理John Harrison先生就明确表示,他并不赞同这种病毒库扫描测试方法。笔者在与评测专家交流过程中,评测专家也表示,病毒库扫描测试实际上存在很大的偶然性,可能恰好这个病毒库里的所有病毒都被某款安全软件的病毒库所收录,也可能恰好有那么几个病毒还暂时没被某些安全软件的病毒库所收录。那么没有扫描检测出这几个病毒的安全软件是否就不好呢?
病毒库扫描做为最有效地安全软件评测方法,却存在这种无可避免的“偶然性”因素,也就决定了病毒库扫描不能作为评测最重要参考依据,有些环境下,病毒库扫描甚至仅仅可以作为参考数据。
其实对于安全软件,特别是企业级安全软件来说,主要进行的还是黑盒测试,也就是:性能测试、功能测试、安全性测试。只有在特殊需求情况下才进行白盒测试,检测其代码是否存在瑕疵、缺陷。
对企业级安全产品进行评测,首先要设置虚拟环境,在这个虚拟环境里主要体现的是用户操作习惯,也就是体现用户平常都是怎样使用电脑,使用电脑都进行哪些操作。因为安装在用户(客户端)的安全软件是为了保护用户正常使用计算机,而不是让其变成专用杀毒机。所以,在这种真实模拟用户使用情况环境中的测试才最为有效。
然后仔细阅读研究安全软件白皮书,针对其所提供功能进行相关测试。比如Symantec Endpoint Protection Small Business Edition的主要功能包含:反病毒/反间谍软件、桌面防火墙、入侵防护、一般攻击程式拦截。而Symantec Endpoint Protection除上述四项功能外还多出了:设备和应用控制、Antivirus for Linux这两项。那也就意味着需要对前者进行四项功能测试,对后者进行六项功能测试。
在进行单项测试过程中,比如扫描恶意软件。如果有10个恶意软件样本,那首先需要测试是否能扫描到10个数量的问题文件,即发现。然后结束本次测试,重新设置初始干净系统环境,再测试能否探测并阻止单个恶意软件,依次对10个不同样本,进行10次初始干净系统环境下单一样本测试。这样主要是为了防止连续测试过程中,不同恶意软件的交叉破坏影响到安全软件的实际测试数据。
在测试的过程中,需要时刻注意测试过程中,测试环境所发生的变化,是否影响到用户的正常使用。如果影响了用户的正常使用,那么哪怕测试通过,也是一次失败测试。也就是说,哪怕安全软件成功阻止了一次安全威胁,但也同时使得用户无法正常工作,那么安全软件在这个测试中也没有起到其应有作用——在不影响用户的情况下,清除安全威胁。
直接使用病毒库由于具有“偶然性”因素,那么通过分析各类安全威胁,使用特殊软件模拟安全威胁感染途径、感染方法、造成的破坏,然后用此模拟安全威胁对安全软件进行测试,也是一个不错的方法。John Harrison先生还就此在交流会现场进行了演示,可惜当时受环境所限,笔者无法将此精彩部分录制为视频与各位网友共享。
当然极限环境下的安全软件性能测试,安全软件自身的安全性——即安全软件自身是否安全——测试也是十分重要的测试项目。
如何能对企业级安全软件进行最为有效的评测,目前还没有一个统一标准,甚至有些测试方法还存有争议。不过有一点倒是评测的共同标准:安全软件的运行是否能够保障企业网络环境不受威胁,使得用户能够正常工作。
东一句、西一句,说得有些杂乱,不过这些也正是笔者对此次企业级安全软件评测交流会的一点心得。欢迎各位资深评测专家指出文章所述可能存在的技术问题,并予以讨论。
最后感谢组织此次评测技术交流会的赛门铁克,以及Robert Pregnell先生与John Harrison先生的精彩讲解。也希望能有更多机会与更多安全技术专家就安全技术问题进行深入的交流讨论。