编辑本段简介
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。
编辑本段目的
1.提升IT产品的安全质量; 2.尽量在发布前找到安全问题予以修补降低成本 ;
3.度量安全。4.验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰。
编辑本段方法
1.模式匹配方法:将程序看作字符串
2.
状态机模型:将程序看作状态机
3.黑盒模型:将程序看作黑盒子
4.白盒模型:将程序看作路径的组合
编辑本段困境
1.测试理论很难适用于安全领域;
2.安全测试基础理论薄弱,当前测试方法缺少理论指导,也缺乏技术产品工具 。
编辑本段相关区别
安全测试与通常测试区别
1.目标不同:测试以发现BUG为目标,安全测试以发现安全隐患为目标。
2.假设条件不同:测试假设导致问题的数据是用户不小心造成的,接口一般只考虑用户界面。安全测试假设导致问题的数据是攻击者处心积虑构造的,需要考虑所有可能的攻击途径。
3.思考域不同:测试以系统所具有的功能为思考域。安全测试的思考域不但包括系统的功能,还有系统的机制、外部环境、应用与数据自身安全风险与安全属性等。
4.问题发现模式不同:测试以违反功能定义为判断依据。安全测试以违反权限与能力的约束为判断依据。
安全测试与渗透测试区别
1.出发点差异:渗透测试是以成功入侵系统,证明系统存在安全问题为出发点;而安全测试则是以发现系统所有可能的安全隐患为出发点。
2.视角差异:
渗透测试是以攻击者的角度来看待和思考问题,安全测试则是站在防护者角度思考问题,尽量发现所有可能被攻击者利用的安全隐患,并指导其进行修复。
3.覆盖性差异:
渗透测试只选取几个点作为测试的目标,而安全测试是在分析系统架构并找出系统所有可能的攻击界面后进行的具有完备性的测试。
4.成本差异:安全测试需要对系统的功能、系统所采用的技术以及系统的架构等进行分析,所以较
渗透测试需要投入更多的时间和人力。
5.解决方案差异:
渗透测试无法提供有针对性的解决方案;而安全测试会站在开发者的角度分析问题的成因,提供更有效的解决方案。
编辑本段翰海源
2.威胁建模
程序外部宏观分析,指导更好更全面的安全测试
程序攻击界面和威胁分析
程序安全功能安全策略分析
3.数据流污染
程序内部微观分析
数据流流经的路径上
对数据的处理是否存在安全问题
三个层次
1.安全功能(特性)
2.
安全策略(部署,配置,全局设计准则)
3.安全实现
理论
1.安全测试强调完备性,覆盖性,可度量性
2.安全测试强调测试系统本身的安全性,而不是外部防护系统的安全性
3.安全测试对
安全漏洞可利用性的定级依赖于对潜在危害
4.安全测试提供的解决方案不是简单的防护,而是如何修复,进一步指导安全编程,最后辅助实施安全开发过程
方法论
我们在方法论上强调:
1)安全问题的本质是权限或能力约束的突破,从系统角度分析安全问题必须从外部内部
权限对象的角度实施威胁建模,通过完备的分析攻击界面,数据流,威胁,威
胁的细化漏洞形式来指导进行完备的安全测试。
2)系统自身的安全问题涵盖了3个不同的要点:安全功能,
安全策略,安全实现。威胁建模的不同过程可以逐步指导对这三个层面的要求,最后反馈和指导安全测试。
3)但是安全也是一种成本,威胁建模的
需求分析阶段,必须根据系统保护的资产,环境,受影响的范围等角度制订系统自身要达到的安全要求和等级,配合着一起对系统的安全测试的项目进行筛选,在成本和安全之间获得平衡。
4)在此基础上,实施安全测试