APP下载

面向基于漏洞检测的安全产品优化测试方案研究

2013-03-23

电信工程技术与标准化 2013年7期
关键词:测试环境测试方法漏洞

(中国移动通信集团设计院有限公司,北京 100080)

1 引言

伴随着IT技术和互联网应用的蓬勃发展,针对企业和个人的相关安全威胁也日益凸显。除了攻击手段的多样化、智能化和普遍化等外在原因,大量的安全漏洞也使得安全环境进一步恶化。

所谓安全漏洞(Vulnerability),就是存在于系统内的弱点或缺陷,使得系统对一个特定的威胁攻击或危险事件敏感。安全漏洞的出现和存在,既有客观天然的原因,如代码失误、环境变化等;也有主观后天的原因,如配置问题、管理缺乏等。

面对愈演愈烈的漏洞威胁和层出不穷的公告和修补建议,电信运营商、政府机构、科研企业等安全敏感度高的单位,在采用常规的“顶盔贯甲”安全思路来部署各类安全防护设备进行被动防御的同时,也在逐渐使用“强身健体”的思路、使用系统漏洞扫描设备、Web网页漏洞扫描设备、基线检查设备等漏洞检测类设备来检测所辖设备自身的安全性;相应地,此类安全产品的测试和选择也越来越受到各方重视。

2 产品选择与测试原则

在林林总总的漏洞检测类安全产品的选择中,各方不仅希望掌握漏洞扫描等设备的工作原理、核心技术,更加看重实际的使用效果或者入网前的测试结果。虽然已经有较为成熟的测试组织流程,测试机构也在不断加大测试投入,但目前面向基于漏洞检测的安全产品的多数测试方法并没有形成科学的理论,已经滞后了此类安全产品在整个安全体系中发挥本应具有的作用。

总的来看,虽然业内还缺乏成熟的测试方法论对整个测试予以指导,但是对于一般安全产品的测试工作,应该把握以下几个原则:

(1) 确保准确:产品测试的根本目的就是对参评设备进行横向的技术比较,从中挑选出功能完备、性能优良、满足生产运维需要的产品。因此,无论采用何种测试方法,最终都要确保测试结果能够真实反映出设备的优点、不足、特性等。

(2) 防止作弊:设备提供商为提高测试成绩,很多会提前对设备的功能和性能进行优化,以取巧的手段换取高分。例如,对于应用层安全设备,由于受到体系架构和组件配置等方面的影响,一般设备性能指标和综合准确率是反比的。换而言之,如果测试环境不能保证将某几个指标同步测试,就有可能给被测厂家一定的操作空间,在结果上可能同时达到一个高分,而在实际使用中却差强人意。

(3) 避免争议:以防火墙为代表的三四层安全产品测试与路由器等网络设备的测试环境、测试手段都已经较为成熟,结果也鲜有不同意见。但面向应用层的安全产品测试方法和结果常常为各方质疑,所以在测试内容的选择和测试方法的设计上,要有所取舍和精心考虑,在保证结果准确的前提下,不要轻易引入争议项作为必测项目。

(4) 性价比优:测试的目的大多是直接为工程建设和生产运维服务的,而测试本身需要占用固定投入或者运营费用,因此也要考虑测试投入中人力、物力、时间等成本因素。

3 优选的测试项目

一项专业化测试,其主要内容应该包括测试制度、组织架构、测试方案、过程记录、综合评估等5个方面。本文重点讨论测试方案,即面向基于漏洞检测的安全产品的测试项目和测试方法。

测试方案中,首先明确的是测试项目即测试者所关心的该类产品各项指标,如功能指标、性能指标、综合指标等。从产品测试项目或者内容安排来看大致可以分为两类,全面测试与优化测试:

(1) 全面测试,即测试覆盖了被测产品所有的功能点和性能点。显而易见,全面测试的优势在于可以彻底全面了解被测产品的情况;但是最大的问题在于测试内容多、周期长和投入大。如果采用全面测试的方法,按照业内通常的经验,一类安全产品总共投入的人工量即达到1 200人日,如果把租用测试仪表的费用考虑进去,仅一项测试的直接费用就达170多万元。这显然不符合性价比优的测试原则。另外,测试结果过于繁杂也不利于参测产品之间的综合比较。

