软件安全测试与普通的软件测试是有区别的,我们不能简单地把软件安全测试看作软件测试中针对软件安全性需求的测试。实际上,普通的软件测试考虑的是用户的基本行为(软件功能的实现),而软件安全测试考虑的是有意或者无意的、使得软件产生不安全行为的具有攻击性的操作。具体而言,软件安全测试与普通的软件测试有以下区别:
测试的出发点不同
普通的软件测试主要是从最终用户的角度出发发现软件缺陷,确保软件实现的功能满足最终用户的要求。而软件安全测试是从攻击者的角度出发发现软件的安全漏洞,保证软件不被恶意使用或者破坏。软件安全测试和普通测试最重要的区别就是负责设计软件安全测试的工程师需要模拟一个聪明的攻击者,他们常常会做出普通用户不会去做的事情,比如输入1000个字符的用户名,或重复地试图破坏一个临时文件。软件安全测试人员需要像恶意攻击者那样寻找系统的可被攻击的漏洞。
测试用例的设计依据不同
普通软件测试的测试用例是根据软件的功能需求和其他需求文档设计的,而安全测试的测试用例则是通过对软件安全需求分析,攻击模式的模拟,以及已公布的安全漏洞等从攻击者的角度进行设计的。测试设计依据的不同,也使得软件安全测试中异常测试用例比重更大——普通软件测试一般选取正向数据,有较多的正常测试用例,一小部分使用反向数据的异常测试用例(大多是用户不小心输入的一些数据);软件安全测试则更多的是使用反向数据,模拟攻击者精心设计的具有攻击性的数据,更大比例的异常测试用例。
测试的关注点不同
普通软件测试主要关注软件应该做什么,而软件安全测试更关注的是软件不应该做什么。软件安全测试只有少量的正向的测试,比如“用户账户三次登录不成功后将被锁定”和“网络通信必须加密”;但更多的时候都是反向的测试,比如“攻击者应该不能修改网页的内容”和“未授权用户不能访问数据”等。测试关注点从正向需求到反向需求的转移使得普通软件测试和软件安全测试需要使用不同的测试方法。以测试正向需求为主的普通软件测试需要先创造满足需求的条件,然后检查软件执行是否正确;而以测试反向需求为主的软件安全测试则是创造不满足需求的条件,破坏软件的正常运行。
总之,软件安全测试与普通测试有很大的不同,它需要测试人员站在攻击或破坏软件的角度,寻找软件的安全漏洞,创造不满足软件正常需求运行的条件,对软件进行攻击,破坏其正常运行。
这正是:
安全测试角度刁,恶意破坏漏洞找
千方百计求破坏,不做预防真不该
途傲科技为中小企业提供网站制作、网站建设、微信H5、微信小程序,多商户平台,多级分销系统,APP开发,手机网站,HTML5多端自适应网站,营销型企业站建设,及对技术人才的培养等都积累与沉淀了丰富的心得和实战经验。
如果您有想法,可以将需求提交给我们【免费提交需求,获取解决方案】
免责声明:文章部分内容收集于互联网,不代表本站的观点和立场,如有侵权请联系删除。