我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android App隐私合规检测辅助工具Camille详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android App隐私合规检测辅助工具Camille详解

Camille

Android App隐私合规检测辅助工具,项目仓库:https://github.com/zhengjim/camille

简介

现如今APP隐私合规十分重要,各监管部门不断开展APP专项治理工作及核查通报,不合规的APP通知整改或直接下架。camille可以hook住Android敏感接口。根据隐私合规的场景,辅助检查是否符合隐私合规标准。

安装

环境:

python3、frida 、一台已root手机(我测试机为Redmi 3s,刷机成魔趣Android 8.1,感觉问题挺多的),并在手机上运行frida-server

下载:

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

用法

简单使用:

python camille.py com.zhengjim.myapplication

com.zhengjim.myapplication为测试app的包名,会显示时间、行为和调用堆栈。可以根据场景来判断是否合规,如:获取敏感信息是否是在同意隐私政策之前等。

python camille.py com.zhengjim.myapplication -ns -f demo01.xls
  • -ns:不显示日志。默认显示
  • -f: 保存app行为轨迹到到execl里。默认不保存。

python camille.py com.zhengjim.myapplication -t 3

-t: hook应用自己的函数或含壳时,建议使用setTimeout并给出适当的延时(1-5s,需要根据不同app进行调整)。以免hook失败。默认不延迟。

如下图:不加延迟hook失败。

加了延迟hook成功。

后记

本来想使用uiautomator2或appium来模拟点击制定场景,但后续调研发现纯自动化的检测是不全的,最多也就检测20-30%,还是得结合人工来检测。索性就删除了模拟点击这块。(其实就是懒,不定期更新)

场景

参考百度史宾格的检测场景,根据工信部信管函〔2020〕164号文(共37项),需要人工自查的有15项

网站:https://console.bce.baidu.com/springer (现在1.4元/次,挺划算的,嫌麻烦的直接用就行)

1 APP、SDK违规处理用户个人信息方面

1.1 违规收集个人信息。

重点整治APP、SDK未告知用户收集个人信息的目的、方式、范围且未经用户同意,私自收集用户个人信息的行为。

  • 场景1:APP未见向用户明示个人信息收集使用的目的、方式和范围,未经用户同意,存在收集IMEI、设备MAC地址和软件安装列表、通讯录和短信等信息的行为。
  • 场景2:APP以隐私政策弹窗的形式向用户明示收集使用规则,未经用户同意,存在收集设备MAC地址、IMEI等信息的行为。
  • 场景3:APP以隐私政策弹窗的形式向用户明示收集使用规则,但未见清晰明示APP收集软件列表、设备MAC地址等的目的方式范围,用户同意隐私政策后,存在收集软件列表、设备MAC地址的行为。
  • 场景4(人工自查):APP未见向用户明示SDK收集使用个人信息的目的、方式和范围,未经用户同意,SDK存在收集IMEI、设备MAC地址和软件安装列表、通讯录和短信等信息的行为。
  • 场景5(人工自查):APP向用户明示SDK的收集使用规则,未经用户同意,SDK存在收集IMEI、设备MAC地址和软件安装列表、通讯录和短信等信息的行为。
  • 场景6(人工自查):APP向用户明示SDK的收集使用规则,但未见清晰明示SDK收集设备MAC地址、软件安装列表等的目的方式范围,用户同意隐私政策后, SDK存在收集设备MAC地址、软件安装列表的行为。
  • 场景7:APP在征求用户同意环节,未提供明确的同意或拒绝按钮,或者使用“好的”“我知道了”等词语。
  • 场景8:APP在征求用户同意环节,设置为默认勾选。

1.2 超范围收集个人信息。

