掌桥专利:专业的专利平台
掌桥专利
首页

基于用户意图的安卓资源权限动态管理系统及其实现方法

文献发布时间:2023-06-19 12:05:39


基于用户意图的安卓资源权限动态管理系统及其实现方法

技术领域

本发明涉及一种对安卓资源进行动态管理的系统及其实现方法,属于安卓权限管理和数据驱动安全领域。

背景技术

至当前为止,安卓设备占据了71.9%的市场份额,安卓是目前最流行和使用最广泛的移动操作系统。用户从不同的来源安装不同的应用程序,并根据不同的功能获得各种服务。由于智能手机承载着大量的私人用户信息,而安卓生态又有着开放特性,其安全需要有完善的保护方案。

安卓使用了和其他移动操作系统相似的权限管理系统,它的逐渐完善和优化体现在一次次的升级中,其策略从最开始的仅需要在安装时声明权限清单,到后面进行了越来越细粒度的权限管理。此外,研究界也已经探究了多种方法,通过系统管理的增强和应用程序上下文等,帮助从细粒度和高精度方面加强权限管理。但是资源共享机制(如屏幕共享和剪贴板共享)为了提供更方便的人机交互,需要将本来设计上不太敏感的资源授权给多个应用,且资源在随后可以被任意访问。但随着应用的发展和用户的忽视,额外的风险也由其引入。

在对资源共享机制的分析表明,共享资源为了用户便利而需要解除一部分权限方面的限制,而只专注于系统内部信息的权限管理机制,无法理解用户意图也就只能放弃对共享资源的管理。权限控制系统从根源上无法绕过来自设计冲突的缺陷。

因此针对安卓资源的权限管理,需要设置一套基于用户意图进行动态管理的系统及其实现方法。

发明内容

发明目的:本发明所要解决的技术问题是针对现有安卓权限管理方案的不足,提供一种能够挖掘用户意图,并且根据用户意图对安卓资源进行动态地权限管理的系统及其实现方法。

技术方案:一种基于用户意图的安卓资源权限动态管理系统,基于用户在操作智能手机的触摸行为数据,将数据抽象提取特征并使用机器学习的算法模型,最终推断出用户权限请求,来帮助权限系统做出准确的管理。系统包括四个组件,四个组件分别是:用作获取触摸行为数据的行为采集器,用作抽象手势数据的手势提取器,用作得到合适决策推理模型的模型训练器,以及在权限请求发生时做出关键决策的权限判别器。其中行为采集器和手势提取器在权限抽象阶段和行为权限匹配阶段两个阶段具有相同的功能,但机制上略有差别。

对于系统设计中的四种主要组件,有如下的简要功能介绍和设计描述:

行为采集器为了捕获用户触摸数据,在安卓设备处需要设置行为采集器。所述行为采集器应当处于系统层,读取系统内存里的触摸数据,在试验阶段通过手机的开发者模式获得触摸数据。每个触摸数据内容自左向右分别是:时钟时间,事件类型,事件变量,具体数值。其中事件变量和具体数值描述了手指的落下和抬起,在屏幕上的位置,在屏幕上的压力等信息。行为采集器在权限抽象阶段,进行不同实验下的触摸数据收集,获取到具有权限标签的一组组数据;行为采集器在行为权限匹配阶段,获取到的触摸数据是流式的原始数据,输出给手势提取器抽象和利用。

手势提取器原始数据需要进一步抽象提取以获得有意义的手势数据,需要设置手势提取器来实现这样的功能。数据抽象的过程,除了整合在原始数据中的时间、空间等基本信息,还需要进行手势的提取和手势的分类归纳。手势的提取,手势提取器使用事件变量ABS_MT_TRACKING_ID追踪每一个手势,其值变为0xffffffff(16进制)时表示一次手势会话的终止,即完成一次手势的提取。在手势的分类与归纳中,设置5种手势类型,包括四种基本类型和其他,四种基本类型是:点击,长按,滑动,缩放。随后提取的手势数据按照手势的类型和空间时间信息组织,以待后面的训练和预测。

决策模型生成器为了能够推断用户的行为意图和匹配该意图所请求的权限,决策模型生成器就是在权限抽象阶段获取了具有标签的手势数据之后,进行训练得到模型以供后续权限管理来推断的组件。该组件会对“相机拍照”,“剪切板读”,“剪切板写”三种权限请求进行各自的模型训练,对具有权限标签的手势数据进行训练集和测试集的划分,再训练和测试使得各模型能够判断手势数据是否和自己对应的权限相符合。各模型训练和测试期间使用支持向量机,随机森林,卷积神经网络多种方法进行训练和测试。同时也会进行充分的评估实验,比较各个方法的准确率、稳定性和效率,以选取合适的算法模型。

