Root环境检测
0x01 漏洞描述
Android安全架构是基于Linux多用户机制的访问控制。在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者。在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户许可其它普通用户是无法操作的,但对root除外。
root用户的特权性还表现在:
- 对文件或目录进行读取、修改或删除;
- 对可执行程序的执行、终止;
- 对硬件设备的添加、创建和移除等;
- 对文件和目录进行属主和权限进行修改,以适合系统管理的需要;
- root是超越任何用户和用户组的,基于用户ID的权限机制的沙盒是无法隔离的。
0x02 漏洞危害
攻击者可在root的终端上对应用程序进行动态调试、内存访问篡改、Hook应用程序与服务端交互流量等。
0x03 修复意见
3.1 查看系统是否为测试版
可以查看发布的系统版本,是test-keys(测试版),还是release-keys(发布版)。
可是在实际情况下,也有某些厂家的正式发布版本也是test-keys
3.2 检查是否存在Superuser.apk
Superuser.apk是一个被广泛使用的用来root安卓设备的软件,所以可以检查这个app是否存在。
3.3 检查su命令
su是Linux下切换用户的命令,在使用时不带参数,就是切换到超级用户。通常我们获取root权限,就是使用su命令来实现的,所以可以检查这个命令是否存在。
3.4 执行busybox
BusyBox集成压缩了 Linux 的许多工具和命令,所以若设备root了,很可能Busybox也被安装上了。
3.5 访问/data目录,查看读写权限
在Android系统中,有些目录是普通用户不能访问的,例如 /data
、/system
、/etc
等。
可以以/data
为例,来进行读写访问。先写入一个文件,然后读出,查看内容是否匹配,若匹配,才认为系统已经root了。
具体代码可参考:
模拟器环境检测
0x01 漏洞描述
安卓模拟器是一种可以运行在电脑上的虚拟设备,通过它可以实现应用的跨平台操作,让移动端APP无需任何改动即可在PC上执行。
模拟器作为一种虚拟机,配合改机工具,能够以较低成本实现设备多开,因此而备受黑灰产的青睐。
0x02 漏洞危害
- 可利用PC端其他辅助工具完成对移动端应用的支持,如通过按键精灵完成自动挂机等操作。
- 通过模拟器多开功能,零成本体验同时多部手机、多个账户开小黑屋,实现刷单、薅羊毛。
- 通过模拟器虚拟定位伪造真实地理位置。
- 。。。
0x03 修复意见
在客户端代码中增加模拟器检测代码。
模拟器的检测秉持一句话:抓取特征值与真机比较。
可参考下列文章:
代理环境检测
0x01 漏洞描述
APP客户端通过宿主机与服务器进行流量交互,攻击者可通过设置Wi-Fi、网卡代理进行中间人劫持,抓取通信过程中的流量包,进行进一步分析利用。
0x02 漏洞危害
攻击者可利用Charles、fiddler、BurpSuite等抓包工具,抓包分析网络流量及api接口信息,从而进一步分析相关接口、参数等安全问题。
0x03 修复意见
- 检查是不是用了Http代理,如果是,客户端不发送网络请求;
- 通过Okhttp设置默认代理;
代码可参考: