当前位置: 首页 > 专利查询>复旦大学专利>正文

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

技术编号:12178921 阅读:63 留言:0更新日期:2015-10-08 17:05
本发明专利技术属于程序信息安全检测技术领域,具体为安卓应用程序中非权限相关隐私数据的识别方法。本发明专利技术方法分为数据预处理、隐私相关文本的分析、非权隐私相关界面元素的识别、基于代码静态信息流分析的果过滤四个阶段,主要针对处于Android系统的权限模型的保护范围之外的Android应用程序中非权限相关的隐私数据,将机器学习技术与传统静态信息流分析技术相结合进行识别。通过对此类隐私数据识别,能够将其标记为敏感数据源,进一步结合传统静态信息流分析检测技术或者动态污点信息跟踪检测技术,为此类隐私数据的监控和保护提供基础,从而降低用户隐私数据的泄露风险。

【技术实现步骤摘要】

本专利技术属于程序信息安全检测
,具体设及利用自然语言处理、机器学习 技术和静态信息流分析技术,识别Amlroid应用程序中非权限相关的隐私数据的方法。
技术介绍
[000引谈及Amlroid系统中的用户隐私信息,大致可分为两类,第一类为权限相关的用 户隐私,第二类为非权限相关的用户隐私。其中,权限相关的用户隐私指的是通过调用 Amlroid系统权限模型提供的函数接口所能获得的用户隐私信息,如通过调用getlMElO 函数获取手机序列号、调用getLocationO函数获取用户地理位置信息等。由于安卓自身 通过权限保护机制来管控该样的隐私数据,在调用此类函数获取隐私信息之前必须声明 相应的权限,故称此类隐私信息为权限相关的隐私信息。 相对而言,非权限相关的用户隐私设及范围更广,监控难度更大。此类隐私并非应 用通过调用系统函数获得,而是通过直接与用户交互获取。如用户在使用购物类应用时所 输入的网银账号信息,或是其他用户名、密码等信息,都属于非权限相关的用户隐私范畴。 应用在获取到此类信息之后,可能将其W文件形式进行持久化存储或通过网络向服务器发 送W实现特定功能。 对于权限相关的隐私数据,由于其敏感数据源固定巧日上述getlMElO、 getLocationO等函数),故可通过传统的静态信息流分析,对数据进行追踪和监控;而对于 非权限相关的隐私数据而言,敏感数据源将随着具体应用程序的不同而不同,敏感数据与 普通数据混杂在用户界面当中,因为它们均为用户使用应用所产生的数据。故从程序分析 的角度,无法通过信息流分析、污点跟踪技术等对其进行有效的检测分析。
技术实现思路
本专利技术的目的是提供一种支持大规模批量、离线分析的,Amlroid应用程序中非权 限相关隐私数据的自动识别方法。 本专利技术提供的Amlroid应用程序中非权限相关的隐私数据的识别方法,具有W下 特点: (1)仅凭借对代码的静态分析识别敏感数据源,无需额外的用户交互信息; (2 )具备自适应能力,分析应用的速度快、资源消耗低; (3)W界面元素为依据对用户隐私进行识别,并自动判定界面元素与后台函数的关系. 由于非权限相关的用户隐私数据设及范围较广,且不同类别的用户隐私设及的文本词 汇都有较大差异,为了便于解释说明,本专利技术将用户隐私数据总结为=类: (1)AccountCredentialsandUserProfiles(账户相关的认证信息W及用户数据); (2) Location(地理位置数据); (3) Financial(金融支付类隐私数据)。 对于不同类别的隐私数据,本专利技术所关注的文本特征略有差别。 本专利技术提供的Amlroid应用程序中非权限相关的隐私数据的识别方法,其架构如 附图1所示,整个识别过程分为四个阶段: 1、数据预处理,包括;提取资源文件,文本预处理。 提取资源文件;首先对Android应用程序进行逆向工程,提取得到描述界面的资源文 件。在An化oid应用程序中,用户交互界面(UI)是由若干个界面元素所组成的,不同种类 的界面元素提供了展示信息、接受输入等不同功能。Amlroid系统主要使用XML文件来描述 用户交互界面。 对于逆向后的Amlroid应用程序,其描述界面的XML文件散布于不同的文件夹中。 其中,用W描述UI界面的布局文件位于文件夹下;界面元素和其16进制ID的 对应关系存储于如/Wic. 文件中;界面中所展示的文本(即界面文本)位于/ 文件中。上述资源文件的内容如附图2的样例所示。 由于本专利技术分析的重点在于应用的界面元素,所W本专利技术关注的信息主要有两 类:界面文本和布局信息。 界面文本指的是用户在应用界面上所能看到的文本数据。对于Amlroid应用程序 而言,其W键值对形式存于/文件中,并可通过鑽签7^ 的形式引用该些文本常量,也有部分文本被直接写在界面布局文件中;而布局信息对应于 录下的XML文件中的内容,布局信息描述了界面元素的排布方式,其中不 仅包含了上述的界面文本,还含有界面元素的其他属性,如id,hint等。本专利技术提取了XML 文件中出现的文本、界面元素中id、text、contentDescription、prompt、hint等属性中所 出现的文本W及各个界面元素相互之间的位置关系。本专利技术所提取的信息样例如附下表1 所示: 表1文本预处理;包括文本分词、文本过滤、词干提取。 文本分词;对于上述获得的文本资源,有部分是普通的自然语言,而诸如界面布 局文件中的id属性,往往是W变量名形式存在的文本,如"phonenumber"可能被表示为 "phone_number"或"phoneNumber",需要根据其分隔符或大小写对其进行分词趣有一些文 本常量是由几个单词简单拼接而成的,如"confirmpasswor壯ield",对于此类文本,本专利技术 从WordNet上获取了词表,并不断从文本中切分出词表中所能匹配到的最长词,如此上述文 本被切分为"confirm"、"password"、"field"。 文本过滤;对于处理后的文本,去除其中的数字和符号,仅保留单词。同时去除其 中的停用词,如"iS"、"the"等不影响语义的单词。 词干提取;由于本专利技术关注的是文本所要传达的语义,故需要通过词干提取来剔 除时态、词性的影响。 经过文本预处理之后,文本的变化如附图3所示。、隐私相关文本的分析 本专利技术借助卡方检验从一组特定的样本中提取隐私相关的文本。本专利技术在此处的观察 是:隐私相关的单词更倾向于在特定的用户交互界面中群聚出现,如登陆界面、注册界面、 设置界面等。通过设定一些"种子词",借助卡方检验本专利技术便能提取训练集文本中与其相 关度较高的词,从而扩展本专利技术的敏感词列表。 卡方检验;卡方检验是统计学中一种常用的特征提取方法。在本专利技术中,通过考察 两个词在正负样本中共同出现的次数,便可利用卡方检验来衡量两个词的相关程度。 本专利技术首先指定了一系列能够准确描述用户隐私巧日email、location、credit card等)的词汇,称为种子词。每个界面布局样本文件中都包含了界面文本。基于W下两 个条件,种子词将被用W判定一个界面布局样本文件是为隐私相关的界面: (1) 存在"动词+种子词"的模式,如(save,password); (2) 存在"物主代词(主要是"your") +种子词"的模式,如(your,username)。 上述模式的出现,意味着应用在此界面中要求用户输入隐私相关的信息,对于 满足上述两个条件之一的界面布局样本文件,将其标记为隐私相关的(正样本),同时由于 Amlroid系统允许界面布局文件相互嵌套,将其中所嵌套的其他界面布局文件也标记为正 样本;反之,若界面布局样本文件未满足该两个条件,则标记其为非隐私相关的(负样本)。 对于正样本中出现的单词,本专利技术对其进行卡方检验,并将结果按数值从高到低 进行排序。单词具有高数值便意味着其能够更好的表征其所在的界面或元素是隐私相关 的。 下述例子能够清晰地表现本专利技术在获取Financial相关的文本时的过程。首先本 专利技术设定"creditcard"为种子词,在附图1中所示界面所对应的界面布局文件中,出现了 (add,creditc本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN104966031.html" title="安卓应用程序中非权限相关隐私数据的识别方法原文来自X技术">安卓应用程序中非权限相关隐私数据的识别方法</a>

【技术保护点】
一种安卓应用程序中非权限相关隐私数据的识别方法,将用户隐私数据分为三类:账户相关的认证信息以及用户数据、地理位置数据、金融支付类隐私数据;其特征在于识别的具体步骤分为四个阶段:一、数据预处理,包括:提取资源文件、文本预处理;其中:提取资源文件:首先采用Apktool对Android应用程序进行逆向工程,提取得到描述界面的资源文件;对于逆向工程后的Android应用程序,其描述界面的XML文件散布于不同的文件夹中;其中,用以描述用户交互界面(UI)的布局文件位于res/layout文件夹下;界面元素和其16进制ID的对应关系存储于res/value/public.xml文件中;界面中所展示的文本即界面文本位于/res/values/strings.xml文件中;文本预处理:使用Python的NLTK工具包进行文本预处理,包括文本分词、文本过滤、词干提取;其中:文本分词:对于上述获得的资源文件中,以变量名形式存在的文本,根据其分隔符或大小写对其进行分词;对于一些文本常量是由几个单词简单拼接而成的,从WordNet上获取词表,并不断从文本中切分出词表中所能匹配到的最长词;文本过滤:对于处理后的资源文件,去除其中的数字和符号,仅保留单词;同时去除其中的停用词;词干提取:通过Porter词干提取算法,剔除时态、词性的影响,减小单词形态变化;二、隐私相关文本的分析通过设定少量“种子词”,借助卡方检验,提取训练集文本中与其相关度较高的词,从而扩展敏感词列表,获取更加完整的隐私相关文本:种子词是指定一系列能够准确描述用户隐私的词汇;由于每个界面布局样本文件中都包含了界面文本,在界面文本当中,通过判断是否包含种子词,以及下面的约束条件来判定一个界面布局样本文件是为隐私相关的界面:(1)存在“动词+种子词”的模式;(2)存在“物主代词+种子词”的模式;满足上述两个条件之一的界面布局样本文件,将其标记为隐私相关界面即正样本,同时由于Android系统允许界面布局文件相互嵌套,将其中所嵌套的其他界面布局文件也标记为正样本;反之,若界面布局样本文件未满足这两个条件,则标记其为非隐私相关界面即负样本;对于正样本中出现的所有单词进行卡方检验,并将结果按数值从高到低进行排序;单词具有高数值意味着其能够更好的表征其所在的界面或元素是隐私相关的;噪声过滤:卡方检验能够拓展隐私相关的词表,却不可避免的引入噪声,为此,在噪声过滤阶段引入少许人工干预,通过遍历卡方检验结果剔除与隐私无关的词汇;三、非权隐私相关界面元素的识别使用机器学习的方法,基于对界面元素的文本语义分析,实现非权隐私相关界面元素的自动识别;通过训练集训练获得分类器,对于给定的未分类界面元素,判定其文本语义是否是与隐私相关;其中包括:特征选取:选取隐私相关文本分析中所挑选出的隐私相关单词作为特征;并通过多个单词的组合,有效地评判一个界面是否为与隐私相关;对于每个界面元素,其特征向量的长度为词表的长度,特征向量的每一维度为对应单词的词频,此处的词频为元素自身和其前后兄弟节点的词频之和;训练集:对于Android应用而言, Android系统提供了android:inputType属性;在android:inputType的取值范围中,有一些属性值表征了对应输入框将接收所关注的隐私数据;对于那些具有inputType属性,且属性值包含“password”,“email”,“postaladdress”,“phonenumber”的元素,将其标记为训练集中的正样本;同时,人工选取部分Financial相关隐私输入元素作为正样本的补充;负样本选取与正样本等量,包含任意敏感词但是不属于隐私相关的界面元素;;分类器选择:选用支持向量机SVM作为本专利技术的分类器;四、基于代码静态信息流分析的结果过滤对于上一步中获得的所有界面元素,通过静态信息流分析确定其是否真正接受用户输入,进一步剔除只具有隐私相关语义,但不具备隐私获取能力的静态界面元素;过滤条件:对于步骤三中分析得出的任意界面元素,以其唯一元素ID作为信息流分析源点,查看其在Android生命周期中的相应代码特征;如果该元素存在以getText()函数为终点之一, 且处在包含Onclick()函数的下游,即可判断为该元素确实接受了用户的数据输入;经过过滤后,所获取到符合上述代码特征的界面元素ID集合即对应于界面上接收非权限相关的隐私数据的界面元素集合。...

【技术特征摘要】

【专利技术属性】
技术研发人员:杨珉杨哲慜南雨宏周顺帆张源
申请(专利权)人:复旦大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1