(2) 优化测试,即在前面(1)提到的测试全集中选择有代表性的功能指标和性能指标进行重点测试。这种方法最大优点在于省时省钱,但难度在于指标选取和测试方法的设计,需要避免造成以偏概全等问题。

通过对多种漏洞检测类安全设备的深入分析与研究比较,笔者认为采用优化测试是完全可行、可靠和可信的。下面,首先提出优化后的测试指标项,然后在下一个小节中介绍关键测试环境的搭建和测试方法的设计。

3.1 检测的准确性

为便于比较,在测试安排和评估中大多倾向于使用能够量化的项目指标作为主要测试内容。其中,安全类产品常用准确率作为关键指标来对产品进行测评。对于漏洞检测类产品,其准确率指标主要有两项:一是设备发现准确率,即要求送测设备能够快速精准地发现设备、形成资产库,并在此基础上发现漏洞;二是漏洞检测准确率,即将预植或者已知漏洞正确识别出来的比例(识别出的已知漏洞数量除以全部已知漏洞总数)。

需要指出的是,漏洞检测类安全产品测试环境搭建中最大的难点在于要求测试者准确了解实验对象中预植的已知漏洞种类与规模。

3.2 漏洞库的完备性和升级及时性

众所周知,基于漏洞检测类的安全产品的真正核心实力在于对漏洞库和相关知识库的彻底掌握和充分积累。因此,虽然安全漏洞库或者知识库规模大小、危害分析的详细程度、其升级周期快慢等并不能直接说某款产品的好坏,但却从一个主要方面反映出产品质量及其提供商的综合实力,包括研究能力、开发能力、成果转化力等。此外,在实际应用中,漏洞库的完备性和升级及时可以帮助安全管理者能够在入侵攻击尚未造成更大危害之前做出最快反应。

3.3 配置管理与使用的方便性

一款功能完善的漏扫设备要兼顾严谨性与灵活性。在配置管理上应该同时兼具自动扫描、手动扫描功能,而且还提供针对不同扫描对象的配置模板,如并发线程数、扫描范围、检测内容等,并给出推荐值,从而保证不同技术层次的人员能够根据实际需要进行检测工作部署。

3.4 生成报告的可用性

在实际工作中,即使有大量的扫描检测数据堆砌在一起,而不能从资产风险的角度确保技术安全与管理安全的同步性,那么对系统风险的整体性降低也无多大裨益。因此,要重点关注基于资产的漏洞风险评估、漏洞信息的管理、修补优先级排序、历史数据汇总和对比等输出报告的可读性与可用性上。

3.5 产品的可靠性

漏扫类产品的可靠性至少有两层的含义。一是产品本身运行的稳定性和可靠性;二是产品本身在模拟黑客的行为对被扫范围进行攻击测试时,是否会带来安全风险,如造成的网络瘫痪、关键应用或者服务中断等。

下面,本文就此类安全产品的准确性、完备性与及时性、方便性、可用性和可靠性等5个方面的测试内容,一一说明相应的测试方法。

4 优化的测试方法

测试方法是基于测试内容的、通过一定技术手段获得试验结果的方法。不同的测试项目或者内容有不同的测试方法。从业内成熟经验和产品特点来看,基于漏洞检测类的安全产品测试方法一般包含两个方面,一是测试环境的搭建、二是测试手段。下面,我们对应前面提到的5个测试项目分别提出优化的测试方法。

4.1 准确率测试方法

上节已经提到此类安全产品的准确率有两个方面,一是设备发现准确率;二是漏洞检测准确率。对于设备发现准确率测试,可以利用复制虚拟机的方法来扩大被扫设备的规模,从而避免无法比较不同被测设备在扫描发现效率方面的差别。而对于漏洞检测准确率,测试方法是比较复杂的。

前面已经提到,在基于漏洞检测类的安全产品测试中把检测准确率指标作为关键指标还存在诸多值得商榷之处。首先,当前还没有自动预植系统或者应用漏洞的仪表,因此很多情况下需要人为在测试环境中手工完成漏洞预植;其次,为保证测试环境与应用环境尽可能接近,整个漏洞集合必须是大规模(一般在千个量级)、多样化、代表性强,覆盖面广的,这也给漏洞预植工作造成很大困难。综上两点,在漏洞检测类产品测试中,其检测准确率的真实值在理论上是无法得到的。

因此,在测试环境搭建中,需要找到一种方法,既保证测试样本中的漏洞规模和代表性尽可能接近真实环境、又要保证测试人员能清楚地知道全部漏洞的类型和数量。这里我们提出补丁趋近验证法来满足测试的要求。

首先使用1或者2款漏洞检测类设备对一个常见版本的被测对象进行扫描,并记录漏洞列表合集;然后从相关官网下载一系列补丁对其修补,再使用同样的扫描设备或者其他技术手段重新扫描,查看初次记录的漏洞是否已经不存在。经过反复的扫描与修补过程,基本可以大致确定该被测对象中已经存在的漏洞种类和数量。

这样以来,准确率测试结果评估中所需“分母”——整个漏洞集合基本已知的前提下,剩余的测试即可按照常规方法展开并记录,由此就可以得到一个基本可信的检测准确率值。

4.2 完备性和及时性测试

除了通过方法(1)来从一个方面来检查被测设备的漏洞库的完备性和及时性以外,可以通过其他公开方式,来进一步检验。例如,被测产品一段时间内的升级包的描述、建议、帮助等,以及这些提供商发布的漏洞提示、升级包等与被扫对象官网发布的时间是否同步等等。

4.3 方便性测试

众所周知,安全类产品的软件会涉及到总体结架构和模块设计、编程和调试、联调和测试等一系列过程。而最为简便和直观评测一款软件优劣的方法就是软件对主流操作系统的兼容性和配置界面的灵活性。如果产品本身为软件形态,测试人员可以自行安装一次,检测其安装是否顺畅。如果是硬件形态,也可以通过检查其任务模板界面中是否包含并发的线程数、数据分组间隔时间、扫描对象总数等可配置内容,而且要验证上述配置项在极值情况下是否能够正常工作。

4.4 可用性测试

发现漏洞,只是完成一半工作。一款优秀的漏洞检测类产品还会对扫描检测结果进行分析,并提供修复建议。换而言之,在此项测试中,不仅需要考察结果是否全面精确,还必须落实这些数据是可为人们理解的信息,如被扫系统的量化风险、漏洞修复建议等报告。从而方便用户在实际工作中有效地落实漏洞修补和风险规避的工作流程。

4.5 产品的可靠性测试

要检查测试过程中,是否出现被测对象宕机,进程挂起等不稳定现象。同时,要观察被扫实验环境中设备负荷变化情况,如网络负荷、被扫主机负荷等等。比较简易的方法是检验送测设备是否有高风险插件等,是否具备及时提醒操作员某项操作存在风险性等。

5 总结

采用前面提到的优化测试方案,首先是在测试项目的选择上,有所取舍和精简;其次,测试环境搭建科学公正;再次,测试效率也极大提高。例如,测试方法(1)、(2)、(3)中大部分都可以在一个测试步骤中同步完成,即测试展开、结果记录、评估总结可以一次性完成;最后,可以保证测试结果能够真实反映出设备的功能和性能水平。

同时,该优化测试方案也可以进而推广于某些通过扫描对比自身漏洞库、知识库,并据此进一步采取封堵、告警、记录、建议等措施的安全设备的测试。

猜你喜欢

测试环境测试方法漏洞
基于泊松对相关的伪随机数发生器的统计测试方法
漏洞
全数字仿真测试环境在航天软件测试中的应用研究
基于云计算的软件自动化测试方法
雷达航迹处理测试环境构建方法研究
DLD-100C型雷达测试方法和应用
网络设备自动化测试设计与实现
三明:“两票制”堵住加价漏洞
漏洞在哪儿
对改良的三种最小抑菌浓度测试方法的探讨