移动互联网APP应用安全评估模型

2016-12-21 03:13:48
沈阳航空航天大学学报 2016年5期
关键词:聚类阈值特征

岳 倩

沈阳应用生态研究所 信息中心,沈阳 110180



移动互联网APP应用安全评估模型

岳 倩

沈阳应用生态研究所 信息中心,沈阳 110180

移动互联时代,移动应用贯穿于人们的工作和生活,越来越多的人对移动应用产生依赖,移动应用的安全问题接踵而至,日益凸显且愈演愈烈。针对移动APP的信息系统安全评估,是移动互联时代的亮点亦是难点。结合移动APP的特点进行深入的研究分析,建立移动应用静态评估模型。通过提取移动应用的重要属性及特征,运用改进的聚类算法进行评估,使得评估准确性明显提高。

移动互联网;应用程序;安全评估模型;聚类算法

近年来,传统互联网应用已日趋饱和,随着宽带无线接入技术和移动终端技术的一次次革命,移动互联网应运而生并得到前所未有的发展。各行各业也开始将目光聚集到移动互联网,在移动互联产业的带动下,掀起又一轮移动互联应用的热潮。移动互联网时代的来临,平板电脑、手机等移动终端设备因其便携性、易操作性等优点已深深地融入人们的生活。移动互联网信号的完美覆盖使人们可以随时随地享受网络带来的便捷和舒适,可以随时通过扫描二维码、软件管家等方式下载各类APP软件享受网络时代带来的无限便利。

然而移动互联网在移动终端安全、接入网络安全、移动APP安全及隐私保护等方面还面临着一系列的挑战。中国互联网协会、国家互联网应急中心联合发布的《中国移动互联网发展状况及其安全报告(2016)》[1]显示,2015年中国境内活跃的手机网民数量达7.8亿人,活跃的智能手机联网终端达11.3亿部,九成以上运行Android操作系统和ios操作系统。从手机和移动APP的用户数量可以看出移动互联网络应用将是未来发展的趋势和走向。网民在享受移动网络带来的便利同时,也面临着前所未有的安全风险。诸多不安全因素威胁着人们的工作和生活。如恶意扣费、资费消耗、信息窃取、诱骗欺诈等恶意行为的移动互联网恶意程序严重损害人民群众的利益,甚至危害社会稳定和国家安全。2015年我国感染移动互联网恶意程序的境内用户高达1.74亿人,据网络不良与垃圾信息举报受理中心数据显示,在2015年共接到手机应用软件举报727 976件次,有效举报200 684件次。被举报的APP中大多数存在盗取流量、恶意广告等问题,其中10%的APP存在篡改手机号码,形成电信诈骗等行为。互联网应急中心获得移动互联网恶意程序数量近148万个,恶意程序数量连续3年大幅增长。

本文根据现阶段移动APP的发展现状,结合移动APP的特点、常见漏洞、安全隐患等方面进行深入的研究分析,对比传统应用和移动应用的共同点和不同性,根据移动应用静态评估的主要特性设置9个控制点,设计出移动应用评估模型。提取移动应用的重要属性及特征,根据聚类算法的特性选取其作为移动应用安全评估算法,并进行优化和改进,使得评估准确性明显提高。

1 移动应用常见漏洞和风险

(1)隐私信息泄露

移动应用与个人工作和生活的关系越来越紧密,用户从中获取便利的同时,很多是以牺牲个人隐私信息为代价。部分服务提供商为拓展业务或其他目的,在用户不知道的情况下获取用户通讯录、短信、活动范围等隐私信息。虽然隐私信息的丢失不一定给用户造成直接损失,但会给用户埋下很大的安全隐患。移动互联网时代,移动用户隐私信息的大数据,不但关系到某个用户,甚至事关国民经济运行和社会稳定,必然会引起重视。

(2)静态破解

未进行加密或加密技术简单的移动应用面临着被静态破解的风险,造成源代码、配置文件、资源文件等重要信息的暴漏,静态破解也是静态分析的首要任务[2]。

(3)动态调试

破解者利用调试器跟踪移动应用的运行,通过分步调试、输出日志、插桩注入、篡改逻辑、分析敏感信息等手段,寻求破解的途径[3]。

(4)篡改打包

