CN115310089A - 基于正则极限学习机的安卓恶意apk检测方法 - Google Patents

基于正则极限学习机的安卓恶意apk检测方法 Download PDF

Info

Publication number
CN115310089A
CN115310089A CN202211047790.XA CN202211047790A CN115310089A CN 115310089 A CN115310089 A CN 115310089A CN 202211047790 A CN202211047790 A CN 202211047790A CN 115310089 A CN115310089 A CN 115310089A
Authority
CN
China
Prior art keywords
sample
application program
matrix
feature
characteristic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211047790.XA
Other languages
English (en)
Inventor
张有为
葛方丽
薛兵
王祎飞
陈思
郭赵飞
耿政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinda Institute of Advanced Technology
Original Assignee
Zhengzhou Xinda Institute of Advanced Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Xinda Institute of Advanced Technology filed Critical Zhengzhou Xinda Institute of Advanced Technology
Priority to CN202211047790.XA priority Critical patent/CN115310089A/zh
Publication of CN115310089A publication Critical patent/CN115310089A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于正则极限学习机的安卓恶意apk检测方法,所述方法包括以下步骤:步骤1,按照功能类别对样本应用程序集apk进行分类,得到M个不同功能类别的样本子集;步骤2,从样本子集的应用清单AndroidManifest.xml文件中提取出第一类特征属性,根据样本子集的.smali文件提取出第二类特征属性,构造出基础特征矩阵R;步骤3,筛选出共有特征集合,作为特征子集X;步骤4,基于极限学习机算法进行模型训练得到初始分类检测模型等;步骤5,提取待检测应用程序apk,利用分类检测模型检测待检测应用程序是否为恶意应用程序。本发明能够快速高效地检测出威胁Android系统信息安全的恶意应用程序。

Description

