学习牛人经验,结合本身的测试,作简单总结:android
简介:
安卓APP安全测试目前主要覆盖如下方面:
1)自身组件安全
2)本地敏感数据保护
3)web接口安全
1、自身组件安全
目前手动、开源或免费工具均能检测此类漏洞。
开源工具推荐:drozer
免费工具推荐:360捉虫猎手、爱加密、阿里聚安全web
固然扫描结果和漏洞扫描结果同样,存在误报,须要测试者本身排除。
以图中360捉虫猎手为例,“Service组件暴露”误报:sql
但实际上在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的包名-->
2、本地敏感数据保护
敏感数据集中在登陆认证信息和重要的业务数据
若是本地不存储敏感数据,而是依赖web从服务端获取,则此部分测试能够跳过。
若是本地存储敏感数据,则测试过程主要分为:寻找存储位置和解密数据安全
测试流程:
一方面
一、在模拟器或者开发机上安装相关app
二、经过root explorer 等工具分析安装目录(/data/data/包名)和数据存储目录(/Android/data/包名),寻找可能的敏感数据文件
三、使用sqlitebrowser等工具尝试打开敏感数据文件
另外一方面
一、反编译app,分析源代码
二、分析数据存储过程,获取数据存储路径和可能的密码信息
三、使用sqlitebrowser等工具尝试打开敏感数据文件
另外,还能够注意寻找可能存在的日志文件,其中可能也有潜在的敏感数据。尤为是在上一个流程中被发现:logcat可能泄露程序隐私信息和敏感信息 的状况。
3、web接口安全
此部分与web应用安全测试一致。复杂程度高度依赖app的业务功能。
常见的安全漏洞和web应用安全漏洞一致。
另外,须要重点关注逻辑漏洞:登陆安全策略与主站不一致、权限提高(越权访问或操做)等。app
测试流程:工具
一、在模拟器或者开发机上安装相关app
二、经过burpsuite等代理工具获取web访问路径
三、对web访问路径进行漏洞扫描
四、对web访问路径进行手动测试
学习