改进粒子群算法应用于Android恶意应用检测研究
2022-09-07谭鹤毅
谭鹤毅
(南充职业技术学院 四川 南充 637000)
0 引言
Android系统在2016年之前就已经占据了大约2/3的移动终端市场[1]。目前,Android系统已经成为迄今为止最常见的操作系统,被用于全球23亿多个终端平台,其中包含计算机、平板以及手机等平台。有报告显示,Android系统已占据60.4%的市场总份额,其增长趋势仍在不断上升。然而,由于Android系统是一个开放平台,很容易受到各式各样的恶意应用程序的攻击。越来越多的恶意攻击威胁到Android系统的安全,据不完全统计,Android恶意应用程序样本总数已达到约1 874.3万,越来越多使用Android系统的用户信息正在被泄露。Android恶意应用所产生的不良后果影响系统运转安全性,因此如何快速且准确地检测出恶意应用,成为现阶段Android系统以及应用平台研究的重点内容。随着信息技术快速发展和进步,越来越多的技术人员将改进粒子群算法应用在Android恶意应用检测中。
1 改进粒子群算法基础理论
现阶段,Android应用想要开展性能测试一般通过UI检查设备和仪器,同时利用可视化角度直接获得UI结构布局方案设计以及各种软件属性信息和数据,根据所得到的应用属性和信息结合性能测试工具所提供基础方式,确保Android应用可以进行用户操作和模拟测试,触发应用程序的正常运转。在应用程度运行环节上还需要利用检测设备和系统监测平台运行每一个环境输出数据,根据其运行结果调整测试参数,有效发现Android恶意应用路径。
粒子群算法,最开始是基于鸟类的进食规则,通过模仿鸟群之间在寻找食物时的信息交流方式,而后人们将这种方法抽象为一种算法。换言之,粒子群优化算法是在解决某一问题时对随机解进行迭代优化,用适配度分析解的好坏,然后按照当前个体极值以及全局极值找到全局最优。粒子群算法实现起来很简单,收敛速度也比较快。但传统的粒子群算法更适用于在解决一维问题,因速度矢量以及位置矢量都是一维的,单个粒子的速度以及位置上的方程在更新时会相对简单,很容易找到里面的最优解。具体的粒子群算法流程见图1。
然而,该算法若想在Android恶意应用检测方面进行运算需对其进行优化改进。改进粒子群算法在实施过程中主要包含多个核心流程和步骤,分别对应不同类型的Android恶意应用检测,而在实际检测环节上,性能测试以及粒子群优化计算方式则是改进粒子群算法的核心操作流程和步骤,能够通过不断协调和控制信息获取速度、测试Android应用模块达到测试效果[2]。
系统的控制信息获取技术在实际操作环节上主要将依靠人工匹配的控制信息与Android恶意应用检测过程自动化处理,以此不断增加改进粒子群算法自动化率,同时充分利用View server系统获得系统控制层次树,确保控件层次数据能够直接用于后续应用测试。而在改进粒子群算法实际实施过程中,所产生控制属性信息主要由控件类型与控件标识信息共同提取,并且所提取到的信息和数据应用在匹配模块化测试环节上,致使原始基础测试方式所构成的数据测试能够由案例测试模式转化为模块化方法,让改进粒子群算法应用于Android恶意应用时,所生成树测试案例更加简单和完整。
2 改进粒子群算法实施流程
2.1 建立应用层次树
在改进粒子群算法检测环节上,针对Android恶意应用检测自动化率较低等问题,该技术方式明确提出获得控件层次树应作为核心检测流程,所以Android恶意应用检测应根据Hierarchy Viewer检测技术特点,将手动操作的控件层次树以及控制信息转化为自动化的获取技术手段,同时以所得到了检测信息结构建设出全新的层次树,最终通过空间层次树内部结构中关键字的模糊匹配,让改进粒子群算法可以自动生成测试案例。Android恶意应用层次树见图2。
在改进粒子群算法测试环节上,获得控件层次树则是构建Android恶意应用测试的基础因素,因此通过自动化技术手段获得控件层次树中的测试参数,只有根据节点信息特点过滤与整理,才能有效构建出具有自动化性能的测试案例,充分结合关键字模糊匹配技术方式,在Android恶意应用检测环节上使用初级的用例,经过应用平台测试案例之后,利用改进粒子群算法针对平台信息数据进行优化,最终生成测试用例。
2.2 测试模块化
当下,Android应用平台中的改进粒子群算法测试模式十分常见,由于此种计算方式能够将测试模块化处理,有利于增强Android恶意应用检测的自动化率。从本质上来看,改进粒子群算法的核心流程则是自动化脚本的参数编写,但是此种环节同样也最耗费人力和物力。在此环节上,该计算模式一部分工作能够实现自动化操作,加上自动化脚本所触发的相同类型计算流程十分类似,所以移动设备自身所具有的操作局限性和约束性导致Android应用平台在开发和后续操作时不能过于复杂化,所以一旦平台设计不合理,极易造成Android恶意应用侵入手机软件[3]。比如:由于移动终端设备在软件操作环节上,主要通过手指点击、滑动或者压力感知等动作完成软件APP的应用和操作,所以想要防止Android恶意应用的产生,则应牺牲一定系统代码完成系统内部对恶意软件的自动化检测和数据模块化控制,从APP使用事件中含有的共性特点抽象处理,设计出基础的安全防控操作。
3 二进制粒子群(BPSO)改进策略
3.1 二进制粒子群计算方式
粒子群算法是1995年提出的一种元启发优化算法,并于1997年优化为二进制版本。将整个特征空间当作解空间,解空间为不同特征组合,并将解空间当作是不同位置的粒子,将特征组合中各特征分量状态与粒子中各位置的取值相对应,确保单个特征分量状态只对应一种特征组合,所有粒子分析仅可取两种状态分量,丢弃和选择,并将特征的选择过程,从实数空间推广至二值空间(binary particle swarm optimization,BPSO)。BPSO算法中,Android应用样本对应的粒子,用优化二进制方式,提高整个算法运作效率。二进制编码组成中,采用1与0的方式表示每个特征分量。其中二进制公式运算速率问题用公式(1)表示;所有相关二进制可用公式(2)表示;公式(2)到公式(1)之间,粒子速度的相关特征去1或者0的概率进行转换,0表示未被选中,1表示被选中。式中惯性权值用ω表示,加速因子(正常数)使用c1和c2表示,rand()为[0,1]的随机数,在xid位置取1概率的数用表示,粒子可以通过公式(3)实现位置改变,并通过定义参数vmam对公式(3)范围进行限制,确保xid位置的概率可以限定在0或者1。
3.2 含Android恶意应用编码设计
在原有的Android相关安全防护系统中,装备上各应用运行状态下,相应监测权限阈值。当检测到应用权限超过设定的权限阈值时,表明系统中含有恶意应用,此时将恶意应用标记为“1”,当应用程序的权限,在设定的权限之内时,则标记为“0”,利用此种方式,动态化对Android应用进行分析,各Android相关应用的监测标记,形成一系列离散信息,将获取的离散信息传送至安全监测系统,安全监测系统同采集到的相关应用信息,完成恶意应用评判。由于应用程序较为复杂,涉及的后台程序信息较为复杂,需要对应用程序编码监测方式进行重新定义。应用中按照与权限相关的原则进行分析与选择,以系统中安全防护系统相关权限代码标准为正方向,当应用软件相关权限代码同Android要求相符合时,标记为“1”,反之标记为“0”[4]。
3.3 构建评价函数
对Android应用构建相应评价函数,以便于可以及时查到恶意应用。在评价函数构建上,公式见(4)。式中Ij表示J应用程序中对应的相关权限信息,I*(SE)表示安全系统应用程序权限代码期望函数,可以反映应用程序权限相关信息,Nz表示应用程序存在恶意编码的总数量,表示有效避免安全防护系统误判的增加一项,通常ω为常量,取值为0.50。
当多个系统同时运行时,整个Android系统中,多个应用使得系统运行更为复杂,采用1与-1两种状态去分析相应应用是否为恶意应用,难度比较大,存在无法判断的情况。故在原有1与-1的形式基础上,增加0判定,形成1、0、-1 3种形态判断,便于综合分析应用具体情况,公式见(5)。
S·(Se)表示应用系统的具体代码,对所有运用应用的权限相关代码进行检测,当存在恶意时,标记为“1”,应用可以检测当1时,对反馈编码区域进行“或逻辑”运算;g·(Se)表示其应用运行控制相关代码信息为-1,所有应用运行区域可以检测到安全隐患信息-1,进行“或逻辑”运算。
3.4 BPSO算法改进
种群在进行不断迭代的过程中,某一个粒子出现“局部最优”的情况,周围粒子会逐渐向其靠近,导致粒子群的多样性特征丧失,出现“早熟”现象[5]。因此需要结合二进制粒子的多样性特征,进行二进制变化率改进,所用的改进处理公式见(6),式中群迭代至第6代的变化率用g表示种,k代时的适应度值迭代次数用f(k)表示。
假定ω的值会随着g的变化而自适应取值,其公式为(7),式中,当g<0.05时,算法的适应度值存在最优解,种群处于开发阶段,使得ω值可以促进种群最优解的确定;当g≥0.05时,种群的最有适应度变化较大,并种群暂未发现出现巨龙的方向,此时通过ω值约束可以确保算法可以实现快速收敛。
3.5 BPSO算法改进应用程序
基于Android系统和应用程序检测,对应用程序权限等情况进行分析,便于锁定存在恶意的应用。通过对权限相关信息组成的“1”或者“0”的离散信息,对BPSO算法进行改进,在虚拟空间中将问题转变为多维离散空间中的粒子群,之后进行优化选择[6]。并采用迭代寻找的方式,确保通过持续性迭代,利用评价函数,对应用的粒子所在空间进行判断,再对新一代粒子所处空间位置实现更新,满足粒子群评价标准后结束,此时可以寻找到存在恶意的应用程序,并确定其存储的空间位置等。
4 结语
综上所述,本次研究主要以粒子群算法作为出发点,并以此作为基础条件观测出不同类型的映射函数所产生变化速度和趋势,提出了改进粒子群算法,同时经过实践操作能够进一步证实,使用改进粒子群算法可以高效且准确地检测出Android 恶意应用。