基于正则极限学习机的安卓恶意apk检测方法
技术领域
本发明涉及恶意应用程序检测技术领域,具体的说,涉及了一种基于正则极限学习机的安卓恶意apk检测方法。基于正则极限学习机的安卓恶意apk检测方法及介质
背景技术
随着移动(智能)终端的普及与发展,各种APP应用程序成为人们工作、生活不可缺少的一部分,由此衍生而来的数据安全问题层出不穷。比如恶意扣费、隐私盗取、远程控制等多类问题,严重威胁移动终端的信息安全。恶意应用程序可以获取手机号、搜集用户手机IMEI码、系统版本号、发送短信、采集个人照片、访问位置信息等隐私数据,并将隐私数据上传到网络,造成隐私数据的泄露,使得Android系统信息安全技术的研究变得至关重要。
在网络安全日益严峻的今天,移动终端的安全问题更是广受关注,移动终端在带来便利的同时,也带来了极大的安全威胁,所以针对移动终端的信息安全研究刻不容缓。为了保障移动终端信息安全,面对层出不穷的恶意应用程序,国内外研究人员对Android应用程序开展了一系列的研究工作,主要采用静态分析方法或动态检测方法。
目前,静态分析方法大多通过从应用清单中提取应用权限和程序接口的方法进行应用程序检测,该种方法因考虑影响因素少,存在检测效率低,准确率不高的问题;而动态分析方法通常很难模拟出一个合适的环境来触发应用程序全部的恶意功能,而且无法预知应用程序的恶意行为被触发所需的时间长度。因此,提出一种能够快速高效地检测出威胁Android系统信息安全的恶意应用程序的技术,具有重要的理论意义和实用价值。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供一种基于正则极限学习机的安卓恶意apk检测方法。
为了实现上述目的,本发明所采用的技术方案是:
本发明第一方面提供一种基于正则极限学习机的安卓恶意apk检测方法,所述方法包括以下步骤:
步骤1,获取样本应用程序集apk,按照功能类别对所述样本应用程序集apk进行分类,得到M个不同功能类别的样本子集;
步骤2,从所述样本子集的应用清单AndroidManifest.xml文件中提取出第一类特征属性,从所述样本子集的.smali文件中提取出第二类特征属性,基于所述第一类特征属性和所述第二类特征属性构造出基础特征矩阵R;
其中,所述第一类特征属性包括硬件组件、系统权限、应用组件和意图过滤器,所述第二类特征属性为API调用特征标识符;
步骤3,使用信息增益算法对所述基础特征矩阵R进行评分,得到所述基础特征矩阵的第一评分结果;根据所述第一评分结果对所述基础特征矩阵R进行筛选,得到第一特征矩阵F;
通过Fisher Score算法对所述基础特征矩阵进行评分,得到所述基础特征矩阵的第二评分结果;根据所述第二评分结果对所述基础特征矩阵R进行筛选,得到第二特征矩阵I;
对所述第一特征矩阵F和所述第二特征矩阵I进行交集处理,筛选出共有特征作为特征子集X;
步骤4,以所述特征子集X为输入向量,以各个样本子集对应的样本应用程序标识符为输出向量,基于极限学习机算法进行模型训练得到初始分类检测模型;其中,所述样本应用程序标识符用于表示样本应用程序是否为恶意应用程序;
使用正则项对所述初始分类检测模型进行优化,得到第一分类检测模型;
通过五折交叉验证法对所述第一分类检测模型进行重复训练,得到分类检测模型;
步骤5,提取待检测应用程序apk,利用步骤4得到的分类检测模型,检测所述待检测应用程序是恶意应用程序还是安全应用程序。
本发明第二方面提供一种基于正则极限学习机的安卓恶意apk检测设备,包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的基于正则极限学习机的安卓恶意apk检测程序,所述基于正则极限学习机的安卓恶意apk检测程序被所述处理器执行时,实现如上述的基于正则极限学习机的安卓恶意apk检测方法的步骤。
本发明第三方面提供一种可读存储介质,其上存储有指令,该指令被处理器执行时实现如上述的基于正则极限学习机的安卓恶意apk检测方法的步骤。
本发明的有益效果为:
1)针对多种多样的应用程序,本发明提出了一种基于正则极限学习机的安卓恶意apk检测方法,用以维护Android系统信息安全的恶意应用程序检测过程;对应用程序的.apk文件进行静态分析,提取包括硬件组件、应用组件、系统权限、意图过滤器以及API调用特征标识符在内的特征属性,进行特征筛选,然后利用机器学习的方法进行恶意应用程序检测,从而快速高效地检测出威胁Android系统信息安全的恶意应用程序;
2)本发明引入正则项,对输出权值的计算公式进行优化,从而有效防止训练过程中出现过拟合现象,提高分类检测模块的准确度;
3)本发明使用信息增益算法和Fisher Score算法分别对构造的基础特征矩阵评分,然后根据评分结果分别筛选各自的特征集,初步去除冗余特征;然后再对两种方法得到的特征集进行交集处理,筛选出共有特征集合作为特征子集,进而进一步去除冗余特征,有效提高特征子集的准确度,进而提高输出权值及分类检测模型的准确度。
附图说明
图1是本发明的基于正则极限学习机的安卓恶意apk检测方法的流程图;
图2和3是本发明的基于静态逆向分析构造出基础特征矩阵R的示意图;
图4是本发明的特征子集X获取过程的流程图;
图5是本发明的基于极限学习机算法对待检测应用程序进行检测的流程图;
图6是本发明的利用五折交叉验证法得到分类检测模型的流程图;
图7是本发明的极限学习机结构的结构示意图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
APK,全称Android application package,Android应用程序包,是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件;使用反编译工具apktool对APK反编译工具得到.smail文件。
一个APK文件内包含被编译的代码文件(.dex文件)、文件资源(resources),assets、证书(certificates)和清单文件(AndroidManifest.xml);其中,AndroidManifest.xml内包含硬件组件特征属性、系统权限特征属性、应用组件特征属性、意图过滤器特征属性;这些特征属性的属性值分别是1或者0,1表示当前样本应用程序apk包含对应的特征属性,0表示当前样本应用程序apk不包含对应的特征属性。
实施例1
附图1示出了一种基于正则极限学习机的安卓恶意apk检测方法的流程示意图,所述基于正则极限学习机的安卓恶意apk检测方法包括以下步骤:
步骤1,获取样本应用程序集apk,按照功能类别对所述样本应用程序集apk进行分类,得到M个不同功能类别的样本子集;其中,所述样本应用程序集apk中共有n个样本应用程序;
步骤2,分别对各个样本子集进行静态逆向细粒度分析,从所述样本子集的应用清单AndroidManifest.xml文件中提取出第一类特征属性,从所述样本子集的.smali文件中提取出第二类特征属性,基于所述第一类特征属性和所述第二类特征属性构造出基础特征矩阵R;
其中,所述第一类特征属性包括硬件组件、系统权限、应用组件和意图过滤器,所述第二类特征属性为API调用特征标识符;
步骤3,使用信息增益算法对所述基础特征矩阵R进行评分,得到所述基础特征矩阵的第一评分结果;根据所述第一评分结果对所述基础特征矩阵R进行筛选,得到第一特征矩阵F;
通过Fisher Score算法对所述基础特征矩阵进行评分,得到所述基础特征矩阵的第二评分结果;根据所述第二评分结果对所述基础特征矩阵R进行筛选,得到第二特征矩阵I;
对所述第一特征矩阵F和所述第二特征矩阵I进行交集处理,筛选出共有特征作为特征子集X;
步骤4,以所述特征子集X为输入向量,以各个样本子集对应的样本应用程序标识符为输出向量,基于极限学习机算法进行模型训练得到初始分类检测模型;其中,所述样本应用程序标识符用于表示样本应用程序是否为恶意应用程序;
使用正则项对所述初始分类检测模型进行优化,得到第一分类检测模型;
通过五折交叉验证法对所述第一分类检测模型进行重复训练,得到分类检测模型;
步骤5,提取待检测应用程序apk,利用步骤4得到的分类检测模型,检测所述待检测应用程序是恶意应用程序还是安全应用程序。
可以理解,不同功能类别的恶意应用程序具备的特征属性不同,故需对其进行分类;所述功能类别按照恶意应用程序的攻击方式分为恶意吸费、恶意推广及广告、隐私窃取、安装包窃取、远程控制等;
步骤2中,对于N个不同功能类别,把所有功能类别的特征属性放置在一个基础特征矩阵R中;
在分类检测训练时模型参数已根据不同功能类别应用程序的特征属性和类别进行了智能计算,使得步骤4得到的分类检测模型适应于检测各种功能类别应用程序;因此,在步骤5中进行检测待检测应用程序是否为恶意应用程序时,不需要再确认待检测应用程序的功能类别。
如附图2所示,在一种具体实施方式中,所述步骤2包括以下步骤:
步骤2.1,使用反编译工具apktool分别对各个样本子集进行批量处理,得到各个样本子集的AndroidManifest.xml文件和.smali文件;其中,所述样本子集为样本应用程序集apk中不同功能类别下的apk文件;
步骤2.2,采用DOM方式解析样本子集的AndroidManifest.xml文件,根据所述AndroidManifest.xml文件的结构层次,依次从第二层节点、第三层节点、第四层节点获取第一类特征属性的属性值;其中,所述第二类特征属性的属性值包括4个n×1的向量;
依次访问样本子集的.smali文件,提取出第二类特征属性的属性值;其中,所述第二类特征属性的属性值为n×1的向量;
步骤2.3,将所述第一类特征属性的属性值和所述第二类特征属性的属性值加入预设的特征属性集合AttrsList,作为基础特征矩阵R;
其中,所述特征属性集合为
Figure BDA0003822280730000061
所述基础特征矩阵
Figure BDA0003822280730000062
n为所述样本应用程序集apk中的样本应用程序总数,每行对应一个样本应用程序,每列对应一种特征属性;
步骤2.4,获取各个样本子集对应的样本应用程序标识符,并存放在预设的应用程序集合apkList中;其中,所述应用程序集合apkList为n×1的向量,所述应用程序集合
Figure BDA0003822280730000063
tn,1为样本应用程序标识符,表示第n个样本应用程序是否为恶意应用程序。
例如tn,1=1表示第n个样本应用程序为恶意应用程序,tn,1=0表示第n个样本应用程序为安全应用程序。
如附图3所示,在另一种具体实施方式,所述步骤2包括以下步骤:
步骤201,使用反编译工具apktool分别对各个样本子集进行批量处理,得到各个样本子集的AndroidManifest.xml文件和.smali文件;
步骤202,采用DOM方式解析样本子集的AndroidManifest.xml文件,根据所述AndroidManifest.xml文件的结构层次,依次从第二层节点、第三层节点、第四层节点获取第一类特征属性的属性值,并将所述第一类特征属性的属性值分别标记为属性向量R1、属性向量R2、属性向量R3和属性向量R4;
依次访问样本子集的.smali文件,提取出第二类特征属性的属性值,并将所述第二类特征属性的属性值标记为属性向量S5;其中,
Figure BDA0003822280730000071
n为所述样本应用程序集apk中的样本应用程序总数;
步骤203,基于所述属性向量R1、所述属性向量R2、所述属性向量R3、所述属性向量R4和所述属性向量S5求并集,构造出基础特征矩阵R;
可以理解,所述基础特征矩阵R=属性集合R1、R2、R3、R4、S5和T的并集;其中,所述基础特征矩阵
Figure BDA0003822280730000072
所述基础特征矩阵R的第一列为属性向量R1,所述基础特征矩阵R的第二列为属性向量R2,所述基础特征矩阵R的第三列为属性向量R3,所述基础特征矩阵R的第四列为属性向量R4,所述基础特征矩阵R的第五列为属性向量S5;
Figure BDA0003822280730000073
步骤204,获取各个样本子集对应的样本应用程序标识符,并标记为属性向量T,其中,
Figure BDA0003822280730000081
tn,1为样本应用程序标识符,表示第n个样本应用程序是否为恶意应用程序。
其中,所述属性向量R1用于存放基于AndroidManifest.xml文件提取的硬件组件特征属性,所述属性向量R2用于存放基于AndroidManifest.xml文件提取的系统权限特征属性,所述属性向量R3用于存放基于AndroidManifest.xml文件提取的应用组件特征属性,所述属性向量R4用于存放基于AndroidManifest.xml文件提取的意图过滤器特征属性,所述属性向量S5用于存放基于.smail文件提取API特征标识符特征属性。
需要说明的是,所述基础特征矩阵R表示包含五大类特征属性的并集,T表示相应的应用程序是否为恶意应用程序的标志集;当apk数量较多(例如超过1000)时,样本属性中可能存在冗余,需要将同一功能类别下的每一个apk的特征描述在同一个向量空间中表示出来,进行特征子集筛选;若样本数量不超过1000则可不进行筛选。
需要说明的是,所述基础特征矩阵R中的每一行对应一个样本应用程序的属性值,在步骤3中分别采用信息增益算法和Fisher Score算法,对所述基础特征矩阵R中的每一行(一个样本应用程序的属性值)进行评分,去除冗余样本应用程序,得到特征子集X,如附图4所示;因此,所述特征子集X的列数与所述基础特征矩阵R的列数相同,所述特征子集X的行数N小于等于所述基础特征矩阵R的行数,所述基础特征矩阵R的行数等于样本应用程序集apk中的样本应用程序总数n;
具体的,所述步骤3包括以下步骤:
步骤3.1,采用以下公式使用信息增益算法对所述基础特征集R中的属性值进行评分:
Ig(Ri,Rij)=H(Ri)-H(Ri|Rij)
Figure BDA0003822280730000091
Figure BDA0003822280730000092
其中,H(Ri)表示所述基础特征集R的第i个特征集的信息熵,H(Ri|Rij)表示第i个特征集在特征Rij下的条件熵,lg(Ri,Rij)表示所述第i个特征集在特征Rij下的第一评分结果,Rij表示所述基础特征集R中第i行第j列处的元素值;
步骤3.2,根据所述第一评分结果对所述基础特征矩阵进行筛选,从所述基础特征矩阵R中筛选出排名在前A的特征属性,形成第一特征矩阵F;
步骤3.3,采用以下公式使用Fisher Score算法对所述基础特征集R中的属性值进行评分:
Figure BDA0003822280730000093
Figure BDA0003822280730000094
Figure BDA0003822280730000095
其中,Si表示所述基础特征集R中第i个特征集对应的第二评分结果,R′ij表示基础特征集R中第i个特征集在第j类样本中的平均取值,第j类样本包括第n1到第n2个样本应用程序,R′i表示所有功能类别对应的基础特征集R中第i个特征集的平均取值;(R′ij-R′i)2表示所述基础特征集R中第i个特征集之间的类间方差;(Rij-R′ij)2表示所述基础特征集R中第i个特征集之间的类内方差;
步骤3.4,根据所述第二评分结果对所述基础特征矩阵进行筛选,从所述基础特征矩阵R中筛选出排名在前B的特征属性,形成第二特征矩阵I;
步骤3.5,选取所述第一特征矩阵F和所述第二特征集I中的共有特征矩阵性,作为特征子集X;其中,所述特征子集X为N×5大小的矩阵。
可以理解,所述第一特征集F和所述第二特征集I的矩阵大小可以设置为相同,也可以设置为不同。
需要说明的是,所述步骤4中基于极限学习机算法进行检测模型训练,得到初始分类检测模型,为了防止训练过程中出现过拟合现象,所述步骤54引入正则项对所述初始分类检测模型进行优化,得到第一分类检测模型;为了提高模型的泛化能力,所述步骤4还利用利用五折交叉验证法重复步骤4.2进行第一分类检测模型训练,得到优化后的分类检测模型,从而有效提高分类检测模型的准确度,进而提高安卓恶意apk检测的准确度;
进一步的,所述步骤4包括以下步骤:
步骤4.1,以步骤4得到的特征子集X(大小为N×5)为输入向量,以特征子集X对应的样本应用程序标识向量Y(大小为N×1,N≤n)为输出向量,采用以下公式:
Hβ=Y
Figure BDA0003822280730000101
Figure BDA0003822280730000102
Figure BDA0003822280730000103
可得初始分类检测模型为:
β=(HTH)-1HTY
其中,β表示模型的输出权值矩阵(大小为N×1),H表示基于所述特征子集X生成的中间向量,g表示激活函数(如Sigmoid函数、阶跃函数、径向基函数)),N表示特征子集X中的属性值对应的样本应用程序个数;wi表示所述特征子集X中第i个元素xi与极限学习机结构(图7所示的结构)中第i个节点间的连接权重向量,bi表示极限学习机结构(图7所示的结构)中第i个隐含层对应的偏置向量;
Figure BDA0003822280730000111
表示输出权值矩阵β中第i行第1列的元素值(第L个输出节点的输出权值),
Figure BDA0003822280730000112
表示特征子集X对应的样本应用程序标识向量Y中第i行第1列的元素值,对应表示样本应用程序标识符(样本应用程序的属性标志);
步骤4.2,基于步骤4.1得到的输出权值向量β,使用正则项采用以下公式,获得第一目标正则化系数γ1
Figure BDA0003822280730000113
Figure BDA0003822280730000114
Figure BDA0003822280730000115
Figure BDA0003822280730000116
Figure BDA0003822280730000117
其中,minE表示性能指标,||β||2表示模型的输出权值矩阵β的范数的平方,γ表示正则化系数,||ε||2表示训练误差和矩阵ε的范数的平方,εi表示训练误差和矩阵ε中的第i个元素,βi表示步骤4.1中的输出权值矩阵β中的第i个元素,yi表示特征子集X对应的样本应用程序标识向量Y的第i个元素;
β表示步骤4.1中的模型的输出权值矩阵,βi表示步骤4.1中的输出权值矩阵β中的第i个元素;ε表示训练误差和矩阵(大小为N×1),εi表示训练误差和矩阵ε中的第i个元素(对应第i个样本应用程序的训练误差和);Y表示特征子集X对应的样本应用程序标识向量(大小为N×1),yi表示特征子集X对应的样本应用程序标识向量Y的第i个元素;ωi与bi与步骤4.1中的参数ωi和bi所表示含义相同;
依据所述第一目标正则化系数γ1对所述初始分类检测模型进行优化,得到第一分类检测模型,所述第一分类检测模型对应的公式:
Figure BDA0003822280730000121
其中,
Figure BDA0003822280730000122
表示优化后的输出权值向量估计值,γ1表示性能指标E的最小值对应的正则化系数,I表示单位矩阵(大小为5×5);
步骤4.3,利用五折交叉验证法重复步骤4.2进行模型训练,将性能指标E为最小值时正则化系数的值作为第二目标正则化系数γ2,根据第二目标正则化系数γ2和所述第一分类检测模型得到分类检测模型:
Figure BDA0003822280730000123
其中,所述步骤4.1中的ωi和bi是随机设定的常数,i的取值范围为1≤i≤N,n1和n2为大于等于1整数,n2>n1,N的取值范围为1≤N≤n。
可以理解,所述步骤4.1基于极限学习机算法进行模型训练得到的初始分类检测模型,具备结构简单、泛化能力强、学习时间短等优点,能够取得较好的预测效果。
所述步骤4.2使用正则项对所述初始分类检测模型进行优化时,预设正则化系数γ为0,接着增大或者缩小10倍,得到不同的性能指标E;根据性能指标E的大小,确定正则化系数γ的合适数量级后,再进一步对正则化系数γ对进行细调(如±0.01),直至得到性能指标E的最小值(将对应的正则化系数γ作为第一目标正则化系数γ1);
因此,正则计算可以对参数进行约束,从而防止计算过程中的过拟合现象,避免过度拟合样本应用程序中的噪音数据,进而提高分类检测模型的准确度。
需要说明的是,利用五折交叉验证法重复步骤4.2进行模型训练,将性能指标E为最小值时正则化系数的值作为第二目标正则化系数γ2,根据第二目标正则化系数γ2得到分类检测模型,有利于提高分类检测模型的泛化能力。
如附图6所示,所述步骤4.3包括以下步骤:
步骤4301,将样本应用程序集apk进行随机平均分组,分成五组;
步骤4302,依次取其中一组作为测试机,其余作为训练集,基于正则极限学习机算法进行模型训练;
步骤4303,循环进行五次模型训练,得到五个性能指标E,对取得的五个性能指标进行排序,性能指标取值最小值对应正则化系数即为第二目标正则化系数γ2
将第二目标正则化系数γ2代入下式,得到新的输出权值向量估计值:
Figure BDA0003822280730000131
将上式作为分类检测模型。
实施例2
在实施例1的基础上,本实施例给出了一种具体实施方式中:
(1)假设有100个样本应用程序,包含8种不同功能类别的样本子集;
(2)执行步骤2后:
提取出样本应用程序的第一类特征属性和第二类特征属性,构造出100行5列的基础特征矩阵R,
Figure BDA0003822280730000132
应用程序集合
Figure BDA0003822280730000133
可以理解,特征属性集合的第一行[r1,1 r1,2 r1,3 r1,4 s1,5]和应用程序集合的第一行[t1,1],与第一个样本应用程序对应;……依次类推特征属性集合的第100行[r100,1r100,2 r100,3 r100,4 s100,5]和应用程序集合的第100行[t100,1],与第100个样本应用程序对应;
需要说明的是,特征属性集合AttrsList和应用程序集合apkList为1和0组成的矩阵,特征属性集合AttrsList中的1表示当前样本应用程序apk包含对应的特征属性,特征属性集合AttrsList中的0表示当前样本应用程序apk不包含对应的特征属性,应用程序集合apkList中的1表示当前样本应用程序为恶意应用程序,应用程序集合apkList中的0表示当前样本应用程序为安全应用程序;
(3)以A为10,B为15,共有样本应用程序为例,执行步骤3后:
采用步骤3.1中的公式对所述基础特征矩阵R中的100行特征属性进行评分,所述基础特征矩阵R中第1个特征集(对应基础特征矩阵R中的第一行)在特征R1j下第一评分结果的计算公式是:
Ig(R1,R1j)=H(R1)-H(R1|R1j)
Figure BDA0003822280730000141
Figure BDA0003822280730000142
以此类推,获得第n个特征集的第一评分结果;
筛选所述基础特征矩阵R中评分靠前的前10行形成第一特征矩阵F(新的矩阵,新矩阵中的元素均来自原始基础特征矩阵R中);其中,所述第一特征矩阵F为10行5列的矩阵;
采用步骤3.3中的公式对所述基础特征矩阵R中的100行特征属性进行评分,所述基础特征矩阵R中第1个特征集对应的第二评分结果:
Figure BDA0003822280730000143
Figure BDA0003822280730000144
Figure BDA0003822280730000151
以此类推,获得第n个特征集的第二评分结果;
筛选所述基础特征矩阵R中评分靠前的前15行形成第二特征集I;其中,所述第二特征矩阵I为15行5列的矩阵;
筛选出第一特征集矩阵F和第二特征矩阵I中共有样本应用程序对应的特征属性,得到9行5列的特征子集X;
(4)执行步骤4.1后,可得初始分类检测模型为:
β=(HTH)-1HTY
其中,H为9行5列的矩阵,Y为9行1列的矩阵,β为9行1列的矩阵;
Figure BDA0003822280730000152
Figure BDA0003822280730000153
以此类推,
Figure BDA0003822280730000154
Figure BDA0003822280730000155
执行步骤4.2后,可得第一分类检测模型为:
Figure BDA0003822280730000156
其中,H为9行5列的矩阵,HT为5行9列的矩阵,HTH为5行5列的矩阵,I为5行5列的单位矩阵;
Figure BDA0003822280730000157
(
Figure BDA0003822280730000158
的逆)为5行5列的矩阵,Y为9行1列的矩阵,
Figure BDA0003822280730000159
为5行1列的矩阵;
执行步骤4.3,利用五折交叉验证法重复步骤4.2进行模型训练,对第一目标正则化系数γ1进行进一步优化;具体的,随机平均分组得到5组apk集,代入步骤4.2得到5个性能指标E,选取5个性能指标E中的最小值,并将对应的正则化系数作为第二目标正则化系数γ2;将优化后的正则化系数代入第一分类检测模型,得到新的
Figure BDA00038222807300001510
基于新的
Figure BDA00038222807300001511
和第二目标正则化系数γ2得到最终的分类检测模型:
Figure BDA00038222807300001512
最终的分类检测模型用于判断待检测应用程序是否为恶意应用程序,且在最终的分类检测模型中,
Figure BDA0003822280730000161
和γ2是已知的,H根据待检测应用程序apk变化,Y作为输出值。
实施例3
在上述实施例的技术上,本实施例给出了一种具体实施方式,如附图5所示;
所述基于正则极限学习机的安卓恶意apk检测方法中的步骤5包括以下步骤:
步骤5.1,提取待检测应用程序apk,筛选出待检测应用程序apk中的第一类特征属性和第二类特征属性,生成待检测应用程序的待测特征矩阵R’;其中,所述待测特征矩阵R’为1×5大小的矩阵;
步骤5.2,基于待检测应用程序的待测特征矩阵R’生成新的中间向量H,将新的中间向量H、第二目标正则化系数γ2和步骤4.3得到的输出权值向量估计值
Figure BDA0003822280730000162
获得待检测应用程序的应用程序标识符;
若待检测应用程序的应用程序标识符为1,则表示待检测应用程序是恶意应用程序;若待检测应用程序的应用程序标识符为0,则表示待检测应用程序是安全应用程序。
需要说明的是,使用步骤4.3得到的分类检测模型进行安卓恶意apk检测时,该分类检测模型中的γ2
Figure BDA0003822280730000163
是已知的,Y是未知的;在实际检测时,Y对应的是待检测应用程序的应用程序标识符。
实施例4
本实施例给出了一种基于正则极限学习机的安卓恶意apk检测设备的具体实施方式,其包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的基于正则极限学习机的安卓恶意apk检测程序,所述基于正则极限学习机的安卓恶意apk检测程序被所述处理器执行时,实现如实施例1、2和/或实施例3中的基于正则极限学习机的安卓恶意apk检测方法的步骤。
本实施例还给出了一种可读存储介质的具体实施方式,其上存储有指令,该指令被处理器执行时实现如实施例1、2和/或实施例3中的基于正则极限学习机的安卓恶意apk检测方法的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的系统和设备,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