权限判别器权限判别器用于为系统中的每一次权限请求把关,做出授权与否的决策。在行为权限匹配阶段,权限判别器加载决策模型生成器提供的模型,持续读取着手势提取器提供的数据序列,在应用的权限请求发出时,前向选取多个不同尺寸的操作数据,根据权限请求使用对应权限的模型迅速进行推断,将多个推断结果进行投票,最终决定是否通过本次权限请求。

一种基于用户意图的安卓资源权限动态管理系统的实现方法,包括权限抽象阶段和行为权限匹配阶段两个阶段。

在权限抽象阶段,有以下步骤:

步骤101,需要邀请志愿者作为数据采集的用户,自由的在不同的手机上进行不同权限请求的操作,此时的触摸数据被行为采集器收集起来。注意,在权限抽象阶段获得的触摸数据是有具有事先标注权限类型标签的原始数据,但是这些数据如无法直接利用;

步骤102,通过手势提取器,将标记好权限类型的原始数据序列抽象出具有手势类型和时间空间信息的手势数据序列;

步骤103,将得到的手势数据序列供给决策模型生成器来进行训练测试;

步骤104,在决策模型生成器将有标签的手势数据序列进行训练集测试集划分之后,进行多种方式的训练,获得符合精度、稳定性和效率的模型,以待部署到移动设备上使用。

在行为权限匹配阶段,进行如下步骤:

步骤105,行为采集器获得是用户在日常操作的过程中的流式数据;

步骤106,手势提取器也是会持续地将这些流式数据进行抽象化得到手势序列数据,与权限抽象阶段不同的是,这部分数据将实时地处理获取,但是在手势序列达到设定长度,便可将数据前端过期的数据释放;

步骤107,权限判别器在移动端,加载步骤104获得的模型,去准备评估上一步骤处理得到的手势序列数据;

步骤108,在应用发生权限请求时,权限判别器将从此刻向前选取不同尺寸的手势序列数据,进行推断;

步骤109,5次数据推断会得到5次推断结果,根据推断结果的投票,决定最终的授权结果。

所述的流式数据抽象化的手势提取器,需要将之前行为采集器采集到的原始数据,进行算法所示的抽象提取和特征提取,使得有利于后续的模型训练。行为手势提取器获得的数据过于原始,有冗余信息、非规则化且数据长度较长,所以工作上需要抽象以获得具有精简信息、规则化且长度合适的数据。在从原始数据到手势数据的处理过程中,手势提取器组件以ABS_MT_TRACKING_ID构建每个手势会话,因为存在多个ID的情况,过程中也会维护一个表来适应其切换,最终一个ID的值变为0xffffffff时,标志一个手势数据的收集完成。

在这个组件中,提取出一个手势之后还需要进一步抽象判别出手势的类型,建立语义理解的联系。安卓系统提供了一个GestureDetector.OnGestureListener功能来帮助应用响应各种手势,里面有一些具体的划分手势的信息,可从开发者文档中获得。与此同时,有一些相关的基于UI和交互的研究,也会涉及手势的提取和抽象分类,其为了实现自己的需求也定义了不同的手势类型和指标。表1和表2详细列出了这些手势抽象的类型和相关规则,并以之为参考和加以分析。

表1:安卓开发手册中的抽象类型表

表2:Humanoid文章中手势提取规则表

这些抽象方式,在目标任务中,要么过于细化而繁琐,要么过于简要而有缺失,不能很好的应对表现资源权限请求的手势序列的需求。所以本发明根据任务需求,将手势类型分为五类:点击、长按、滑动、缩放和其他。其中具体的数值,工作中结合安卓代码、其他定义(来自表2表3),和具体观察,也进行了略微调整。

在算法1中进行手指的提取和手势类型的决策抽象,依据手指的移动位置和时间,以及多指的检测。与表2有所异同的是,单个动作距离上超过50像素的才会被分类为滑动,否则是点击和长按;而点击和长按的时间阈值,在比较相关工作和实际观察之后,选取了120毫秒。手势提取器会对每一组触摸数据中的位置信息根据手机尺寸进行坐标正则化,随后在事件变量ABS_MT_TRACKING_ID变化的时候进行新的手势的创建和旧的手势的存储;同时也会进行多指的检测。最终返回带有类型和基本时空特征信息的手势序列。

算法1手势提取器:

Input:

