基于操作行为的移动应用信誉度评估模型研究

2018-11-15 12:50邵志鹏马媛媛李尼格
太原理工大学学报 2018年6期
关键词:信誉前置原子

邵志鹏,陈 璐,马媛媛,陈 牧,李尼格

(全球能源互联网研究院 a.信息通信研究所,b.信息网络安全国网重点实验室,南京 210003)

随着移动通信技术、移动互联网技术的蓬勃发展,移动终端正在成为人们生活中不可或缺的组成部分。截止到2016年底,我国的智能手机用户在2016年12月底超过了6.95亿,超越个人电脑成为主流网络工具[1],而智能手机联网终端则达到了23.3亿部[2]。这带来了数以百万计的移动应用软件。人们通过这些软件进行聊天、交友、游戏等各种社交活动。

然而,伴随各种移动应用而来的还有大量的信息安全风险。数据显示,2015年网络不良与垃圾信息举报受理中心共接到手机应用软件举报727 976件次,有效举报200 684件次。移动互联网的恶意程序数量连续3年大幅增长,数量近148万个[3]。因此针对移动应用进行分析和安全保护具有重要意义。

目前,对这一问题的研究侧重于分析评估移动应用的行为,以期降低安全风险损失。研究人员提出的评估方法主要集中在对安全漏洞、恶意代码等的检测,缺乏对移动应用运行过程中的行为进行分析和判断。因而,如何解决移动应用行为的评估是一个需要解决的问题。

1 相关研究

当前对移动应用行为的评估集中在对行为的建模和安全分析两个方面。成静等[4]针对移动应用的易用性评估问题,分析了用户的操作轨迹,并构建了基于操作轨迹的移动应用操作轨迹模型。模型将用户对移动应用的每个操作定义为操作事件,全部的操作构成状态机,从而对用户的操作过程进行描述。YAN et al[5]提出了一种评估软件系统信誉的评估方法。该方法能够根据软件运行时的性能计算其信誉值,达到自适应地评估软件系统安全的目的。

文献[6]提出了一种利用节点信誉时间序列识别恶意行为的方法。该方法通过引入时间序列对行为的信誉值特征进行深层分析,并基于攻击节点和普通节点的信誉值变化识别恶意行为。楚国玉等[7]针对移动应用恶意行为识别的问题,提出了构建隐马尔科夫模型来分析移动应用行为的方法;该方法通过对移动应用后续产生的行为进行马尔科夫估值,实现对移动应用行为的安全分析。方明伟[8]提出了基于使用控制模型的移动应用动态行为可信度量机制;该机制依据移动应用行为状态的变化,将对行为的可信度度量过程划分为启动前静态使用控制过程和运行中动态使用控制过程两个阶段。

上述模型和方法在对移动应用行为进行分析和评估时,只能对移动应用的信誉度进行静态的评估。然而,移动应用的安全防护需要对其行为进行动态评估,以便为用户的操作提供实时防护。因此,针对移动应用行为的评估应该既能够从总体上分析其安全状况,也要能够对用户的每一步操作进行实时的动态评估,以便为用户的操作提供指导。

本文在借鉴上述研究成果基础上,针对他们的不足,提出了一种基于操作行为的移动应用信誉度评估模型。模型引入了原子操作的信誉值和节点信誉度来衡量移动应用的可靠性;同时基于剪枝算法生成子信誉度模型,能够动态地评估节点信誉度。

2 移动应用信誉度评估模型

2.1 移动应用行为分析

移动应用目标的实现是一个依照某种方法获取资源的过程。这一过程包含一系列紧密关联的环节,每个环节同时也需要获取对应的目标权限等资源。该过程中,每个资源可视为一个操作状态,获取资源也即是实现操作状态变迁或者资源变迁。用户操作示例如图1所示,以Android系统中移动应用为例展示了获取资源的过程。

图1 用户操作示例Fig.1 Example of operation

示例中,用户打开APP时,可以通过获取View和Dialog资源实现,也可以通过获取Menu和Dialog资源实现。用户可以通过两种方式中的任一种打开目标APP,此时资源View和Menu为“或”关系,即“OR”,当用户必须通过两种方式同时打开目标APP,资源之间存在“与”关系,即“AND”.

