软件依从性测试的研究和实践

2018-10-27 11:00侯殿君
中国科技纵横 2018年18期

侯殿君

摘 要:软件依从性测试的目标是在互联网+发展背景下,利用软件测试技术,测试软件产品或系统遵循与功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性相关的标准、约定或法规以及类似规定的程度,促进软件系统合法合规合标、安全、稳定、有效、持续运行,降低客户面临的软件系统安全风险,促使软件产业的健康发展。

关键词:依从性测试;软件质量模型;渗透测试

中图分类号:TP311.52 文献标识码:A 文章编号:1671-2064(2018)18-0025-02

软件是信息产业的核心,其质量的好坏关系到信息智慧产业的成败,软件测试是提高软件质量的一个重要手段之一。目前我国软件测试实验室主要依据GB/T 25000.51-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则》和GB/T 25000.10-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第10部分:系统与软件质量模型》两个标准对软件产品进行测试,以上两个国家标准中涵盖了软件产品质量属性的8个特性的依从性测试,即软件产品或系统遵循与功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性相关的标准、约定或法规以及类似规定的程度。

软件依从性测试以相关的标准、约定或法规以及类似规定为依据,通过软件测试技术验证软件产品或信息系统的质量属性的所有特性的合法、合规、合标性,验证其的安全性、可靠性、完整性、时效性,尤其是数据来源和数据本身的真实性和准确性,从而有效判断其可信程度。

伴随着互联网技术发展和软件遍布到各行业,各种违法违规违标、数据真实性、可靠性、安全性等问题也愈加严重。为保护跨界带来的经济和社会效益而创造出的新的生态环境,有必要将软件依从性测试和软件测试技术有效结合,面向企业提供线上线下相结合的法律法规标准咨询服务。通过软件依从性测试技术的研究和应用实现有效整合软件法律法规标准、测试技术来为企业提供全方位的依从性测试服务,以营造良好的软件产业的法制环境氛围。

软件依从性测试的目标是在互联网+发展背景下,利用软件测试技术,测试软件产品或系统遵循与功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性相关的标准、约定或法规以及类似规定的程度,促进软件系统合法合规合标、安全、稳定、有效、持续运行,降低客户面临的软件系统安全风险,促使信息产业的健康发展。通过对软件系统的合法合规合标性、资产完整性、信息安全性、系统高效性、内控有效性进行测试、咨询,降低客户面临的系统安全风险,促使信息产业的健康发展。软件依从性测试技术研究的主要任务是面向企业线上线下完成对软件合法合规的测试、促进和咨询。软件依从性测试技术体系如图1所示。

远程漏洞扫描和渗透测试是软件依从性测试的重要技术手段。

1 远程漏洞扫描

远程漏洞扫描是根据用户实际依从性测试需求,对在互联网上的服务器站点进行软硬件系统漏洞扫描。将扫描结果进行分析和标注后提供给客户,帮助客户修复互联网服务器站点存在的漏洞。远程漏洞扫描包括两部分内容:

1.1 创建并维护漏洞库

创建并维护一个漏洞库,为远程漏洞扫描提供基础,该漏洞库收集涵盖但不局限于以下漏洞类型:(1)网络设备(交换机、路由器等);(2)操作系统(Windows、Linux、Sun等);(3)数据库(MS-SQL、MySql等);(4)网络服务中间件(IIS、Apache等);(5)网络应用程序(Java等)。

1.2 漏洞扫描子系统

漏洞扫描子系统负责对目的网络地址进行可配置的漏洞扫描,该子系统后端连接漏洞库,根据漏洞库中的漏洞信息以及企业的配置对目标网络进行漏洞扫描。该子系统具备以下特点:(1)多线程并发扫描:针对某一个目标,可以进行多线程并发扫描,提高扫描速度;(2)多任务并发扫描:可以同时根据不同需求对多个企业进行多线程并发扫描。

2 渗透测试

渗透测试是依从性测试人员尽可能完整地模拟攻击者使用的漏洞发现技术和攻击手段,从攻击者的角度对目标网络、系统、主机应用的安全性作深入的非破坏性的探测,发现系统最脆弱环节的过程。渗透测试通常能以非常明显、直观的结果来反映出系统的安全现状,其目的是能够让管理人员直观地知道自己网络所面临的问题。

通过渗透测试可以做到:(1)了解入侵者可能利用的途径,提出改进方法与建议。(2)检验现行的网络设备(路由器、交换器等)安全策略。(3)检验现行的信息安全设备(防火墙、IDS等)安全策略。(4)对于重要主机的安全性进行专业信息安全的评估与建议。(5)找出IT人员未能掌握的服务器或主机加以调查。(6)了解系统及网络的安全状态。(7)检验现行的信息安全策略。(8)找出现行信息安全策略的盲点。(9)验证现有系统的整体安全性。

渗透测试为了不对测试目标造成破坏、损害或篡改,对于某些可能会对测试对象造成负面影响的攻击方法和手段,在渗透测试中不予使用,具体包括:社会工程学、分布式拒绝服务攻击、散布病毒(包括木马、恶意代码等)、对即时通讯工具的攻击、网络钓鱼等。

软件测试方法和技术与法律法规标准咨询服务的深度融合,提升互联网时代的软件依从性测试技术水平。总结和汇总软件依从性测试评估项目的实践经验,进行深入分析和挖掘,设计开发并推广软件依从性测试的共性技术,以及与软件相关的国家法律法规及相关标准的服务库建设。

软件依从性测试依据包括但不限于:(1)国家IT相关法律、法规及标准;(2)行业相关规范及标准(其中包括GB/T 25000.10—2016系统与软件工程 系统与软件质量要求和评价(SQuaRE)第10部分:系统与软件质量模型及GB/T 25000.51—2016系统与软件工程 系统与软件质量要求和评价(SQuaRE)第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则中质量特性的依从性);软件依从性测试法律法规参考库如表1所示。

2018年5月7日至2018年5月11日,对浙江嘉科信息科技有限公司开发的“北辰区区域生态环境综合监管平台V1.0”进行了软件依从性测试。经对软件中“免责声明、用户权限管理、用户操作日志”功能点的专项依从性测试,由遵循用户文档集的最终用户对软件操作进行的控制与软件的行为应是一致的。按照GB/T 25000.51-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第51部分:就绪可用软件产品(RUSP)的质量要求和检测细则》对该软件的用户文档集、功能性进行了专项检测,依据国家法律法规《中华人民共和国网络安全法》第二十一条第三款,《电信和互联网用户个人信息保护规定》第十三条第六款,《计算机信息系统保密管理暂行规定》第七条、第八条,《关于加强互联网领域侵权假冒行为治理的意见》第七条,对该软件的合法性、合规性进行了依从性检测,该软件通过软件依从性专项检测。同时使用软件源代码安全测试工具Fortify 4.4版本及Fortify4.4版本自带的安全编码规则包,对软件源码进行安全检测。软件源码由委托单位提供,共3个文件夹,分别为:“WEB前端”文件夹、“后台服务”文件夹、“數据读写”文件夹。软件源码安全检测过程中,共扫描403个文件,可执行代码行数为22613行,发现安全漏洞的总数为14个,缺陷密度为0.62 Defect/KLOC,满足客户对源代码软件依从性测试的需求。

通过软件依从性测试方法和技术与法律法规标准服务咨询深度融合,借助各地的软件测试机构建设“软件依从性测试技术体系”,满足中小企业随时、随地进行软件依从性测试工作。为客户提供便捷的属地化软件依从性测试服务等服务,把电子商务、移动互联、嵌入式、物联网软件依从性测试新技术应用推广到全国各地,营造出健全的互联网时代的软件法制环境和意识,为互联网时代的软件产业合法合规的健康发展做出贡献。