1 / 28

移动应用安全

移动应用安全. Android 系统安全概述. Android 系统安全 3 个层面 Linux 层面安全、软件安装签名机制、程序运行时的安全 1 、 Linux 层面安全 每一个应用程序对应一个 Linux 用户 每个用户对应一个文件夹 文件在默认情况下仅允许据有者访问 鲁棒性. Android 系统安全概述. Android 系统安全 3 个层面 2 、软件安装签名机制 安装程序必须有一个签名 签名由程序发行方完成 用户确认程序发行方的真实身份后安装程序 签名使用“公钥、私钥对”技术. Android 系统安全概述.

chakra
Download Presentation

移动应用安全

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 移动应用安全

  2. Android系统安全概述 • Android系统安全3个层面 • Linux层面安全、软件安装签名机制、程序运行时的安全 • 1、Linux层面安全 • 每一个应用程序对应一个Linux用户 • 每个用户对应一个文件夹 • 文件在默认情况下仅允许据有者访问 • 鲁棒性

  3. Android系统安全概述 • Android系统安全3个层面 • 2、软件安装签名机制 • 安装程序必须有一个签名 • 签名由程序发行方完成 • 用户确认程序发行方的真实身份后安装程序 • 签名使用“公钥、私钥对”技术

  4. Android系统安全概述 • Android系统安全3个层面 • 3、程序运行时的安全 • Android系统的权限许可权机制,拥有许可权才能调用相关的功能 • Android允许程序在执行时调用其他程序组件(Activity、Service、Content Provider等)的安全 • Anddorid系统内部外部存储的安全

  5. 第一层面安全-超级用户权限 • 超级用户权限 • Android基于Linux • 管理员root具有最高权限 • Android默认关闭root权限 • 手机root • 手机在使用过程中能够获取root权限

  6. 第一层面安全-超级用户权限 • 获取root权限的好处 • 获系统文件管理权限(如Root Explore),卸载捆绑系统软件 • 特殊软件使用需要(如杀毒软件) • 系统优化加速需要(手机发烧友)

  7. 第一层面安全-超级用户权限 • 获取root权限的危险 • 系统不稳定(删除系统软件造成,root后失去保修) • 病毒侵入 • 手机root后,所有软件都可能获得root权限,病毒可以做任何事 • 权限管理软件作用有限 • 隐私数据暴露 • root后,隐私数据全部暴露(文件访问权限)

  8. 第一层面安全-超级用户权限 • 超级用户权限获取原理 • 利用android系统本地提取漏洞提升权限 • 超级用户权限获取分类 • 临时获取:不对系统进行修改 • 永久获取:修改系统,手机随时可以获得root权限 • 目前本地提取漏洞共出现过8个

  9. 第一层面安全-超级用户权限 • 实验5.1 • Android系统漏洞检测 • 实验软件:X-ray for Android • 步骤: • 启动安卓虚拟机 • 安装X-ray for android • 启动X-ray for android,检测虚拟机漏洞

  10. 第一层面安全-超级用户权限 • 实验要点-在安卓虚拟机上安装软件 • 启动虚拟机 • adb devices 查看系统中的虚拟机和连接终端设备 • 把要安装的apk文件复制到android SDK\platform-tools中 • 开始->运行->cmd • 用cd命令进入 android SDK\platform-tools • adb install XRAY_1.0.apk

  11. 第一层面安全-超级用户权限 • 超级用户权限获取实例z4root • 原理: • 默认程序以非root用户运行,包括adbd • adbd由init创建,然后调用setid()设置运行用户为shell用户 • 如果能够让adbd重新以root身份运行,则计算机传过来的命令也能够以root身份运行

  12. 第一层面安全-超级用户权限 • 超级用户权限获取实例z4root • 具体实现 • Linux中最大允许运行的进程数有限 • Android adb setuid漏洞利用该限制 • 制造大量僵尸进程,达到系统上限 • Kill系统中的adb进程,并占据其位置再次达到系统上限 • 系统重启adb进程(最初用户为root)

  13. 第一层面安全-超级用户权限 • 超级用户权限获取实例z4root • 具体实现 • adb完成初始化工作后,调用setid()切换shell用户,由于shell用户进程数达到上限,setid()失败,切换为未完成,adb具备root权限 • 计算机执行adb shell命令,进入root shell • 漏洞产生的原因 • adb没有检查setid()的返回值,产生了一个具备root权限的adb进程

  14. 第一层面安全-超级用户权限 • 超级用户权限获取实例z4root • /*then switch user and group to “shell”*/ • setgid(AID_SHELL) • setuid(AID_SHELL) • 漏洞的修改 • if (setgid(AID_SHELL) !=0) exit(1); • if (setuid(AID_SHELL) !=0) exit(1);

  15. 第一层面安全-超级用户权限 • root后的后续 • 向系统的/system/app目录写入root权限管理软件(通常是Superuser.apk) • 向/system/bin或/system/xbin写入su程序 • 他们协作实现root权限管理

  16. 第一层面安全-超级用户权限 • 实验5.2 超级用户权限获取 • 安装运行z4root • 安装运行Root Explorer • 安装Superuser

  17. 第一层面安全-超级用户权限 • Android系统分区及加载 • Android设备分区包括: • 系统分区、数据分区、Cache分区及SD卡分区 • 系统分区加载为只读分区,包括操作系统内容、系统函数库、实时运行框架、应用框架与系统应用程序等 • 由OEM厂商植入,外界不能修改 • 系统出现安全问题,用户启动“安全模式”,加载只读系统分区,不加载数据分区内容,隔离第三方程序威胁

  18. 第一层面安全-超级用户权限 • Android系统分区及加载 • 重要系统分区目录 • /system/app存放系统自带应用程序APK • /system/lib系统库文件 • /system/bin与/system/xbin 存放系统管理命令 • /system/framework目录存放Android系统应用框架的jar文件

  19. 第一层面安全-超级用户权限 • Android系统分区及加载 • 数据分区用于存储各类用户数据与应用程序 • 数据分区在安全模式下可不加载,可以不启动数据分区中的程序,可以格式化数据分区 • 数据分区挂载点/data

  20. 第一层面安全-超级用户权限 • Android系统分区及加载 • 数据分区重要目录 • /data/data 所以APK程序数据,每个APK对于自己的Data目录,即在/data/data目录下有与包名一样的目录,APK只能在此目录下操作,不能访问其他APK目录 • /data/app存放用户安装的APK

  21. 第一层面安全-超级用户权限 • Android系统分区及加载 • 数据分区重要目录 • /data/system存放的文件记录安装软件的信息 • /data/misc保存WIFI帐号与VPN设置等 • SD卡分区 • 外置设备,可以从计算机上进行操作,不受Android系统控制 • SD卡为FAT文件系统,无法设置用户权限 • 在加载时可以设置整个文件系统读写权限,但无法对FAT中个别文件进行特殊操作

  22. 第一层面安全-超级用户权限 • 实验5.3 adb 操作 • adb与adbd • adb(Android Debug Bridge)是与移动设备或模拟器上的adbd进行交互的命令行客户端程序 • adbd:Android平台对调试的支持通过驻留程序/sbin/adbd来进行,允许在程序开发所用的软件连接到在移动设备上运行的软件

  23. 第一层面安全-超级用户权限 • 实验5.3 • cmd //打开命令行 • 启动虚拟机 • adb devices //列举设备 • adb -s 虚拟机名(或设备名)shell //在虚拟机或设备上打开shell • 例如:adb –s emulator5554 shell

  24. 第一层面安全-超级用户权限 • 实验5.2 • shell操作 • mount //查看文件系统 • ls • cd • id

  25. 第一层面安全-超级用户权限 • 实验5.2 • ls /system • ls /system/app • ls /system/bin • ls /system/lib • ls /xbin

  26. 第一层面安全-超级用户权限 • 实验5.2 • ls /data • ls /data/app • ls /data/system • ls /data/misc • ls /mnt/

  27. 第一层面安全-超级用户权限 6、将某个目录挂载为可读写 A. 使用adb命令打开shell B. #su C.#mount -o remount,rw /system

  28. 第一层面安全-超级用户权限 • 实验5.3 超级用户权限获取 • 7、使根目录可写 • #mount • rootfs / rootfs ro 0 0  //ro 代表只读属性 • 重新执行mount命令: • # mount -o remount,rw rootfs / •  rootfs / rootfs rw 0 0  //rw代表读写属于

More Related