APP隐私合规现状与防范措施

news2024/9/22 3:49:20

背景

2021年11月1《个人信息保护法》正式施行,标志信息保护进入强监管时代,APP监管被提升到前所未有的高度,数据安全、用户隐私、甚至功能体验等各个方面都出台了相应的规则规范,监管的初衷是:从各个层面保障用户的权益,避免用户的隐私、体验、数据被滥用,甚至威胁国家安全,一旦违规被查处面临的惩罚是非常严厉的,因此产品运营方必须高度重视。一方面,在产品设计、开发阶段就要充分考虑并满足各种监管要求;另一方面,一旦查出隐患问题,要积极响应,及时整改,否则可能面临工信部通报,甚至全面下架风险,首当其冲的一块是:APP隐私合规

APP隐私合规指简单说就是:用户隐私的收集、存储、使用、加工、传输、提供、公开、删除等都要合乎法规个人信息保护法,遵守原则。从APP端来看,它关系到用户的切身体验,用户自身也能直观感受到自己的隐私是否被过分索取。比如,申请与自身功能毫不相关的权限,不给还拒绝提供服务等场景。

APP隐私合规监察的重点场景

据信息通信研究院统计,截至2021.12.10,工信部共检测共244万款App,累计对5000+发出整改通知,通报2000+整改不利的APP,并下架600+ 拒不整改的APP。其中,重灾区在非法获取用户隐私、超范围收集个人信息、过度频繁过度索取权限、违规使用个人信息等,
其中违规收集个人信息占比48%、过度索取权限占比17%、超范围收集个人信息占比10%、违规使用个人信息占比8%、强制定向推送占比8%,这些也是APP检测与整改的重点区。

image.png

违规非法收集个人隐私

这里所说的信息主要是指可以追踪、定位、识别个人身份的能力,多采用隐式方式获取。参考个人信息保护法、《App违法违规收集使用个人信息行为认定方法》,违规收集个人信息主要指如下场景:

(一 ) 未公开收集规则、目的、方式、范围 ,常见的表现有 :

  • App缺少隐私政策,或者隐私策略不规范  **【隐私策略H5落地页 】**
    
  • 首次运行时未通过弹窗等明显方式提示用户阅读隐私政策等收集规则;  **【启动隐私策略弹窗 】**
    
  • 隐私政策难以访问、难以阅读[文字过小过密、颜色过淡、模糊不清] **【隐私策略规范】**
    
  • App或者SDK收集目的、方式、范围披露不完整  **【SDK披露列表 】**
    
  • 隐私策略变更时,未以显著方式通知用户  **【更新弹窗 】**
    
  • 申请权限,或户身份证号、银行账号、位置等个人敏感信息时,未同步告知用户其目的,或者目的不明确**【说明弹窗 】**
    

(二) 未经用户同意就开始搜集个人信息,具体表现有

  • 用户未同意前就开始收集 【隐私策略点击同意前,调用敏感API 】
  • 用户明确表示不同意后仍搜集,或频繁征求用户同意,影响使用 【拒绝后不应频繁请求】
  • 搜集信息超出用户授权范围或者违反其策略声明收集个人信息。 【没纰漏】
  • 默认选择同意隐私政策 【默认选中】
  • 定向推送信息,未提关闭 【千人千面】
  • 未向用户提供撤回同意收集个人信息的途径、方式;【可操作性太低,这个没经历】

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

这里所说的权限主要是指在系统层面需要用户授权,只有授权才能拿到部分信息,多采用显示方式获取。违规场景一般是指:在用户明确拒绝某些权限申请后,仍然频繁弹窗反复申请某项非必须权限,或者因为用户拒绝而整体拒绝提供服务。常见的表现有:

  • 频繁索取: 在商详用户明确拒绝了位置申请,仍在后续App运行期间,通过多种方式申请
  • 强制索取:App首次启动时,向用户索取IMEI权限用作设备ID,用户选择拒绝授权,直接退出
  • 过度索取权限: 阅读工具索取通讯录权限等

