一种基于混合检测结果的Android应用行为分析方法技术

技术编号:17541506 阅读:43 留言:0更新日期:2018-03-24 18:24
本发明专利技术公开了一种基于混合检测结果的Android应用行为分析方法,包括:从动态检测和静态检测得到应用程序行为数据、对包含两种检测及过的向量进行降维、建立学习模型学习算法分析数据。本发明专利技术通过静态检测方法估算出应用程序的运行时API调用量,通过动态检测方法采集到真实情况下应用程序的运行时API调用量,并将两者整合在一起,通过数据降维方法来忽略或弱化非主要维度的影响,再设计机器学习方案对数据进行学习,最终得到一个量化的评估结果。本发明专利技术弥补了单独使用动态检测或者静态检测带来的不足,提高了对应用程序的检测能力,对Android应用程序分析有着深远的影响。

A method of Android application behavior analysis based on mixed detection results

The invention discloses a hybrid detection Android based on the results of applied behavior analysis methods, including: application behavior data, to include two kinds of detection and vector dimension, a learning model learning algorithm analysis data from dynamic detection and static detection. Through the static detection method to estimate the runtime of the application of API dosage, through the dynamic detection method to collect the real circumstance of the application's runtime API dosage, and integrate them together, through the data dimensionality reduction method to ignore or weaken the influence of non main dimensions, design scheme of machine learning to learn the data, finally get a quantitative evaluation result. The invention compensates for the defects caused by dynamic detection or static detection alone, improves the detection ability of the application program, and has a far-reaching impact on the analysis of Android application programs.