重点整治APP、SDK非服务所必需或无合理应用场景,特别是在静默状态下或在后台运行时,超范围收集个人信息的行为。

  • 场景1(人工自查):APP存在收集IMEI、IMSI、设备MAC地址、软件安装列表、位置、联系人、通话记录、日历、短信、本机电话号码、图片、音视频等个人信息的行为,非服务所必需且无合理应用场景。
  • 场景2:APP在运行时,未见向用户告知且未经用户同意,存在以特定频率(如每30s)读取收集IMEI、IMSI、设备MAC地址、软件安装列表、位置、联系人、通话记录、日历、短信、本机电话号码、图片、音视频等个人信息,非服务所必需且无合理应用场景,超出实现产品或服务的业务功能所必需的最低频率。
  • 场景3(人工自查):APP未见向用户明示SDK的收集使用规则,未经用户同意,SDK存在收集IMEI、IMSI、设备MAC地址、软件安装列表、位置、联系人、通话记录、日历、短信、本机电话号码、图片、音视频等信息的行为,非服务所必需且无合理应用场景,超出与收集个人信息时所声称的目的具有直接或合理关联的范围。
  • 场景4:APP在运行时,未见向用户告知且未经用户同意,存在每2秒读取一次IMEI、位置信息等,非服务所必需且无合理应用场景,超出实现产品或服务的业务功能所必需的最低频率。
  • 场景5:APP未见向用户告知且未经用户同意,在后台行为时,存在收集 IMSI、设备序列号等信息的行为,非服务所必需且无合理应用场景,超出与收集个人信息时所声称的目的具有直接或合理关联的范围。
  • 场景6:APP未见向用户告知且未经用户同意,在静默状态下或在后台运行时,存在按照一定频次收集位置信息、IMEI、通讯录、短信、图片等信息的行为,非服务所必需且无合理应用场景,超出与收集个人信息时所声称的目的具有直接或合理关联的范围。
  • 场景7:APP未向用户明示SDK的收集使用规则,未经用户同意,SDK在静默状态下或在后台运行时,存在收集通讯录、短信、通话记录、相机等信息的行为,非服务所必需且无合理应用场景,超出与收集个人信息时所声称的目的具有直接或合理关联的范围。
  • 场景8:APP未向用户明示SDK的收集使用规则,未经用户同意,SDK在静默状态下或在后台运行时,存在按照一定频次收集位置信息、IMEI、通讯录、短信、图片等信息的行为,非服务所必需且无合理应用场景,超出与收集个人信息时所声称的目的具有直接或合理关联的范围。

1.3 违规使用个人信息。

重点整治APP、SDK未向用户告知且未经用户同意,私自使用个人信息,将用户个人信息用于其提供服务之外的目的,特别是私自向其他应用或服务器发送、共享用户个人信息的行为。

  • 场景1:APP未向用户明示个人信息处理的目的、方式和范围,将IMEI、IMSI、设备MAC地址、软件安装列表、位置、联系人、通话记录、日历、短信、本机电话号码、图片、音视频等个人信息发送给第三方SDK等产品或服务。
  • 场景2:APP未见向用户明示分享的第三方名称、目的及个人信息类型,用户同意隐私政策后,存在将IMEI/设备MAC地址/软件安装列表等个人信息发送给第三方SDK。
  • 场景3(人工自查):APP未向用户告知且未经用户同意,将设备识别信息、商品浏览记录、搜索使用习惯、软件安装列表等个人信息传输至APP服务器后,向第三方产品或服务提供其收集的个人信息。

1.4 强制用户使用定向推送功能。

重点整治APP、SDK未以显著方式标示且未经用户同意,将收集到的用户搜索、浏览记录、使用习惯等个人信息,用于定向推送或广告精准营销,且未提供关闭该功能选项的行为。

  • 场景1(人工自查):APP的页面或功能存在定向推送功能,但隐私政策未见向用户告知,将收集的用户个人信息用于定向推送、精准营销。
  • 场景2(人工自查):若APP定向推送功能使用了第三方的个人信息来源,但隐私政策未见向用户告知。
  • 场景3(人工自查):APP隐私政策存在“根据您的偏好进行个性化推荐”等内容,明示存在定向推送功能,但页面中未见显著区分个性化推送服务,如标明“个性化展示”或“定推”等字样。
  • 场景4(人工自查):APP以隐私政策弹窗等形式明示存在定向推送功能,未提供退出或关闭个性化展示模式的选项,如拒绝接受定向推送信息,或停止、退出、关闭相应功能的机制。

2 设置障碍、频繁骚扰用户方面

2.1 APP强制、频繁、过度索取权限。

重点整治APP安装、运行和使用相关功能时,非服务所必需或无合理应用场景下,用户拒绝相关授权申请后,应用自动退出或关闭的行为。重点整治短时长、高频次,在用户明确拒绝权限申请后,频繁弹窗、反复申请与当前服务场景无关权限的行为。重点整治未及时明确告知用户索取权限的目的和用途,提前申请超出其业务功能等权限的行为。

  • 场景1:APP首次启动时,向用户索取电话、通讯录、定位、短信、录音、相机、存储、日历等权限,用户拒绝授权后,应用退出或关闭(应用陷入弹窗循环,无法正常使用)。
  • 场景2(人工自查):APP运行时,未向用户告知申请权限的目的,向用户索取当前服务场景未使用到的通讯录、定位、短信、录音、相机、日历等权限,且用户拒绝授权后,应用退出或关闭相关功能,无法正常使用。
  • 场景3(人工自查):用户注册登录时,APP向用户索取电话、通讯录、定位、短信、录音、相机、存储、日历等权限,用户拒绝授权后,APP无法正常注册或登录。
  • 场景4(人工自查):APP运行时,向用户索取当前服务场景未使用到的电话、通讯录、定位、短信、录音、相机、存储、日历等权限,且用户拒绝授权后,应用退出或关闭(应用陷入弹窗循环,无法正常使用)。
  • 场景5:APP运行时,在用户明确拒绝通讯录、定位、短信、录音、相机、日历等权限申请后,仍向用户频繁弹窗申请与当前服务场景无关的权限,影响用户正常使用。
  • 场景6: APP在用户明确拒绝通讯录、定位、短信、录音、相机等权限申请后,重新运行时,仍向用户弹窗申请开启与当前服务场景无关的权限,影响用户正常使用。
  • 场景7:APP首次打开或运行中,未见使用权限对应的相关功能或服务时,不应提前向用户弹窗申请开启通讯录、定位、短信、录音、相机、日历等权限。
  • 场景8(人工自查):APP未见提供相关业务功能或服务,不应申请通讯录、定位、短信、录音、相机、日历等权限。

2.2 APP频繁自启动和关联启动。

重点整治APP未向用户告知且未经用户同意,或无合理的使用场景,频繁自启动或关联启动第三方APP的行为。

  • 场景1:APP未向用户明示未经用户同意,且无合理的使用场景,存在频繁自启动或关联启动的行为。
  • 场景2:APP虽然有向用户明示并经用户同意环节,但频繁自启动或关联启动发生在用户同意前。
  • 场景3:APP非服务所必需或无合理应用场景,超范围频繁自启动或关联启动第三方APP。

3 欺骗误导用户方面

3.1 欺骗误导用户下载APP。

通过“偷梁换柱”“移花接木”等方式欺骗误导用户下载APP,特别是具有分发功能的移动应用程序欺骗误导用户下载非用户所自愿下载APP的行为

  • 场景1:APP 广告页面、开屏广告、主屏等功能页面,无显著APP下载提示,点击即自动下载非用户所自愿下载APP。
  • 场景2:APP 广告页面、开屏广告、主屏等功能页面,以“是否立即开始游戏”方式欺骗误导用户自动下载非用户所自愿下载APP。
  • 场景3:APP 广告页面、开屏广告、主屏等功能页面,以“领取红包”方式欺骗误导用户自动下载非用户所自愿下载APP。
  • 场景4:APP 广告页面、开屏广告、主屏等功能页面,点击“下载按钮“以外区域,自动下载非用户所自愿下载APP。
  • 场景5(人工自查):暂停下载非用户所自愿下载APP,关闭并重新运行本APP后,自动恢复下载被暂停的非用户所自愿下载的APP。
  • 场景6(人工自查):APP 广告页面、开屏广告、主屏等功能页面,通过设置关闭障碍等方式欺骗误导强迫下载非用户所自愿下载APP。
  • 场景7(人工自查):APP 广告页面、开屏广告、主屏等功能页面,下载的APP与向用户所作的宣传或者承诺不符。

3.2 欺骗误导用户提供个人信息。

行为表现:非服务所必需或无合理场景,通过积分、奖励、优惠等方式欺骗误导用户提供身份证号码以及个人生物特征信息的行为。

参考链接

https://github.com/Dawnnnnnn/APPPrivacyDetect

https://github.com/r0ysue/r0capture/

https://github.com/ChenJunsen/Hegui3.0

到此这篇关于Android App隐私合规检测辅助工具(Camille)的文章就介绍到这了,更多相关Android App隐私合规检测内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android App隐私合规检测辅助工具Camille详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android APP隐私合规检测工具Camille使用

目录 一、简介二、环境准备常用使用方法 一、简介 现如今APP隐私合规十分重要,各监管部门不断开展APP专项治理工作及核查通报,不合规的APP通知整改或直接下架。camille可以hook住Android敏感接口,检测是否第三方
2023-08-24

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录