《隐私政策》必须明确所有权限申请目的,并保证权限与功能的相关,拒绝某项功能性授权,不应该影响其他功能的正常使用,对于高风险的权限包括麦克风、短信、摄像头、定位等应谨慎对待。

Android与iOS在隐私合规上的区别对待

  • (一)Android是隐私合规的重点处理对象

整体来讲,iOS的生态更加健康、完善,相对于Google,苹果对隐私的重视程度更高,在系统层面支持的更好。并且,由于iOS系统不开源,国内的手机厂商全部是Android系统,每个厂商还都有自己的应用市场,导致生态特别混乱,Android的开源导致Google对于系统的话语权不是特别高,系统的碎片化很严重,通过系统升级来解决隐私问题几乎不可能,所以国内隐私合规审查的重点一直就是Android,而且基本上只能是Android,无论是从技术上,还是从话语权上,苹果都比较强势。

  • (二)Android的合规审查标准比较混乱

隐私合规主要是工信部、网信办、各地通管局在一起推动的,但是具体的审查工作并不是这些部门在承办,而是交给第三方进行审查。一些应用市场为了保证自己市场的APP的质量,也会自定定义一套审查规则,所以就会导致这么一种乱象:A市场审查通过的APP,在B市场仍然有隐私合规问题,工信部审查合规的APP,无法通过部分应用市场的的审核标准。目前国内的主要的应用市场如下:

image.png

相对iOS的唯一性,Android要处理的厂商是非常复杂,要处理的合规问题,也更加混乱,虽然隐私合规政策是正向的,但是在执行层面缺乏统一的认证标准,给开发、产品运营带来了很多额外的适配工作。比如,对于某些用户信息搜集的初衷,有些市场要求的会非常细,而且这个衡量并非机器在操作,而是有人工审核参与,主观性的判断就给这部分带来很多不确定性。

APP隐私合规上的审查方式

目前,隐私合规基本是人工+自动化工具配合来共同完成,100%自动化审核还是比较困难,合规检测一般由专门的机构提供服务。这里检测分两种,一种是工信部、通管局发起的合规检测,另一种是开发者自己主动检测,工信部一般会雇佣第三方机构,对批量APP进行合规检查,根据结果出具整改通知,并后续审查,其审查流程一般是:

image.png

工信部通管局的审查对开发者而言,一般是被动的,但是结果检测后,必须主动并积极解决,一旦处理不好导致通报或者下架的后果将是灾难性的。相对而言另一种就是开发或者法务主动检测,很多平台提供隐私合规检测服务,当然,并不是完全免费的,可以参考某个平台的报价:一次4000,可以看到价格并不低,主动检测的目的就是自查,将风险提前暴露。

image.png

不过对于开发人员来说,这种方式并不是很友好,更需要一种实时、方便、廉价的自查方式

APP开发人员隐私合规自查

各厂商或者平台审查使用的手段基本都类似,人工审查负责功能层面的校对,比如:是否提供定向推送的开关、是否提供隐私策略、隐私策略内容是否完整,规范、权限的申请是否合规等,更关注法务法规上显性的要求;工具审查更注重隐私信息的获取,是否调用了某些系统接口非法获取了用户信息,更注重隐式合规需求。显式的合规比较容易满足,而且在交互设计阶段基本都已经处理了,所以重点关注下工具审查审查部分。

用户敏感信息的获取都是通过调用系统API来实现的,所以目前的做法基本都是HOOK掉系统API,让后将调用的堆栈输出,看看在当前节点是否符合合规需求,比如在用户统一隐私策略前,任何调用敏感API的操作都是属于不合规的,开发过程中怎么处理呢?以Android系统为例,对于系统API的HOOK,有多种方案,比如XPOSED框架、Frida框架等,针对这两个的使用分别介绍下:

  • XPOSED框架方式

XPOSED本身是一个HOOK框架,它通过污染zygote进程,来HOOK整个系统中所有的进程,开发人员将ROOT过的手机安卓XPOSED框架后,就可以自定义HOOK规则,在隐私合规审查的场景中,针对所有的合规API添加钩子函数,在调用前打印出调用堆栈即可,之后将自己开发的模块安装到XPOSED框架中,通过日志即可实时看到敏感API的调用情况。

