CN116821902B - 一种基于机器学习的恶意应用检测方法、装置及设备 - Google Patents

一种基于机器学习的恶意应用检测方法、装置及设备 Download PDF

Info

Publication number
CN116821902B
CN116821902B CN202310492605.6A CN202310492605A CN116821902B CN 116821902 B CN116821902 B CN 116821902B CN 202310492605 A CN202310492605 A CN 202310492605A CN 116821902 B CN116821902 B CN 116821902B
Authority
CN
China
Prior art keywords
detection
detection model
convolution layer
malicious
executable file
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.)
Active
Application number
CN202310492605.6A
Other languages
English (en)
Other versions
CN116821902A (zh
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.)
Hubei Electronic Information Product Quality Supervision And Inspection Institute
Original Assignee
Hubei Electronic Information Product Quality Supervision And Inspection Institute
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 Hubei Electronic Information Product Quality Supervision And Inspection Institute filed Critical Hubei Electronic Information Product Quality Supervision And Inspection Institute
Priority to CN202310492605.6A priority Critical patent/CN116821902B/zh
Publication of CN116821902A publication Critical patent/CN116821902A/zh
Application granted granted Critical
Publication of CN116821902B publication Critical patent/CN116821902B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请涉及检测技术领域,为一种恶意应用程序检测方法,具体涉及一种对于手机的检测方法,具体为一种基于机器学习的恶意应用检测方法、装置及设备;应用于基于Android平台的应用程序的恶意性检测,包括:获取待检测应用程序的可执行文件中的待检测信息;基于所述可执行文件的数据量值确定待使用的检测模型;将所述可执行文件中的待检测信息通过训练后的检测模型获得检测结果;通过配置有至少两种检测模型,用于对不同的检测目标进行合理的配置,其中针对于待检测应用程序数据量较大的情况下采用基于深度学习的卷积神经网络实现对于检测结果的准确获得,针对于待检测应用程序数据量较小的情况下采用基于决策树以及贝叶斯分类器对于检测结果的快速的获得。

Description