采集的基本触摸数据序列,LinesData;

用户的ID,user_id;

Outpur:

提取到的具有类型和特征的手势数据序列,Gestures

基于用户意图的决策模型生成器需要能够将三种具有权限请求含义的手势数据,选取合适的模型区分出来。在进行模型的区分之前,工作上还有最后的输入数据处理步骤:数据集的划分,手势数据的转换,数据格式的统一。首先在前面提取得到的手势数据,需要经过数据集的划分得到训练集测试集,手势数据序列到特征矩阵的转换得到训练测试的数据内容,以及数据长度的补齐来统一输入格式。在数据集划分时,为了尽可能多地利用数据信息,方式上选取了交叉验证的方法。使用的5-折交叉验证,即把数据集平均分成5份,每份20%,在每次训练时将其中4份作为训练集,剩下的作为测试集,循环5次。在每次训练过程中,训练集和测试集不会有任何交集。手势数据序列,具有众多变量,简化其得到具有手势行为类型,手势起点、终点的横纵坐标以及相对时间戳的输入矩阵。而不同长度的手势序列并不适合机器学习的输入,参考循环神经网络处理长序列的做法,使用padding方法将数据补齐。

完成了手势数据的统一和划分处理之后,本发明需要能够使用相关技术把多种资源权限请求的手势区分开来。应对这样的任务,多分类任务和多个二分类任务都是可选的,而多个二分类任务的设计有利于框架的进一步扩展,对未来更多的权限进行增量的管理。在具体的分类方法上,本发明采取了多种方法进行试验和评估:在传统机器学习领域,支持向量机和随机森林一直发挥着稳定且有效的作用。而分类预测等任务近些年的巨大进展得益于神经网络深度学习技术的发展和突破,其中的卷积神经网络善于处理图像相关的任务,但是也有相关工作在序列数据中得到较好的效果。具体算法中参数设置如下:

支持向量机

支持向量机是一种非常经典且有效的机器学习方法。它的各个参数在具体使用时需要进行了解和有效调试。

e)核函数的选取是支持向量机效果至关重要的部分,一般使用高斯径向量核函数(RBF)或者线性核函数(linear)这两种。

f)其中线性核函数的效果在样本数远小于特征数的时候能发挥较好的效果,而高斯核函数能够应对更复杂的数据情况。实验中数据样本数较少,选取线性核函数果然取得了较好的效果。样本数小于特征数两个数量级的时候选择线性核函数,否则选择高斯核函数。

g)错误项的惩罚系数是影响支持向量机精度的重要参数,其值越大对于分错的惩罚数据越大,会导致在训练样本中的准确率变高,但是与此同时泛化的能力也会降低,反之则会降低训练准确率,提高泛化能力。为了取得较为均衡的结果,实验在此将其设置为1。

h)在调试的过程中,选择RBF核函数时,还需要为gamma值选择的一个参数,gamma值越大支持向量则越小,反之亦然,实验使用了的1/n_features,n_feature为特征的项数。

i)最后,在训练集中,不同类别的数据占比权重,会影响数据的采样过程和最终结果。数据权重需要动态调整,设置其值为字符串‘balanced’。

在将多个类型的分类任务分解为多个二分类任务之后,每一个二分类的任务都只需要评估数据和权限类型匹配或者不匹配,手势数据集的权限类型标注也会被处理为与当前的权限区分类型是否相同,变为标注为真(1)假(0)的数据。

在预先划分好的N x 4的训练数据集上,使用reshape函数输入支持向量机中,并在测试集上进行验证。

交叉验证的多次实验结果平均值,能够有效地缓解因为数据划分随机产生的波动。

随机森林

随机森林是以决策树为基础的集成学习算法,简单高效的同时,也能在分类和回归任务上取得惊人的表现。它的核心思路是构建足够多的随机决策树,来避免结果的过拟合。当然,在构建随机森林模型的过程中,参数也需要进行详细的设置。

随机树的构建是通过可回放抽样(bootstrap)不断生成随机的训练集来实现的。

d)在随机森林的使用中,对结果影响最大的便是森林中树木的数量,一般随着数量的增加效果提升直至最终稳定,当然整体的复杂度也会逐渐提升。选取了多组数值进行训练,发现在取300以后准确率逐渐稳定但运行时间加长。

e)决策树的最大深度,会影响训练的时间和精度,鉴于数据规模并不大故未加限制。

f)在内部节点再划分的最小样本数,影响子树继续划分的条件,少于则不会继续划分,若样本数较大则需要也增大这个值,参考数据规模并测试后在此取2。

g)叶子节点的最少样本数将限制叶子节点最少的样本数量,若叶子节点少于其值则会被剪枝,在数据规模有限的情况下取默认值1。

h)最大叶子结点数的设置可以防止过拟合,暂时不需要进行限制。

具体的训练测试也是对三种权限分类任务进行二分类的数据重新标注和使用。

在对随机森林进行基本的设置之后,对数据集的使用和模型的评估,类似上文支持向量机的使用,经过了reshape的处理和交叉验证结果的输出。

卷积神经网络

卷积神经网络的效果,需要以一个较好的网络结构来完成。之前有大量的工作针对各自的任务提出了很多先进的神经网络,而现在涉及的数据是一组组N x 4的二维数据,与之前的众多图像分类任务大相径庭。

结合场景,本发明设计了应对手势序列数据的卷积神经网络,它是整个系统的核心部分,其主要有两层的卷积层。

d)由于数据在横向维度上非常少,所以在卷积核的选取上很保守地先从长度1开始尝试,于是基本是全连接层。

e)同时为了防止全连接层对数据的过度提取,还使用了dropout随机地丢弃了一部分结点。

f)同时,为了防止Relu之前网络性能的不稳定,网络中还使用了BatchNorm函数进行了归一化处理。

以这样的神经网络为基础,对该手势序列数据根据不同的任务进行了多个二分类的训练。对于输出的结果,使用的损失层是CrossEntropyLoss交叉熵,交叉熵主要度量得到的实际输出和期望输出的距离,其值越小则结果越相近。在Pytorch中实际使用的交叉熵公式如下:

如公式所示p(x)代表的是样本的真是分布、q(x)代表的是模型所预测的分布,在Pytorch中,这种取对数乘积求和的损失函数计算的是将softmax-log-NLLLOSS合并到一起的值。随后会进行梯度的清除、回传和更新。优化器并非使用固定的学习率,而是会随着学习的推进逐渐变小越来越接近于0。

有益效果:基于用户意图的安卓资源权限动态管理系统,其主要是一个辅助进行安卓权限管理的框架,通过挖掘用户操作安卓智能手机时的手机的手势获取其意图,再根据意图对资源全权限进行动态的管理。相比于从系统层面进行结构设计,和利用系统内容进行分析管理的工作,权限的发放和回收更加符合用户主管意图,且能防御住更多的新型的攻击。

从具体实施上,其只需要少量人员(10-12人)进行数据的预采集和模型的预训练,可选的多种模型为支持向量机、随机森林和较小的卷及神经网络,耗费较少的计算资源。管理成功率角度来看单次推断准确率77.3%到85.6%之间,在进行多次推断投票的设计下完全可用。在移动设备端的执行效率上,涉及高中低多款手机,支持向量机的推断时间从0.5毫秒到1毫秒之间,随机森林的推断事件在28毫秒到34毫秒之间,而卷积神经网络的推断事件在4.75毫秒到26毫秒之间,选择合适的模型能够让本发明的框架在各种设备上良好运行、不影响用户体验。

最后,本发明的所体现的思路,不仅可以使用在安卓设备商,iOS等能够通过用户交互操作产生交互且存在权限管理问题的环境,都可以类比部署本发明的框架系统。

附图说明

图1为本发明实施例的权限管理框架总设计图;

图2为本发明实施例的原始流式数据结构示意图;

图3为本发明实施例的行为数据收集场景图;

图4为本发明实施例的流式数据处理示意图;

图5为本发明实施例的权限意图推断卷积神经网络结构图;

图6为本发明实施例的训练数据逐渐减少人数规模的准确率变化折线图;

图7为本发明实施例的数据窗口化选取进行推断示意图;

图8为本发明实施例的攻击场景下对应权限判断结果决策示意图;

图9为本发明实施例的正常使用资源时的对应权限判断决策示意图。

具体实施方式

下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。

本发明提供了一种基于用户意图的安卓资源权限动态管理系统,在系统设计中,安卓可以挖掘用户操作智能手机的操作获取用户的意图,该意图指的是所请求何种资源申请何种权限,又通过意图来进行资源权限的动态管理。

现实中多个设备下使用相机进行拍照的交互操作相似;多个设备下使用剪切板进行复制和粘贴操作也采取了相似的操作。这些为了用户便利所设计的经典操作,说明通过学习动作序列在用户意图和权限控制之间建立桥梁的可行性。

