软件测试基础理论:什么是安全测试?
2021-01-18 本文已影响0人
庄周幻梦
百度百科
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。
目的
- 提升IT产品的安全质量;
- 尽量在发布前找到安全问题予以修补降低成本 ;
- 度量安全。
- 验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰。
方法
- 模式匹配方法:将程序看作字符串
- 状态机模型:将程序看作状态机
- 黑盒模型:将程序看作黑盒子
- 白盒模型:将程序看作路径的组合
困境
- 测试理论很难适用于安全领域;
- 安全测试基础理论薄弱,当前测试方法缺少理论指导,也缺乏技术产品工具 。
与通常测试区别
- 目标不同:测试以发现BUG为目标,安全测试以发现安全隐患为目标。
- 假设条件不同:测试假设导致问题的数据是用户不小心造成的,接口一般只考虑用户界面。安全测试假设导致问题的数据是攻击者处心积虑构造的,需要考虑所有可能的攻击途径。
- 思考域不同:测试以系统所具有的功能为思考域。安全测试的思考域不但包括系统的功能,还有系统的机制、外部环境、应用与数据自身安全风险与安全属性等。
- 问题发现模式不同:测试以违反功能定义为判断依据。安全测试以违反权限与能力的约束为判断依据。
与渗透测试区别
1.出 发点差异:渗透测试是以成功入侵系统,证明系统存在安全问题为出发点;而安全测试则是以发现系统所有可能的安全隐患为出发点。
- 视角差异:渗透测试是以攻击者的角度来看待和思考问题,安全测试则是站在防护者角度思考问题,尽量发现所有可能被攻击者利用的安全隐患,并指导其进行修复。
- 覆盖性差异:渗透测试只选取几个点作为测试的目标,而安全测试是在分析系统架构并找出系统所有可能的攻击界面后进行的具有完备性的测试。
- 成本差异:安全测试需要对系统的功能、系统所采用的技术以及系统的架构等进行分析,所以较渗透测试需要投入更多的时间和人力。
- 解决方案差异:渗透测试无法提供有针对性的解决方案;而安全测试会站在开发者的角度分析问题的成因,提供更有效的解决方案。