为了获取资源,用户的软硬件设备可能遭受病毒感染、后门攻击等风险。因此,用户在获取资源时总是会评估资源的可靠性,并倾向于认为信誉更好的资源具有更高的可靠性。以图1为例,当通过View较之Menu获取Dialog具有更高的可靠性时,用户更倾向于通过View获取Dialog资源。

通常,移动应用行为需要通过执行一系列操作获取资源,以完成特定功能。从系统权限角度考虑,操作的执行,即调用系统函数,需要获取特定的权限,换言之,操作和权限存在对应关系[9]。由于获取资源需要由多个不同操作依照特定的顺序完成,相同操作的不同顺序将可能获取不同的资源。例如,某软件需调用联系人信息给服务器,如果先调用联系人,再进行联网操作,则所获取的资源为未更新的联系人,反之为更新后的联系人信息,从而获取不同的联系人信息。由此引发的信息泄露风险(可靠性)也不同。同样的,具有相同功能的不同操作相互替代时,需要获取的信息也是不同的。例如,QQ支付时,使用银行卡支付需要获取手机号码信息,而QQ钱包支付则不需要,由此引发的潜在风险也不同。因此,操作及顺序不同,可靠性就不同。

根据上述分析,对移动应用行为进行如下定义。

定义1 移动用户行为是用户为获取目标资源而对资源进行的不同操作的集合。其中,组成该集合的用于获取资源的操作的集合为原子操作。

定义2 AND关系指某一资源的前置资源间的关系为AND,即只有前置资源同时实现变迁,才能获取该资源。

定义3 OR关系指某一资源的前置资源间的关系为OR,即只要任一前置资源实现变迁,就能获取该资源。

定义4 可靠性指的是用户通过移动应用行为无风险地获取资源的可能性。

资源的可靠性反映用户对资源的信任程度,即用户获取资源的可能性;原子操作的可靠性反映用户选取何种原子操作获取资源的可能性。假设图1中View和Menu为AND关系,此时二者对应的获取资源Dialog的原子操作可靠性可能不同,但是选择两种原子操作的可能性却是相同的。因此,资源和原子操作的可靠性并不等同。所以,为了区别这两种可靠性,用信誉值衡量原子操作的可靠性,用信誉度衡量资源的可靠性。

2.2 移动应用信誉度评估模型

根据2.1节的分析,建立基于行为的移动应用信誉度评估模型。

定义5 移动应用信誉度评估模型T=(S,E,W,R)是具有一个或多个节点的树状模型,其中:S是一个非空有限的AND-OR资源节点集合,S={si|i=1,2,…,k},si用来表示单个资源节点。根节点R表示通过一系列资源状态变迁后,达到的最终目标节点。需要注意的是,节点只表示资源的状态。

E是模型中关联资源节点的有向边的集合。E={〈sk,sl〉|k,l∈i},其中,sk称为sl的子节点,sl称为sk的父亲节点。E中的每个元素为一条有向边,表示一个原子操作。每个原子操作均有信誉值,代表着资源对原子操作可靠性的评价。

W是资源变迁权集合。∀w∈W均与资源节点关联,由元组(h,j)表示。其中,h表示实现资源节点s变迁时,已选变迁路径上所有原子操作的信誉值总和,称为已变迁信誉值;j表示实现该节点s变迁时,由初始节点和s之间所有路径上的原子操作的信誉值总和,称为待变迁总信誉值。

R是节点间关系的集合。它是一个包含AND和OR两个元素的集合,即R={AND,OR}。AND节点表示该节点的所有子节点均实现状态变迁,变迁才能到达该节点;OR节点表示该节点的所有子节点至少有一个实现状态变迁,变迁就能到达该节点。

3 移动应用信誉值的计算

3.1 信誉值分析

