安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全是软件产品的一个重要特性,安全测试也是软件测试重的一个重要类别,本系列文章我们与大家分享软件安全测试的流程、方法以及软件测试工具等内容,帮助大家快速了解软件安全测试体系。
在(上)部分的文章中,我们为大家介绍了软件安全测试的流程,本文我们继续为大家介绍软件安全测试的测试用例设计环节。安全测试的测试用例可以从一下子几个方面去设计:
身份鉴别
身份鉴别方面主要是验证系统对访问用户身份的认证,可以从如下方面来进行用例设计:
1)身份识别,如用户在登录时是否采用了身份鉴别措施;用户列表确认用户身份标识是否具有唯一性;用户配置信息或测试验证是否不存在空口令用户等。
2)会话管理,如系统是否配置并启用了登录失败处理功能;以错误的用户名或密码登录系统,是否可以登录系统;是否配置并启用了登录连接超时及自动退出功能;是否对单个用户的多重并发会话进行限制等。
访问控制
访问控制方面主要是验证系统对资源访问的控制,可以从如下方面来进行用例设计:
1)访问控制,如是否为用户分配了账户和权限及相关设置情况; 是否已禁用或限制匿名、默认账户的访问权限;核查是否已经重命名默认账户或默认账户已被删除;核查是否已修改默认账户的默认口令; 核查是否不存在多余或过期账户,管理员用户与账户之间是否一一对应;核查多余的、过期的账户是否被删除或停用等。
2)密码管理,是否是管理员分发用户的初始密码,验证管理员分发初始密码是否成功;使用用户初始密码登录系统,查看是否强制用户修改初始登录密码;验证系统是否提供密码有效期的设置,设置是否启用;使用过期密码登录系统,查看过期密码能否登录成功等。
数据安全
数据安全方面主要是验证系统对数据传输和数据存储的安全性,可以从数据保密性和数据完整性方面来进行用例设计。
安全审计
安全审计方面主要是验证系统的功能操作日志,可从如下方面设计用例:检查是否开启了安全审计功能;核查安全审计范围是否覆盖到每个用户; 是否对重要的用户行为和重要安全事件进行审计等。
漏洞扫描
漏洞扫描方面主要是基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行测试。
抗抵赖性
抗抵赖性方面主要是验证系统的数字签名,可以从如下方面来进行用例设计:系统是否采用 MAC 技术进行签名验证;系统是否采用数字签名技术。
接口安全
接口安全方面主要是验证系统接口在身份鉴别、访问控制等方面的安全性, 可参考参考身份鉴别、访问控制、数据安全、安全审计这些方面来进行用例设计。
密码应用
密码应用方面主要是验证系统密码算法的合规性、安全性、正确性等。
个人信息保护
个人信息保护方面主要是验证系统对个人敏感信息的保护。
剩余信息保护
剩余信息保护方面主要是验证系统运行后关键信息是否及时进行了清除。
组件安全
组件安全方面主要是验证系统使用的第三方组件是否安全。
业务安全
业务安全主要针对业务运行的软、硬件平台(操作系统、数据库、中间件等),业务系统自身(软件或设备)和业务所提供的服务进行安全测试,保护业务系统免受安全威胁。
依从性
依从性方面主要是验证系统是否符合相关标准规范的要求,可以按照相关标准规范的要求,设计针对性的测试用例,设计方法同安全性其它子特性的用例设计方法。
以上内容就是我们为大家整理的软件安全测试流程与方法的测试用例设计部分,后面的内容会继续为大家介绍测试执行以及软件测试工具等内容,希望能够给帮助大家快速建立安全测试体系。
(谢绝转载,更多内容可查看我的主页)