Claims (8)

1.一种基于正则极限学习机的安卓恶意apk检测方法,其特征在于,包括以下步骤:
步骤1,获取样本应用程序集apk,按照功能类别对所述样本应用程序集apk进行分类,得到M个不同功能类别的样本子集;
步骤2,从所述样本子集的应用清单AndroidManifest.xml文件中提取出第一类特征属性,从所述样本子集的.smali文件中提取出第二类特征属性,基于所述第一类特征属性和所述第二类特征属性构造出基础特征矩阵R;
其中,所述第一类特征属性包括硬件组件、系统权限、应用组件和意图过滤器,所述第二类特征属性为API调用特征标识符;
步骤3,使用信息增益算法对所述基础特征矩阵R进行评分,得到所述基础特征矩阵的第一评分结果;根据所述第一评分结果对所述基础特征矩阵R进行筛选,得到第一特征矩阵F;
通过Fisher Score算法对所述基础特征矩阵进行评分,得到所述基础特征矩阵的第二评分结果;根据所述第二评分结果对所述基础特征矩阵R进行筛选,得到第二特征矩阵I;
对所述第一特征矩阵F和所述第二特征矩阵I进行交集处理,筛选出共有特征作为特征子集X;
步骤4,以所述特征子集X为输入向量,以各个样本子集对应的样本应用程序标识符为输出向量,基于极限学习机算法进行模型训练得到初始分类检测模型;其中,所述样本应用程序标识符用于表示样本应用程序是否为恶意应用程序;
使用正则项对所述初始分类检测模型进行优化,得到第一分类检测模型;
通过五折交叉验证法对所述第一分类检测模型进行重复训练,得到分类检测模型;
步骤5,提取待检测应用程序apk,利用步骤4得到的分类检测模型,检测所述待检测应用程序是恶意应用程序还是安全应用程序。
2.根据权利要求1所述的基于正则极限学习机的安卓恶意apk检测方法,其特征在于,所述步骤2包括以下步骤:
步骤2.1,使用反编译工具apktool分别对各个样本子集进行批量处理,得到各个样本子集的AndroidManifest.xml文件和.smali文件;
步骤2.2,采用DOM方式解析样本子集的AndroidManifest.xml文件,根据所述AndroidManifest.xml文件的结构层次,依次从第二层节点、第三层节点、第四层节点获取第一类特征属性的属性值;
依次访问样本子集的.smali文件,提取出第二类特征属性的属性值;
步骤2.3,将所述第一类特征属性的属性值和所述第二类特征属性的属性值加入预设的特征属性集合AttrsList,作为基础特征矩阵R;
其中,所述基础特征矩阵
Figure FDA0003822280720000021
n为所述样本应用程序集apk中的样本应用程序总数,每行对应一个样本应用程序,每列对应一种特征属性;
步骤2.4,获取各个样本子集对应的样本应用程序标识符,并存放在预设的应用程序集合apkList中;其中,所述应用程序集合
Figure FDA0003822280720000022
tn,1为样本应用程序标识符,表示第n个样本应用程序是否为恶意应用程序。
3.根据权利要求1所述的基于正则极限学习机的安卓恶意apk检测方法,其特征在于,所述步骤2包括以下步骤:
步骤201,使用反编译工具apktool分别对各个样本子集进行批量处理,得到各个样本子集的AndroidManifest.xml文件和.smali文件;
步骤202,采用DOM方式解析样本子集的AndroidManifest.xml文件,根据所述AndroidManifest.xml文件的结构层次,依次从第二层节点、第三层节点、第四层节点获取第一类特征属性的属性值,并将所述第一类特征属性的属性值分别标记为属性向量R1、属性向量R2、属性向量R3和属性向量R4;
依次访问样本子集的.smali文件,提取出第二类特征属性的属性值,并将所述第二类特征属性的属性值标记为属性向量S5;其中,
Figure FDA0003822280720000031
n为所述样本应用程序集apk中的样本应用程序总数;
步骤203,基于所述属性向量R1、所述属性向量R2、所述属性向量R3、所述属性向量R4和所述属性向量S5求并集,构造出基础特征矩阵R;
其中,所述基础特征矩阵
Figure FDA0003822280720000032
所述基础特征矩阵R的第一列为属性向量R1,所述基础特征矩阵R的第二列为属性向量R2,所述基础特征矩阵R的第三列为属性向量R3,所述基础特征矩阵R的第四列为属性向量R4,所述基础特征矩阵R的第五列为属性向量S5;
步骤204,获取各个样本子集对应的样本应用程序标识符,并标记为属性向量T,其中,
Figure FDA0003822280720000033
tn,1为样本应用程序标识符,表示第n个样本应用程序是否为恶意应用程序。
4.根据权利要求3所述的基于正则极限学习机的安卓恶意apk检测方法,其特征在于,所述步骤3包括以下步骤:
步骤3.1,采用以下公式使用信息增益算法对所述基础特征集R中的属性值进行评分:
Ig(Ri,Rij)=H(Ri)-H(Ri|Rij)
Figure FDA0003822280720000034
Figure FDA0003822280720000035
其中,H(Ri)表示所述基础特征集R的第i个特征集的信息熵,H(Ri|Rij)表示第i个特征集在特征Rij下的条件熵,lg(Ri,Rij)表示所述第i个特征集在特征Rij下的第一评分结果,Rij表示所述基础特征集R中第i行第j列处的元素值;
步骤3.2,根据所述第一评分结果对所述基础特征矩阵进行筛选,从所述基础特征矩阵R中筛选出排名在前A的特征属性,形成第一特征矩阵F;
步骤3.3,采用以下公式使用Fisher Score算法对所述基础特征集R中的属性值进行评分:
Figure FDA0003822280720000041
Figure FDA0003822280720000042
Figure FDA0003822280720000043
其中,Si表示所述基础特征集R中第i个特征集对应的第二评分结果,R′ij表示基础特征集R中第i个特征集在第j类样本中的平均取值,第j类样本包括第n1到第n2个样本应用程序,R′i表示所有功能类别对应的基础特征集R中第i个特征集的平均取值;(R′ij-R′i)2表示所述基础特征集R中第i个特征集之间的类间方差;(Rij-R′ij)2表示所述基础特征集R中第i个特征集之间的类内方差;
步骤3.4,根据所述第二评分结果对所述基础特征矩阵进行筛选,从所述基础特征矩阵R中筛选出排名在前B的特征属性,形成第二特征矩阵I;
步骤3.5,选取所述第一特征矩阵F和所述第二特征集I中的共有特征矩阵,作为特征子集X;其中,所述特征子集X为N×5大小的矩阵。
5.根据权利要求4所述的基于正则极限学习机的安卓恶意apk检测方法,其特征在于,所述步骤4包括以下步骤:
步骤4.1,以步骤4得到的特征子集X为输入向量,以特征子集X对应的样本应用程序标识向量Y为输出向量,采用以下公式:
Hβ=Y
Figure FDA0003822280720000051
Figure FDA0003822280720000052
Figure FDA0003822280720000053
可得初始分类检测模型为:
β=(HTH)-1HTY
其中,β表示模型的输出权值矩阵,H表示基于所述特征子集X生成的中间向量,g表示激活函数,N表示特征子集X中的属性值对应的样本应用程序个数;wi表示所述特征子集X中第i个元素xi与极限学习机结构中第i个节点间的连接权重向量,bi表示极限学习机结构中第i个隐含层对应的偏置向量;
步骤4.2,基于步骤4.1得到的输出权值向量β,使用正则项采用以下公式,获得第一目标正则化系数γ1
Figure FDA0003822280720000054
Figure FDA0003822280720000055
Figure FDA0003822280720000056
Figure FDA0003822280720000057
Figure FDA0003822280720000058
其中,minE表示性能指标,||β||2表示模型的输出权值矩阵β的范数的平方,γ表示正则化系数,||ε||2表示训练误差和矩阵ε的范数的平方,εi表示训练误差和矩阵ε中的第i个元素,βi表示步骤4.1中的输出权值矩阵β中的第i个元素,yi表示特征子集X对应的样本应用程序标识向量Y的第i个元素;
依据所述第一目标正则化系数γ1对所述初始分类检测模型进行优化,得到第一分类检测模型,所述第一分类检测模型对应的公式:
Figure FDA0003822280720000061
其中,
Figure FDA0003822280720000062
表示优化后的输出权值向量估计值,γ1表示性能指标E的最小值对应的正则化系数,I表示单位矩阵;
步骤4.3,利用五折交叉验证法重复步骤4.2进行模型训练,将性能指标E为最小值时正则化系数的值作为第二目标正则化系数γ2,根据第二目标正则化系数γ2得到分类检测模型。
6.根据权利要求5所述的基于正则极限学习机的安卓恶意apk检测方法,其特征在于,所述步骤5包括以下步骤:
步骤5.1,提取待检测应用程序apk,筛选出待检测应用程序apk中的第一类特征属性和第二类特征属性,生成待检测应用程序的待测特征矩阵R’;
步骤5.2,基于待检测应用程序的待测特征矩阵R’生成新的中间向量H,将新的中间向量H、第二目标正则化系数γ2和步骤4.3得到的输出权值向量估计值
Figure FDA0003822280720000063
获得待检测应用程序的应用程序标识符;
若待检测应用程序的应用程序标识符为1,则表示待检测应用程序是恶意应用程序;若待检测应用程序的应用程序标识符为0,则表示待检测应用程序是安全应用程序。
7.一种基于正则极限学习机的安卓恶意apk检测设备,其特征在于:包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的基于正则极限学习机的安卓恶意apk检测程序,所述基于正则极限学习机的安卓恶意apk检测程序被所述处理器执行时,实现如权利要求1-6任一项所述的基于正则极限学习机的安卓恶意apk检测方法的步骤。
8.一种可读存储介质,其上存储有指令,其特征在于:该指令被处理器执行时实现如权利要求1-6任一项所述的基于正则极限学习机的安卓恶意apk检测方法的步骤。
CN202211047790.XA 2022-08-30 2022-08-30 基于正则极限学习机的安卓恶意apk检测方法 Pending CN115310089A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211047790.XA CN115310089A (zh) 2022-08-30 2022-08-30 基于正则极限学习机的安卓恶意apk检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211047790.XA CN115310089A (zh) 2022-08-30 2022-08-30 基于正则极限学习机的安卓恶意apk检测方法