原子操作的可靠性通过信誉值量化,反映了用户选取何种原子操作获取资源的可能性。信誉值建立在移动应用过去一段时间内的表现和用户对其评价的基础上。一方面,用户使用过移动应用后,会给出服务响应、服务质量、安全性等安全性反馈;另一方面,则会在反馈基础上结合自己的服务预期,评价移动应用是否可靠,从而影响原子操作的信誉值。因此,定义原子操作信誉值如下。

定义6 对于模型T中的∀e∈E,原子操作的信誉值C为:

C=α·CPriori+β·CPosterior.

(1)

引入信誉值,就是为了对原子操作的可靠性进行量化。它的可靠性取决于它过去一段时间内的表现,即历史信誉值CPriori和用户对其现有评价,即新的评价值CPosterior,受到这两种因素的制约。因此,原子操作的信誉值应为这历史信誉值和新的评价值的线性总和。

文献[10,11]对影响历史信誉值和新的评价值的各个因素进行了分析。分析表明,原子操作的历史信誉值由使用时间time反映,使用时间越长,原子操作的可靠性越高。同时,使用次数count和使用频率frequency也会影响历史信誉值。这是因为频繁的使用在一定程度上反映了对原子操作的信任,且使用次数越多,体验到移动应用功能越多,代表了使用越精通。因此,历史信誉值受到3种因素影响,三者对历史信誉值的影响呈现线性关系,如下:

CPriori=δ·Ctime+ζ·Ccount+γ·Cfrequency.

(2)

式中:δ,ζ,γ≥0且δ+ζ+γ=1.

原子操作的新的评价值受到成本Cost、时间Time和用户反馈Feed的影响。成本因素体现在组成原子操作的顺序及内存和CPU占用率等方面,成本与用户的期望值越接近,所反映的原子操作的可靠性越高。时间因素体现在获取资源的时间方面,时间越短,原子操作的新的评价值越高。用户反馈因素体现在用户对使用结果的期望值方面,期望值越高,用户反馈所带来的新的评价值越高。因此,新的评价值受到三因素影响,三者对新的信誉值的影响呈现线性关系,如下:

(3)

式中:λ,μ,v≥0且λ+μ+v=1.

在计算原子操作的信誉值时,也需要考虑硬件,如设备质量、价格等多种非决定性因素的影响。其中,用户获取资源时,会选取不同的原子操作,不同的原子操作及顺序的不同会影响成本Cost;另外,影响历史信誉值的三个因素间的线性关系也只是基于假设,并未能基于现有的实验和学术理论完整地证明这种假设关系的正确性,而仅仅是停留在理论阶段。因此,在实验时,统一地将原子操作的信誉值设定为1.

3.2 信誉度的计算

信誉值研究的是原子操作和资源之间的关联性,侧重于评价“选取何种原子操作能够获取目标资源”;信誉度研究的是资源和用户行为的信任程度,侧重于研究“获取何种资源具有最高的可靠性和安全性”。

定义7 对于∀s∈S,节点s的信誉度为C(s)为:

1) 如果节点s有q个前置资源节点,对应节点用q(1)(0≤1≤q),前置节点对应边用e(l)表示,且它们之间的关系为AND,则节点s的信誉度为:

(4)

2) 如果节点s有q个前置资源节点,对应节点用q(1)(0≤1≤q),前置节点对应边用e(l)表示,且它们之间的关系为OR,则节点s的信誉度为:

(5)

3) 如果节点s仅有一个前置资源节点,则节点s的信誉度为:

(6)

4) 如果节点s不存在前置资源节点,即节点s为叶节点,规定节点s的信誉度为1.其中,

h(s)=0,j(s)=0 .

(7)

定义7 分4种情况讨论了模型T中节点s的信誉度。

1) 节点s的前置资源节点间关系为AND时,所有前置资源节点需要同时完成状态变迁才能够获取节点s.节点s的信誉度是已变迁信誉值的总和与待变迁信誉值的比值。

2) 节点s的前置资源节点间关系为OR时,只需要所有前置节点中的任一节点完成状态变迁就能够获取节点s.此时,节点s的信誉度是选取所有前置节点中已变迁信誉值与对应待变迁信誉值的比值中的最大值,这样就可以选取具有最高信誉度的资源节点。

