为什么进行安全测试呢?
1)进行安全测试,原因之一是为了提升IT产品的安全质量;
2)同时,也是为了尽量在发布前找到安全问题予以修补降低成本;
3)验证安装在系统内的保护机制能否在实际应用中对系统进行保护,使之不被非法入侵,不受各种因素的干扰。
安全测试的目标
安全测试的目标就是要通过对系统进行精心、全面的脆弱性安全测试,发现系统未知的安全隐患并提出相关建议,确保系统的安全性。主要分为应用程序级别和系统级别的安全测试两类
安全测试与功能测试的区别
安全测试与功能测试,同属于测试工作的范畴,那二者必然有相同和不同之处,从大量相关测试经验中可以总结出安全测试与功能测试的相同点和不同之处:
Same
Summary | Detail |
目标类似 | 都是尽早反馈系统的缺陷 |
过程类似 | 了解需求→设计并编写用例→用例评审→测试用例执行→产出测试报告 |
提前预测 | 会对不同的业务场景有目的的进行探索,对研发代码时刻保持警惕 |
Different
Summary | 功能测试 | 安全测试 |
目标不同 | 发现设计、编码等产生的BUG | 发现安全隐患 |
问题发现模式不同 | 违反功能定义为判断依据 | 违反权限与能力的约束为判断依据 |
预测内容不同 | 以系统所具有的功能为思考域 | 要预测安全隐患 |
安全测试点
序号 | 功能安全测试验证点 | 详细说明 |
1 | 业务逻辑漏洞 | 1、金额数据、商品数量篡改 2、最大数限制修改 3、修改金额,如无后端校验情况下,0.01元买到了价值100元的商品 |
2 | 登录与身份验证 | 1、用户名与密码不一致时进行校验,无法登陆 2、验证码未限制一次性使用 3、验证码可无限次获取--造成短信轰炸 4、密码有提示--生日+身份证后几位等 5、修改密码时校验原密码--新密码与原密码不可一致 6、流水号有规律--其余用户可根据此规律遍历获取数据 7、重复注册与登录--同一个用户名注册多次和重复登陆 8、缺少账号密码锁定机制(无限次重试) 9、密码强度--大小写and特殊字符and长度 |
3 | 越权测试 | 1、手动更改url的参数访问无权访问的页面(http) 2、拿到更高权限人员的账号和密码,通过接口调用等方式进行操作 3、人员权限和数据权限思虑周全(总部和省区权限不同等) |
4 | 文件上传与下载 | 1、文件上传次数不做校验,使得恶意上传,沾满资源池 2、文件的类型和大小不做控制 3、任意文件均可下载,导致有木马病毒等(对于有安全隐患的不应该允许下载) 4、可以通过../../等方式跳转到其他目录获取相关重要文件 5、不登录系统,直接输入文件url可直接下载 |
5 | 敏感信息 | 1、数据库/日志/提示等泄露 2、人员的邮箱电话等信息(如数据库加密,页面脱敏) 3、使用https密文传输,非http明文传输 |
6 | Sql注入 | 1、get型注入 2、post型注入 3、cookie型注入 4、登录认证型注入 |
7 | 重要数据 | 重要文件附加水印 |
举例说明如何进行功能安全测试
在测试过程中,要转换看问题的视角,在测试过程中,要将自己定位为恶意破坏规则的用户,以破坏的视角看待问题。同时,无论是在理解prd还是编写测试用例的时候,要以专业的态度识别出其中有价值的数据。
报价提报流程线上化
需求背景:省区报价人员对不同的网格站配置不同的报价,以实现对加盟网点产生的费用进行收取和支付款的功能。目前区域提报网格站的报价流程是区域线下邮件申请,总部进行线下邮件审核,为了提高区域提报报价的审批效率,急需报价线上化审批功能。该需求中涉及到的主要功能有:
1、省区报价岗位可以提报报价、编辑及变更自己提报的报价;
2、有报价审批权限的人员(含省区和总部的部分人员)可以审核、查看报价,审核过程中可对报价部分内容进行修改;
3、邮件通知报价提报人员、省区相关负责人进行报价确认;
预付款提现需求
加盟网点与京东物流签约后,会生成自己的账户,加盟网点可以对其账户进行充值操作或将其账户的余额提现至银行卡。因此加盟网点的提现过程是否卡控严谨将直接关系到公司的资金利益,在梳理完提现流程prd后,可以将其中的功能安全点概括如下:
1、加盟网点存在未开发票不允许提现;
2、提现时对提现周期有限制;
3、账户余额会限制提现;
4、加盟网点状态影响提现;
5、一旦提现申请发起,应该立马扣减余额;
6、提现申请发起后,需要一系列审批才可真正提现;
7、校验提现信息的真实性、正确性。
电子合同需求
网格站与京东物流签约需要生成电子合同,其中涉及的部分功能有:省区相关人员可以新增电子合同,在新增电子合同时,需要展示合伙人的手机号和账号,还要填写履约保证金等金额,且上传对应图片(要求格式是图片格式)等文件。网格站在签署电子合同时,需要预览合同内容以及合伙人手机号,同时签署合同时还要获取验证码校验,除此,网格站人员还可以下载合同进行查看。
通过对这部分的功能梳理,可以概括以下几个测试点:
1、合伙人手机号和账号属于敏感信息;
2、过程中需要上传文件,其中履约保证金必须是图片格式;
3、签署合同需要获取验证码,验证码次数和生效时间等需要格外考虑;
4、履约保证金、合同属于重要数据和文件
总结
随着信息社会的不断进步,信息安全的重要性日渐突出,安全测试与功能测试一样,在软件测试过程中,是一个非常重要的测试环节。在软件开发过程中进行安全测试,能够避免数据泄露等安全问题,从而保障公司及其软件的利益。然而安全测试的道路并不好走,需要更加系统和专业的技术来支撑,接下来的工作中,会将安全测试融入到测试环节中,并有序的开展安全测试工作。