【软件测试】如何进行APP安全性测试!

1213 篇文章 11 订阅
497 篇文章 7 订阅

通常我们队APP所进行的安全性测试包含以下几个模块:安装包安全性、数据安全性、软键盘劫持、账户安全性、通信安全性、备份检查等。下面针对每个模块我们详细说明具体的测试方法。

安装包安全性

1、反编译

目的是为了保护公司的知识产权和安全方面的考虑等,一些程序开发人员会在源码中硬编码一些敏感信息,如密码。而且若程序内部一些设计欠佳的逻辑,也可能隐含漏洞,一旦源码泄漏,安全隐患巨大。

为了避免这些问题,除了代码审核外,通常开发的做法是对代码进行混淆,混淆后源代码通过反软件生成的源代码是很难读懂的。

测试中,我们可以直接使用反编译工具(Android端使用dex2jar和jd-gui工具,iOS端使用Hopper Disassembler、otool、ida pro等)查看源代码,判断是否进行了代码混淆,包括显而易见的敏感信息。

2、签名

这点IOS可以不用考虑,因为APP stroe都会校验。但Android没有此类权威检查,我们要在发布前校验一下签名使用的key是否正确,以防被恶意第三方应用覆盖安装等。可使用下列命令检查:

jarsigner -verify -verbose -certs apk包路径

若结果为“jar 已验证”,说明签名校验成功。

3、完整性校验

为确保安装包不会在测试完成到最终交付过程中因为某些原因发生文件损坏,需要对安装包进行完整性校验,通常做法是检查文件的md5值。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

数据安全性

1、数据库

数据库是否存储敏感信息,某些应用会把cookie类数据保存在数据库中,一旦此数据被他人获取,可能造成用户账户被盗用等严重问题,测试中在跑完一个包含数据库操作的测试用例后,我们可以直接查看数据库里的数据,观察是否有敏感信息存储在内。一般来说这些敏感信息需要用户进行注销操作后删除。如果是cookie类数据,建议设置合理的过期时间。

2、日志

日志是否存在敏感信息,一般开发在写程序的过程中会加入日志帮助高度,所有可能会写入一些敏感信息,通常APP的发布版不会使用日志,但也不排除特殊情况。

3、配置文件

配置文件是否存在敏感信息,与日志类似,我们需要检查配置文件中是否包含敏感信息。

软键盘劫持

如果用户安装了第三方键盘,可能存在劫持情况,对此,我们在一些特别敏感的输入地方可以做检查,例如金融类APP登录界面的用户名密码输入框等,看是否支持第三方输入法,一般建议使用应用内的软键盘。

账户安全性

1、秘钥存储

密码是否明文存储在后台数据库。

2、秘钥传输

密码传输是否加密,测试中我们需要查看密码是否被明文传输,如果是HTTPS接口,我们可以使用Fiddler等工具直接查看。

3、防暴力破解

账户锁定策略。对于用户输入错误密码次数过多的情况,是否会将账户临时锁定,避免被暴力破解。

4、多端登录

同时会话情况。一些应用对同时会话会有通知功能,这样至少可以让用户知识他的账户可能已经被泄漏了。在一定程度上能免提升用户体验。

5、注销机制

在客户端注销后,我们需要验证任何的来自该用户的,需要身份验证的接口调用都不能成功。

通信安全性

1、安全连接

关键连接是否使用安全通信,例如HTTPS。在获知接口设计后我们需要评估是否其中内容包含敏感信息,如果未使用安全通信,需要知会开发修改。

2、数字证书

是否对数字证书合法性进行验证。即便使用了安全通信,例如HTTPS,我们也需要在客户端代码中对服务端证书进行合法性校验。测试中可以使用Fiddler工具模拟中间人攻击方法。如果客户端对于Fiddler证书没有校验而能正常调用,则存在安全隐患。

备份检查

只需在Android端检查,使用adb backup命令检查应用是否允许备份数据。

以上是小编总结的APP安全性测试的相关关注点,欢迎感兴趣的朋友们交流

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值