(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211075112.4
(22)申请日 2022.09.03
(71)申请人 复旦大学
地址 200433 上海市杨 浦区邯郸路2 20号
(72)发明人 杨珉 杨哲慜 李帅 花楠
(74)专利代理 机构 上海正旦专利代理有限公司
31200
专利代理师 陆飞 陆尤
(51)Int.Cl.
G06F 21/57(2013.01)
G06F 21/62(2013.01)
G06K 9/62(2022.01)
G06N 20/00(2019.01)
(54)发明名称
一种安卓应用 用户隐私泄 露漏洞识别方法
(57)摘要
本发明属于软件漏洞挖掘技术领域, 具体为
一种安卓应用用户隐私泄露漏洞识别方法。 本发
明包括: 双向程序切片分析, 基于关联分析及机
器学习方法辅助的隐私信息识别, 以及非单射数
据变换分析。 其中双向程序切片分析用于检测安
卓应用从服务器端接收的数据以及判断它们是
否流向了用户界面接口函数; 基于关联分析及机
器学习方法辅助的用户隐私信息识别技术能够
全面地分析出上述服务器端返回的信息里哪些
属于其他用户的隐私信息; 非单射数据变换分析
用于检测用户数据在呈现给用户之前在客户端
进行了怎样的变换, 进而判断是否遵守了 “数据
最小化”原则以及有无隐私风险。
权利要求书2页 说明书6页 附图2页
CN 115470494 A
2022.12.13
CN 115470494 A
1. 一种安卓应用用户隐私泄露漏洞识别方法, 所识别的漏洞是由安卓应用客户端接
收的其他用户隐私信息与实际呈现在用户界面上的其他用户信息不一致所导致的用户隐
私泄露漏洞; 其特 征在于, 安卓应用 用户隐私泄 露漏洞识别方法具体分为 三个阶段:
第一阶段, 基于程序切片技 术的静态 代码预分析
这阶段的任务是识别存储用户信 息的代码数据结构, 以及 分析这些信 息如何被显示到
用户界面上; 具体地, 预分析分为前向污点分析和后向污点分析两部 分; 前向污点分析是追
踪从网络接口流动到中间数据结构的信息, 即以标准网络接口为起点, 分析信息流向的中
间数据结构; 后向污点分析是追踪信息从中间数据结构流动到用户界面的过程, 即以标准
的用户界面接口为起点, 分析信息来自哪些中间数据结构以及信息在显示至界面上前经过
何种变换; 这一阶段的输出信息是前向污点分析和后向污点分析 交汇的中间数据结构以及
识别出的变换操作;
第二阶段, 其 他用户的隐私信息识别
这阶段的任务是分析出网络接口接收到的信 息里哪些为属于其他用户的隐私信 息, 所
述其他用户是指区别于 当前使用应用的用户; 利用关联分析技术与机器学习方法分析代码
中的包含语义的信息, 确定哪些中间数据结构存储用户信息, 并进一步判断是否存储其他
用户的隐私信息;
第三阶段, 基于非单射变换分析技 术的风险检测
这阶段的任务是通过判断用户隐私数据流动到用户界面过程中的变换操作是否为单
射, 来确定是否存在用户隐私泄 露漏洞。
2.根据权利要求1所述的安卓应用用户隐私泄露漏洞识别方法, 其特征在于, 第 一阶段
中:
所述前向污点分析, 是从标准的网络库函数出发; 具体参考权威排名网站AppBrain所
提供的第三方网络库使用情况数据, 整理安卓应用最常用的网络库接口作为前向污点分析
的起点; 同时整理安卓应用中最常用的反序列化第三方库, 作为识别中间数据结构的标识;
当前向分析分析到 常用的反序列化库的反序列化接口时 记录此处生成的中间数据结构的
信息;
所述后向污点分析, 是从标准的用户界面函数出发; 具体整理了安卓开发文档提供的
所有标准的用户界面函数; 另外对样本应用代码 中的视图组件使用情况进行统计, 选取使
用频率较高的视图组件, 并且将它们对应的标准用户界面函数作为后向污点分析 的起点;
当后向分析分析到中间数据结构时, 记录此处中间数据结构的信息 。
3.根据权利要求1所述的安卓应用用户隐私泄露漏洞识别方法, 其特征在于, 第 二阶段
中, 利用代码中的语义信息帮助识别用户隐私信息以及区分当前用户和其他用户的 隐私信
息; 具体而言, 利用中间数据结构的名称以及中间数据结构成员的名称所包含的语义信息
帮助判别其是否是用于存储用户信息的中间数据结构; 利用网络请求、 中间数据结构的名
称以及用户界面中包 含的语义信息帮助区分用户信息为当前用户隐私或是其 他用户隐私。
4.根据权利要求3所述的安卓应用用户隐私泄露漏洞识别方法, 其特征在于, 第 二阶段
中:
识别敏感用户数据: 训练一个二分类机器学习模型, 用于有效识别 中间数据结构名称
中的语义信息, 并保留被判定为存储敏感用户数据的中间数据结构 内的所有成员信息; 接权 利 要 求 书 1/2 页
2
CN 115470494 A
2着采用关联分析方法, 利用WordNet、 ConceptNet等语义词典提供的关联信息对这些保留下
来的信息词进行基于语义关联的分类; 由此得到一个较为完整的隐私词集; 与这个词集合
相关联的任何中间数据结构的成员变量会被识别出来;
识别敏感用户数据的主体是否为其他用户: 前一步骤识别出的敏感用户数据包括其他
用户的数据与当前用户的数据, 需要排除那些属于 当前用户的数据以减少漏洞识别结果中
的误报; 根据观察, 应用程序代码中包含一些能够帮助区分其他用户和当前用户的语义信
息, 具体包括: (1) 网络请求中的语义信息; (2) 中间数据结构的名称, (3) 用户界面中包含的
语义信息; 基于以上这三方面的语义信息训练一个二分类机器学习模型, 用于判断敏感用
户数据的主体是否为 其他用户。
5.根据权利要求4所述的安卓应用用户隐私泄露漏洞识别方法, 其特征在于, 第 三阶段
中:
传输到客户端的数据与用户界面实际呈现的数据之间的不一致, 其数学上是一种非单
射的关系; 表现为两种情况: 第一种, 传输到客户端的敏感用户数据并没有流动到用户界面
上, 即无论数据的值是什么, 其在用户界面上显示的值皆为 “空”, 其数学本质是非单射性
质, 属于所述的 “不一致”问题; 第二种, 数据在流动到用户界面上之前经过非单射的变换操
作, 也将发生所述的 “不一致”问题; 对于第一种情况可以在代码预分析阶段进 行识别; 对于
第二种情况, 设计一种通用的检测方案: 构建一个稻草人虚拟用户档案, 针对一些常用的用
户属性赋予合理的值, 同时对虚拟稻草人用户的属性值进 行一些微小的扰动以产生不同但
是互相临近的值, 让数据变换 的操作作用于这些互相临近的值; 如果不同的值经过数据变
换操作产生了相同的结果, 则 说明数据变换操作是非单射的, 即这里存在所关注的不一致
的漏洞。权 利 要 求 书 2/2 页
3
CN 115470494 A
3
专利 一种安卓应用用户隐私泄露漏洞识别方法
文档预览
中文文档
11 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共11页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-18 22:30:06上传分享