故设计了如图1所示的本发明所述的权限管理框架总设计图,在该设计中基于用户意图的安卓资源权限动态管理系统包含了四个主要组件(分别为行为采集器、手势提取器、决策模型生成器和权限判别器),基于用户意图的安卓资源权限动态管理系统的实现方法两个阶段。在权限抽象阶段,通过手势提取器,将标记好权限类型的原始数据序列抽象出具有类型和时间空间信息的手势数据序列;得到的抽象后的手势数据序列供给决策模型生成器来进行训练测试;在决策模型生成器将有标记的手势数据序列进行训练集测试集划分之后,进行多种方式的训练,获得符合精度、稳定性和效率的模型,以待部署到移动设备上使用。在行为权限匹配阶段:行为采集器获得是用户在日常操作的过程中的流式数据;手势提取器也是会持续地将这些数据进行抽象化,与权限抽象阶段不同的是,这部分数据将实时地处理获取,但是在手势序列达到一定长度,便可将前端过期的数据释放;权限判别器在移动端,加载步骤104获得的模型,去准备评估步骤103处理得到的数据;在应用发生权限请求时,权限判别器将从此刻向前选取不同尺寸的数据,进行推断;根据推断结果的投票,决定最终的授权结果。

本发明将在此通过一个完整的实例进行流程的讲述。本发明已经提出了一种基于用户意图的安卓权限动态管理框架,它试图从用户的行为中挖掘用户意图来控制权限的发放和回收。下文将从硬件和软件两个方面结合起来,详细描述行为采集器、手势提取器、决策模型生成器和权限判别器在平台层面的实现。

该框架在目前的实验下,是跨平台搭建的,在安卓平台进行数据收集、模型加载和结果推断,在主机平台进行数据抽象处理和模型训练评估。行为采集器实现在安卓端采集用户的触摸操作数据;进行触摸数据抽象的手势提取器的实现在主机端,也能够在安卓端进行部署;而决策模型生成器需要在主机端进行大量的模型训练测试任务;最后的权限推断器,必须要能够在安卓平台完成模型的加载和推断,以验证框架的效果和性能。

图2为本发明所述的原始流式数据结构示意图,展示了行为采集器所提取到的数据的格式,其中主要分为四种数据类型:时钟时间,事件类型,事件变量,具体数值。其中事件变量和具体数值描述了手指的落下和抬起,在屏幕上的位置,在屏幕上的压力等信息。其在权限抽象阶段,按照实验要求分次进行,获取到具有权限标签的一组组数据;其在行为权限匹配阶段,获取到的是流式的原始数据,输出给后续组件抽象和利用。这部分数据在试验阶段可由开发者模式获取,后续工作也可使用安卓系统底层数据支持获取。

图3为本发明所述的行为数据收集场景图,展示在智能手机的各个界面采集相机拍照、剪切板复制和剪切板粘贴等操作的数据,需要注意的是各款安卓手机和各款应用的这些功能在总体设计一致的情况下又有些许差别。所以在收集数据的阶段,既要充分考虑人的行为的差异性,还要考虑不同手机不同应用的差异性。

在具体的行为采集器的试验阶段,让志愿者使用自己的智能手机、或者由实验方提供的多款智能手机。让手机在开发者模式下,实验需要请求用户在真实的多应用中进行操作。具体说来,是在存在相机的应用场景中打开相机进行拍摄,在有可复制文字的界面复制文字,在任意存在的输入框粘贴内容。数据收集过程确保完全真实场景,也请求志愿者进行符合自己使用习惯和想法的操作,在如图3所示的这样的几组界面完成数据收集。

在志愿者进行操作之前,被进行如下告知:

a)使用手机的相机功能,可以是自带的相机也可以是微信等应用的相机,进行一次拍照。拍照的过程可以简便快速点击拍照按钮,也可以使用该界面的任意功能,如进行对焦、缩放、切换拍摄模式、切换前后镜头,调整状态栏和选择滤镜等。

b)使用手机的剪切板复制功能,可以是任意应用里的文字,可选取任意长度。

c)使用手机的剪切板粘贴功能,可以在任意可输入文本处。

d)使用手机的任意其他功能,进行几个完整操作。

e)志愿者应当基于自己的习惯,也可自行考虑更加全面的情况。重复10次数据收集。

在这样的一个完整的数据收集环节,实验收集了每位志愿者的“相机拍照”“剪切板写”“剪切板读”“其他”四种权限请求的资源各10个。最后为了对数据进行统一正则化,实验还收集了当前手机的触摸屏尺寸信息。实验收集了18位志愿者在多个设备上的触摸数据。志愿者们在不同的设备,不同的应用上使用相机、剪切板等功能收集三种权限请求的数据,也会在任意其他应用进行无关操作,作为其他数据集。

在图3所示的流式数据处理示意图中,展示了这样的整个数据流程从触摸数据中提取每一个手势,又从手势序列中提取特征向量,以供后续的模型训练使用。从智能手机上获取到的原始的触摸数据是具有时钟时间、事件类型、事件变量和具体数值四种值的流式数据,无法直接使用,需要进行一次抽象从中获取一个个手势的语义理解,手势提取器就是实现的这样的任务。而抽象后的就是一个个的手势数据对象,这个对象包含了一个用户id、手势的操作类型、轨迹数据和起始时间位置;大量的数据也根据时间组合成手势数据序列,一系列的手势数据中包涵了用户的行为,本发明也希望能从中挖掘用户的意图。

得到的手势动作序列或许可以表现用户的意图,却不能输入模型进行训练测试和推断,所以需要简单的向量化规则:将起始点和结束点,用手势类型、x坐标、y坐标和对应的时间,从类型、空间和时间三个角度进行特征化转换。当然,对于不同长度的数据,实验参考自然语言处理方面的工作使用了padding方法,将数据对齐。

在权限抽象阶段和行为权限抽象阶段,数据流都经过相似的处理,略微不同的是原始数据是否经过划分和被打上标签。在权限抽象阶段,由于数据收集设置,得到数据的片段和标签,直接进行抽象化处理和特征化、padding处理,得到用作训练测试的特征数据;而在行为权限抽象阶段,流式数据会被持续的收集和抽象化,在使用时会使用不同尺寸的窗口对手势序列进行选取,在特征化和padding处理后,多组特征数据进入模型得到推断结果,以进行最终的决策。

在决策模型生成器的模型训练挑选阶段,主机开发端进行了多种模型的训练测试,以及进行多种角度的评估实验设置。在主机开发端进行模型的训练测试时,先前获得的每一组手势数据需要转换成的具有类型和位置、时间信息的序列数据,再使用padding方法统一其数据长度。为了训练测试阶段的不同目的,实验也会对数据集采取不同的划分方式。

a)为了评估不同模型的训练测试性能,实验对数据集使用5-折交叉验证,把数据集平均分成每份20%的5份,每次训练时将其中4份的80%数据作为训练集,20%的数据作为测试集,循环5次,以5次结果的均值作为最终模型的指标。这样的数据集划分能够在数据有限的情况下,得到更多的信息,也缓解了由于数据集划分所导致的结果波动。

b)为了评估算法模型对未见过的新用户数据的泛化能力,实验在上一种交叉验证的数据划分之前,会随机先挑选两位用户的所有四种类型操作数据。并将对这两位“新用户”的各种操作数据的推断结果,作为稳定性试验的最终精度。

c)为了评估算法模型的稳定性,实验设计实验探究数据规模对其精度的影响。具体的数据划分方法,就是逐渐减少训练数据集里的用户数量,并将随机挑选的不在训练集中的用户操作数据放在测试集中,得到在训练集越来越少情况下的各个精度。该实验也指导需要怎样规模的数据,使得框架和模型能够有效运行。

多种算法模型,都将进行上述三种实验的训练和评估。多维的评估和多样的结果,有利于框架按照需求选择合适的算法模型。具体在该示例实验中,测试的算法模型为支持向量机、随机森林和卷积神经网络。对于样例中“相机拍照”“剪切板写”“剪切板读”三种类型和其他类型的数据,进行三种二分类任务。其中各个算法模型的参数设置如下:

支持向量机

a)核函数使用线性核函数(linear)这两种。

b)错误项的惩罚系数设置为1。

c)数据权重需要动态调整,设置其为‘balanced’。

随机森林

a)森林中树木的数量选取为300。

b)决策树的最大深度不做限制。

c)内部节点再划分的最小样本数取2。

d)叶子节点的最少样本数取默认值1。

e)最大叶子结点数暂时不进行限制。

卷积神经网络

结合场景,本发明设计了应对手势序列数据的卷积神经网络,它是整个系统的核心部分,其主要有两层的卷积层。图5所示的本发明所述的权限意图推断卷积神经网络结构图对其进行了充分的描述示意。

a)在卷积核的选取上很保守地先从长度1开始尝试,于是基本是全连接层。

b)使用了dropout随机地丢弃了一部分结点。

c)网络中使用了BatchNorm函数进行了归一化处理。

对于输出的结果,使用的损失层是CrossEntropyLoss交叉熵,交叉熵主要度量得到的实际输出和期望输出的距离,其值越小则结果越相近。在Pytorch中实际使用的交叉熵公式如下:

