一、移动应用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. vi学习总结

    1.模式 命令行模式:光标的移动.内容删除移动复制操作 插入模式:文字输入,即编辑状态 底行模式:文件保存或退出vi,设置编辑环境 2.基本操作 vi myfile,输入vi 文件名,,则进入vi. ...

  2. Flyout中ComboBox失效

    参见这篇文章:https://blogs.msdn.microsoft.com/wsdevsol/2016/09/14/combobox-from-an-appbarbutton-loses-mous ...

  3. Leetcode 259. 3Sum Smaller

    class Solution(object): def threeSumSmaller(self, nums, target): """ :type nums: List ...

  4. javascript判断数字是integer还是float

    function isFloat(n) { return n === +n && n !== (n|0); } function isInteger(n) { // 仅能检查32位的数 ...

  5. linux系统硬件配置查看方法

    一:查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo 如 ...

  6. 2016福州大学软件工程Beta阶段团队作业成绩汇总

    1.评分规则 本次Beta阶段团队作业评分方法如下: 团队得分=[[7次scrum过程评分+(小组互评得分+教师评分)/2]/2],其中过程.小组.教师各30分 说明:由于没有规定提交团队贡献比,因此 ...

  7. linux的用户与用户组

    1.上面这个花花绿绿的图片,来自linxu 下etc/passwd文件. 我们来详细的看下这些都值得是什么东西,这些内容都是用冒号来分割的. 2.etc/shadow 3.对比一下这两个文件的权限,为 ...

  8. OpenStack三种类型的NAT转换

    SNAT SNAT即源网络地址转换,这个NAT路由修改IP包包头中的源IP地址.SNAT功能通常用于让只具有私有IP地址的主机能够访问外网,比如,多个PC使用路由器共享上网,每个PC都配置了内网IP, ...

  9. 详解SQL盲注测试高级技巧

    原文地址: http://www.freebuf.com/articles/web/30841.html

  10. spring事务传播性与隔离级别

    事务的7种传播级别: 1)PROPAGATION_REQUIRED:支持当前事务,没有事务就新建一个. 2)PROPAGATION_SUPPORTS:支持当前事务,如果没有事务,以非事务方式处理 3) ...