android系统表层攻击与ROM

本章记录安卓逆向看雪白皮书11章,另附12章

root

通过su与superuser应用协作管理root权限,root后可访问全部数据文件,对数据安全影响大

权限攻击

android应用权限分为底层与高层,每个应用都有自己的用户与用户组,底层权限通过把用户添加到相应的权限组从而可使用,高层权限是通过Framework层的检查代码来进行权限检查,然后决定程序是否可使用相应函数。
android程序中的资源访问包括使用Framework提供的与访问其他程序的组件,前者通过系统提供的权限控制,后者通过自定义的权限控制。当自己的权限管理不当时,其他程序可通过自己的程序获得系统权限功能。
intent-filter只是响应级别的过滤器,决定响应的信息。

组件安全

四大组件都存在通信和接受方面的安全问题,在过滤器同层可加android:permission指定其它应用使用该组件需要的权限,同时可设置exported表明是否只有自己可用。
发送方面可以setclass用来只对某个组件发送intent信息,而不会被别的恶意程序用高优先级截取。其实都有相应的安全机制,只是有的人不用。
Activity还存在劫持问题,仿冒页面覆盖正常页面弹出。
广播提供私有发送函数

存储安全

在root下没有什么数据是不可见的,所以必须加密。存储方式有4种:

  1. sd卡file控制
  2. data私有下的file(openfile…)
  3. Shared Proferences键值对在data下
  4. Sqlite数据库data下

ROM安全

现在一般采用卡刷方式。传入scard卡。音量+加关机键重启进入recory模式双清选择刷入即可。
推荐ROM网站https://forum.xda-developers.com/

没啥特殊需求最好用大厂官方的,不要用第三方rom。最好用google的机器驱动加官方的android源码编译系统。自己改改毕竟系统所做的一切你都可以不知道。
直接编译的android由于缺少驱动无法直接刷入,所以一般基于CM的改改
线刷的权限更高点但不同厂格式不同,卡刷就是更改system文件夹内容。
img(可压缩全部盘)是ios(只能用于压缩CDDVD)的超集

关于Recovery升级原理好文:https://blog.csdn.net/luzhenrong45/article/details/60968458
Recovery是启动另一个小型操作系统

android系统计划:android源码编译,项目过程理解,安装系统,系统运行过程理解,读源码,改源码自己用。

白皮12章

移动沙箱十分有用,建议理解原理自己建一个。可以快速了解apk所使用的api与参数,访问的网络与数据包分析,创建的文件,原生函数的使用情况等等有用信息。书中使用的->https://github.com/mspreitz/MobileSandbox

想要分析好native层,需要熟悉arm指令与linux系统api
native层常见的_stack_chk_guard是gcc用来防止栈溢出的一种方式,通过调用函数头尾对比栈中保存的_stack_chk_guard是否变化。

ida可以使用脚本来实现解密代码等功能,分析时更加聚集,十分强大!(ida权威指南)

strace是linux下用来捕获程序执行时调用的所有系统api工具,可以查看敏感操作,同时可查看传的参数与返回值。android下有移植。

默认下/system目录是只读挂载的,即使是root也无法修改该目录下的文件,但可再将它挂载为可读可写用remountsystem或指令。