一、移动应用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. 【codeforces 442B】 Andrey and Problem

    http://codeforces.com/problemset/problem/442/B (题目链接) 题意 n个人,每个人有p[i]的概率出一道题.问如何选择其中s个人使得这些人正好只出1道题的 ...

  2. Ajax操作如何实现跨域请求 (JSONP和CORS实现Ajax跨域的原理)

    由于浏览器存在同源策略机制,同源策略阻止ajax (XMLHttpRequest) 从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性. 特别的:由于同源策略是浏览器的限制,所以请求的发送和响 ...

  3. Python为8bit深度图像应用color map

    图片中存在着色版的概念,二维矩阵的每个元素的值指定了一种颜色,因此可以显示出彩色. 迁移调色板 下述python代码将VOC数据集中的某个语义分割的图片的调色板直接应用在一个二维矩阵代表的图像上 #l ...

  4. Android 天猫apk聊天数据库解密

    1.使用Android 天猫apk 进行聊天会产生tmallWangXinDB的数据库.2.用sqlite3 工具打开提示加密或者错误.3.需要对该数据库进行解密. 解密流程:1.反编译apk,dex ...

  5. winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除

    在winform的开发过程中往往会有这样的应用场景,执行完成某任务之后,程序需要把本身删除掉.比如卸载.分享一个比较简单实现. 思路就是利用批处理,关闭文件后执行bat,bat执行删除主文件,然后删除 ...

  6. 基于Dubbo框架构建分布式服务(三)

    我们将上面开发的服务提供方服务,部署到2个独立的节点上(192.168.14.1和10.10.4.125),然后可以通过Dubbo管理中心查看对应服务的状况,如图所示: 上图中可以看出,该服务有两个独 ...

  7. 一道javascript数组操作题

    题目如下: var arr = ['100px','abc'-6,[],-98765,34,-2,0,'300',,function(){alert(1);}, null, document, [], ...

  8. SQL Server存储过程创建和修改

    create proc Get_Data( @Del_ID varchar(36))asselect * from Depts where DeptId=@Del_ID select * from D ...

  9. Hibernate--------八大类HQL查询集合

    Hibernate的   八大类HQL查询集合 Hibernate的八大类HQL查询集合: 一:属性查询(SimplePropertyQuery) 1,单一属性查询 *返回结果集属性列表,元素类型和实 ...

  10. UP Board 妄图启动ubilinux失败

    前言 原创文章,转载引用务必注明链接. 经历了上次的上电开机失败,我们终于发现需要手动为UP板安装系统,因为没有显示器的Headless模式时,使用Linux比较方便,另外熟悉Debian系的,所以选 ...