前因
接到客户求助说自家的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权限
如果获取不到root权限,检查一下com.android.shell是否给了相关权限。
通过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
一通操作就可以得到一份报告啦,直接发送~完毕。