public class CheckPlugin implements IXposedHookLoadPackage {
try {
    XposedHelpers.findAndHookMethod(
            TelephonyManager.class.getName(),
            lpparam.classLoader,
            "getImei",
            String.class,
            new XC_MethodHook() {
                @Override
                protected void beforeHookedMethod(MethodHookParam param) {
                    if (!TextUtils.isEmpty(packaname) && !packaname.equals(lpparam.packageName)) {
                        return;
                    }
                    Log.e(TAG, lpparam.packageName + " 调用getImei获取了IMEI");
                    collectionExceptionAllinformation(param);
                }
            }
    );
} catch (Throwable ignored) {
}
	    ...
    <!--其他合规API-->
}

该方式主要的工作在于编写XPOSED模块,实现代码为Java,可以在Android Studio中直接开发,对于Android开发来说,实现比较简单,但是每次修改都要重新部署到手机上,并且需要重启设备才能生效,开发初期效率可能比较低,但是固化下来之后,还是比较方便的。安装参考 P以上用Magisk+ruri+ LSposed

  • Frida框架方式

同XPOSED框架相比,Frida更灵活一些,不需要安装什么框架,只需要在Root的手机上运行Frida-server即可参考,它可以通过编写JS、Python代码来和frida_server进行交互,Frida使用的是动态二进制插桩技术(DBI),在程序运行时实时地插入额外代码和数据,从而达到跟踪和拦截函数的功能。Hook脚本写法:

Java.perform(function(){

 var macAddress = Java.use("android.net.wifi.WifiInfo");
    macAddress.getMacAddress.overload().implementation = function () {
        console.log("getMacAddress()");
        this.private_func();
    };
    ...
    <!--其他合规API-->

});

该方式的虽然说比较灵活,但是使用起来稍微有些不便,每次都要直接或者间接的方式,通过命令启动脚本注入

frida -U -l  privacy.js -f com.netease.yanxuan

两种方式的对比:

XPOSED框架在手机改造上比较麻烦,,除了ROOT,还要安装XPOSED,XPOSED的兼容性较差,但是后续的收益比较方便
XPOSED早期开发效率低,但是一旦Module固定后,后期几乎没有成本
Frida的配置比较简单,只需要ROOT
Frida开发比较灵活,适合灵活变动的API检测,但是后续每次检测都要通过**命令行启动,**稍微麻烦一些

开发使用,倾向于XPOSED,如果考虑自动化部署,倾向于Frida,可操作性更强。

APP隐私合规整改

原则:隐私策略同意之前,不获取任何用户的隐私数据,在未到达特定业务场景,不申请任何权限,用了任何权限跟隐私都要需要给出合理的公示

就APP多次整改的实践来看,违规非法收集个人隐私是最常见的,其中未经用户同意就搜集又是其中之最,这里的的原因有很多,其中系统设计跟法规审查的不一致是最关键点,隐私合规这个检查跟Android系统的设计就不是同频共振的,甚至还有些互斥,系统中并不存在这么一个暂停环节,让用户同意隐私策略后再继续后面的操作,这个隐私弹窗的展示在Android系统中,就已经属于业务的范畴,而非可定制的系统阻塞点,所以,并不容易处理。正常的开发是在APP启动之初就要初始化很多环境、参数,而这些初始化很可能涉及一些隐私API的调用,在隐私合规的框架下,这些调用只能被人为延后,或者取消。其次,虽然自身业务合规比较容易处理,但一些三方SDK的合规比较麻烦,部分可通过升级解决,而年久失修的SDK可能只能通过切面编程来解决不合规的问题,写插件是一个投入,而且插件多了影响编译效率,维护也麻烦。

对于动态权限的获取,有两点需要注意:一是在相关联的界面才申请,不要提前申请,第二是,申请权限之前必须要给出合理解释,即使有时候这个解释看起来有些多余,Google官方也是建议在某些敏感权限申请前添加提醒,但是在系统上不是必须的,不过国内的合规基本一刀切,强制必须添加。

对于隐私策略而言,主要关注点在于其一:隐私的搜集、存储、使用是否披露的详细、彻底;第二:三方SDK罗列的是否有遗漏,基本上满足这两点就可以。

总结

目前国内的隐私合规审查稍有些过于严苛,但是重病需猛药,先拨乱反正一下,将来也许会稍微放开一些,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69475.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stimulsoft Reports.JAVA 2022.4.5 Crack

Stimulsoft Reports.JAVA Java 报表工具 Stimulsoft Reports.JAVA 是一种报告工具&#xff0c;用于在您的 Java 应用程序中进行业务报告的交互和工作。它包含 Java 和 HTML5 组件&#xff0c;允许您在不同平台、不同操作系统和不同硬件上使用创建的程序。因此&#xff0c;我们的…

树上的小兔子,藏了服务的新逻辑

【潮汐商业评论/原创】 自从一连三日委托会务组组织会议&#xff0c;Shirley在雅琳那收获了一个熟悉的称呼&#xff1a;雪梨&#xff0c;这是Shirley在部门内的“代号”&#xff0c;在过去独属于她最亲密的几位同事。 熟悉的称呼让她们感觉既轻松又亲近。然而&#xff0c;跳出…

虹科分享 | 加密U盘 | 何时使用USB驱动器进行备份(何时不用)

在存档或备份数字资产或数据时&#xff0c;有多种选择。虽然每个公司的需求和要求各不相同&#xff0c;但没有一种放之四海而皆准的方法或解决方案。在这里&#xff0c;我们将看看USB驱动器的优点和陷阱&#xff0c;USB驱动器是专业人士和个人用于存档和备份的最常见存储选项。…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java特殊教育学校学生管理系统002k1

要开始我们毕业设计的第一步的关键就是选好我们的课题&#xff0c;有的同学开始选题的时候想着按照传统的课题延续下去&#xff0c;在设计题目时&#xff0c;不要过于笼统广泛&#xff0c;选择题目其实并不难&#xff0c;要多从自身的角度出发&#xff0c;要结合你们当前所处的…

20221207比对python和C的运行效率(以六元一次方程组为例)【大概300倍】

20221207比对python和C的运行效率&#xff08;以六元一次方程组为例&#xff09; 2022/12/7 17:30 C:\20221207比对python和C的运行效率&#xff08;以六元一次方程组为例&#xff09;\1000-1000-1000-1000-1000-1000 &#xff08;只跑一次&#xff09; Python源码&#xff1a…

【web前端期末大作业】基于html关爱空巢老人网页设计与实现

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

程序设计基础最后一次作业——解析

文章目录打开项目文件完成题目initialize函数从文件info.txt中读入人员信息数据PrintAllSearchbyNameInsertSendMessage问题为什么txt打开是乱码打开项目文件 解压文件列表如下&#xff0c;每一个框是一组&#xff0c;.h后缀的文件是对应cpp文件的头文件&#xff0c;声明了相关…

理解路由表 实验报告

实验名称&#xff1a; 理解路由表 一、实验预习 1、实验目的 利用route命令查看、增加、删除等主机路由信息&#xff0c;以进一步熟悉和理解路由表。 实验内容&#xff08;包括自己设计增加的内容等&#xff09; 利用route命令查看、增加、…

制造业数据安全如何保证?天翎知识文档管理系统+群晖NAS企业级解决方案

编者按&#xff1a;本文分析了制造业文档管理中的需求&#xff0c;并进一步指出天翎知识文档管理系统群晖NAS企业级解决方案是如何满足企业需求&#xff0c;为企业赋能创新的。 关键词&#xff1a;免安装维护&#xff0c;流程审批&#xff0c;私有化部署&#xff0c;安全技术&…

基于人工蜂群算法的新型概率密度模型的无人机路径规划(Matlab代码实现)

