一种基于用户评论的Android应用权限推理方法及装置与流程

文档序号:11216759阅读:412来源:国知局
一种基于用户评论的Android应用权限推理方法及装置与流程

本发明涉及一种应用权限推理方法及装置,属于信息安全技术领域,具体涉及一种基于用户评论的android应用权限推理方法及装置。



背景技术:

根据idc统计显示目前的移动设备的数量已经超过了pc设备,一些移动应用市场例如googleplay,上面的应用数量已经达到百万之多。数量庞大的应用,在提供给用户更多的应用选择的同时,也带来了一系列的安全问题。特别是在android平台上面,idc的一份报告显示,全球97%的手机恶意软件来自android。在这些恶意软件中,有近1/3的恶意软件通过申请超出应用功能要求的安全权限,达到窃取用户隐私等目的,这类恶意软件被称为“权限滥用”恶意软件。因此,针对移动平台的恶意软件检测,特别是“权限滥用”类恶意应用的检测一直是研究热点。目前针对移动应用的权限滥用检测方法主要有静态代码分析、应用的动态行为分析和基于自然语言处理的权限分析检测方法等。

在静态代码分析方面,主要是通过程序分析等手段,在进行程序分析前需要对安装文件进行反编译处理,提取能够描述应用行为的代码特征,然后根据预先定义检测的模式特征进行安全检测匹配。例如在利用静态代码分析的方法检测应用是否是一个权限滥用的应用,通常的做法是,首先获取应用中反编译的代码的敏感api,将这些敏感的api与android的权限做映射,得到一个基于敏感api调用的应用权限集合。将该权限集合与开发者在安装包中的manifest文件申请的权限集合作比较,即可实现权限滥用的检测。该类方法的明显不足是,在程序分析的时候,并没有考虑应用程序的功能,忽略了应用功能语义的信息,例如,对于用户而言,一个闹钟应用,无论是否调用了与read_sms有关的api,用户都认为闹钟应用不允许读取移动设备的短信,如果闹钟应用存在申请read_sms权限的行为,则会被用户认为是一个恶意的行为。另外,静态的代码分析方法还存在面对混淆代码分析时检测的准确率低下,检测时需要预先定义模式,在面临新的攻击模式时失效等一系列问题。

在动态行为分析方面,主要是将应用放在一个受监控的环境中,通过产生应用的输入,收集获取程序的系统调用序列、程序执行的轨迹以及网络数据包等能够反应程序行为的数据。然后将这些程序行为数据与预先定义好的正常的程序行为数据进行比较,如果存在一些异常的行为数据,则检测识别出恶意的应用。同样的,动态的行为分析方法存在和静态的代码分析方法存在相同的问题,在检测应用的权限时忽略了应用程序的功能,在动态程序行为分析过程中,没有考虑到应用的恶意行为与程序功能的上下文存在联系。同时,动态的程序行为分析还存在遍历路径不完备等缺陷,在检测时需要预先定义行为模式,在面临新的攻击时存在检测失效等相关问题。

自然语言处理技术是一种用来分析移动恶意软件的新途径,该方法主要是分析开发者发布在应用市场上的应用描述信息,将这些描述信息映射到具体的权限。由于应用的描述信息通常是由开发者发布并提供,不同的开发者提供的应用描述信息风格不一致,而且这些描述信息中通常会反映一些应用功能的亮点,这些都会导致应用的描述信息存在一定的语义局限性等问题,应用的描述信息不能完全的反映出应用的功能特征,这也会造成利用应用的描述信息推断应用的权限存在诸多的不足。



技术实现要素:

本发明主要是解决现有技术所存在的上述的技术问题,提供一种基于用户评论的android应用权限推理方法及装置。该方法及装置通过从应用市场的用户评论中挖掘应用程序的功能特征,建立应用程序的功能特征与应用程序权限的联系,从用户对应用程序功能理解的角度以及用户对应用程序关注的安全和隐私的视角出发,推理应用程序的权限请求。