一种基于机器学习的恶意应用检测方法、装置及设备
技术领域
本申请涉及检测技术领域,具体为一种基于机器学习的恶意应用检测方法、装置及设备。
背景技术
Google公司于2007年11月正式发布的系统Android,由于其开放的特性,一经推出成为了世界上最流行的移动设备的操作系统。截止目前,其仍旧是市场占有率最大的智能移动设备操作系统。随着Android系统的发展,大量的Android恶意软件被发布到Android应用市场之上。这些软件有着窃取用户隐私、恶意扣费等行为,对用户的信息安全和个人隐私造成了巨大的威胁。恶意代码的检测可以分为静态和动态检测两种策略,本质上恶意代码的检测是一个攻防的问题,随着检测手段的不断升级,恶意代码也会使用各种方法来规避检测。对Android恶意软件的检测,研究人员早期多采用基于指纹的方法,其特点是准确率很高,但其检测的效果很大程度取决于所采取指纹的质量和数量。同时指纹的提取方法仍旧是手工提取,提取指纹的过程需要消耗大量的人力和财力。同时对于恶意软件来说,其只需简单的修改就能轻易的改变其指纹,从而轻松的绕过这该种安全检测方法。通过使用基于机器学习的Android恶意代码检测方法可以用来解决上述的问题。通过机器学习的方法,它不取决于某个特定的指纹信息,转而通过机器学习的算法,依据事先设计好的目标函数,提取出最合适的特征或特征的组合来判断该应用程序中是否存在恶意代码。现有多种基于机器学习的恶意代码检测方案,例如,基于行为链的应用隐私窃取行为检测方法;基于资源签名的Android应用相似性快速检测方法;通过动态污点分析提取特征,实现了抗混淆的恶意代码变种识别。而且在机器学习的理论中,随着硬件计算能力的提升和相关数据的累计。同传统的机器学习算法如,决策树,支持向量机,朴素贝叶斯算法相比较,深度学习是更为合适且成熟的算法。近年来,研究人员在Android恶意代码检测领域也拥有了海量的数据,为深度学习在该领域的发展提供了数据支撑。现有的基于深度学Android恶意软件检测都是基于分类的思想,把Android应用分为良性软件和恶意软件两种类别。随着神经网络结构的蓬勃发展,但仍存在如下问题。多层感知机应用于恶意代码检测领域时,体量较小的模型效果较好,而参数量较大的网络难以收敛,大体量的训练模型往往存在着训练不完全的问题,这样失去了提高训练准确度的机会。
但是,在实际使用过程中,面对多种模型的使用,因为场景不同,其效果也不同,所以需要提供一种能够在不同场景下进行对恶意应用程序进行检测的方法。
发明内容
为了解决以上的技术问题,本申请提供一种基于机器学习的恶意应用检测方法、装置及设备,能够基于待检测的应用程序的文件数据量确定对应使用检测模型,并且基于配置的训练好的对应的检测模型实现对于应用程序是否为恶意的检测。
为了达到上述目的,本申请实施例采用的技术方案如下:
第一方面,一种基于机器学习的恶意应用检测方法,应用于基于Android平台的应用程序的恶意性检测,所述方法包括:获取待检测应用程序的可执行文件中的待检测信息;基于所述可执行文件的数据量值确定待使用的检测模型,所述检测模型为通过训练后的检测模型;将所述可执行文件中的待检测信息通过训练后的检测模型获得检测结果;基于所述可执行文件的数据量值确定待使用的检测模型包括:将所述可执行文件的数据量值与预设的临界值进行比较,当所述可执行文件的数据量值大于所述临界值时,确定第一检测模型为待使用的检测模型;当所述可执行文件的数据量值小于所述临界值时,确定第二检测模型为待使用的检测模型。
第一方面的第一种实现方式中,所述第一检测模型为训练后的神经网络模型,所述待检测信息包括原始字节序列;所述神经网络模型结构包括多个映射层、卷积层、激活函数层、最大池化层、全连接层和至少两个softmax层。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述卷积层包括两个输入通道,对应平行设置有第一卷积层和第二卷基层,所述第二卷积层配置有sigmoid压缩函数,所述第一卷积层和所述第二卷积层包括128个过滤器,所述第一卷积层和所述第二卷积层的深度为500,步幅为500。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,基于所述可执行文件中的待检测信息通过训练后的检测模型获得检测结果包括:将所述原始字节序列进行标记化处理得到应用特征;通过所述映射层将应用特征进降维处理得到降维后的应用特征的向量集合;将所述向量集合分别输入至第一卷积层和第二卷积层得到第一输出和第二输出,并将第一输出和第二输出进行逐元素相乘得到最终输出结果;将所述最终输出结果输入至所述激活函数层、最大池化层、全连接层和至少两个softmax层得到全局信息,得到最终结果。
第一方面的第四种实现方式中,所述第二检测模型为训练后的决策分类模型,包括决策树以及与贝叶斯分类器,所述待检测信息包括API调用序列。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,基于所述可执行文件中的待检测信息通过训练后的检测模型获得检测结果包括:获取沙箱采集的正常软件与恶意软件API调用序列;提取所述API调用序列中的第一特征和第二特征;将所述第一特征和第二特征集合得到特征集;基于所述决策树以及所述贝叶斯分类器对所述特征集处理得到恶意概率;基于预设置的恶意阈值与所述恶意概率进行比较,基于比较结果确定所述应用程序是否为恶意应用程序。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一特征为敏感权限,所述第二特征为敏感API;
第二方面,一种基于机器学习的恶意应用检测装置,应用于基于Android平台的应用程序的恶意性检测,包括:待检测信息获取模块,用于获取待检测应用程序的可执行文件中的待检测信息;检测模型确定模块,用于可执行文件的数量之确定待使用的检测模型;检测模块,用于获取检测结果;所述检测模型确定模块包括比较子模块,用于将可执行文件的数据量值与预设的临界值进行比较,基于比较结果确定待使用的检测模型。
第三方面,提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述的方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的方法。
本申请实施例提供的技术方案中,通过配置有至少两种检测模型,用于对不同的检测目标进行合理的配置,其中针对于待检测应用程序数据量较大的情况下采用基于深度学习的卷积神经网络实现对于检测结果的准确获得,针对于待检测应用程序数据量较小的情况下采用基于决策树以及贝叶斯分类器对于检测结果的快速的获得。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图中的方法、系统和/或程序将根据示例性实施例进一步描述。这些示例性实施例将参照图纸进行详细描述。这些示例性实施例是非限制的示例性实施例,其中示例数字在附图的各个视图中代表相似的机构。
图1是本申请实施例提供的终端设备的结构示意图。
图2是本申请的一些实施例所示的手机密封性检测方法的流程图。
图3是根据本申请实施例提供的装置方框示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
在下面的详细描述中,通过实例阐述了许多具体细节,以便提供对相关指导的全面了解。然而,对于本领域的技术人员来说,显然可以在没有这些细节的情况下实施本申请。在其他情况下,公知的方法、程序、系统、组成和/或电路已经在一个相对较高水平上被描述,没有细节,以避免不必要的模糊本申请的方面。
本申请中使用流程图说明根据本申请的实施例的系统所执行的执行过程。应当明确理解的是,流程图的执行过程可以不按顺序执行。相反,这些执行过程可以以相反的顺序或同时执行。另外,可以将至少一个其他执行过程添加到流程图。一个或多个执行过程可以从流程图中删除。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
(1)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
(2)基于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
(3)神经网络,人工神经网络(Artificial Neural Network,ANN),简称神经网络或类神经网络,在机器学习和认知科学领域,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。
(4)API,API(Application Program Interface)为应用程序上配置一组定义、程序及协议的集合,用于实现应用程序和其他软件组件的交互。
(5)APK,APK(Android application package)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。
(6)沙箱,沙箱(Sandbox)是一种程序的隔离运行机制,其目的是限制不可信进程的权限。沙箱技术经常被用于执行未经测试的或不可信的客户程序。为了避免不可信程序可能破坏其它程序的运行,沙箱技术通过为不可信客户程序提供虚拟化的磁盘、内存以及网络资源,而这种虚拟化手段对客户程序来说是透明的。由于沙箱里的资源被虚拟化(或被间接化),所以沙箱里的不可信程序的恶意行为往往会被限制在沙箱中。
本申请实施例提供的技术方案,主要的应用场景为对于基于Android系统中恶意应用程序进行检测。目前安卓恶意软件的感染途径主要包含以下4种:1.恶意应用程序下载恶意应用程序是感染恶意软件的常见途径。网络犯罪分子将恶意软件伪装成流行的或新颖的应用程序,并通过应用程序商店进行分发。2.受感染的链接黑客发送的电子邮件或短信经常附有指向受感染网页的链接。点击它们就会下载恶意软件。3.恶意广告恶意广告是通过可疑的在线广告传播恶意软件。如果用户点击此类广告,手机可能会被感染。4.释放器投放网络犯罪分子还开始使用所谓的释放器(dropper)来投放移动恶意软件。这主要是通过合法安卓应用程序的安装文件。这些安全文件本身没有恶意程序,但它会被攻击者下载后进行恶意修改,安装恶意“安卓软件包”,然后再向手机用户提供二次下载服务。
而目前针对于应用程序带来的用于隐私以及财产安全问题,在Android中配置有安全机制,Android系统在linux原有的安全机制的基础上结合移动端特性,设计了进程沙箱隔离机制、应用程序签名机制和权限机制等安全机制,保证应用程序的安全性。其中针对于进程沙箱隔离机制,Android应用程序移植Linux操作系统的多用户隔离机制,让应用程序在安装时被赋予独特的用户标识即UID,并永久保持。应用程序及其运行的dalvik虚拟机运行于独特的linux进程空间,与UID不同的应用程序安全隔离。虽然是隔离的,但在用户要共享资源时,同时提供共享资源的方式,保证资源的共享顺利完成。这种安全机制,在发现恶意软件的时候,可以将恶意软件隔离在一个单独的空间,保证其他应用程序的安全。针对于应用程序签名机制,Android应用程序的签名对每一个应用程序都必不可少。为了标志代码作者和监测应用程序的改变,开发者需要拥有私有密钥,从而可以在应用程序之间安全地共享资源。不同的应用程序通过相同的签名可以相互授权访问API。Android权限机制是指在应用程序成功运行时所需要的权限,具体权限在AndroidManifest.xml文件中<uses-perminsson>标签中通过android:protectionLever属性进行设置分为4类,Normal类:低风险权限,任何应用都可以申请,在安装应用时系统默认授权;Dangerous类:高风险权限,在安装时需要用户确认才可以使用;Sinature类:仅当申请该权限的应用程序与声明该权限的程序使用相同的签名时,才能赋予该权限;SignatureOrSystem类:仅当申请该权限的应用程序位于相同的Android系统镜像中,或申请该权限的应用程序与声明该权限的程序使用相同的签名时,才赋予该权限。
针对于目前Android漏洞主要包括以下几类:
第一类为Android的恶意软件,Android的恶意软件是各种各样的,并且有很多种分类的方法。其中按照传统进行分析,可以分为木马类、病毒类、后门类、僵尸类、间谍软件类、恐吓软件类、勒索软件类、广告软件类和跟踪软件类等。
第二类为Android的敏感权限管理,对于Android的权限管理,其中Android的敏感权限都放在了Dangerous权限类,在Dangerous权限的类中分为9个大类,并且包含了24个敏感权限,在Androidapp运行的时候对于安全级别为Dangerous的服务进行授权时,需要用户的授权同意,才可以获得授权,其中还有与危险权限不同的特殊权限。
第三类为对于第三方SDK漏洞管理,对于开发者而言属于黑盒,无法知晓其中是否安全。所以由于这个原因,很多第三方公式对此进行利用,导致很多漏洞的出现,包括绕过沙盒限制、访问应用私有组件、推送恶意消息、诱导访问钓鱼网站、访问用户隐私数据等。
在现有的恶意程序检测中,主要包括静态检测和动态检测,其中针对于静态检测通过提取已知应用程序的静态行为特征并将多个特征构建为特征库,通过对待检测的未知应用软件的静态行为特征进行提取后与特征库进行比对,生成特征向量,将已知应用软件的特征向量和未知应用软件的特征向量输入至分类器得到最终的结果。其中,针对于特征的获取主要通过应用程序包逆向工程实现,而针对于逆向工程主要包括以下方法:
(1)Apk反编译,通过Apktool工具反编译Apk得到具体结构的文件,参见表1。
表1.反编译后结构
其中最关键的是通过Smail文件夹中的以.smail文件结尾的文件获取信息。在smail文件中,可以通过指定的读取smail文件的方法提取文件的信息。
(2)smail文件
Smail是用于Dalvik的反汇编程序实现,一个smail文件相对应一个java的.class文件,如果java有内部类的格式,则谢伟classnameinnerclassA表示,所以smail文件个数要比对应的class的文件个数数量多。
通过以上的配置和计算机技术,实现对于特征的提取。
而以上的方法随着装机软件的数据量增加的情况下,其检测的性能以及检测的性能随之降低,并且鲁棒性也随之降低。所以,针对于现有的场景,需要提供一种新型的恶意程序检测方法,主要通过配置至少两种检测面模型实现恶意程序的检测,而针对于多种检测模型的选择主要基于装机软件或装机程序的数据量进行,当装机的应用程序较大时,采用对应的检测模型进行检测,针对于应用程序较小时,采用另一种检测模型进行检测。并且,为了提高检测模型的鲁棒性以及检测的准确度,提供的检测模型基于机器学习训练。
基于以上的技术背景,本申请实施例提供一种终端设备100,该终端设备包括存储器110、处理器120以及存储在存储器中并可在处理器上运行的计算机程序,其中处理器执行恶意应用检测方法。在本实施例中,该终端设备与用户端进行通信,将获取到的检测信息下发至对应的用户端,在硬件上实现对于检测信息的发送。其中,针对于发送信息的方式基于网络实现,并且在终端设备进行应用之前需要对用户端与终端设备建立关联关系,可以通过注册的方式实现对于终端设备与用户端之间的关联。其中终端设备可以针对多个用户端,也可以针对一个用户端,并且用户端通过密码以及其他加密的方式与终端设备进行通信。
在本实施例中,该终端可以为服务器,针对于服务器的物理结构,包括存储器、处理器和通信单元。存储器、处理器以及通信单元各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器用于存储特定的信息和程序,通信单元用于将处理后的信息进行发送至对应的用户端。
本实施例将存储模块划分为两个存储区域,其中一个存储区为程序存储单元,另一个存储区域为数据存储单元。程序存储单元相当于固件区,该区域的读写权限设置为只读模式,其内存储的数据不可擦除和更改。而数据存储单元中的数据可以进行擦除或读写,当数据存储区域的容量已满时,新写入的数据会对最早期的历史数据进行覆盖。
其中,存储器可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Ele超声ric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP))、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图2,在本实施例中,针对于恶意应用检测方法,其工作逻辑为,获取待检测应用程序的装机数据量,根据装机数据量选择对应的检测模型,其中对应的检测模型都为训练后的检测模型,通过检测模型实现对应的软件是否具有恶意进行确定。
针对于本实施例提供的工作逻辑提供一种恶意应用检测方法,应用于基于Android平台的应用程序的恶意性检测,具体包括以下方法:
步骤S210.获取待检测应用程序的可执行文件中的待检测信息。
在本实施例中,针对于可执行文件包括应用程序的原始字节序列以及应用程序的API调用序列。
其中针对于设置的两种可执行文件,主要基于对应不同的检测模型中需要进行处理的数据进行确定,在本实施例中,提供的检测模型分别可以通过原始字节序列以及API调用序列进行恶意应用的检测。
其中,针对于原始字节序列的使用基于待装机程序的数据量较大的情况下进行使用,而针对数据量较大的带装机程序需要快速以及准确的检测方法来实现。而针对于原始字节序列为二进制文件的主要数据结构,通过此种数据结构对于恶意检测的优点在于不需要手工构建特征或编译器方面的知识。这意味着训练好的模型对于恶意软件的变种具有普适性和鲁棒性。计算的复杂度与序列长度(二进制文件大小)呈线性关系,这意味着推断是快速的,所以能够用于大型的文件。并且能够从二进制文件中找出对于取证分析来说非常重要的代码段。这种方法也适用于新出现的文件格式、编译器和指令集架构:只需提供相应的训练数据即可。
而针对于API调用序列的使用则适用于小型的文件。
而这对于以上的采集的数据类型则对应的两种不同的应用场景,则对应两种检测模型,所以基于步骤S210中的步骤,在步骤S220中具体为:
步骤S220.基于所述可执行文件的数据量值确定待使用的检测模型,所述检测模型为通过训练后的检测模型。
在本实施例中,主要用于确定对应的检测模型,其中判断的依据基于可执行文件的数据量值进行确定,通过可执行文件的数据量值从侧面反映对应的应用程序的装机量。
具体为:
将所述可执行文件的数据量值与预设的临界值进行比较,当所述可执行文件的数据量值大于所述临界值时,确定第一检测模型为待使用的检测模型;当所述可执行文件的数据量值小于所述临界值时,确定第二检测模型为待使用的检测模型。
在本实施例中,第一检测模型为训练后的神经网络模型,所述待检测信息包括原始字节序列;所述神经网络模型结构包括多个映射层、卷积层、激活函数层、最大池化层、全连接层和至少两个softmax层。其中卷积层包括两个输入通道,对应平行设置有第一卷积层和第二卷基层,所述第二卷积层配置有sigmoid压缩函数,所述第一卷积层和所述第二卷积层包括128个过滤器,所述第一卷积层和所述第二卷积层的深度为500,步幅为500。
第二模型为训练后的决策分类模型,包括决策树以及与贝叶斯分类器。
步骤S230.将所述可执行文件中的待检测信息通过训练后的检测模型获得检测结果。
具体的,在本实施例设置有第一检测模型和第二检测模型。而针对此过程的处理分别以第一检测模型和第二检测模型进行分别的说明。
针对于第一检测模型,处理过程为:
将所述原始字节序列进行标记化处理得到应用特征。
通过所述映射层将应用特征进降维处理得到降维后的应用特征的向量集合。
将所述向量集合分别输入至第一卷积层和第二卷积层得到第一输出和第二输出,并将第一输出和第二输出进行逐元素相乘得到最终输出结果。
将所述最终输出结果输入至所述激活函数层、最大池化层、全连接层和至少两个softmax层得到全局信息,得到最终结果。
在本实施例中,此神经网络的主体结构为门控卷积体系结构,通过门控卷积体系结构以及输入字节的嵌入向量表示最大网络的可训练参数数量实现模型处理效率的提高。并且,在门控卷积体系结构中,对于每个卷积层,都提供了一个使用sigmoid激活函数的副平行卷积层。然后,将这两个平行层的输出进行逐元素相乘,并将结果传递给非线性的激活单元。通过以上的配置和处理过程,配置有sigmoid激活函数的卷积层就会过滤掉reLU卷积层所允许的那些信息,使得该体系结构能够以有效的方式为模型的特征表示增加额外的容量。
并且,在本实施例中通过使用更大的步幅和更大的卷积滤波器,来控制卷积层激活单元所占用的内存单元数量。通过在卷积层后面添加了全局最大池化层,实现了对于结果的准确性的获得,通过对全连接层最大池化处理后,使得系统能够评估整个文件中这些指标的相对强度,从而找出重要的全局组合。
针对于第二检测模型,处理过程为:
获取沙箱采集的正常软件与恶意软件API调用序列。
提取所述API调用序列中的第一特征和第二特征。
将所述第一特征和第二特征集合得到特征集。
基于所述决策树以及所述贝叶斯分类器对所述特征集处理得到恶意概率。
基于预设置的恶意阈值与所述恶意概率进行比较,基于比较结果确定所述应用程序是否为恶意应用程序。
在本实施例中,针对于沙箱机制以及特征提取机制已经进行了详细的说明,在此过程中不再进行详细的描述。而针对于第一特征以及第二特征,分别为敏感权限以及敏感API。
参阅图3,本实施例还提供一种恶意应用检测装置300,应用于基于Android平台的应用程序的恶意性检测,包括:待检测信息获取模块310,用于获取待检测应用程序的可执行文件中的待检测信息。检测模型确定模块320,用于可执行文件的数量之确定待使用的检测模型。检测模块330,用于获取检测结果。
在本实施例中,针对于检测模型确定模块320包括比较子模块340,用于将可执行文件的数据量值与预设的临界值进行比较,基于比较结果确定待使用的检测模型。
本申请实施例提供的技术方案中,通过配置有至少两种检测模型,用于对不同的检测目标进行合理的配置,其中针对于待检测应用程序数据量较大的情况下采用基于深度学习的卷积神经网络实现对于检测结果的准确获得,针对于待检测应用程序数据量较小的情况下采用基于决策树以及贝叶斯分类器对于检测结果的快速的获得。
需要理解的是,针对上述内容没有进行名词解释的技术术语,本领域技术人员可以根据上述所公开的内容进行前后推导毫无疑义地确定其所指代的含义在此均不作限定。
本领域技术人员可以根据上述已公开的内容毫无疑义对一些预设的、基准的、预定的、设定的以及偏好标签的技术特征/技术术语进行确定,例如阈值、阈值区间、阈值范围等。对于一些未作解释的技术特征术语,本领域技术人员完全能够基于前后文的逻辑关系进行合理地、毫无疑义地推导,从而清楚、完整地实施上述技术方案。未作解释的技术特征术语的前缀,例如“第一”、“第二”、“示例”、“目标”等,可以根据前后文进行毫无疑义地推导和确定。未作解释的技术特征术语的后缀,例如“集合”、“列表”等,也可以根据前后文进行毫无疑义地推导和确定。
本申请实施例公开的上述内容对于本领域技术人员而言是清楚完整的。应当理解,本领域技术人员基于上述公开的内容对未作解释的技术术语进行推导和分析的过程是基于本申请所记载的内容进行的,因此上述内容并不是对整体方案的创造性的评判。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可以对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定术语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同部分两次或多次提到的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的至少一个实施例中的某些特征、结构或特点可以进行适当的组合。
另外,本领域普通技术人员可以理解的是,本申请的各个方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可以被称为“单元”、“组件”或“系统”。此外,本申请的各方面可以表现为位于至少一个计算机可读介质中的计算机产品,所述产品包括计算机可读程序编码。
计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤缆线、RF、或类似介质、或任何上述介质的组合。
本申请各方面执行所需的计算机程序码可以用一种或多种程序语言的任意组合编写,包括面向对象程序设计,如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET,Python等,或类似的常规程序编程语言,如"C"编程语言,Visual Basic,Fortran2003,Perl,COBOL 2002,PHP,ABAP,动态编程语言如Python,Ruby和Groovy或其它编程语言。所述程式设计编码可以完全在用户计算机上执行、或作为独立的软体包在用户计算机上执行、或部分在用户计算机上执行部分在远程计算机执行、或完全在远程计算机或服务器上执行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网络(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非申请专利范围中明确说明,本申请所述处理元件和序列的顺序、数位字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的申请专利范围并不仅限于披露的实施例,相反,申请专利范围旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件装置实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或行动装置上安装所描述的系统。
同样应当理解的是,为了简化本申请揭示的表述,从而帮助对至少一个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

Claims (7)

1.一种基于机器学习的恶意应用检测方法,其特征在于,应用于基于Android平台的应用程序的恶意性检测,所述方法包括:获取待检测应用程序的可执行文件中的待检测信息;基于所述可执行文件的数据量值确定待使用的检测模型,所述检测模型为通过训练后的检测模型;将所述可执行文件中的待检测信息通过训练后的检测模型获得检测结果;基于所述可执行文件的数据量值确定待使用的检测模型包括:将所述可执行文件的数据量值与预设的临界值进行比较,当所述可执行文件的数据量值大于所述临界值时,确定第一检测模型为待使用的检测模型;当所述可执行文件的数据量值小于所述临界值时,确定第二检测模型为待使用的检测模型;
所述第一检测模型为训练后的神经网络模型,所述待检测信息包括原始字节序列;所述神经网络模型结构包括多个映射层、卷积层、激活函数层、最大池化层、全连接层和至少两个softmax层;
所述第二检测模型为训练后的决策分类模型,包括决策树以及贝叶斯分类器,所述待检测信息包括API调用序列;
所述卷积层包括两个输入通道,对应平行设置有第一卷积层和第二卷积层,所述第二卷积层配置有sigmoid压缩函数,所述第一卷积层和所述第二卷积层包括128个过滤器,所述第一卷积层和所述第二卷积层的深度为500,步幅为500。
2.根据权利要求1所述的基于机器学习的恶意应用检测方法,其特征在于,基于所述可执行文件中的待检测信息通过训练后的检测模型获得检测结果包括:将所述原始字节序列进行标记化处理得到应用特征;通过所述映射层将应用特征进降维处理得到降维后的应用特征的向量集合;将所述向量集合分别输入至第一卷积层和第二卷积层得到第一输出和第二输出,并将第一输出和第二输出进行逐元素相乘得到最终输出结果;将所述最终输出结果输入至所述激活函数层、最大池化层、全连接层和至少两个softmax层得到全局信息,得到最终结果。
3.根据权利要求1所述的基于机器学习的恶意应用检测方法,其特征在于,基于所述可执行文件中的待检测信息通过训练后的检测模型获得检测结果包括:获取沙箱采集的正常软件与恶意软件API调用序列;提取所述API调用序列中的第一特征和第二特征;将所述第一特征和第二特征集合得到特征集;基于所述决策树以及所述贝叶斯分类器对所述特征集处理得到恶意概率;基于预设置的恶意阈值与所述恶意概率进行比较,基于比较结果确定所述应用程序是否为恶意应用程序。
4.根据权利要求3所述的基于机器学习的恶意应用检测方法,其特征在于,所述第一特征为敏感权限,所述第二特征为敏感API。
5.一种基于机器学习的恶意应用检测装置,其特征在于,应用于基于Android平台的应用程序的恶意性检测,包括:待检测信息获取模块,用于获取待检测应用程序的可执行文件中的待检测信息;检测模型确定模块,用于基于可执行文件的数据量值确定待使用的检测模型;检测模块,用于获取检测结果;所述检测模型确定模块包括比较子模块,用于将可执行文件的数据量值与预设的临界值进行比较,基于比较结果确定待使用的检测模型,将所述可执行文件的数据量值与预设的临界值进行比较,当所述可执行文件的数据量值大于所述临界值时,确定第一检测模型为待使用的检测模型;当所述可执行文件的数据量值小于所述临界值时,确定第二检测模型为待使用的检测模型;所述第一检测模型为训练后的神经网络模型,所述待检测信息包括原始字节序列;所述神经网络模型结构包括多个映射层、卷积层、激活函数层、最大池化层、全连接层和至少两个softmax 层;所述第二检测模型为训练后的决策分类模型,包括决策树以及贝叶斯分类器,所述待检测信息包括API 调用序列;
所述卷积层包括两个输入通道,对应平行设置有第一卷积层和第二卷积层,所述第二卷积层配置有sigmoid压缩函数,所述第一卷积层和所述第二卷积层包括128个过滤器,所述第一卷积层和所述第二卷积层的深度为500,步幅为500。
6.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的方法。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的方法。
CN202310492605.6A 2023-05-04 2023-05-04 一种基于机器学习的恶意应用检测方法、装置及设备 Active CN116821902B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310492605.6A CN116821902B (zh) 2023-05-04 2023-05-04 一种基于机器学习的恶意应用检测方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310492605.6A CN116821902B (zh) 2023-05-04 2023-05-04 一种基于机器学习的恶意应用检测方法、装置及设备

Publications (2)

Publication Number Publication Date
CN116821902A CN116821902A (zh) 2023-09-29
CN116821902B true CN116821902B (zh) 2024-02-06

Family

ID=88111688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310492605.6A Active CN116821902B (zh) 2023-05-04 2023-05-04 一种基于机器学习的恶意应用检测方法、装置及设备

Country Status (1)

Country Link
CN (1) CN116821902B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108985060A (zh) * 2018-07-04 2018-12-11 中共中央办公厅电子科技学院 一种大规模安卓恶意软件自动化检测系统及方法
CN109165510A (zh) * 2018-09-04 2019-01-08 中国民航大学 基于双通道卷积神经网络的Android恶意应用程序检测方法
CN109858250A (zh) * 2019-02-20 2019-06-07 哈尔滨工程大学 一种基于级联分类器的安卓恶意代码检测模型方法
CN110851834A (zh) * 2019-11-18 2020-02-28 北京工业大学 融合多特征分类的安卓恶意应用检测方法
CN113961919A (zh) * 2020-12-23 2022-01-21 网神信息技术(北京)股份有限公司 恶意软件检测方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10853489B2 (en) * 2018-10-19 2020-12-01 EMC IP Holding Company LLC Data-driven identification of malicious files using machine learning and an ensemble of malware detection procedures
CN114513341B (zh) * 2022-01-21 2023-09-12 上海斗象信息科技有限公司 恶意流量检测方法、装置、终端及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108985060A (zh) * 2018-07-04 2018-12-11 中共中央办公厅电子科技学院 一种大规模安卓恶意软件自动化检测系统及方法
CN109165510A (zh) * 2018-09-04 2019-01-08 中国民航大学 基于双通道卷积神经网络的Android恶意应用程序检测方法
CN109858250A (zh) * 2019-02-20 2019-06-07 哈尔滨工程大学 一种基于级联分类器的安卓恶意代码检测模型方法
CN110851834A (zh) * 2019-11-18 2020-02-28 北京工业大学 融合多特征分类的安卓恶意应用检测方法
CN113961919A (zh) * 2020-12-23 2022-01-21 网神信息技术(北京)股份有限公司 恶意软件检测方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Android平台的恶意程序多特征检测;吴帆;陆济湘;曹文静;;小型微型计算机系统(01);全文 *
基于改进卷积神经网络的恶意代码检测技术;唐永旺等;《信息工程大学学报》;第20卷(第2期);全文 *
数据挖掘中BP神经网络与决策树技术的应用研究;董明明等;经济研究导刊(第20期);第186-188页 *

Also Published As

Publication number Publication date
CN116821902A (zh) 2023-09-29

Similar Documents

Publication Publication Date Title
Sudhakar et al. An emerging threat Fileless malware: a survey and research challenges
Faruki et al. Android security: a survey of issues, malware penetration, and defenses
Alazab Profiling and classifying the behavior of malicious codes
Sharma et al. A survey on analysis and detection of Android ransomware
Alotaibi Identifying malicious software using deep residual long-short term memory
Karbab et al. Dysign: dynamic fingerprinting for the automatic detection of android malware
Verma et al. An Android Malware Detection Framework-based on Permissions and Intents.
Aslan et al. Using a subtractive center behavioral model to detect malware
Martinelli et al. I find your behavior disturbing: Static and dynamic app behavioral analysis for detection of android malware
Apvrille et al. Identifying unknown android malware with feature extractions and classification techniques
Kim et al. Attack detection application with attack tree for mobile system using log analysis
Choi et al. Personal information leakage detection method using the inference-based access control model on the Android platform
Gheorghe et al. Smart malware detection on Android
Tchakounté et al. LimonDroid: a system coupling three signature-based schemes for profiling Android malware
Deng et al. A trusted edge computing system based on intelligent risk detection for smart IoT
Ding et al. Automaticlly learning featurs of android apps using cnn
Elsersy et al. Rootector: robust android rooting detection framework using machine learning algorithms
Negi et al. A review and Case Study on android malware: Threat model, attacks, techniques and tools
Batouche et al. A comprehensive approach to android malware detection using machine learning
Louk et al. An analysis of security system for intrusion in smartphone environment
CN116821902B (zh) 一种基于机器学习的恶意应用检测方法、装置及设备
Thakur et al. Android anti-malware techniques and its vulnerabilities: A survey
US20220318377A1 (en) Responsible parent process identification
Hein Permission based malware protection model for android application
Cao Understanding the characteristics of invasive malware from the Google Play Store

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
GR01 Patent grant
GR01 Patent grant