面对精准推断操作数据所对应的不同权限请求的任务,对于三种权限判断任务在5-折交叉验证的数据集上,使用支持向量机、随机森林、卷积神经网络和长短记忆神经网络进行训练测试,得到每次的准确率和F1-Score。多次划分的数据集训练测试的结果,在表3中取平均作为结果呈现。

表3:四种模型的推断结果准确率-F1-Score统计表

该表的结果从数值上来说,随机森林算法具有最高的分类精度,平均/合计达到了85.6%,随后是卷积神经网络的81%,最后是支持向量机的77.3%,远低于前两者。而从具体类型的推断上看,各种算法下,相机操作都具有更高的识别率,与前期数据观察相结合进行分析的话,应当是由于其长序列的操作和某些固定的位置;剪切板的读操作略高于写操作,却也不分上下。另一栏里,F1-Score是一个会综合考虑精度和召回率的指标,从这个指标看来,卷积神经网络具有更好更稳定的分类效果。

为了评估已训练的模型对于新用户数据的适应性,本实验还设计了部分用户未在训练集中出现过的实验场景。即率先随机选取两名用户的各种类型操作数据,不参与交叉验证的数据集划分,而直接放置进测试集中,剩下的用户数据会经过交叉验证划分为训练集和测试集。对于模型而言,这是两个完全的新用户的操作数据,需要检验其在这些数据中的推断能力。由于随机选取的用户不同,也会影响结果精度,所以重复五次实验随机选取“新用户”,得到平均的结果。

表4:模型在新用户数据下的推断准确率表

表格4展示了0个新用户和2个新用户的数据下的,各个模型训练测试结果的精度。由表中数据可见,从未被模型训练过的2个用户的数据集放在测试集之后,模型的精度受到了稍许影响,但降低最多不超过0.9%。其中随机森林和卷积神经网络的算法受到新测试数据的影响都非常小,仅为0.4%和0.3%,依据此结果可以认为,在当前的数据规模下,模型能够很好的对未曾见过的新数据进行分类,具有良好的泛化能力。

除了对模型进行少量新用户的评估,实验还需要评估数据规模对模型训练的结果精度影响。探究达到怎样的数据量能够训教得到一个较好的模型,一个能够使用少量用户数据训练来应对尽可能多其他新用户数据的模型。

在该评估需求的实验场景下,针对实验收集的18位用户的操作手势数据集,将随机挑选K个用户的数据,不经交叉验证的划分而直接放在测试数据集中,再对剩下的数据集进行训练集和数据集的划分。训练数据集所包含的用户数量将逐渐减少,依次为18位、16位、14位、12位、10位,8位,6位。各个模型在不同规模数据集下进行训练测试,将每次结果的综合准确率记录,使用折线图来表现其变化。

如图6为本发明所述的训练数据逐渐减少人数规模的准确率变化折线图所示,不同模型在使用规模逐渐变小的训练数据集时,会在精度上有所波动和损失。支持向量机有较小波动,但是当数据规模减半之后甚至能持平完整规模数据的训练效果,受数据规模影响最小。随机森林算法在数据规模由18人逐渐减少到12人时表现尚可,减少到10人时准确率骤降,结果表明随机森林至少需要12人的数据规模使其达到较好的分类结果。卷积神经网络模型在整个数据规模逐渐减少的过程中,准确率也会随之降低,体现了深度学习更加依赖数据规模的特点之一。

权限判别器需要在移动端部署模型运行推断,进行安全可用性、效率等评估。在这个过程中,本发明需要评估算法模型在实际应用中的安全性和可用性,以及使用运行效率来评估其是否能够达成移动友好性的目标。参与移动端评估的智能设备有三种,配有骁龙845芯片的一加6,配有骁龙865芯片的一加8T和配有骁龙765G芯片的pixel5。

具体能让算法模型能够在安卓系统上被加载并执行推断,还有一些工作需要完成。如支持向量机和随机森林的算法模型,之前使用joblib库保存为pkl格式的模型文件,其加载读取也需要对应的库支持,故在安卓端使用Pydroid 3安装Python环境和sklearn库。在将数据、模型文件和代码部署到安卓端之后,就能够在安卓设备上执行推断程序,得到结果和度量效率。

Pytorch所生成的卷积神经网络模型无法直接被安卓端的Python程序加载了,但是Pytorch提供了移动端深度学习推理框架Pytorch Mobile,在训练测试阶段得到的pt模型文件,再经过转换变成jit-script格式的pt模型,如此框架可以在应用开发中使用java读取数据和模型并执行推断。实验在安卓设备上启动程序和查看输出得到执行的结果和运行时间。