本发明的上述技术问题主要是通过下述技术方案得以解决的:

一种基于用户评论的android应用权限推理方法,包括:

步骤1,基于应用的评论信息构建评论特征向量;

步骤2,从应用的权限文档和相关联的敏感api文档的描述信息中抽取代表应用功能语义的特征名词构成应用的功能特征向量;

步骤3,依据功能特征向量筛选用户评论数据获取与功能有关的评论;

步骤4,对与功能有关的评论进行聚类操作;

步骤5,获取聚类后每一类别的权限特征,基于应用所属类别的权限特征输出应用的权限内容。

作为优选,上述的一种基于用户评论的android应用权限推理方法,所述步骤1具体包括:

步骤1.1,识别用户评论语言;

步骤1.2,对评论进行分词操作并移除停用词;

步骤1.3,将用户评论进行词干和词源化提取,同时使用词袋(bow)模型构建评论特征向量。

作为优选,上述的一种基于用户评论的android应用权限推理方法,所述步骤2具体包括:

步骤2.1,获取应用的权限文档以及与权限相对应的敏感api文档,抽取文档中能够反映权限使用特点的名词及短语,将这些名词及短语作为种子功能语义特征词word1;

步骤2.2,获取应用描述信息中的词语,统计种子功能语义特征词word1与其他词语word2在应用描述信息中的共现频率;

步骤2.3,将与种子功能语义特征词word1共现率超过一定阈值的其他词语word2扩充至种子功能语义特征词集中。

作为优选,上述的一种基于用户评论的android应用权限推理方法,所述步骤3中基于下述公式筛选与功能有关的功能评论:

value(review)=max(f(p1,review),…,f(pn,review))

将value(review)超过一定阈值的评论作为与应用功能有关的功能评论;

式中,review为用户评论,per_feature为单词,每一个权限对应的特征向量在用户评论中出现的频率记为f(per_feature,review),特征向量的每一个单词在用户评论中出现的次数记为count(review,per_feature),评论的长度记为length(review),value(review)为功能特征向量在评论中出现的最大数值。

作为优选,上述的一种基于用户评论的android应用权限推理方法,所述步骤4中,

依据主题模型,将功能评论按照语义特征进行无监督的聚类分析;其中,主题的个数设置为权限的个数;

其中,主题模型btm模型,模型的超参α=5,β=0.01。

作为优选,上述的一种基于用户评论的android应用权限推理方法,所述步骤5中具体包括:

步骤5.1,解析每一类别对应的应用程序集合的权限信息并排序,基于选择出的前若干个权限的功能特征向量构建权限特征向量集合vp;

步骤5.4,基于类别对应的功能评论构造评论特征向量集合vw;

步骤5.5,计算权限特征向量集合vp和评论特征向量集合vw之间的相似度,将相似度高的权限的特征向量作为类别对应的权限特征向量。

一种基于用户评论的android应用权限推理装置,包括:

评论向量构建模块,基于应用的评论信息构建评论特征向量;

功能向量构建模块,从应用的权限文档和相关联的敏感api文档的描述信息中抽取代表应用功能语义的特征名词构成应用的功能特征向量;

功能评论筛选模块,依据功能特征向量筛选用户评论数据获取与功能有关的功能评论;

功能评论聚类模块,对功能评论进行聚类操作;

权限映射输出模块,获取每一类别的权限特征,基于应用所属类别的权限特征输出应用的权限内容。

作为优选,上述的一种基于用户评论的android应用权限推理装置,所述评论向量构建模块具体包括:

评论识别单元,识别用户评论语言;

分词操作单元,对评论进行分词操作并移除停用词;

评论提取单元,将用户评论进行词干和词源化处理,同时,利用词袋模型(bow)构建评论特征向量。作为优选,上述的一种基于用户评论的android应用权限推理装置,功能向量构建模块具体包括:

种子获取单元,获取应用的权限文档以及与权限相对应的敏感api文档,抽取文档中能够反映权限使用特点的名词及短语,将这些名词及短语作为种子功能语义特征词word1;

描述提取单元,获取应用描述信息中的词语,统计种子功能语义特征词word1与其他词语word2在应用描述信息中的共现频率;

特征扩充单元,将与种子功能语义特征词word1共现率超过一定阈值的其他词语word2扩充至种子功能语义特征词集中。

作为优选,上述的一种基于用户评论的android应用权限推理装置,所述功能评论筛选模块中基于下述公式筛选与功能有关的功能评论:

value(review)=max(f(p1,review),…,f(pn,review))

将value(review)超过一定阈值的评论作为与应用功能有关的功能评论;

式中,review为用户评论,per_feature为单词,每一个权限对应的特征向量在用户评论中出现的频率记为f(per_feature,review),特征向量的每一个单词在用户评论中出现的次数记为count(review,per_feature),评论的长度记为length(review),value(review)为功能特征向量在评论中出现的最大数值。

因此,相比于传统的程序分析以及动态的行为分析等方法,本发明的方法具有误报率低、能够检测新的攻击等特点。同时,本发明可以从应用程序功能的角度推理应用的权限请求。

附图说明

图1为本发明的整体框架流程图。

图2为本发明用户评论到应用权限推理模型图。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。

实施例:

用户评论的数据是用户在使用应用过程中对应用行为的一种真实体验和理解,在某种程度上真实的反映了用户对应用程序行为的感知和认识。本发明使用自然语言处理处理技术从用户评论中挖掘应用的功能特征,利用主题模型对应用程序的功能与应用权限进行建模,实现用户评论到应用权限的映射。

本发明通过分析应用市场上的应用描述信息,获取应用的功能特征,利用这些功能特征筛选与功能有关的用户评论,由于描述不同功能特征的用户评论其语义的统计特征不尽相同,通过主题模型对这些用户评论进行无监督的聚类,这样实现聚类之后的每一个类别中的用户评论均描述相同或相似的功能特性,由于每一条用户评论均对应一个应用,综合分析聚类后每个类别下用户评论的特点以及应用申请的权限,将每一个类别映射到唯一的一个权限特征,最后,统计一个应用的评论分布情况,得出该应用依据用户评论所推理出的权限信息。

具体来说,本发明方法具体包括用户评论的选择,用户评论的聚类以及用户评论到应用权限的推理模型构建等三个部分。本发明的方法框架流程图见图1所示。

下面对各部分行详细说明。

1、用户评论处理

用户评论的选择部分包括以下步骤:

步骤1.用户评论的预处理。由于应用市场是一个开放的环境,用户可以自由的上传评论信息到应用市场中,这些评论信息可能存在语言不同、拼写错误、风格各式各样等特点。该步骤的用户评论预处理目的是利用bow(词袋模型)将不同的用户评论处理成统一的特征向量格式。具体如下:

步骤1.1识别用户评论语言。不同语言国家的用户通常会在应用市场中发布不同语言的用户评论,在该步骤中仅仅选择那些英文撰写的用户评论。

步骤1.2移除停用词。在评论中存在那些诸多没有实际意义的单词,例如this,a,an等,在该步骤中剔除这些无实际含义的单词。

步骤1.3用户评论词干、词源化提取。在英文中单词有多种变化形式,例如单词run,由于不同语境的需要会出现running,runs等形式,在该步骤中利用自然语言处理技术中通常提供的词源化技术,将单词进行词源化处理,将不同变化形式的单词统一为源单词的样式。

步骤2.应用程序功能语义特征提取。

用户评论是一种用户对应用行为的理解,其中有应用功能请求,应用程序错误报告,功能特征等数据。该步骤是为了构建能够描述应用功能的特征向量,利用这些功能特征向量从评论中筛选出描述应用功能的相关评论。具体如下:

步骤2.1权限相关文档特征提取。在android官方权限文档中描述了权限的使用条件以及权限对系统资源访问控制的诸多信息,找出权限文档以及与权限相对应的敏感api文档,该步骤中人工的抽取这些说明文档中能够反映权限使用特点的名词以及名词短语,将这些名词和名词短语作为功能语义特征向量。

步骤2.2应用描述信息功能特征抽取。自动化的分析googleplay中的应用描述信息,找出其中的所有名词,以每一条描述信息作为基本分析对象,统计每一个名词与其他名词出现的次数。在该步骤中,统计能够反映功能特征的单词对<word1,word2>出现的频率信息。

步骤2.3功能语义特征扩充。利用步骤2.1和步骤2.2的结果,扩充应用程序功能的语义特征,将步骤2.1中与权限有关的功能特征作为种子,依据步骤2.2中输出得出的单词对字典。将超过一定阈值的词对记录扩充到步骤2.1的功能特征向量中。该步骤中得出经过扩充后的功能语义特征向量。

步骤3.与功能有关的用户评论选择。该步骤是依据步骤2中得出的功能特征向量,从步骤1中筛选出与功能有关的用户评论。每一个权限对应的特征向量在用户评论中出现的频率记为f(per_feature,review),特征向量的每一个单词在用户评论中出现的次数记为count(review,per_feature),评论的长度记为length(review),具体的评论选择如下:

value(review)=max(f(p1,review),…,f(pn,review))

记录功能特征向量在评论中出现最大的数值,记为value(review),当该数值超过一定的阈值时,即认为该条评论与功能有关。该步骤输出与应用功能有关的用户评论。

2、用户评论的聚类

用户评论的聚类包括以下步骤:

依据功能有关的评论和主题模型,将用户评论按照语义特征进行无监督的聚类分析。其中,主题的个数设置为权限的个数,在本发明中权限的个数设置为10,即主题的个数定义为10。这10个权限分别是send_sms、read_sms、call_phoneaccess_coarse_location、access_fine_location、read_contacts、record_audio、body_sensor、camera、read_phone_state。由于用户评论多是短文本内容,因此本发明中选择btm(参考:https://github.com/xiaohuiyan/btm)模型训练学习用户评论,其中模型的超参α=5,β=0.01。该步骤将筛选后与功能有关的用户评论,按照语义特征将这些评论输出到10个类别中。

3、应用权限的推理

在用户评论聚类部分,不同的用户评论会被聚到不同的类别中。该部分主要是将这些不同的类别映射到具体的权限。

针对每一个类别获取应用程序的集合,解析提取这些应用程序集合中的权限信息,将这些权限按照数量大小进行排名,选择前5个权限(这5个权限属于在用户评论聚类中提到的10个权限),将这5个权限根据在应用程序功能语义特征提取部分形成的特征向量构建特征向量集合vp。针对利用主题模型进行语义聚类形成的主题,每一个主题其单词的语义空间分布均不同,每一个单词出现的概率不同,构建具有权重的特征向量集合vw。利用余弦相似性距离计算集合vp和vw的相似性距离,其中,vp中每一个单词的权重均设置为相同,值相加等于1。最后,比较其大小,选择相似性距离最大的特征向量为该类别的权限特征。

从以上描述可知,本发明从应用市场的用户评论中分析应用程序的功能,将这些功能与应用程序的权限建立联系,实现应用程序权限推理。本发明从用户对应用程序功能理解的角度以及用户对应用程序关注的安全和隐私的视角出发,推理应用程序的权限请求。相比于传统的程序分析以及动态的行为分析等方法,本发明的方法具有误报率低、能够检测新的攻击等特点。

本文中所描述的具体实施案例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施案例做各种各样的修改或补充或采用类似的方式替代,例如在语言识别方面,可以选择其他的语言,例如中文等,另外,在应用权限的选择中,可以不采用本发明中提到的十种权限,可以选择其他种类的权限类型。但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1