3) 节点s仅有一个前置资源节点时,这样的节点只有一个子节点,此时节点s的信誉度是该子节点中已变迁信誉值的总和与待变迁信誉值的比值。

4) 节点s不存在前置资源节点时,即为叶节点时,用户未获取任何权限来得到资源节点,因此其信誉度为0.此时与该节点对应的原子操作不存在历史信誉值和新评价值,因而所对应的已变迁信誉值和待变迁信誉值均为0.

3.3 移动应用信誉度的评估

为了量化资源和用户行为的可靠性,需要构造出信誉度评估模型,并依据输入的模型计算移动应用的信誉度,对资源的可靠性进行监控和检测,为用户进行安全操作提供判断依据。

算法1 节点信誉度算法CRALGOTITHM (T,Credit(e))

算法依据信誉度评估模型T和各原子操作信誉值C(e)计算节点信誉度C

输入:模型T,原子操作信誉值C(e)

输出:节点信誉度C

IF节点s是叶节点 THEN {C(s)=1.0} and {W(s)=(0,0)}

RETURNC(s) //叶节点信誉度

END IF

IF节点s的q个前置资源节点关系R为AND THEN

END IF

IF节点s的q个前置资源节点中节点关系R为OR THEN

ELSE IF节点s的q个前置资源节点中节点关系R既非OR节点又非AND THEN

RETURN

为了动态评估节点的信誉度,需要构建那些被实际占用资源节点的模型,以即时监控这些节点信誉度的变化。为此,需要构造信誉度评估模型的子模型。

为了构造子模型,依据输入的信誉度评估模型,采用剪枝算法移除不符合要求的有向边和节点。首先采用层次遍历的方法从根节点进行遍历,如果节点的前置资源节点关系为AND,则该节点的所有前置资源节点全部保留;如果节点的前置资源节点关系为OR,则只保留已变迁信誉值最大的节点,其它的前置资源节点及其分支则全部移除。对应的算法为算法2.

算法2 剪枝算法SUBMODEL (T,C)

算法依据信誉度评估模型T和节点信誉度c,生成子模型.

输入:模型T的节点集合S'、有向边E'、节点信誉度C'集合

输出:子模型T'

WHILE ∃s∈S'且s不为叶节点 DO

q←CHILDREN(s)//找出节点s的所有前置资源节点;

IF节点q节点之间是AND关系,THEN

在集合S',E',C'保留所有节点q,q和节点s间的有向边e、q和q的节点信誉度c;

IF节点q节点之间是OR关系且∃q'∈q使得h(q')=Max{h(q(l))} THEN

从集合S'、E'、C'中移除q中除q'以外的其它节点、节点q和s间的有向边e、节点信誉度C;

ELSE

在集合S',E',C'中保留所有节点s及对应的有向边e、节点信誉度C;

END WHILE

IFS'≠Ø,E'≠Ø,C'≠Ø THEN

RETURNT'(S',E',C')

4 模拟实验设计与分析

4.1 模拟实验设计

为了生成信誉度评估模型,可以在移动设备上安装移动应用,并人工设计操作任务和分析操作任务间的依赖关系。以开源的杏林书童移动应用为例,用户在首页通过点击页面上的辩证类别事件进入辩证类别菜单栏这一操作任务,共有首页、辩证类别事件、辩证类别菜单栏3种操作任务,每种操作任务就是一个资源,且三者存在依赖关系。完成上述步骤后,依据原子操作间的AND和OR依赖关系,生成信誉度评估模型。此外,用进程注入和Hook技术拦截系统调用函数。

为了更好地模拟实验,对拦截得到的系统调用函数进行了分组编号处理。在模拟试验中,将完成每种操作任务的所有系统调用函数划分为一组,这些函数组成的集合就是原子操作,并对这些函数组成的原子操作进行编号处理。例如,用1代表触发辩证类别事件操作任务的原子操作,并依次用2,3,表示其它原子操作,最终形成一个原子操作集合{1,2,3 }.