图7为本发明所述的数据窗口化选取进行推断示意图。前面来自硬件层面的数据,会持续被抽象化为手势数据序列(超过三分钟、过期的数据会被丢弃释放),而应用所提请的权限请求也将在此时期被捕获到。权限判别器将会从权限申请时刻的数据向前使用不同尺寸的窗口选取手势序列,这些尺寸为2、4、8、16、32、MAX(MAX使用的是模型可接受输入的最长长度)。

多次选取的手势序列数据,将经过特征化和padding处理,得到多组数据作为输入进行特定权限模型的推断。最终根据模型的多次推断结果进行投票,投票结果为负责就拒绝,投票结果为正,则允许此次权限申请。

在部署了攻击的手机上,进行用户操作的数据采集,针对两种概念攻击实验收集了两组数据。一个场景是在用户日常使用时打开了恶意应用,导致无法轻易察觉的屏幕共享和偷拍的攻击,实验收集了打开应用前后的共计30秒时间的操作数据。另一个场景则是在用户打开过恶意应用之时,剪切板内容被获取和篡改,实验同样也收集了打开应用前后30秒的操作数据。实验将对这样两个数据进行评估测试,来辅助权限管理系统。此外,还可以将交叉验证的多个模型都进行了同样的推断任务,做一次二轮投票。同样的,遭受剪切板攻击时,对期间的数据进行窗口截取和多次推断与投票,最终得到剪切板管理的决策。

图8为本发明所述的攻击场景下对应权限判断结果决策示意图,展示了使用随机森林模型在两个攻击场景下,对于三种权限的检查推断。横向是多个窗口推断的结果,纵向表示交叉验证得到的多个模型。根据图中的推断结果进行投票,模型对于三种权限的请求应当全部拒绝。

图9为本发明所述的正常使用资源时的对应权限判断决策示意图,当权限真的被用户请求时,能够被准确的授权使用。实验又在几个真实调用相机和剪切板的数据中,从权限请求发生向前回溯切分数据,并以此进行多次推断。三种权限的调用申请全部通过。表明框架在真实场景中经受了安全性和可用性的考验。

实际实验在三部智能手机上都部署了模型和数据,进行如图7的窗口数据推断投票。每次任务会对五个数据进行推断,实验对一次任务进行时间的统计测量效率。运行模型的三部手机分别使用了高通骁龙845、高通骁龙865和高通骁龙765G的移动芯片。表格5展示了不同模型在不同设备上的运行一次任务、五个推断所用的时间。

表5:多模型在不同平台的运行效率表

效率测试结果,可以得到不同模型在不同运算性能设备上的表现,从0.5ms到34ms不等。支持向量机在三个平台运行没有差距,都具有极为出色的运行效率。精度最高的随机森林模型在性能最差的骁龙845上大约需要运行34ms完成一次推断,在实际使用中换算应当是30帧的体验。卷积神经网络的效率尚可,或许是准确率和效率更为均衡的一种选择。

总而言之,这些推断运行的时间非常短,对移动设备的需求也并没有很高。这样的结果帮助证明了该框架的移动友好性。并且该框架被设计应当部署在系统层面,预期可以取得比在应用层更快的推断速度。

综上所述,基于用户意图的安卓资源权限动态管理系统及其实现方法,其主要是一个辅助进行安卓权限管理的框架,通过挖掘用户操作安卓智能手机时的手机的手势获取其意图,再根据意图对资源全权限进行动态的管理。相比于从系统层面进行结构设计,和利用系统内容进行分析管理的工作,权限的发放和回收更加符合用户主管意图,且能防御住更多的新型的攻击。在实际实验中,通过一定较高的准确率和多次投票设计达到较高的可用性。在移动端的部署也可选择合适的模型达到不影响用户体验的效率。

本发明所要解决的技术问题是针对现有安卓权限管理方案的不足,提供一种能够挖掘用户意图,并且根据用户意图对安卓资源进行动态地权限管理的设计和实现方法。最后,本发明的方法所体现的思路,不仅可以使用在安卓设备商,iOS等能够通过用户交互操作产生交互且存在权限管理问题的环境,都可以类比部署本发明的框架系统。

相关技术
  • 基于用户意图的安卓资源权限动态管理系统及其实现方法
  • 基于安卓双容器系统的设备策略管理系统及管理域实现方法
技术分类

06120113162055