被破解的移动应用不仅面临着敏感信息的泄露,而且还面临着植入恶意代码、资源替换、篡改、重签名及盗版等风险。

(5)按键劫持

移动应用往往采用操作系统自带键盘进行信息录入,攻击者利用恶意手段进行终端自带键盘的劫持,甚至重要操作被截屏录像,从而造成身份鉴别、重要业务操作、支付等敏感信息泄露。

(6)存储数据丢失

由于移动应用可能将信息存储在内部存储空间或外部存储空间中。如果存储空间权限限制不够严格,会导致存储数据的任意读取、篡改或恶意窃取。

(7)协议抓包

大多移动应用需通过网络协议与服务器进行交互,由于移动设备通过开放性的网络进行连接,因此存在被协议抓包的风险,易造成敏感信息被获取及篡改。

(8)传统应用安全

利用WEB SERVICE 提供服务的移动应用大都具有传统应用的特点,可能存在SQL注入、跨站攻击、越权、木马上传等安全漏洞。

2 移动应用安全评估模型

移动应用与传统应用存在较大区别,面临的风险也不尽相同。移动应用的静态评估可针对9个控制点进行[4],如表1所示。

针对移动应用的静态评估,需进行特征属性的提取,本模型选取了18种特征属性,如表2所示。

移动应用的静态评估由5大模块构成,如图1所示,分别为预处理模块、特征提取模块、特征序列模块、特征匹配聚类模块、输出模块[5-6]。

3 难点与算法

3.1 技术难点

移动应用的静态分析面临着许多技术难点,首先是应用加密、加壳以及源码混淆,几乎使静态分析无法进行。因此,需要借助一些平台、读取平台反馈信息和其他技术手段来实现突破,例如Android会借助到IDA、ZjDroid、JEB、apkTool、apkSign等工具的执行结果和反馈信息。ios会借助到dumpdecrypted、Apptrack、IDA、class-dump-z、UtSign等工具的执行结果和反馈信息。源码混淆的程序需通过手工结合工具的方式进行混淆还原,根据还原程度,可能对评估结果造成影响。接下来的难点就是特征提取,以安卓应用为例,通过解析配置文件、源码、smali代码等基础文件,分析显示及隐式权限申请、API调用、组件、控制流、数据流等,通过读取逆向破解、篡改打包等工具的执行反馈信息,获得逆向特征及篡改等特征,并生成篡改、签名后的打包文件,便于进一步验证篡改、验签情况[7]。

表1 移动应用安全静态评估控制点

控制点评估内容身份鉴别身份鉴别等重要操作是否调用自定义加密键盘进行操作访问控制1)是否申请应用所需的最小权限2)是否存在权限设置不够严格情况3)是否禁止内部组件在未授权的情况下被第三方调用4)是否存在权限超出设计范围安全审计是否禁止本地输出日志信息剩余信息保护1)是否禁止本地存储身份鉴别等敏感信息2)退出、卸载后信息是否完全清除通信完整性是否采取加密协议进行通信通信保密性是否采取加密协议进行通信应用保护1)是否可被逆向破解2)是否进行源码保护3)是否进行配置文件保护4)是否进行资源文件保护5)是否进行源码混淆或加密6)是否进行签名验证7)是否进行升级验证存储保护1)是否禁止第三方访问内部存储空间2)是否将信息保存在外部存储空间隐私保护是否存在隐私泄露是否为恶意代码

表2 特征属性

控制点特征属性身份鉴别默认键盘API调用特征自定义键盘API调用特征源码片段访问控制权限特征API调用特征组件权限特征安全审计日志特征剩余信息保护内部及外部存储片段退出、卸载特征通信完整性通信协议特征通信保密性通信协议特征应用保护逆向反馈特征源码破解反馈特征配置读取反馈特征资源替换反馈特征源码片段签名验证特征升级验证特征存储保护内部存储空间权限特征外部存储空间存储片段隐私保护权限特征API调用特征

3.2 改进聚类算法

聚类算法[8-9]是研究分类问题的统计分析方法,也是数据挖掘的重要算法。聚类分析由若干模式组成,在一般情况下,模式是一个度量向量或是多维空间的点。聚类分析的基础是相似度的判定,聚类算法将所要研究的数据对象以簇为单位进行划分,在簇内的数据对象的相似度高于簇外的相似度,也就是说本簇内的各数据对象具有很高的相似度,而不同簇的数据对象相似度较低。因不同的移动应用根据其功能在申请的权限和API调用等特征中,会体现出一定的相似性,因此,本模型选择聚类算法作为移动应用安全评估算法是切实可行的。

图1 评估模块

目前主要的聚类算法可以划分为如下几类:划分法(Partitioning Methods)、层次法(Hierarchical Methods)、基于密度的方法(density-based methods)、基于网格的方法(grid-based methods)、基于模型的方法(Model-Based Methods)。

层次法(Hierarchical Methods)对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。例如,在“自底向上”方案中,初始时每一个数据纪录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。代表算法有ROCK算法、BIRCH算法、CURE算法、CHAMELEON算法等。

ROCK算法是一种经典的凝聚型层次聚类算法,该算法主要特点是以簇之间的关联性作为依据来判定聚类。ROCK算法具有良好的抗干扰性和伸缩性,从而使其可以更好地处理稀疏数据和多维数据。根据移动APP的特点,其权限申请和API调用等特征数据的特点均是稀疏的、多维的、多变的。故本文选用ROCK算法作为移动APP权限特征和API调用的数据分析方法,并对ROCK算法的局限性进行改进,使其更好地应对移动互联网复杂多变的安全威胁。

ROCK算法定义了簇间的链接,即Link作为簇间相似度的判别标准。

ROCK算法采用杰卡德相似度(Jaccard)作为数据点之间的衡量准则。杰卡德相似度的定义如式(1)所示。

(1)

其中,Pi、Pj为两个数据点,即均是一个包含若干元素的集合,Jaccard相似指数用来度量两个集合之间的相似性,它被定义为两个集合交集的元素个数除以并集的元素个数。

如果两个数据点,即Pi、Pj的相似度达到了阈值θ,这两个数据点就是邻居。阈值θ用户可以根据需求自行指定,但有一准则就是θ值越大,则对判定邻居的要求越高,反之则对邻居的要求越低。

链接即为两个对象的共同邻居数量,ROCK算法最大的特点就是聚类分析以簇间链接作为判定准则。

数据点之间的链接定义为,两数据点间公共的邻居数,如式(2)所示。

(2)

其中,Mi与Mj分别为点pi与pj的邻居列表。两点间的邻居数量越多,则两点间的联系越紧密。

簇间链接数的定义如式(3)所示。

(3)

其中,pq和pr分别为Ci与Cj两个簇中的任意两点。该公式的结果为Ci与Cj的簇间链接数是本簇中所有点分别与对方簇中所有点间的链接数之和。

与此同时,为了计算数据集中的所有簇间的链接数,定义了一个链接矩阵,首先根据相似度阈值计算各个簇的近邻,得到一个近邻矩阵B,如式(4)所示。

(4)

若点pi与pj为近邻是A中的元素则xij为1,否则为0,然后将L=B*B,即可得出n维矩阵的最初链接矩阵。

聚类算法中一个首要需要解决的问题就是确定聚类分析中最终形成的簇是否为最优选择。为了使簇内关联性加强,故采用链接来评判传统的ROCK算法。准则函数的定义如式(5)所示。

(5)

其中,Ci为任意一个簇,θ为相似度的阈值,此数据可以根据用户需求认为确定,ni为Ci簇中数据点的个数,pq和pr为同一簇内两个不同的点。计算所得结果表示当一组数据的聚类过程中有K个簇存在时,此次聚类分析的整体优劣程度,Ei的值最大时则为最优的聚类。

这里面需要说明的是f(θ)根据数据集模型和研究目的得出的相似度经验公式,该公式在ROCK算法中的定义如式(6)所示。

(6)

根据以上说明,ROCK算法的研究者对于聚类行为给出了指导函数,聚类指导函数的定义如式(7)所示。

(7)

此公式的结果为Ci、Cj两个簇之间实际链接数与期望链接数的比值,结果越大,表明链接越紧密,故每次聚类均选择此公式结果最大簇进行聚类。

上述定义表明ROCK算法进行层次聚类的一个传统流程,即需要用户自己给定所需的相似度阈值θ和想要建立的簇的个数K,根据指定的数计算出各点的邻居和邻居间的链接数,最后根据聚类指导函数进行簇间合并,指导形成用户所希望的k个簇为止。根据上述过程,我们可以看出ROCK聚类算法对于多维数据和数据类型限制性不高,并且可以更加便于我们掌握数据的全局信息。但是聚类算法的局限性和缺点也是显而易见的,其中最主要的表现为需要用户认为指定邻居相似度的阈值。但是对于绝大多数用户而言,并不具备可以以最优方式合理选取阈值的能力和经验。阈值过大会导致数据点间邻居数过少,从而不能对数据更好地进行聚类。阈值过小,又会导致聚类中邻居过多,数据聚类的质量过低。移动应用所要聚类的应用权限和API调用的数据集,随着移动APP越来越广泛的复杂应用,我们根本无法很好地确定阈值[9]。

鉴于ROCK聚类算法的不足,对该算法提出改进。ROCK算法实际上在处理过程中是将邻居间的相似度进行了一个极限处理,也就是说当两点间的相似度大于阈值时,就将两者认为绝对相同,即相似度取1,否则为0。这样的极限算法很容易出现一些不合理邻居的出现,故本文提出了一个不合理邻居的剔除方法。

第一步,计算点pi的邻居列表中所有点与pj的相似度之和的均值。

(8)

其中,N为pi的相似度阈值取值为0时的邻居个数,ave_sim(i)是pi所有邻居结点与其相似度的平均值。

第二步,引入了方差的概念,方差[10]是衡量源数据和期望值相差的度量值,即研究其数据的偏离程度,如式(9)所示,在这里对剔除不合理邻居有重要的意义。

(9)

其中,n为pi的相似度阈值取值为0时的邻居个数,s(i)2是pi所有邻居结点与其相似度的方差。

第三步,计算点pi的邻居列表中所有点与pj的相似度方差之和的均值,定义如式(10)所示。

(10)

其中ave_s(i)2为pi的邻居列表中所有点与pj的相似度方差之和的均值,当sim(pi,pj)>ave_sim(i)并且s(i)2

本次算法的改进可以有效避免ROCK算法的主要不足,成功避免人工选取阈值,改进算法通过均值和方差的计算,可以在阈值极限化的情况下合理选择相似度,同时有效避免了个别邻居的波动性和离散型。

4 结论

基于移动应用静态评估模型的研究,评估过程需要经过预处理模块、特征提取模块、特征序列模块、特征匹配聚类模块及输出模块[11]。

在预处理模块中,平台需要移动应用样本作为基础数据库。样本来源于安卓市场、苹果商店、恶意代码样本库及日常工作积累。本次评估导入恶意代码样本5 367份,非恶意代码6 893份。同时,在导入被测移动应用前,进行脱壳、脱密及源码混淆恢复处理。

在特征提取模块中,平台对被测移动应用自动进行逆向操作,智能解析移动应用的配置文件、源码等基础文件,分析权限申请、API调用、组件、控制流、数据流等,并通过读取逆向破解、篡改打包等工具的执行反馈信息,获得逆向特征及篡改等相关特征[11]。

在特征序列模块中,平台将提取的属性及特征按算法需要进行序列、归类及组合等处理,并进行存储。

在特征匹配聚类模块中[12],平台通过智能特征匹配及识别算法,生成与移动应用安全评估控制点相对应的映射。运用改进的聚类模块,对权限特征序列及API调用特征序列进行聚类处理,生成移动应用的最相近恶意类型。通过对已知恶意代码1 000份及非恶意代码1 000份的评估测试,原聚类算法评估准确率为89.57%,改进后的聚类算法评估准确率为93.61%,准确性明显提高。

在输出模块中,平台输出与移动应用安全评估控制点相对应的评估结果,控制点包括基本要求的身份鉴别、访问控制、安全审计、剩余信息保护、通信完整性、通信保密性,以及扩展的应用保护、存储保护和隐私保护控制点。输出内容包括特征解析结论、代码片段、详细列表、恶意类型等信息,植入广告片段、替换资源文件、重新签名的安装包,获得的服务器请求地址列表、发送邮件的地址列表、发送短信或通话的手机号码列表、程序包结构解析等信息,用于进一步的篡改验证、动态调试、渗透等的测试及分析。

通过理论研究与实践应用设计的移动应用静态评估模型,实现了智能特征匹配,并改进了聚类算法,有效提高了评估准确性。

移动互联网的热潮,促进了经济社会的发展,同时,存在隐患的移动应用正在威胁着个人隐私,悄悄吞噬公众利益,危害公共安全。针对移动应用的信息系统安全工作艰巨而迫切,需要社会各界的努力,共建移动互联的大安全。

[1]中国互联网协会,国家互联网应急中心.中国移动互联网发展状况及其安全报告(2016)[R].北京,2016.

[2]VARGAS R,HUERTA R,SAO C.Security controls for Android[C].Computational Aspects of Social Networks(CASoN),2012 Fourth International Conference on,2012:212-216.

[3]CHARLIE MILLER,DION BLAZAKIS,DINO DAIZOVI.iOS Hacker′s Handbook[M].New York:John Wiley & Sons,2012.

[4]陈建民.面向移动应用安全评估的多属性专家决策模型及应用研究[D].北京:北京工业大学,2014.

[5]李寅,范明钰,王光卫.基于反编译的Android平台恶意代码静态分析[J].计算机系统应用,2012(11):187-189.

[6]魏松杰,杨铃:基于分层API调用的Android恶意代码静态描述方法[J].计算机科学,2015,42(1):155-158.

[7]SEHMIDT AUBREY-DERFICK,BYE RAINER,SEHMIDT HANS GUNTHER,et al.Static analysis of executables for collaborative malware detection on Android[C].Proceedings of the 2009 IEEE international conference on Communications(ICC′09).Dresden,Germany,2009:63 l-635.

[8]李向东,夏冰,郑秋生.Android应用软件安全测评方法研究[J].信息安全与通信保密,2014(9):133-135.

[9]GUHA S,RASTOGI R,SHIM K.ROCK.A robust clustering algorithm for categorical attributes[C].Data Engineering,Proceedings,15th International Conference on.IEEE,1999:512-521.

[10]江海峰,庄健.概率论与数理统计[M].合肥:中国科技大学出版社,2013.

[11]RASSAMEEROJ I,TANAHASHI Y.Various approaches in analyzing Android applications with its permission-based security models[C].Electro/Information Technology(EIT),2011 IEEE International Conference on.IEEE,2011:1-6.

[12]ARMANDO A,MERLO A,VERDERAME L.An empirical evaluation of the android security framework[M].Security and Privacy Protection in Information Processing Systems.Springer Berlin Heidelberg,2013:176-189.

(责任编辑:刘划 英文审校:赵亮)

Security evaluation model of APP in mobile internet

YUE Qian

(Information Center,Institute of Applied Ecology,Chinese Academy of Sciences,Shenyang 110180,China)

In the era of mobile internet,mobile APPS penetrate in people′s work and life.The security of mobile APPS and the security evaluation of information system for mobile APPS have become increasingly the focus.This paper studied a static assessment model of mobile applications by extracting and analyzing the important attributes and characteristics of mobile APPS.The study shows the improved clustering algorithm for the assessment can lead to a significant improvement in the accuracy.

mobile internet;APP;security assessment model;clustering

2016-09-20

岳倩(1984-),女,山东嘉祥人,工程师,主要研究方向:信息安全、数据挖掘,E-mail:yueqian@iae.ac.cn。

2095-1248(2016)05-0068-06

TP392

A

10.3969/j.issn.2095-1248.2016.05.013

猜你喜欢
聚类阈值特征
如何表达“特征”
小波阈值去噪在深小孔钻削声发射信号处理中的应用
不忠诚的四个特征
当代陕西(2019年10期)2019-06-03 10:12:04
基于自适应阈值和连通域的隧道裂缝提取
基于DBSACN聚类算法的XML文档聚类
电子测试(2017年15期)2017-12-18 07:19:27
抓住特征巧观察
比值遥感蚀变信息提取及阈值确定(插图)
河北遥感(2017年2期)2017-08-07 14:49:00
室内表面平均氡析出率阈值探讨
基于改进的遗传算法的模糊聚类算法
一种层次初始的聚类个数自适应的聚类方法研究