在CNAS软件检测领域,GB/T 25000.51-2016 《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则》,是目前国内对就绪可用软件产品软件检测标准,而其中对于软件的信息安全性也做了相关的要求,为测试软件的安全性提供了指南。
标准原文:GB/T 25000.51-2016 5.1.10 产品质量-信息安全性适用时,产品说明应根据GB/T 25000.10-2016包含有关信息安全性的陈述,要考虑保密性、完整性、抗抵赖性、可核查性、真实性以及信息安全性的依从性,并以书面形式展示可验证的依从性依据。 gb/t 25000.51-2016
GB/T 25000.51-2016软件检测标准的具体测试方法及要求是,参照 GB/T 25000.10-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第10部分:系统与软件质量模型》这个标准,GB/T 25000.10-2016将软件的信息安全性主要分为四大类,它们分别是保密性、完整性、抗抵赖性、可核查性、真实性和信息安全的依从性,它们用于验证系统、产品保护信息和数据的程度,使用户、系统产品或系统具有与其授权类型和授权基本一致的数据访问度。
GB/T 25000.10-2016-信息安全性内容
保密性条款:产品或系统确保数据只有在被授权时才能被访问的程度。
解析:确保数据只有在被授权时才能被访问,须防止未得到授权的人或系统访问相关的信息或数据,还要保证得到授权的人或系统能够正常访问相关的信息或数据。为了保证数据在传输过程中不被窃听,须对通信过程中的整个报文或会话进行加密。例如在交易系统中,涉及到银行账号、交易明细、身份证号、手机号等敏感信息,须保证这些信息在传输过程中的安全性,可采用加密算法,如3DES、AES、IDEA等进行加密处理。同时,须保证敏感信息在存储过程的保密性。启用访问控制功能,依据安全策略和用户角色设置访问控制矩阵,控制用户对信息或数据的访问。用户权限应遵循“最小权限原则”,授予账户承担任务所需最小权限,例如管理员只有管理员权限,不具备业务操作权限;同时要求不同账号间形成相互制约关系,审计人员不应具有系统管理权限,管理人员也不应有审计权限,这样两个角色就形成了相互制约关系。
重点分析:测试工程师在检测软件程序保密性的过程中,应重点对软件系统如下几点进行检测:
a. 权限分配(垂直越权或水平越权);
b. 会话通信是否加密(https传输);
c. 加密算法是否合理(弱加密算法base64、md5);
d. 敏感信息是否存在泄露风险(用户信息、敏感数据)。
完整性条款:产品、系统或组件防止未授权访问、篡改计算机程序或数据的程度。
解析:为了防止数据在传输和存储过程中被破坏或被篡改,一般采用增加校验位、循环冗余校验(CRC)的方式,检查数据完整性是否被破坏,或者采用各种散列运算和数字签名等方式实现通信过程中的数据完整性。采用关系型数据库保存数据,例如Oracle,增加数据完整性约束,如唯一键、可选值、外键等;实现事务的原子性,避免因为操作中断或回滚造成数据不一致,完整性被破坏。
重点分析:测试工程师在检测软件程序完整性的过程中,应重点对软件系统如下几点进行检测:
a. 系统软件在进行数据操作(增删改)时是否对数据格式进行了校验;
b. 检查数据库架构是否合理,数据库约束条件设置是否合理。
抗抵赖性条款:活动或事件发生后可以被证实且不可被否认的程度。
解析:启用安全审计功能,对活动或事件进行追踪。对审计日志进行管理,日志不能被任何人修改或删除,形成完整的证据链。采用使用数字签名处理事务,在收到请求的情况下为数据原发者或接收者提供数据原发和接收证据。
重点分析:测试工程师在检测软件抗抵赖性的过程中,应重点对软件系统如下几点进行检测:
a. 软件系统后台是否具有日志记录机制,日志内容是否详细;
b. 系统会话处理机制是否有效(Cookie、Session、Token)。
可核查性条款:实体的活动可以被唯一的追溯到该实体的程度。
解析:可核查性和抗抵赖性不同,重点在追溯实体的程度。主要考察启用安全审计功能后,覆盖用户的多少和安全事件的程度等。覆盖到每个用户活动,用户活动的日志记录内容至少应包括事件日期、事件、发起者信息、类型、描述和结束等;审计跟踪设置是否定义了审计跟踪极限的阈值,当存储空间被耗尽时,能否采取必要的保护措施。例如,报警并导出、丢弃未记录的审计信息、暂停审计或覆盖以前的审计记录等。
重点分析:测试工程师在检测软件可核查性的过程中,应重点对软件系统如下几点进行检测:
a. 软件日志内容记录是否详细,是否可溯源;
b. 软件日志覆盖内容是否齐全(大多数系统仅对ERROR错误进行记录);
c. 日志保存周期及备份方法是否合理。
真实性条款:对象或资源的身份标识能够被证实符合其声明的程度。
解析:系统提供专用的登录模块对登录用户进行身份标识和鉴别,验证其身份的真实性,同时需证实符合其声明的程度;用户的身份鉴别信息不易被冒用,同时不存在重复的用户身份标识。系统中用户名唯一且与用户一一对应,采用用户名和口令方式对用户进行身份鉴别,提高用户口令开启复杂度,如口令长度8位以上,至少包含数字、大小写字母、特殊字符中的三种,强制定期更换口令;系统不存在共享账户。提供登录失败处理功能,采取如结束会话、限制非法登录次数和自动退出等措施。这些都是可以在用户文档集中进行要求。
重点分析:测试工程师在检测软件真实性的过程中,应重点对软件系统如下几点进行检测:
a. 软件系统是否具有身份鉴别机制(登录、退出、单点登录等);
b. 软件系统是否具有验证码机制,验证码复杂度是否合理,有无及验证机制等;
c. 软件系统对用户设置密码是否有要求,是否定期要求更换密码;
d. 软件系统针对Session会话中断、自动退出有无约束;
e. 软件系统是否拥有限制登录次数机制,防暴力破解。
依从性条款:产品或系统遵循与信息安全性相关的标准、约定或法律法规以及类似规定的程度。
解析:产品说明是否提及产品信息安全性相关的标准、约定或法规要求,若提及并提供证明材料,则认可;否则,要验证软件与产品说明书提及的文件(需求文档)要求是否相符。
重点分析:测试工程师在检测软件信息安全依从性的过程中,应重点对软件系统如下几点进行检测:
a. 软件系统的需求说明书内有无对信息安全性相关要求(如系统无OWASP TOP 10 漏洞、渗透测试等);
b. 判断软件系统类型,是否为特殊行业软件(金融、测绘、电力等行业)、特殊行业软件开发内容一般会存在其行业的相关要求。
参考条款:
GB/T 25000.51-2016 《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第51部分:就绪可用软件产品(RUSP)的质量要求和测试细则》
GB/T 25000.10-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第10部分:系统与软件质量模型》
《软件产品质量要求和测试细则-GB/T 25000.51-2016标准实施指南》