功能测试中的安全测试思维

2024-07-15  本文已影响0人  circle_hyy

大家在测试功能的时候,很少和安全联系起来,觉得安全测试是由专业的安全团队、运维等部门负责的,其实并没有我们想象中这么高深,能熟练理解接口和掌握接口测试,就可以在功能测试中融合安全测试,但是首先要培养安全测试思维。

一、为什么说安全测试很重要

互联网的发展给我们的生活提供了便捷,但是我们知道网络是一把双刃剑,在方便我们的同时也带来了一些风险,比如数据泄露、对电力和通信等系统的攻击、网站篡改、勒索攻击、木马病毒等安全问题频发,国家对网络安全也是特别重视,特别是金融行业来说。几个月前国家金融监督管理总局湖北监管局公布了一张罚单,湖北银行股份有限公司被罚款290万元,多项违规行为中包含了数据安全管理方面的不足。还有年初国家金融监管总局对中国银行和中信银行的行政处罚,违法违规事实中也包括了安全问题。除了会被罚款,安全问题对业务也会造成影响,假设用户利用漏洞1分钱下单购买了价格昂贵的商品,或者绕过某些校验或限制,不仅直接造成资金损失,还会影响声誉,降低信任度,导致更大的业务损失。所以作为开发和测试人员要重视信息安全,而不是把他当成只是安全或运维部门要关注的事情。安全问题的重要性包括但不限于:

我们作为银行的信息系统,涉及众多敏感信息,比如证件信息、账户信息、交易记录、资产信息、信贷记录、联系方式、社会关系、经营信息和工作信息等,更应该提高安全开发水平和能力,保护数据安全。但是当前安全形势也比较严峻,比如:

二、功能测试和安全测试的关系

我们知道了安全测试很重要,但是功能测试和安全测试有什么关系呢。

首先我们看看它们之间的区别。功能测试关注于验证业务逻辑以及系统能否按预期执行功能,安全测试主要关注于识别系统中的安全漏洞和弱点,防止潜在的恶意攻击和数据泄露。在进行功能测试的时候,发现的缺陷就是真的缺陷,不符合需求说明、业务场景、使用习惯等,而安全漏洞并不是指已经对系统造成了实际损害,而是有可能威胁到系统,需要修复从而避免对系统造成损害的隐患,所以才称之为安全漏洞。虽然有洞但是不一定已经漏水,但要及时补上防止日后漏水。功能思维是用户和产品思维,是合法用户对系统执行的正常和异常操作,而安全思维是黑客思维,是非法用户发起的恶意行为。

从前面看来功能测试和安全测试好像没有什么关系,但是我们回忆一下最简单的登录框:当我们输入系统不存在的用户名进行登录,系统提示用户名错误,或者短信验证方式,输入系统不存在的手机号时,系统提示手机号不存在,大家觉得这有问题吗。从功能角度来说,这好像没什么问题,提示也很准确,但是从安全的角度,这就是敏感信息泄露,暴露了哪些是系统用户,哪些不是,可以暴力破解。所以功能测试和安全测试是有联系的。安全测试也可以通过手工测试的方式,针对系统的各功能和组件,进行一些黑盒或者灰盒测试。在实现功能的时候往往容易留下安全隐患,这就是功能安全,比如对文件上传和下载的处理、表单处理等等。

所以我们要站在防护者的角度,结合系统功能和业务流程,尽量发现可能被攻击者利用的安全隐患,在功能测试中融入安全测试思维,可以

安全漏洞和普通的漏洞一样,越到后期修复成本越高。因此在功能稳定的情况下,尽早开展安全测试,才能得到更好的投入产出比。

三、功能安全测试点

下面我们具体看下在功能测试中怎么融入安全测试。

1 登录/会话管理

2 加密与数据保护

3 权限管理

4 业务逻辑

5 文件上传

6 文件下载

7 SQL注入

针对url、搜索框、文本框、登录注册等表单处测试

admin' or '1'='1

8、XSS测试

针对搜索框、留言板或评论框、url、cookie、http请求头、富文本编辑器、文件上传、第三方库和插件处测试


image.png

9、安全审计

四、最佳实践

在实际应用中,最佳实践是在流水线中集成安全测试工具进行自动化扫描,然后在功能测试阶段注意功能安全,在功能测试完成后再由专业的安全测试团队进行渗透测试。

总结:早期发现潜在的安全漏洞,可以节省修复时间和成本,避免造成损失;同时通过形成安全测试文化,有助于提升团队安全开发能力。但是最重要的是不管开发和测试都要培养安全意识,在工作中融入安全思维指导开发和测试工作。

我们畅想一下,AI在安全测试中有什么应用,比如自动化渗透测试、用户异常行为自动化分析、流量数据自动化分析、自动化响应和处置、恶意代码智能分析检测等,也是可以深入去学习和探索的。

上一篇 下一篇

猜你喜欢

热点阅读