目录 1 概述 1.1研究背景 2 运行结果 3 Matlab代码实现 4 结语 5 参考文献 1 概述 文章提出一种基于人工蜂群算法的非确定性双向规划机制搜索算法。首先针对不同场景&#xff0c;采用两种方法进行环境建模&#xff1b;其次&#xff0c;结合非确定性搜索机制引入双向规划方…

数字后端:track的作用与创建

1.track的定义 EDA工具根据LEF(或tech file)中每层金属的pitch大小&#xff0c;在芯片内部自动生成各层金属连续的、规则的绕线轨道&#xff08;routing track&#xff09;&#xff0c;routing track指的就是绕线的路径。 tech lef示例 tech file示例 DEF中保存的TRACK信息如下…

射频工程师自学HFSS、CST和ADS打开方式

导读&#xff1a;大家好&#xff0c;我是RF小木匠,受仿真秀平台邀请&#xff0c;近日正式入驻了仿真秀App,今天RF小木匠想和大家聊一下电磁仿真软件学习那些事。 一、仿真是射频工程师的必备技能 当我们开始接触电磁波和微波工程的时候&#xff0c;第一件事就是仿真。电磁仿真…

Docker 安装 Python

文章目录使用docker pull python:3.8 命令安装使用python镜像&#xff08;一&#xff09;新建py文件&#xff08;二&#xff09;运行容器使用docker pull python:3.8 命令安装 查找Docker Hub上的python镜像&#xff0c;输入命令&#xff1a;docker search python 这里我拉取…

【图像去噪】中值+均值+维纳+小波滤波图像去噪【含GUI Matlab源码 753期】

⛄一、图像去噪及滤波简介 1 图像去噪 1.1 图像噪声定义 噪声是干扰图像视觉效果的重要因素&#xff0c;图像去噪是指减少图像中噪声的过程。噪声分类有三种&#xff1a;加性噪声&#xff0c;乘性噪声和量化噪声。我们用f(x,y&#xff09;表示图像&#xff0c;g(x,y&#xff0…

HDFS的概念及shell操作

HDFS 产出背景及定义 产生背景 随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系 统管理的磁盘中&#xff0c;但是不方便管理和维护&#xff0c;迫切需要一种系统来管理多台机器上的文件&#xff0c;这 就是分布式文件管…

虚拟机共享物理机网路的NAT连接方法

NAT模式指借助虚拟NAT设备和虚拟DHCP服务器&#xff0c;使得虚拟机可以联网。电脑连接wifi&#xff0c;让笔记本虚拟机也能够上网&#xff0c;其配置方法如下&#xff1a; 1、打开VMware Workstation软件&#xff0c;点击编辑虚拟机设置&#xff0c;进入到配置虚拟机参数菜单。…

加密技术和二维码

1、对称加密&#xff1a;单密钥加密。一个密钥可以用来加密也可以用来解密 —- AES 2、非对称加密&#xff1a;有两把密码&#xff0c;公钥(用于加密)&#xff0c;私钥(用于解密) 3、摘要算法&#xff1a;把任意长度的输入&#xff0c;根据算法生成一串固定长度的伪随机数 —…

【安全扫描处理问题心得】

安全扫描处理问题心得 在安全扫描中处理了一些问题&#xff0c;现在来总结一下 1.mysql漏洞&#xff08;CVE-2022-21595 CVE-2022-21617 CVE-2022-21608 CVE-2022-2097 CVE-2022-21592 CVE-2022-21589&#xff09; 解决过程 我们公司安扫文档中的 解决办法 如下&#xff1a; 目…

JAVA SCRIPT设计模式--创建型设计模式之原型模式(4)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能&#xff0c;所以不可能像C&#xff0c;JAVA等面向对象语言一样严谨&#xff0c;大部分程序都附上了JAVA SCRIPT代码&#xff0c;代码只是实现了设计模式的主体功能&#xff0c;不代…

Sunday 算法详解

Sunday 算法 Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。其核心思想是&#xff1a;在匹配过程中&#xff0c;模式串发现不匹配时&#xff0c;算法能跳过尽可能多的字符以进行下一步的匹配&#xff0c;从而提高了匹配效率。 一、匹配机制 匹配机制非常容易理…