实验获取开源的杏林书童移动应用的操作任务后,利用所设计的算法对应用中的资源获取情况进行模拟。节点信誉度算法和剪枝算法均采用C++语言实现。实验过程中设计了不同的模型测试参数对模型和算法进行验证,保证了在每次运行过程中对模型的测试参数均不相同,实验设计参数如表1所示。

表1 模拟实验参数设计Table 1 Simulation parameters in the experiment

试验次序:为了更好地分析不同原子操作数目情况下节点信誉度的变化,进行了3次模拟实验,分别用a,b,c表示实验次序;

原子操作个数:对于同一节点,用户可以通过触发不同的事件获取资源节点,为此通过设定不同的原子操作数目,分析其对信誉度的影响;

节点数目:实验模拟了11个节点情况下的信誉度评估;

信誉值:为了简化模拟实验过程,原子操作的信誉值统一设定为1.

4.2 信誉度评估

根据模拟实验的设计与分析,建立的移动应用信誉度评估模型如图2所示。

图2 移动应用信誉度评估模型Fig.2 Credibility evaluation model of mobile application

依据上节参数的设定和图2所示模型,所进行的3次模拟实验得到的节点信誉度如表2所示。

表2 节点信誉度Table 2 Node credibility

对比表2显示的节点信誉度,可以看出:

1) 节点信誉度的值是由叶节点到根节点逐步增大的。之所以如此,是因为随着用户获取的资源节点的增多,用户所获取的权限级别也会升高,由此移动应用行为也具有更高的认可性。

2) 实验3次的原子操作数目是不同的,但3次实验显示的各节点信誉度的变化趋势是相同的,均是由叶节点到根节点逐步增大,这说明用户在决策时,更侧重于所要获取的资源的可靠性。因此,论文对节点信誉度的评估,能够用于评估移动应用的可靠性。

为了能够动态地评估移动应用的信誉度,本文利用算法2的剪枝算法生成了子信誉度模型,如图3所示。图3中,根节点S10的两个前置节点关系为AND,因此节点S8和S9及对应有向边予以保留;以此类推,节点S5和S6及对应有向边也予以保留;由于S7为叶节点且为S9的前置节点,因此S7和对应有向边予以保留;节点S5的两个前置节点S1和S2关系为OR,根据算法2中对OR关系的两个节点的判断依据,剪除节点S2及对应的有向边,同样地,剪除节点S4及对应的有向边,最终得到图3所示子信誉度模型,即为图3中有向边及连接的节点所示。

图3 移动应用信誉度模型Fig.3 Credibility model of mobile application

根据第一次实验的设计参数,生成了子信誉度模型的节点信誉度动态变化图,以动态地评估资源的信誉度,如图4所示。初始时刻t1,节点信誉度应为模型中叶节点S2,S3,S7的信誉度,因此为0;获取这些节点后,用户会在t2和t3时刻获取S5和S6节点,此时的信誉度应为这两个节点的信誉度;同样地,t4,t5,t6时刻分别为获取节点s8,s9,s10时的节点信誉度。

图4 节点信誉度动态变化图Fig.4 Dynamic variation of the node credibility

5 结束语

论文提出了基于操作行为的移动应用信誉度评估模型。模型以资源和原子操作为要素进行建模,并分别引入信誉值和信誉度衡量原子操作和资源的可靠性。为了能够动态地评估节点信誉度,设计了节点信誉度算法,并基于剪枝算法生成子信誉度模型。模拟试验结果证明:

1) 用户在决策时,更侧重于所要获取的资源的可靠性,从而论文引入的信誉值和节点信誉度能够用于衡量移动应用的可靠性;

2) 剪枝算法能够依据资源获取进度动态生成子信誉度模型,实现对移动应用信誉度的动态评估。

猜你喜欢
信誉前置原子
基于单片机MCU的IPMI健康管理系统设计与实现
原子究竟有多小?
原子可以结合吗?
带你认识原子
被诊断为前置胎盘,我该怎么办
前置性学习单:让学习真实发生
国企党委前置研究的“四个界面”
信誉如“金”
被诊断为前置胎盘,我该怎么办
지수형:신뢰는 배달에 경쟁력을 실어준다池水炯:信誉,让外卖更具竞争力