使用camille进行安卓APP合规检测

咕哒 2024年08月19日 58次浏览

前因

接到客户求助说自家的APP被通报了,原因是超范围收集个人信息,但客户自身业务没有问题应该是第三方SDK所致,需要我们帮忙协助定位问题堆栈并提供复测。

现如今APP隐私合规十分重要,各监管部门不断开展APP专项治理工作及核查通报,不合规的APP通知整改或直接下架。具体法条《APP违法违规收集使用个人信息行为认定方法》、《工业和信息化部关于开展纵深推进APP侵害用户权益专项整治行动的通知》、《工业和信息化部关于进一步提升移动互联网应用服务能力的通知》

方案

这里推荐一个开源的检测工具camille。可以hook Android敏感接口,根据隐私合规的场景,辅助检查是否符合隐私合规标准。

https://github.com/zhengjim/camille

测试当天正在外地出差,没有带安卓测试机,直接使用的自己手机(手机需要root)。
环境:
win11+python3.9+adb+小米13(安卓14)+frida-server-16.4.8

下载安装

电脑端直接GitHub下载源码,python开发的,安装相关依赖库,这里有个坑点,电脑上需要有adb工具,并且添加到环境变量(即你通过cmd可以执行adb命令)

git clone https://github.com/zhengjim/camille.git
cd camille
pip install -r requirements.txt
python camille.py -h

frida-server

https://github.com/frida/frida

adb

https://source.android.google.cn/docs/setup/build/adb?hl=zh-cn

使用

现在手机上安装需要测试的APP
首先通过adb devices确认电脑adb环境正确,手机正常链接。手机需要开启USB调试。
使用adb shell进入手机的shell通过su命令测试正常获取root权限
image-1724028890631
如果获取不到root权限,检查一下com.android.shell是否给了相关权限。
image-1724029048333

通过adb命令将frida-server 放到手机的/data/local/tmp/目录

adb push frida-server /data/local/tmp/

# 进入目录赋权
adb shell
su
cd /data/local/tmp/
chmod 755 ./frida-server

# 然后启动frida-server即可,没有回显,防止后台即可
./frida-server

经过上述操作基本环境已经准备完毕,然后python运行camille即可,命令比较简单,后面跟需要测试的APP包名,APP不需要提前打开,程序会自动运行。

python camille.py com.zhengjim.myapplication

默认会将所有日志打印到控制台,这显然不是我们想要的,可以通过参数输出到文件

python camille.py com.zhengjim.myapplication -ns -f demo01.xls

还有一个坑点就是直接运行有时会提示设备ID不存在,可以通过参数手工指定设备
-s:指定连接设备,可通过 adb devices 获取设备 id

python camille.py com.zhengjim.myapplication -s emulator-5556

一通操作就可以得到一份报告啦,直接发送~完毕。
image-1724029495491