安卓应用程序中非权限相关隐私数据的识别方法

文档序号:9249430阅读:407来源:国知局
安卓应用程序中非权限相关隐私数据的识别方法
【技术领域】
[0001] 本发明属于程序信息安全检测技术领域,具体设及利用自然语言处理、机器学习 技术和静态信息流分析技术,识别Amlroid应用程序中非权限相关的隐私数据的方法。
【背景技术】
[000引谈及Amlroid系统中的用户隐私信息,大致可分为两类,第一类为权限相关的用 户隐私,第二类为非权限相关的用户隐私。其中,权限相关的用户隐私指的是通过调用 Amlroid系统权限模型提供的函数接口所能获得的用户隐私信息,如通过调用getlMElO 函数获取手机序列号、调用getLocationO函数获取用户地理位置信息等。由于安卓自身 通过权限保护机制来管控该样的隐私数据,在调用此类函数获取隐私信息之前必须声明 相应的权限,故称此类隐私信息为权限相关的隐私信息。
[0003] 相对而言,非权限相关的用户隐私设及范围更广,监控难度更大。此类隐私并非应 用通过调用系统函数获得,而是通过直接与用户交互获取。如用户在使用购物类应用时所 输入的网银账号信息,或是其他用户名、密码等信息,都属于非权限相关的用户隐私范畴。 应用在获取到此类信息之后,可能将其W文件形式进行持久化存储或通过网络向服务器发 送W实现特定功能。
[0004] 对于权限相关的隐私数据,由于其敏感数据源固定巧日上述getlMElO、 getLocationO等函数),故可通过传统的静态信息流分析,对数据进行追踪和监控;而对于 非权限相关的隐私数据而言,敏感数据源将随着具体应用程序的不同而不同,敏感数据与 普通数据混杂在用户界面当中,因为它们均为用户使用应用所产生的数据。故从程序分析 的角度,无法通过信息流分析、污点跟踪技术等对其进行有效的检测分析。

【发明内容】

[0005] 本发明的目的是提供一种支持大规模批量、离线分析的,Amlroid应用程序中非权 限相关隐私数据的自动识别方法。
[0006] 本发明提供的Amlroid应用程序中非权限相关的隐私数据的识别方法,具有W下 特点: (1)仅凭借对代码的静态分析识别敏感数据源,无需额外的用户交互信息; (2 )具备自适应能力,分析应用的速度快、资源消耗低; (3)W界面元素为依据对用户隐私进行识别,并自动判定界面元素与后台函数的关系. 由于非权限相关的用户隐私数据设及范围较广,且不同类别的用户隐私设及的文本词 汇都有较大差异,为了便于解释说明,本发明将用户隐私数据总结为=类: (1)AccountCredentialsandUserProfiles(账户相关的认证信息W及用户数据); (2) Location(地理位置数据); (3) Financial(金融支付类隐私数据)。
[0007] 对于不同类别的隐私数据,本发明所关注的文本特征略有差别。
[0008] 本发明提供的Amlroid应用程序中非权限相关的隐私数据的识别方法,其架构如 附图1所示,整个识别过程分为四个阶段: 1、数据预处理,包括;提取资源文件,文本预处理。 提取资源文件;首先对Android应用程序进行逆向工程,提取得到描述界面的资源文 件。在An化oid应用程序中,用户交互界面(UI)是由若干个界面元素所组成的,不同种类 的界面元素提供了展示信息、接受输入等不同功能。Amlroid系统主要使用XML文件来描述 用户交互界面。
[0009] 对于逆向后的Amlroid应用程序,其描述界面的XML文件散布于不同的文件夹中。 其中,用W描述UI界面的布局文件位于文件夹下;界面元素和其16进制ID的 对应关系存储于如/Wic. 文件中;界面中所展示的文本(即界面文本)位于/ 文件中。上述资源文件的内容如附图2的样例所示。
[0010] 由于本发明分析的重点在于应用的界面元素,所W本发明关注的信息主要有两 类:界面文本和布局信息。
[0011] 界面文本指的是用户在应用界面上所能看到的文本数据。对于Amlroid应用程序 而言,其W键值对形式存于/文件中,并可通过鑽签7^ 的形式引用该些文本常量,也有部分文本被直接写在界面布局文件中;而布局信息对应于 录下的XML文件中的内容,布局信息描述了界面元素的排布方式,其中不 仅包含了上述的界面文本,还含有界面元素的其他属性,如id,hint等。本发明提取了XML 文件中出现的文本、界面元素中id、text、contentDescription、prompt、hint等属性中所 出现的文本W及各个界面元素相互之间的位置关系。本发明所提取的信息样例如附下表1 所示: 表1
文本预处理;包括文本分词、文本过滤、词干提取。
[0012] 文本分词;对于上述获得的文本资源,有部分是普通的自然语言,而诸如界面布 局文件中的id属性,往往是W变量名形式存在的文本,如"phonenumber"可能被表示为 "phone_number"或"phoneNumber",需要根据其分隔符或大小写对其进行分词趣有一些文 本常量是由几个单词简单拼接而成的,如"confirmpasswor壯ield",对于此类文本,本发明 从WordNet上获取了词表,并不断从文本中切分出词表中所能匹配到的最长词,如此上述文 本被切分为"confirm"、"password"、"field"。
[0013] 文本过滤;对于处理后的文本,去除其中的数字和符号,仅保留单词。同时去除其 中的停用词,如"iS"、"the"等不影响语义的单词。
[0014] 词干提取;由于本发明关注的是文本所要传达的语义,故需要通过词干提取来剔 除时态、词性的影响。
[0015] 经过文本预处理之后,文本的变化如附图3所示。
[0016]、隐私相关文本的分析 本发明借助卡方检验从一组特定的样本中提取隐私相关的文本。本发明在此处的观察 是:隐私相关的单词更倾向于在特定的用户交互界面中群聚出现,如登陆界面、注册界面、 设置界面等。通过设定一些"种子词",借助卡方检验本发明便能提取训练集文本中与其相 关度较高的词,从而扩展本发明的敏感词列表。
[0017] 卡方检验;卡方检验是统计学中一种常用的特征提取方法。在本发明中,通过考察 两个词在正负样本中共同出现的次数,便可利用卡方检验来衡量两个词的相关程度。
[0018] 本发明首先指定了一系列能够准确描述用户隐私巧日email、location、credit card等)的词汇,称为种子词。每个界面布局样本文件中都包含了界面文本。基于W下两 个条件,种子词将被用W判定一个界面布局样本文件是为隐私相关的界面: (1) 存在"动词+种子词"的模式,如(save,password); (2) 存在"物主代词(主要是"your") +种子词"的模式,如(your,username)。
[0019] 上述模式的出现,意味着应用在此界面中要求用户输入隐私相关的信息,对于 满足上述两个条件之一的界面布局样本文件,将其标记为隐私相关的(正样本),同时由于 Amlroid系统允许界面布局文件相互嵌套,将其中所嵌套的其他界面布局文件也标记为正 样本;反之,若界面布局样本文件未满足该两个条件,则标记其为非隐私相关的(负样本)。
[0020] 对于正样本中出现的单词,本发明对其进行卡方检验,并将结果按数值从高到低 进行排序。单词具有高数值便意味着其能够更好的表征其所在的界面或元素是隐私相关 的。
[0021] 下述例子能够清晰地表现本发明在获取Financial相关的文本时的过程。首先本 发明设定"creditcard"为种子词,在附图1中所示界面所对应的界面布局文件中,出现了 (add,creditcard)模式,满足了上述第一个条件,故被标记为正样本,其余类似的界面布 局文件也将同样被标记为正样本。通过卡方检验,本发明便可获得诸如"expire"、"date"、 "year"、"month"等词。
[0022] 噪声过滤;卡方检验能够拓展隐私相关的词表,却不可避免的引入噪声,其原因在 于并非所有隐私相关界面上出现的单词都是和隐私有关的。为了获取准确的词表,避免误 报,本发明在噪声过滤阶段引入少许人工干预,通过遍历卡方检验结果剔除与隐私无关的 词汇。
[0023]、非权隐私相关界面元素的识别 本发明使用机器学习的方法,基于对元素的文本语义分析,实现非权隐私相关界面元 素的自动识别。通过训练集训练获得分类器,对于给定的未分类界面元素,本发明能够判定 其文本语义是否是与隐私相关。
[0024] 特征选取;本发明选取上一步所挑选出的隐私相关单词作为特征。单个隐私相关 文本的出现并不足W标识一个界面是否为隐私相关的,但通过多个单词的组合,就能够有 效地评判一个界面是否为与隐私相关,该是由于一个界面的主题将随着单词的增加而逐渐 清晰。同时本发明也将界面元素之间的上下文关系纳入了考虑的范畴,对于某个界面元素, 本发明不仅考虑元素自身的文本,还将考虑其前后兄弟节点的文本。如附图1所示,绝大多 数的输入框的输入内容,其实是由其旁边的静态标签所描述的。将前后兄弟节点纳入考虑 范围,能够有效的增加语义信息,从而提高判定的准确率。对于每个界面元素,其特征向量 的长度为词表的长度,特征向量的每一维度为对应单词的词频,此处的词频为元素自身和 其前后兄弟节点的词频和。
[002引训练集:对于Amlroid应用而言,为了使开发者能够限制输入框所接受的输入类 型,An化oid系统提供了an化oid:i吨utType属性。例如,若一个输入框的i吨utType为textEmailAcMress,则用户必须在此输入框内输入email地址。在an化oid:i吨utType的 取值范围中,就有一些属性值表征了对应输入框将接收本发明所关注的隐私数据,属性值 列表如表2所示。
[0026] 表 2
对于那些具有inputType属性,且属性值在上述取值范围之内的元素,本发明将其标 记为训练集中的正样本。同时,由于Financial相关的正样本无法通过上述手段获得,本发 明人工标注了一定量的训练集作为补充。
[0027] 分类器选择;分类器的选择并非本发明中的重要问题,对于一组良好设计的特征 向量和合理规范的训练集而言,各个训练器的表现并无太大差距。在此本发明选用支撑向 量机SVM作为本发明的分类器。
[0028] 、基于代码静态信息流分析的结果过滤 上述的识别手段完全基于界面元素的语义信息,而通过检测界面元素背后的代码行 为,本发明能够了解一个元素是否真正接受了用户的输入,从而能够过滤那些虽然具有隐 私相关的语义,却不具备获取隐私数据能力的界面元素巧日一个标有"yourpassword"的静 态柄签)。
[0029] 用户输入数据是在用户与应用交互的过程中生成的。在Amlroid系统中,应用要 从用户交互界面中获取数据必须通过调用特定API来完成,同时应用获取用户输入数据
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1