【技术实现步骤摘要】
一种基于混合检测结果的Android应用行为分析方法
本专利技术涉及Android应用程序分析领域,特别涉及通过动态手段和静态手段混合检测的Android应用程序分析方案。本专利技术涉及一种基于动静态检测技术的Android应用程序检测方案,特别是指通过分析动态检测和静态检测得到的应用程序行为信息来对应用程序进行评估,从而弥补动态检测和静态检测的不足。
技术介绍
目前,应用程序的检测主要所依赖的手段是静态检测和动态检测两种手段,因此,以下我们将主要介绍后两种手段的科研进展以及优缺点。目前动态检测技术大多是通过提取软件行为的检测方案来实现的,即通过模拟器运行被检测软件,记录应用程序运行时行为信息,并以此分析被测软件是否存在安全问题。动态检测技术在不用查看应用程序结构和特征代码的情况下,直接实际运行待测应用程序,通过某种方式监听应用程序的行为特征并分析判断应用程序是否是恶意程序。静态检测技术是指对被测软件的源程序或者二进制代码进行扫描,从语法、语义上理解程序的行为,直接分析被检测程序的特征,寻找可能导致错误的异常。目前其主要的检测方式有二进制程序分析与源代码分析两种。二进制程序分析是针对软件代码进行审查的检测技术,该分析技术通过读取二进制文件,与已有的恶意行为二进制特征代码库进行匹配,通过匹配结果判断应用程序的安全性。源代码分析是针对编程语言本身的检测技术,是指对程序的反编译代码进行分析,通过词法分析、语法分析和静态语义分析,检测程序中潜在的安全漏洞。同时,源代码分析可被用于污点分析,即将某些敏感数据标记为污点数据,并重点检测分析特殊API调用以及隐私数据的使用和传递,通过应用程序对污点数据的使用情况判断应用程序的安全性。动态检测技术的优势是能够检测出程序实际运行时的恶意行为,即使是未知的恶意程序也可以被检测到。因为其检测的是恶意行为而不是某一段恶意代码,代码可以变化,但恶意行为一般不变。但是动态检测技术的缺点也很明显,比如检测速度慢,检测时间长,检测过程繁琐复杂等。因为动态检测技术需要安装并真实运行应用程序才能进行采集数据,所以动态检测技术可能会由于测试环境或测试用例等的影响而无法准确、完善的检测整个应用程序。动态检测技术的另一方面的缺点是其在实际检测过程中需要运行应用程序,该步骤多通过人工或自动化测试实现,相对于人工,自动化测试由于测试模型的设计问题很难做到对应用程序的全面测试,而人工测试由于需要大量人力,无法满足在当前应用程序数量日益增多情况下对大量应用程序进行检测的需求。静态检测技术的优点与动态检测技术正好相反,静态检测技术可以全面的检测到整个应用程序,包括不容易操作到的部分和需要特殊情况才会调用的部分。同时,静态检测方案的速度明显快于动态检测方案,并且,静态检测只需要对安装包进行分析,不需要额外地人工输入或者自动化输入。不过静态检测也有其缺点,静态检测技术由于只能分析安装包,所以静态检测得到的结果不一定与实际情况完全相同,由此使得静态检测技术的错误率高于动态检测技术,同时静态检测计算对未知应用程序和复杂逻辑关系的分析能力要远远差于动态检测技术。本专利技术在以上基础上,结合了静态检测技术和动态检测技术,对应用程序分析方案进行了修改,以期实现一种结合动静态检测技术的Android应用程序分析方案。并以此来对动态检测方案和静态检测方案进行互补,最终达到提高应用程序检测能力的目的。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:1、通过动静态检测技术得到相同类型的数据;2、对数据进行降维,筛选出主要数据;3、设计机器学习方案对数据进行分析。(二)技术方案为解决上述技术问题,本专利技术提供了一种基于混合检测结果的Android应用行为分析方法,包括以下步骤:步骤一:用过静态分析技术和动态分析计算得到应用程序的行为数据;步骤二:通过机器学习降维方法对数据进行处理;步骤三:使用处理后的数据对机器学习算法进行训练学习;步骤四:使用步骤三得到的训练结果对应用进行评估。在一些实施方式中,步骤一具体表现为在已有的静态检测方案和动态检测方案的基础上,对应用程序进行分析,得到行为数据,这里选用应用程序的API调用量来表示。选择API调用量作为代表主要是因为可以通过在静态检测计算中进行一定的优化估算得到API调用量这个比较全面的指标,同时也可以通过动态检测手段得到实际运行时的API调用量,这两者所携带的信息可以在一定程度上进行互补,最终得到更加全面的数据信息。在一些实施方案中,步骤二中数据降维的方式具体表现为:通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。设n维向量w为目标子空间的一个坐标轴方向(称为映射向量),最大化数据映射后的方差,有:其中m是数据实例的个数,xi是数据实例i的向量表达,x拔是所有数据实例的平均向量。定义W为包含所有映射向量为列向量的矩阵,经过线性代数变换,可以得到如下优化目标函数:其中tr表示矩阵的迹,表示数据协方差矩阵。容易得到最优的W是由数据协方差矩阵前k个最大的特征值对应的特征向量作为列向量构成的。这些特征向量形成一组正交基并且最好地保留了数据中的信息。最终将X映射到W上输出,结果由X的原始维度降低到了k维。在一些实施方式中,所述步骤三中对数据进行学习的机器学习算法是:本方法使用SVM分类器对提取的数据集进行分类,在SVM的概念中,超平面的法向量可以表示为下面的公式:其中yi等于1或-1,表示分类后的类别,zi表示一组支持向量,φ(·)表示一个映射,而且αi>0。SVM分类器的核函数k(zi,xi)由φ(·)计算得到,其计算公式如下所示:k(zi,xi)=φ(zi)·φ(xi)(2)这里我们假设有N个支持向量,每一个索引从1到N。支持向量zi是那些最靠近分离超平面的数据点;这些点都分布在平行于超平面的没有内部数据点的两个最远平面上,该平面为:yi(ω·φ(zi)-b)=1(3)其中b是偏置,是一个常量,可以由支持向量机的优化算法决定。为了能够预测新的数据x,所有支持向量将被用来计算一个分数。该分数可以表示新输入数据在当前分类器下的分类情况,由以下公式计算得到:Scorex=ω·φ(x)+b(4)结合公式(1)得到然后带入核函数公式(2),得到该分数表示分类器对输入向量的分类情况,本方法使用该分数得到一个0~100的分值,用来对检测的应用程序进行评估。(三)有益效果相对于已有的Android应用程序分析方法,本专利技术有如下优点:1、基于静态检测技术和动态检测技术两种手段,使其可以优势互补,得到更全面的应用程序数据;2、对提取数据进行选择,使静态和动态数据处于同一类型;3、使用技术手段对数据进行降维,提高检测能力;4、设计机器学习方案,对输出进行处理,得到以分值形式显示的评估结果。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。本专利技术提供了一种基于混合检测结果的Android应用行为分析方法,包括以下步骤:步骤一:用过静态分析技术和动态分析计算得到应用程序的行本文档来自技高网
...
一种基于混合检测结果的Android应用行为分析方法

【技术保护点】
一种基于混合检测结果的Android应用行为分析方法,其特征是,该方法包括以下步骤:S1:通过静态分析和动态分析计算得到应用程序的行为数据;S2:通过数学降维方法对数据进行处理;S3:使用处理后的数据对机器学习算法进行训练学习;S4:使用S3得到的训练结果对应用进行评估。

【技术特征摘要】
1.一种基于混合检测结果的Android应用行为分析方法,其特征是,该方法包括以下步骤:S1:通过静态分析和动态分析计算得到应用程序的行为数据;S2:通过数学降维方法对数据进行处理;S3:使用处理后的数据对机器学习算法进行训练学习;S4:使用S3得到的训练结果对应用进行评估。2.根据权利要求1所述的Android应用程序行为分析方法,其特征在于,所述步骤S1所述分析方法包括动态和静态两种。3.根据权利要求2所述的应用程序运行时API调用量预估方法,其特征在于,两种分析方法提取的数据应该包含同一方面的信息。4.根据权利要求2所述的Android应用程序行为分析方法,其特征在于,两种分析方法提取的数据要有一定的不同,并且可以整合到...

【专利技术属性】
技术研发人员:范文浩张岱帅刘元安吴帆张洪光
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1