Publications (1)

Publication Number Publication Date
CN115310089A true CN115310089A (zh) 2022-11-08

Family

ID=83865351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211047790.XA Pending CN115310089A (zh) 2022-08-30 2022-08-30 基于正则极限学习机的安卓恶意apk检测方法

Country Status (1)

Country Link
CN (1) CN115310089A (zh)

Similar Documents

Publication Publication Date Title
CN109165510B (zh) 基于双通道卷积神经网络的Android恶意应用程序检测方法
CN109753801A (zh) 基于系统调用的智能终端恶意软件动态检测方法
CN109271788B (zh) 一种基于深度学习的Android恶意软件检测方法
CN110795732A (zh) 基于SVM的Android移动网络终端恶意代码的动静结合检测方法
CN104765874A (zh) 用于检测点击作弊的方法及装置
CN107944274A (zh) 一种基于宽度学习的Android平台恶意应用离线检测方法
CN109614795B (zh) 一种事件感知的安卓恶意软件检测方法
CN111062036A (zh) 恶意软件识别模型构建、识别方法及介质和设备
CN108694319B (zh) 一种恶意代码家族判定方法及装置
CN110704841A (zh) 一种基于卷积神经网络的大规模安卓恶意应用检测系统及方法
CN103198243A (zh) 一种识别山寨应用程序的方法和装置
CN111753299A (zh) 一种基于分组集成的不平衡恶意软件检测方法
CN106484913A (zh) 一种目标图片确定的方法以及服务器
CN115310089A (zh) 基于正则极限学习机的安卓恶意apk检测方法
CN116707859A (zh) 特征规则提取方法和装置、网络入侵检测方法和装置
CN111612624A (zh) 一种数据特征重要性的分析方法及系统
CN108920492B (zh) 一种网页分类方法、系统、终端及存储介质
CN116306321A (zh) 基于粒子群的吸附水处理方案优化方法、装置及设备
Qiang Research on software vulnerability detection method based on improved CNN model
CN113971282A (zh) 一种基于ai模型的恶意应用程序检测方法及设备
CN112860573A (zh) 一种智能手机恶意软件检测方法
CN113515771A (zh) 数据敏感度判定方法、电子设备及计算机可读存储介质
CN114662099A (zh) 基于ai模型的应用程序恶意行为检测方法及设备
CN105930328A (zh) 异常数据的解析方法及系统
CN116204417B (zh) 一种快速生成决策测试数据的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination