软件测试的基本理论-安全测试-4
一.安全测试
1.安全测试概述
什么是安全测试
安全测试贯穿整个软件生命周期:
风险分析、静态分析、渗透测试属于安全测试范畴;
安全测试需要转换视角,改变测试中的模拟对象;
1) 测试目标不同
普通测试:以发现bug为目的
安全测试:以发现安全隐患为目的
2)假设条件不同
普通测试:假设导致问题数据是用户不小心造成;接口一般只考虑用户界面,
安全测试:假设导致问题的数据是攻击者处心积虑构造的,需要考虑所有可能的攻击途径;
3)思考域不同
普通测试:系统的功能作为思考域
安全测试:不但包括系统功能,还有系统机制,外部环境,应用和数据自身安全风险和安全属性等
4)问题发现模式不同
普通测试:违反功能定义为判断依据
安全测试:违反权限与能力的约束为判断依据
安全测试基本原则
遵守一些安全基本原则能避免一些常见的问题出现;
1) 培养正确的思维方式
跳出常规的思维定式才能成功执行安全测试;常规测试只需要软件正常运行,而安全测试测试人员需要有创造性思维、逆向思维;
2)尽早测试和常规测试
安全缺陷与常规bug没什么区别,也遵循尽早测试原则;
3)选择正确的测试工具
很多情况下需要模拟黑客对软件进行攻击,以确保软件具有稳固的防御能力;模拟黑客就需要测试人员需要了解一些安全工具,如漏洞扫描工具,模拟数据流行为的前后台相关工具,数据抓包工具等,但这只是一个安全漏洞方式,不能作为测试工具使用;
4)可能情况下使用源代码
测试分为黑盒与白盒;黑盒测试一般使用渗透测试,本身不足是需要大量的测试用例支撑,测试完后仍无法确定软件是否存在风险;白盒源代码扫描成为流行的技术,可以找出潜在风险,提高代码安全性;
5)测试结果文档化
测试总结-测试行动与测试结果、测试记录清晰记录在文档中;产生测试报告最好包括测试漏洞类型、问题引起安全威胁、严重程度、用