前面我们讲过黑白盒测试和性能测试,但是呢,对于一个软件来说,安全测试也是非常重要的。就像封面所示,内容很诱人,一旦用户点击进去,就很容易让其执行非本意的操作,试想下结果……不堪设想。因此,做好软件安全测试,共同营造一个良好的软件环境是至关重要的。
在下面的这篇文章中,将讲解关于软件测试中的安全测试。一起来学习吧~
一、💿安全测试概念
1、安全测试概述
安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。
2、安全测试与软件生命周期的关系
安全测试贯穿于软件的整个生命周期。如下图所示:
3、常规测试与安全测试的不同
(1)测试目标不同
普通测试以发现 Bug
为目标;
安全测试以发现安全隐患为目标。
(2)假设条件不同
普通测试假设导致问题的数据是用户不小心造成的,接口一般只考虑用户界面;
安全测试假设导致问题的数据是攻击者处心积虑构造的,需要考虑所有可能的攻击途径。
(3)思考域不同
普通测试以系统所具有的功能为思考域;
安全测试的思考域不但包括系统的功能,还有系统的机制、外部环境、应用与数据自身安全风险与安全属性等。
(4)问题发现模式不同
普通测试以违反功能定义为判断依据;
安全测试以违反权限与能力的约束为判断依据。
二、🔍安全测试基本原则
1、培养正确的思维方式
安全测试人员要有创造性思维,创造性思维能够帮助我们站在攻击者角度思考各种无法预期的情况,同时能够帮助我们猜测开发人员是如何开发的,如何绕过程序防护逻辑,以某种不安全的行为模式导致程序失效。
2、尽早测试和经常测试
安全性缺陷和普通 Bug
没什么区别,越早发现修复成本越低,要做到这一点,最开始的就是在软件开发前期对开发和测试团队进行常见安全问题的培训,教会他们学会如何检测并修复安全缺陷。
虽然新兴的第三方库、工具以及编程语言能够帮助开发人员设计出更安全的程序,但是新的威胁不断出现,开发人员最好能够意识到新产生的安全漏洞对正在开发的软件的影响,测试人员要转变思维方式,从攻击者角度的各个细节测试应用程序,使软件更加安全。
3、选择正确的测试工具
很多情况下安全测试需要模拟黑客的行为对软件系统发起攻击,以确保软件系统具备稳固的防御能力。模拟黑客行为就要求安全测试人员擅长使用各种工具,如漏洞扫描工具、模拟数据流行为的前后台相关工具、数据包抓取工具等。
现在市面上提供了很多安全扫描器或者应用防火墙工具可以自动完成许多日常安全任务ÿ