一、移动应用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. SSH项目里面 忘记密码的邮件发送功能

    package com.xxx.util; import java.util.Date; import java.util.Properties; import javax.mail.Address; ...

  2. Activity详解生命周期(Android)

    Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之 ...

  3. linux下查看最消耗CPU、内存的进程

    2012-11-19 15:38:04 分类: LINUX 1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗 ...

  4. Java多线程与并发库高级应用-面试题

    第一题:现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日 ...

  5. Javascript获取div真实高度

    第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第 ...

  6. weiphp踩坑记录

    记录使用weiphp过程中遇到的问题及解决办法: 1.按照网上的教程创建插件怎么没有效果?replyText没有回复信息? 后台清除缓存即可!

  7. bzoj 4326: NOIP2015 运输计划

    4326: NOIP2015 运输计划 Time Limit: 30 Sec Memory Limit: 128 MB Description 公元 2044 年,人类进入了宇宙纪元.L 国有 n 个 ...

  8. .Net 高效开发之不可错过的实用工具

    Visual Studio Visual Studio Productivity Power tool: VS 专业版的效率工具. Web Essentials: 提高开发效率,能够有效的帮助开发人员 ...

  9. webpack使用的心得

    1 . 我们需要使用打包工具,首先第一步就得 执行 npm install进行安装,可是很多时候 加载速度很慢,这个时候我们可以 用淘宝镜像源,参考地址: p.p1 { margin: 0.0px 0 ...

  10. js function集合

    /*跳转并是刷新界面*/ function page_back(){ history.go(-); location.reload(); } function show_div(obj){ if(ob ...