本发明属于小程序检测,尤其涉及移动小程序中隐私数据使用目的一致性检测方法及系统。
背景技术:
1、随着移动应用的快速发展,移动小程序已经成为一种非常流行的开发范式。小程序具有“需安装,用完即走”的特点,一方面扩展了移动应用本身的功能,另一方面也为用户提供了便捷的服务。移动小程序功能覆盖了购物、社交、移动支付等各个方面,具有便捷性、高效性和广泛的应用场景,极大地丰富了移动用户的数字体验。
2、移动小程序最早由微信于2017年1月9日推出,在此之后支付宝、百度等各大超级应用也陆续推出各自的小程序平台。微信小程序的运行环境分为视图层(view/render)和逻辑层(logic/worker),其中wxml模板和wxss样式工作在视图层,js脚本工作在逻辑层,小程序的视图层和渲染层分别由两个线程管理。为了规范开发者对用户个人隐私数据的使用行为,保障用户的合法权益,目前各大超级应用(微信、抖音、支付宝等)均要求小程序开发者填写相应的隐私保护指引。小程序隐私保护指引依据个人信息相关法律法规制定,包含开发者处理的信息、第三方插件信息、第三方服务商信息等板块,其中开发者处理的信息包含开发者为了实现小程序功能所必需的用户数据信息。小程序隐私保护指引中的每一行都是一条隐私声明,它包含需要收集的隐私数据及其使用目的。隐私数据通常是开发者收集的用户个人隐私信息,每种隐私数据通常有一个或多个相对应的api接口,使用目的用来说明开发者收集用户隐私数据的用途。
3、移动小程序在为用户提供便捷服务的同时,也涉及到大量的用户隐私数据的收集和使用,用户隐私安全问题日益凸显。在大数据时代,个人隐私数据已经成为非常重要的资源。移动小程序为了提供更加个性化的服务,需要收集位置信息、手机号等用户隐私信息。然而,隐私数据的滥用、泄露、未经授权的访问等问题频繁发生,严重威胁到小程序用户的隐私安全和个人利益。《小程序个人信息保护研究报告》指出,超过60%的小程序未提供有效的隐私政策,平均每款小程序存在3个隐私安全风险,包括超范围收集个人信息、权限持续开放等问题。尽管近年来随着有关部门的监管和各小程序平台的整顿,小程序隐私乱象得到一定缓解,但小程序隐私安全问题始终存在。
4、隐私数据使用目的一致性,指的是收集个人隐私数据的目的与实际使用这些隐私数据的目的之间的一致性。在理想状态下,小程序开发者在用户同意收集其数据时明确声明的数据使用目的,应当与后续数据处理和使用的实际目的保持一致。然而,现实情况往往复杂多变,由于缺乏有效的监管和技术手段,数据使用目的偏离、超范围使用和隐私泄露等问题频繁发生,严重威胁到用户的隐私权和数据安全。
5、purpliance通过分析android应用隐私政策的谓词论元结构提取隐私数据的使用目的,同时基于网络流量推断出实际的数据使用目的,从而检测隐私政策隐私政策中的矛盾陈述和网络流量与隐私声明之间的一致性问题。lalaine针对ios应用程序的隐私标签,提出基于网络流量和api调用栈的使用目的推断方法,从而检测隐私数据在隐私标签和实际行为间的一致性问题。由于上述方案都是针对特定平台的应用,而小程序的技术背景与android或ios都不相同,因此隐私数据使用目的一致性检测方法在小程序场景下并不适用。另一方面,purpliance基于谓词论元结构提取隐私数据和使用目的,而对于小程序隐私保护指引中半结构化的隐私声明,其提取的准确率和效率都偏低;purpliance和lalaine都采用基于网络流量推断实际的使用目的,覆盖率低且开销过大。
技术实现思路
1、为了克服上述现有技术中的缺点,本发明的目的在于提供移动小程序中隐私数据使用目的一致性检测方法及系统,首先根据小程序隐私声明的两类句式结构从小程序隐私保护指引中提取隐私声明的隐私数据及使用目的,基于聚类得到不同隐私数据的使用目的类别表;然后从小程序代码中提取出与隐私数据相关的静态特征,基于静态多维特征训练使用目的多分类器,通过使用目的多分类器预测隐私数据的实际使用目的;最后通过一致性模型分析隐私数据的使用目的在隐私声明和实际使用之间的一致性,检测小程序中潜在的隐私风险;对于半结构化的小程序隐私保护指引文本,本发明的方法具有较高的提取准确率和效率。
2、为了实现上述目的,本发明所采用的技术方案如下:
3、移动小程序中隐私数据使用目的一致性检测方法,包括以下步骤:
4、步骤1:以小程序作为输入,包括小程序隐私保护指引和解包后的小程序代码,对小程序隐私保护指引中的隐私声明进行解析,得到小程序隐私声明的两类句式结构,即第一类句式结构为数据使用主体-数据处理动词-隐私数据-使用目的谓词-使用目的,第二类句式结构为使用目的谓词-使用目的-数据使用主体-数据处理动词-隐私数据-明示同意子句;
5、步骤2:根据步骤1中的小程序隐私声明的两类句式结构,提取小程序隐私保护指引中的每条隐私声明的隐私数据及使用目的,得到隐私数据及使用目的的二元组集;
6、步骤3:按照隐私数据类型对步骤2中隐私声明的隐私数据及使用目的的二元组集进行划分,得到不同的使用目的组集;基于k-means文本聚类算法对预处理后的使用目的组集进行聚类,得到对应的使用目的聚类簇;基于tf-idf算法确定每个使用目的聚类簇的标签名,得到隐私数据类型的使用目的类别表;将隐私数据及使用目的的二元组集和隐私数据类型的使用目的类别表进行映射,得到小程序隐私保护指引中的隐私数据及使用目的类别的二元组集;
7、步骤4:对步骤1中的小程序解包后的代码进行静态程序分析,得到隐私数据的三类静态特征,隐私数据的三类静态特征分别为敏感api特征、页面特征和小程序特征;
8、步骤5:对于步骤4中提取的隐私数据的三类静态特征依次进行特征切割、特征过滤和特征还原,得到隐私数据的特征序列;
9、步骤6:基于tf-idf算法对步骤5中的特征序列进行向量化处理,得到特征序列的向量化表示;
10、步骤7:基于svm算法构建使用目的多分类器,所述使用目的多分类器的kernel参数设置为linear,c参数设置为1;对步骤4中小程序中隐私数据相关的静态特征进行标记,得到隐私数据和使用目的类别的已知标签数据集,将已知标签数据集输入到使用目的多分类器中进行训练,得到训练好的使用目的多分类器;
11、步骤8:将步骤6中的特征序列的向量化表示输入到步骤7得到的训练好的使用目的多分类器中进行使用目的类别预测,得到小程序代码中的隐私数据及其使用目的类别的二元组集;
12、步骤9:将步骤8中小程序代码中的隐私数据及其使用目的类别的二元组集与步骤3中的隐私保护指引文本的隐私声明的隐私数据及使用目的类别的二元组集进行一致性分析,确定移动小程序中隐私数据使用目的一致性是否存在风险。
13、所述步骤1中小程序隐私保护指引中的隐私声明的解析过程如下:
14、通过分析小程序隐私保护指引中的隐私声明的句式结构和句子成分之间的依存关系以及每个句子成分的词性,得到小程序的隐私声明的语句特征;
15、基于小程序的隐私声明的语句特征,获取小程序隐私保护指引中隐私声明的语句六个成分,即数据使用主体、数据处理动词、隐私数据、使用目的谓词、使用目的和明示同意子句;
16、将这六个成分按照成分位置划分成两类句式结构,即第一类句式结构为数据使用主体-数据处理动词-隐私数据-使用目的谓词-使用目的,第二类句式结构为使用目的谓词-使用目的-数据使用主体-数据处理动词-隐私数据-明示同意子句。
17、所述数据使用主体表示隐私声明语句的主语,在小程序隐私声明中为developer;
18、数据处理动词表示数据处理的动作,即动词,其后紧接着需要申请收集的隐私数据;数据处理动词一共有六类:collect、use、access、obtain、call和read,这六类数据处理动词构成数据处理动词列表;
19、使用目的谓词是使用目的的提示词,与动词或动名词组成目的状语从句,用于表示隐私数据的具体使用目的;使用目的谓词一共有四类:in orderto、in order forusersto,for和to;
20、明示同意子句的内容是固定的,用于表达是否需要用户明示授权同意对于隐私数据的处理,为afterobtainingyour express consent。
21、所述步骤2的具体过程如下:
22、步骤2.1:调用spacy.load方法导入en_core_web_lg模型得到nlp对象,将小程序隐私保护指引输入到nlp对象中得到一个doc对象实例;
23、步骤2.2:在步骤2.1创建的doc对象实例的隐私声明语句中查找明示同意子句并进行删除;
24、步骤2.3:遍历doc对象实例的隐私声明语句中的每个词法单元,标记出使用目的谓词、数据使用主体和数据处理动词在句中的位置;
25、步骤2.4:根据标记的数据使用主体和使用目的谓词的位置,确定隐私声明的句式结构,然后提取小程序隐私声明的隐私数据及使用目的,得到隐私数据及使用目的的二元组集,表达式如下:
26、s(d,p)={s(d,p)d∈d,p∈p}
27、其中,d表示小程序隐私数据集合,p表示使用目的集合,d表示隐私声明s中的隐私数据,p表示隐私数据d对应的使用目的。
28、所述步骤3中使用目的组集的预处理过程如下:
29、使用频率阈值τ对使用目的组集进行噪声数据过滤,得到去噪后的使用目的组集;然后使用sentencetransformer类加载预训练的句子嵌入模型对去噪后的使用目的组集中的使用目的子句进行向量化处理,得到使用目的向量化表示。
30、所述步骤3中使用目的组集的聚类过程如下:
31、步骤(a):定义使用目的组集的初始聚类范围为(kmin,kmax),其中kmin为最小聚类数,kmax为最大聚类数;对于初始聚类范围中的每个聚类数k,k∈(kmin,kmax),使用sklearn.cluster.kmeans类对使用目的组集进行聚类,同时记录每个聚类数k所对应的误差平方和sse以及轮廓系数sc;
32、步骤(b):基于初始聚类范围中的每个聚类数k和每个聚类数k所对应的误差平方和sse,绘制k-sse曲线图,根据肘方法找到误差平方和sse下降速率变缓的聚类范围(k1,k2);
33、步骤(c):对于每个聚类数k,k∈(k1,k2),找到轮廓系数sc最大的聚类数k作为最优的聚类簇数,并基于最优的聚类簇数使用sklearn.cluster.kmeans类对使用目的组集进行聚类,得到不同的使用目的聚类簇。
34、所述步骤4的具体过程如下:
35、所述敏感api特征包括隐私数据相关的敏感api调用链列表以及调用链中函数内部的常量token信息,这两种信息通过静态程序分析提取得到;敏感api调用链信息包括前向调用函数和后向调用函数;
36、所述页面特征包括页面文件名称和页面文本信息;文件名称为敏感api调用所在的页面文件名,与对应的js文件名相同;页面文本信息为页面文件中<text>标签内的文本信息,从解包后的wxml文件中获取;
37、所述小程序特征包括小程序名称、小程序类别和小程序描述;小程序名称为小程序元数据信息中的nickname字段,小程序类别为小程序元数据信息中的category_list字段,小程序描述为小程序元数据信息中的desc字段;小程序元数据信息从小程序解包后的代码文件中获取。
38、所述敏感api特征的静态程序分析具体过程如下:
39、步骤(a):对于解包后的小程序代码,从app.json文件中得到小程序的所有页面路径配置,每个页面路径下都包含js、wxml和wxss文件;
40、步骤(b):使用doublex工具生成每个js文件的程序依赖图pdg;
41、步骤(c):采用深度优先搜索算法遍历js文件的程序依赖图pdg中的每个节点,如果出现调用敏感api接口的节点组合,则进行如下操作:
42、从当前节点组合中节点后向搜索parent节点以及前向搜索children节点,并判断是否为调用表达式节点,如果是,则将当前parent节点和children节点加入到敏感api调用链列表中;判断children节点是否为value节点且children节点的类型是否为literal,如果是,则将children节点信息加入到调用链中函数内部的常量token信息中,得到隐私数据的敏感api特征。
43、所述步骤9中分析一致性的过程如下:
44、定义三种不一致的隐私披露,分别为:
45、(1)缺失披露:隐私保护指引文本的隐私声明中不存在某项隐私数据,但小程序代码的静态特征提取时有相应的敏感api接口调用;
46、(2)多余披露:隐私保护指引文本的隐私声明中存在某项隐私数据,但小程序代码的静态特征提取时没有相应的敏感api接口调用;
47、(3)使用目的不一致披露:隐私保护指引文本的隐私声明中存在某项隐私数据,小程序代码的静态特征提取时也有相应的敏感api接口调用,但经过使用目的预测得到的使用目的类别与隐私保护指引文本的隐私声明中的使用目的类别不一致;
48、根据上述三种不一致的隐私披露,判断移动小程序中隐私数据使用目的是否存在上述的隐私披露风险,如果是,则移动小程序中隐私数据使用目的不一致。
49、移动小程序中隐私数据使用目的一致性检测系统,用于实现所述的移动小程序中隐私数据使用目的一致性检测方法,包括:
50、隐私声明提取模块:用于对小程序隐私保护指引中的隐私声明进行解析,得到小程序隐私声明的两类句式结构;并基于小程序隐私声明的两类句式结构,提取小程序隐私保护指引中的每条隐私声明的隐私数据及使用目的,得到隐私数据及使用目的的二元组集;
51、使用目的分类模块:用于划分隐私声明解析模块中提取出的隐私数据及使用目的的二元组集,得到不同的使用目的组集;基于k-means文本聚类算法对预处理后的使用目的组集进行聚类,得到对应的使用目的聚类簇;基于tf-idf算法确定每个使用目的聚类簇的标签名,得到隐私数据类型的使用目的类别表;将隐私数据及使用目的的二元组集和隐私数据类型的使用目的类别表进行映射,得到小程序隐私保护指引中的隐私数据及使用目的类别的二元组集;
52、静态特征提取模块:用于对小程序解包后的代码进行静态程序分析,并提取出隐私数据的三类静态特征,隐私数据的三类静态特征分别为敏感api特征、页面特征和小程序特征;
53、静态特征处理模块:对于静态特征提取模块中提取的三类静态特征依次进行特征切割、特征过滤和特征还原,得到隐私数据的特征序列;将隐私数据的特征序列进行向量化处理,得到特征序列的向量化表示;
54、使用目的多分类器构建与训练模块:用于构建使用目的多分类器,并对构建的使用目的多分类器进行训练,得到训练好的使用目的多分类器;
55、使用目的预测模块:用于将静态特征处理模块中的特征序列的向量化表示输入使用目的多分类器进行使用目的类别预测,得到小程序代码中的隐私数据及其使用目的类别的二元组集;
56、一致性检测模块:基于三种隐私披露风险,检测隐私保护指引中的隐私数据及使用目的类别的二元组集与小程序代码中的隐私数据及其使用目的类别的二元组集的一致性,确定移动小程序中隐私数据使用目的一致性是否存在风险。
57、与现有技术相比,本发明的有益效果如下:
58、1.本发明通过解析出小程序隐私声明的两类句式结构,对于半结构化的小程序隐私保护指引文本,具有较高的提取准确率和效率。
59、2.本发明通过提取小程序代码中的三类静态特征来预测使用目的类别,相比于基于网络流量特征具有更高的覆盖率,且无需动态运行程序,系统开销更小。
60、3.本发明通过从小程序代码中提取隐私数据使用目的相关的三类静态特征,并输入到使用目的多分类器中预测使用目的类别,提高了使用目的预测的准确率。
61、4.本发明通过定义小程序场景下三种不一致的隐私披露,从多个维度检测小程序隐私保护指引中存在的隐私披露风险,更加全面地评估小程序中潜在的隐私风险。
62、综上所述,本发明通过小程序隐私声明的两类句式结构从小程序隐私保护指引中提取隐私声明的隐私数据及使用目的,基于聚类得到不同隐私数据的使用目的类别表;通过从小程序代码中提取出与隐私数据相关的三类静态特征,基于三类静态特征训练使用目的多分类器,通过使用目的多分类器预测隐私数据的实际使用目的;通过一致性模型分析隐私数据的使用目的在隐私声明和实际使用之间的一致性,检测小程序中潜在的隐私风险;对于半结构化的小程序隐私保护指引文本,本发明的方法具有较高的提取准确率和效率;而且从多个维度检测小程序隐私保护指引中存在的隐私披露风险,更加全面地评估小程序中潜在的隐私风险。
1.移动小程序中隐私数据使用目的一致性检测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述移动小程序中隐私数据使用目的一致性检测方法,其特征在于,所述步骤1中小程序隐私保护指引中的隐私声明的解析过程如下:
3.根据权利要求2所述移动小程序中隐私数据使用目的一致性检测方法,其特征在于:
4.根据权利要求1所述移动小程序中隐私数据使用目的一致性检测方法,其特征在于,所述步骤2的具体过程如下:
5.根据权利要求1所述移动小程序中隐私数据使用目的一致性检测方法,其特征在于,所述步骤3中使用目的组集的预处理过程如下:
6.根据权利要求1所述移动小程序中隐私数据使用目的一致性检测方法,其特征在于,所述步骤3中使用目的组集的聚类过程如下:
7.根据权利要求1所述移动小程序中隐私数据使用目的一致性检测方法,其特征在于,所述步骤4的具体过程如下:
8.根据权利要求7所述移动小程序中隐私数据使用目的一致性检测方法,其特征在于,所述敏感api特征的静态程序分析具体过程如下:
9.根据权利要求1所述移动小程序中隐私数据使用目的一致性检测方法,其特征在于,所述步骤9中分析一致性的过程如下:
10.基于移动小程序中隐私数据使用目的一致性检测系统,用于实现权利要求1-9任一项所述的移动小程序中隐私数据使用目的一致性检测方法,其特征在于,包括: