安卓APP安全测试基础

学习牛人经验,结合自己的测试,做简单总结:

简介:
安卓APP安全测试目前主要覆盖以下方面:
1)自身组件安全
2)本地敏感数据保护
3)web接口安全

一、自身组件安全
目前手动、开源或免费工具均能检测此类漏洞。
开源工具推荐:drozer
免费工具推荐:360捉虫猎手、爱加密、阿里聚安全


当然扫描结果和漏洞扫描结果一样,存在误报,需要测试者自己排除。
以图中360捉虫猎手为例,“Service组件暴露”误报:


但实际上在AndroidManifest.xml中,已经声明了相关的权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.VIBRATE"/>
<permission android:name="com.xiaomi.mipushdemo.permission.MIPUSH_RECEIVE" android:protectionLevel="signature" />
<!--这里com.xiaomi.mipushdemo改成app的包名-->   
<uses-permission android:name="com.xiaomi.mipushdemo.permission.MIPUSH_RECEIVE" />
<!--这里com.xiaomi.mipushdemo改成app的包名-->

二、本地敏感数据保护
敏感数据集中在登录认证信息和重要的业务数据
如果本地不存储敏感数据,而是依赖web从服务端获取,则此部分测试可以跳过。
如果本地存储敏感数据,则测试过程主要分为:寻找存储位置和解密数据

测试流程:

一方面
1、在模拟器或者开发机上安装相关app
2、通过root explorer 等工具分析安装目录(/data/data/包名)和数据存储目录(/Android/data/包名),寻找可能的敏感数据文件
3、使用sqlitebrowser等工具尝试打开敏感数据文件

另一方面
1、反编译app,分析源代码
2、分析数据存储过程,获取数据存储路径和可能的密码信息
3、使用sqlitebrowser等工具尝试打开敏感数据文件

另外,还可以注意寻找可能存在的日志文件,其中可能也有潜在的敏感数据。尤其是在上一个流程中被发现:logcat可能泄露程序隐私信息和敏感信息 的情况。

三、web接口安全
此部分与web应用安全测试一致。复杂程度高度依赖app的业务功能。
常见的安全漏洞和web应用安全漏洞一致。
另外,需要重点关注逻辑漏洞:登录安全策略与主站不一致、权限提升(越权访问或操作)等。

测试流程:

1、在模拟器或者开发机上安装相关app
2、通过burpsuite等代理工具获取web访问路径
3、对web访问路径进行漏洞扫描
4、对web访问路径进行手动测试

时间: 2024-08-25 11:09:25

安卓APP安全测试基础的相关文章

使用appium框架测试安卓app时,获取toast弹框文字时,前一步千万不要加time.sleep等等待时间。

使用appium框架测试安卓app时,如果需要获取toast弹框的文案内容,那么再点击弹框按钮之前,一定记得千万不要加time.sleep()等待时间,否则有延迟,一直获取不到: 获取弹框的代码: message=self.driver.find_element_by_xpath("//*[contains(@text,'成功添加到购物车')]")   原文地址:https://www.cnblogs.com/zhouchuanlun/p/12687890.html

app测试基础知识之命令

app测试点:功能测试,安全测试,用户体验测试,交叉事件测试,兼容性测试,性能测试,安装/升级/卸载 ,UI测试 命令操作: adb connect 名 adb devices adb  install (.apk) adb  uninstall  包名 查看包名,获取操作的实时日志: adb logcat -v time |find str START 上传和下载 adb push 本地路径 目标路径 adb pull   目标路径  本地路径 monkey对APP进行测试并生成相关日志: 先

移动app传统测试流程优化

概述 在传统的软件测试流程中,每一期需求从开发到上线都要经历从需求分析与评审.测试用例评审.开发.测试.发布的流程.其中测试包含了后台测试.前端web测试.客户端测试.后台测试又包括后台代码逻辑测试.接口测试.接口压力测试等,web端测试包含了前端页面的UI界面测试.PC与移动端浏览器兼容性测试和功能测试等,而客户端测试包含的测试项目较多,而每项测试又相对技术含量较高,从而引入了专项测试的概念.和针对客户端每期需求所做的功能测试不同,专项测试的结果虽然与产品的具体功能相关,又包含独立于产品需求功

安卓app设计规范整理和Android APP设计篇(转)

随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持“内容才是本质”的设计哲学,重新提炼内容,简化图标设计. 所以,我们在进行安卓APP设计时,需要好好调整之前的设计规范和设计细节.根据目前流行的安卓手机的系统体验来完成我们的安卓APP设计规范.应该说这是整理出最全面的安卓app设计规范. 25学堂站在不断更新和完善安卓app设计规范为宗旨!利用周末

【转载】安卓APP架构

注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历2次架构变革,第一次集成了RxJava第二次集成了MVP,并将RxJava与MVP完美结合,实现了低耦合,代码简单,测试方便的架构. 其实我们在开发中也遇到过,Android入门门槛较低,如果前期对APP规划不清晰,Coder们对未来变化把握不准,技术架构经验不够强大,最终导致就是一个Activit

移动App专项测试

移动App测试实战—专项测试 转自:http://www.51testing.com/html/58/n-3713758.html 我们在进行了手工的功能测试之后,也开发了一些自动化测试用例,并且做了性能测试之后,测试工作看似比较完整了.但是当我们的App在大量的用户那里被安装和使用的时候,还是会有很多我们之前没有预料的问题被反馈回来,比如: · Crash的问题 · 设备兼容性的问题 · 流量使用过多的问题 · App导致用户手机电量消耗过快的问题 · 在不同的网络情况下不稳定,比如卡死和白屏

提供就医帮助的安卓APP

首先 这是我们团队第一次开发安卓APP,也是我 个人第一个开发项目APP,俗话说:“万事开头难”.所以对于新手的我们来说,做好开发前的准备至关重要.凡事预则立不预则废! 首先我们团队这次开发的提供就医帮助的安卓APP,是基于安卓平台的APP,其主要 功能提供预约挂号,名医名院推荐,就医导航,我的服务,个人中心等模块.我和谭枝敬同学负责APP功能的实现. 开发AndroidAPP的首个步骤是获得Android SDK.SDK包含核心库.模拟器.工具和代码范例.我们使用的是Eclipse和Andro

安卓笔记2——安卓下的测试和数据存储方式

今天开始介绍安卓的另一个基础知识,安卓下的测试和数据存储的几种方式. 以后后同步发出对应笔记.老规矩,用一张图来介绍今天的内容. 图片看不清的话可以右键新窗口打开. 一.测试 1,分类 黑盒测试: 是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的. 白盒测试: 又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试. 单元测试: 又称模块测试,是开发者编写的一小段代码,用于检验被测代码的一个很小的.很明确的功能是否正确. 功能测试: 根据产品特性.操作描述和用户方案,测试一个产品的特

产品经理怎么做app的测试?

之前有同学希望我写写产品经理怎么做测试.测试,其实就是产品上线之前我们按照一定规则对产品进行检查的工作,确保我们的产品在上线之后没有重大和明显的BUG,并保证用户可以流畅正常地使用我们的产品.我从自己的工作经历出发,谈谈自己对测试的理解,有不对的地方欢迎大家指正.本文只写了一般功能测试的流程和情况,性能测试等模块因为专业性不够,还是留待专业的同学来写吧. 一.测试谁来做? 在大部分公司里这一块会由专门的测试同学负责,然而在很多创业团队里却并没有专门的测试岗位,测试的工作就需要由产品经理或是产品新