一、移动应用APP可能面临以下威胁:
木马--二次打包,
病毒--账号窃取,
篡改--资源篡改,
破解--广告植入,
钓鱼--信息劫持
 二、移动终端APP安全评估的7个方向:
通信安全,敏感信息安全,认证鉴权,能力调用,资源访问,反逆向,键盘输入
 三、对于自动化安全检测工具,完成APP安全检测与评估的思路如下:
“地”:主要面向本地文件的漏洞进行攻击,检查AndroidManifest.xml配置文件中权限选项
“集”:主要面向APP的代码中的漏洞进行攻击,对常见的安全问题进行配置验证,通过模拟攻击方式,验证终端APP存在的问题
“省”:主要面向APP的网络通讯中的漏洞进行攻击,对常见的安全问题采取简单人工验证方式,获取终端APP信息。
 四、安全相关漏洞举例
1、allowbackup漏洞
原理分析:
在androidmanifest.xml文件中allowbackup属性设置为true。当allowbackup为true时,用户可以通过adb backup来进行对应用数据的备份,在无root的情况下也可以导出应用中存储的所有数据,造成数据的严重泄露。
攻击条件:
一是手机要连接电脑;
二是手机要开启adb调试模式;
三是用户在手机上点击确认备份的操作。

其中第三点可以通过adb sendevent命令模拟用户的点击操作,从而在用户不知情的情况下备份出手机数据

整改建议:
将参数android:allowBackup="true"属性设置为false,不能对应用数据备份。
模拟现场:
这里主要通过手机模拟器来模拟的。
1)操作环境及使用工具:夜神模拟器,adb工具,linux操作系统,openssl
2)操作步骤如下:
第一步,
首先通过adb连接上手机模拟器后,对模拟器进行备份。
输入以下命令:adb backup -f f:/backup.ab -apk -all
说明:对手机所有的应用进行备份,并且备份数据到f盘并命令为backup.ab
(恢复命令:adb restore f:/backup.ab)
输入命令会dos窗口会出现以下界面:

第二步,
此时,需要在手机模拟器中输入密码,选择备份;也可以不输入密码,直接备份。

第三步,

通过工具openssl来对备份文件进行解密解压
这里,首先,要在linux中安装好openssll工具
下载地址为:

选择最新的版本的版本进行下载即可,我下的版本是:openssl-1.0.0e.tar.gz
 安装方法如下:
把openssl-1.0.0e.tar.gz上传到linux中的usr/local下进行解压
解压命令如下:tar -zxvf openssl-openssl-1.0.0e.tar.gz
然后进入到openssl-1.0.0e路径下进行配置,分别执行以下命令:
[.....openssl-1.0.0e]# ./config --prefix=/usr/local/openssl
[...../openssl-1.0.0e]# ./config -t
[...../openssl-1.0.0e]# make depend
[...../openssl-1.0.0e]# cd /usr/local
/usr/local]# ln -s openssl ssl
在/etc/ld.so.conf文件的最后面,添加如下内容:
/usr/local/openssl/lib
...]# ldconfig
添加OPESSL的环境变量:
在etc/的profile的最后一行,添加:
export OPENSSL=/usr/local/openssl/bin
export PATH=$OPENSSL:$PATH:$HOME/bin
退出命令界面,再从新登录。
以上OPENSSL就安装完毕,下面进行一些检查。
依次如下执行:
[root@localhost /]# cd /usr/local
[root@localhost local]# ldd /usr/local/openssl/bin/openssl
会出现类似如下信息:
    Linux-vdso.so.1 =>  (0x00007fff3bc73000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fc5385d7000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fc538279000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc5387db000)
查看路径
...]# which openssl
/usr/local/openssl/bin/openssl
查看版本
...]# openssl version
OpenSSL 1.0.0e 6 Sep 2011
 至此,openssl已经安装并配置成功
然后把手机的备份文件拷贝到openssl的bin路径下,执行以下命令:
dd if=backup.ab bs=1 skip=24|openssl zlib -d >mybackup.tar
即把备份文件进行了解密解压,并重新命名为mybackup.tar
解压后的文件夹如下图所示:

至此,已成功解压模拟器中的备份文件。

2、WebView漏洞
3、关键数据明文传输
4、任意账号注册
5、登录界面可被钓鱼劫持
 补充:
对于备份文件backup.ab文档的解释
1、备份后的文件格式为ab,需要用二进制文件查看。
2、可在notepaed++软件中加入HEX插件就能查看。
1)Hex Editor下载地址:
2)Hex Editor的使用方法
解压缩后把HexEditor.dll文件复制到安装目录(如C:\Program Files\Notepad++\plugins),退出NotePad++重新打开即可!需要以十六进制显示时,点击菜单的:【插件】-【Hex-Editor】-【View in Hex】即可。
3、该格式的文件只是头部加了24个字节的字段标识该文件的类型(ANDROID BACKUP 1 1 none,第一个1指目前的格式版本,第二个1指压缩标记,none指未经加密,若经过加密,则显示AES-256.)
 
在标识字段后面是对备份出的文件进行简单加密压缩后的数据,这就使得我们能用简单的命令(跳过该文件头部的24字节然后用openssl中的zlib命令对后面的数据解密)来转换该文件。
 

参考文档:

移动安全测试:
http://blog.nsfocus.net/mobile-app-security-security-test/#APP
手机备份命令:
http://tieba.baidu.com/p/3122444341
openssl命令:
http://blog.csdn.net/tcm455090672/article/details/43307047

 

总结移动安全的测试点及详解allowbackup漏洞的更多相关文章

  1. JavaScript事件详解-Zepto的事件实现(二)【新增fastclick阅读笔记】

    正文 作者打字速度实在不咋地,源码部分就用图片代替了,都是截图,本文讲解的Zepto版本是1.2.0,在该版本中的event模块与1.1.6基本一致.此文的fastclick理解上在看过博客园各个大神 ...

  2. JavaScript事件详解-zepto的事件实现

    zepto的event 可以结合上一篇JavaScript事件详解-原生事件基础(一)综合考虑源码暂且不表,github里还有中文网站都能下到最新版的zepto.整个event模块不长,274行,我们 ...

  3. 20160203.CCPP体系详解(0013天)

    程序片段(01):数组.c+02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h> //0 ...

  4. Postman 使用详解

    转自: http://blog.csdn.net/flowerspring/article/details/52774399 Postman 使用详解 阅读 6754收藏 3022016-6-9 作者 ...

  5. ST算法详解

    ST算法详解 Coded by Jelly_Goat. All rights reserved. 这个主要是说ST表的. 首先了解一下ST表是什么. 先来一个老套的情景带入. (假设所有的题目都是1s ...

  6. Junit使用详解

    http://junit.org/上详细介绍了Junit.JUnit is a simple framework to write repeatable tests. It is an instanc ...

  7. postman使用方法详解

    postman的使用方法详解   Collections:在Postman中,Collection类似文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里 ...

  8. 【学习笔记】薛定谔的喵咪Cat—球盒问题(全详解)

    [学习笔记]薛定谔的喵咪Cat-球盒问题(全详解) [题目描述] 当一个猫在盒子里时,因为放射物的状态我们不知道,所以猫的状态我们也不知道,这就所谓猫的生死纠缠态,也是所谓的薛定谔的猫. 当我们做需要 ...

  9. Linq之旅:Linq入门详解(Linq to Objects)

    示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...

随机推荐

  1. 本地显示svg正常显示,在工程项目中无法正常显示

    提前说明:此文仅记录个人项目问题,不具有众参考意义. 原因: 工程中对引用的资源进行解析设置,即resource设置. 解决方法: 找到静态资源加载路径,添加 if(urlpostfix.equals ...

  2. 【转载】STL之priority_queue

    参考资料:传送门先回顾队列的定义:队列(queue)维护了一组对象,进入队列的对象被放置在尾部,下一个被取出的元素则取自队列的首部.priority_queue特别之处在于,允许用户为队列中存储的元素 ...

  3. struts-hibernate-ajax完成区县和街道级联下拉框功能

    前言:这次dao用的是hibernate,控制层和显示层用的是struts,页面用的是ajax... 啰嗦:我做这个用了很久,用了2周,难点没破解的地方,hibernate的多对一关系生成实体类中属性 ...

  4. theano broadcasting

    当我们使用函数对两个数组进行计算时,函数会对这两个数组的对应元素进行计算,因此它要求这两个数组有相同的大小(shape相同).如果两个数组的shape不同的话,会进行如下的广播(broadcastin ...

  5. mysql 创建存储过程报错

    在创建存储过程前把结束符定义为 delimiter // 然后再创建就不会报错

  6. History lives on in this distinguished Polish city 2017/1/4

    原文 History lives on in this distinguished Polish city Though it may be ancient. KraKow, Poland, is a ...

  7. SVN服务器搭建

    一.SVN下载:https://tortoisesvn.net/downloads.html,下载安装步骤百度一下,基本上都是一路点击next即可安装完成. 服务端安装文件: 二.测试是否安装成功,在 ...

  8. 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

          一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...

  9. cas单点登录搭建

    Cas Server下载:http://developer.jasig.org/cas/ Cas Client下载:http://developer.jasig.org/cas-clients/ 测试 ...

  10. iOS and JAVA 的 RSA 加密解密 (转载整理 )

    参考原文地址:http://www.cnblogs.com/makemelike/articles/3802518.html (至于RSA的基本原理,大家可以看 阮一峰的网络日志 的 RSA算法原理( ...