张沁怡
第三方项目验收测试是对项目建设范围内的功能、性能等技术指标进行验证,评估项目所采取的安全措施能否满足项目建设的需要。本文对第三方项目验收测试的定义、测评依据、测评内容及测试流程进行了介绍和论述。
信息化项目是指以计算机、通信技术及其他现代信息技术为主要手段的信息网络、信息安全、信息资源和信息应用系统等新建、扩建或者改建的工程项目。
项目申报单位由于技术条件等诸多因素限制,无法独立组织项目并实施项目验收测试。因此,建议对项目质量要求比较严格的项目申报单位委托第三方测试机构进行项目验收测试,对于提高项目的安全性建设、降低系统运行时的风险具有极其重要的作用。
验收测试
验收测试定义
第三方项目验收测试可分为安全测评和软件测试,根据立项文件的项目建设内容,对项目建设范围内的功能、性能等技术指标进行验证,并结合国家、地方的信息安全相关标准,对建设完成的信息系统进行安全测试和评估,评估项目所采取的安全措施能否满足项目建设的需要。
在第三方项目测试验收中,“第三方”的“独立性”是保证其结果公正的起点,而“第三方”的专业性和权威性则是保证其结果公正的基础。第三方测评机构聘用的测评人员资质应经过审查,确保测评人员的可信性,采用的测评工具应经过选型,确保测评工具的可信性,测评过程应依据相关测评标准进行,确保测试过程及结果的可信性。
测评依据
安全测评主要参照网络等级保护的相关标准进行测评,具体测评依据如下:
GB/T 22239-2019:《信息安全技术网络安全等级保护基本要求》;
GB/T 18336.2-2015:《信息技术安全技术信息技术安全评估准则》。
软件测试主要参照软件产品质量要求和测试国家标准进行测评,具体测评依据如下:
GB T 25000.51-2016:《系统与软件工程系统与软件质量要求和评价(SQuaRE)第51部分就绪可用软件产品(RUSP)的质量要求和测试细则》
测评内容
安全测评:一般依据项目建设内容进行确定,可从安全物理环境、安全通信网络、安全区域边界、安全计算环境和安全管理制度等测评层面进行安全配置核查和文档记录核查。例如某项目建设内容不包括机房建设,则不对安全物理环境进行测评,以此类推。
软件测试:一般依据项目建设任务书、项目批复、需求规格说明书等文档对项目涉及的应用系统功能进行验证,具体内容根据项目而定。若项目不涉及应用的开发和改造,则不进行项目功能验证。
根据项目建设任务书、项目批复、项目设计(建设)方案中要求的性能指标进行测试。常见的性能指标有:用户数、最大并发用户数、响应时间、事务通过率、资源利用率(CPU平均利用率、平均可用内存分析、磁盘占用率等)和压力指标等。
验收测试流程
项目的生命周期分为4个阶段:启动项目、组织与准备、执行项目工作和结束项目。对信息化项目进行第三方项目验收测试,本质上也是完成項目,对应项目生命周期的各个阶段、测评方人员的主要工作内容及输出结果如表1所示。本章节将就各阶段的详细工作内容进行展开论述。
项目合同签订
测评单位与具有信息化项目验收需求的项目申报单位负责人签订测评合同(单独做安全测评或软件测试,或是都做),经过内部业务分配流程将项目授权于特定测评组负责实施。
验收测评准备
与项目申报单位进行联系,收集项目立项文档,包括但不限于项目建设任务书、项目批复文件等,收集软件开发文档,包括但不限于需求规格说明书、用户操作手册、安装部署手册和运维手册等;收集被测对象清单,包括但不限于项目内采购的服务器、数据库、网络设备、网络安全设备以及项目内新建/升级改造的应用系统;硬件设备需提供设备名称、型号、操作系统/数据库系统、数量和IP等信息,软件系统需提供系统名称、功能简介和访问地址等信息;收集网络拓扑图,确认项目建设范围内的硬件设备所在位置及软件系统的网络边界。
根据收集到的项目立项文档,确定本次安全测评中需要选取的测评层面及测试项,根据网络拓扑图中硬件设备所在位置及软件系统的网络边界,确定安全配置核查、漏洞扫描的测试工具接入点位置。
根据收集到的项目立项文档,确定本次软件测试中的功能指标、性能指标,对项目建设范围内的系统进行功能分解、等价类划分以及边界值分析来设计测试用例,并依据每项测试输入列举预期的测试输入,并确定判定准则,根据网络拓扑图中硬件设备所在位置及软件系统的网络边界,确定功能测试、性能测试的测试工具接入点位置。
汇总上述信息进行测评方案的编制,测评方案包括项目概述、测评对象组成、测试方法与环境、测评内容及要求等章节,最后与项目申报单位约定现场测评时间及配合测试人员,提前告知现场测评流程及过程中可能存在的一些风险。
现场实施
(1)测试内容
根据项目组成员数量对测评工作进行合理分工,按照测评方案中测评对象和测评内容进行测试。
(2)测试工具
测评过程中可能使用到的测评工具包括测评报告撰写工具:测评能手1.8.2.0、操作系统漏洞扫描工具、Nessus 8.13.1/绿盟极光远程安全评估系统V5.0;数据库扫描工具:APPDectective 8.7;应用漏洞扫描工具:明鉴Web应用弱点扫描器6.0;性能测试工具:Loadrunner 12。
(3)风险控制
对于合格的测评人员来说基本的业务能力是必备条件,此外安全意识的培训和培养也不可缺失,若是在测评过程中由于业务能力不足或安全意识不到位,可能会产生测评工具的操作不当、测评记录存储不当、破坏系统等后果,最终给双方造成损失,因此第三方测评机构应定期对测评人员进行资质审查,可以采取签署保密协议、现场见证等方式进行风险管控。
下面将分别阐述测评过程中可能产生风险的环节和可采取的应对措施。
配置核查
风险:误操作。
措施:操作系统、数据库系统、网络设备等核查过程中,测评人员告知配合人员需要执行的命令、需要查看的配置,命令的输入和执行、配置导出等操作可以由配合人员完成。
工具扫描
风险:增加系统和网络负载,可能造成设备宕机。
措施:与配合人员商议扫描时间时避开系统高峰期,若配备了备机也可以对备机进行扫描。
渗透性测试
风险:可能产生测试冗余数据,或造成部分数据丢失。
措施:进行测试前对生产数据库进行备份,若配备了与生产环境一致的测试环境,可以在测试环境下执行应用层面渗透性测试。
功能测试
风险:误操作。
措施:进行测试前对生产数据库进行备份,涉及到增加、删除、修改的功能点,可以由配合人员按照测试用例执行,若配备了与生产环境一致的测试环境,可以在测试环境下执行用例。
性能测试
风险:可能影响系统运行甚至导致系统崩溃。
措施:与配合人员商议性能测试时间时避开系统高峰期,若配备了与生产环境一致的测试环境,可以在测试环境下执行性能测试。
(4)结果记录及交流
在安全测评和软件测试的测试过程中,测评人员将实际测试结果作为原始测试结果进行记录,初次测评完成后,若发现功能、性能、安全性或文档等方面存在不满足测评要求的情况,安全测评可以出具安全问题汇总。内容包括测评对象、测评项、安全问题描述、安全建设整改建议等内容,软件测试可以出具异常统计与改进情况表,内容包括软件异常简要描述、功能模块、异常等级和改进情况。测评人员在初次测评的末尾就以上文档的内容与配合人员进行沟通交流,明确目前与达到项目验收要求的差距,待整改完毕后再次约定时间进行回归测试。
(5)测评结束
安全测评中,当项目无主要高风险问题,单项符合率≥60 %,单项符合率+单项部分符合率≥80%时,达到了出具安全测评报告的要求。软件测试中,当项目无功能要求和相关技术指标要求的异常,通过率≥95%时,达到了出具软件测试报告的要求。
进行回归测试时,当整改情况满足上述出具报告要求时,测评人员记录下相关问题的整改情况,此时现场测评结束,测评人员可以进入报告撰写阶段。
报告撰写
安全测评报告由信息化项目安全测评基本信息表、声明、报告摘要与结论、主要安全问题及整改建议、项目概述、测评概述、单项测评结果汇總、测评结论、安全问题整改建议和附录构成,可通过测评能手1.8.2.0进行报告初稿的导出。
软件测试报告由项目软件测试基本信息表、声明、报告摘要与结论、软件概况、测试概述、测试过程与结果、符合性评价结果、测试结论和附录构成。
对于项目申报单位来说,项目验收测评仅是对项目完成现状的安全性、功能性等特性进行了测试,并不代表绝对的安全性,为了实现可持续的安全性,项目申报单位也不能仅依赖于项目验收测试,应采取持续的防护手段,例如安全服务、实时监控、修复与加固等。
对于第三方测评机构来说,测评必须强化质量第一的原则,若是测评中放过一个安全漏洞,就有可能使系统带病上岗,最终可能产生无法估计的损失。此外测评机构也需要不断提升测评技术能力,信息安全产品升级换代很快,各类技术也不断革新,测评也要跟上时代发展和技术进步,确保测评公正和专业性。