CN116401667B - 基于cnn-gru的安卓恶意软件检测方法及装置 - Google Patents

基于cnn-gru的安卓恶意软件检测方法及装置 Download PDF

Info

Publication number
CN116401667B
CN116401667B CN202310396576.3A CN202310396576A CN116401667B CN 116401667 B CN116401667 B CN 116401667B CN 202310396576 A CN202310396576 A CN 202310396576A CN 116401667 B CN116401667 B CN 116401667B
Authority
CN
China
Prior art keywords
detected
software
feature
layer
android
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
CN202310396576.3A
Other languages
English (en)
Other versions
CN116401667A (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.)
Hunan University of Technology
Original Assignee
Hunan University of 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 Hunan University of Technology filed Critical Hunan University of Technology
Priority to CN202310396576.3A priority Critical patent/CN116401667B/zh
Publication of CN116401667A publication Critical patent/CN116401667A/zh
Application granted granted Critical
Publication of CN116401667B publication Critical patent/CN116401667B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/74Reverse engineering; Extracting design information from source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Biology (AREA)
  • Virology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于CNN‑GRU的安卓恶意软件检测方法及装置,先对待检测安卓软件进行逆向分析,得到待检测安卓软件的权限信息文件和API信息文件;再根据权限信息文件和API信息文件,获取待检测安卓软件的特征信息,特征信息包括权限特征、意图特征和API特征;之后通过预先训练好的CNN‑GRU模型对特征信息进行检测,得到待检测安卓软件的检测结果,检测结果为表征待检测安卓软件为恶意软件的第一结果或表征待检测安卓软件为良性软件第二结果。采用本发明可以缓解现有安卓软件分类检测技术中存在的效率和准确率较低的问题。

Description

基于CNN-GRU的安卓恶意软件检测方法及装置
技术领域
本发明涉及恶意软件检测技术领域,尤其是涉及一种基于CNN-GRU的安卓恶意软件检测方法及装置。
背景技术
目前市面上常见的手机移动操作***主要有Android和iOS两大类。其中尤其是Android***占据了绝大部分市场份额。Android***凭借着它的开源特性、开发便利性以及应用程序无界限的特点吸引了许多开发人员以及普通大众,成为目前最受欢迎的移动操作***之一。
然而,随着智能移动设备的普及,Android安全问题也日益严重。目前现有针对安卓软件的分类检测,往往采用其他平台检测方案的移植,没有考虑到安卓平台的独特性,且没有考虑到比特流前后之间互相作用的联系,导致准确率偏低,检测能力仍存在较大提升空间;并且由于自动化代码编写、重用技术的发展以及安卓***的开源特性,相当一部分安卓恶意软件是由良性软件编写而来的,很难被可视化检测框架区分开来,使其容易产生漏报,表现为召回率不高。
发明内容
有鉴于此,本发明的目的在于提供一种基于CNN-GRU的安卓恶意软件检测方法及装置,以缓解现有安卓软件分类检测技术中存在的上述问题。
第一方面,本发明实施例提供了一种基于CNN-GRU的安卓恶意软件检测方法,所述方法包括:对待检测安卓软件进行逆向分析,得到所述待检测安卓软件的权限信息文件和API信息文件;根据所述权限信息文件和所述API信息文件,获取所述待检测安卓软件的特征信息;其中,所述特征信息包括权限特征、意图特征和API特征;通过预先训练好的CNN-GRU模型对所述特征信息进行检测,得到所述待检测安卓软件的检测结果;其中,所述检测结果为表征所述待检测安卓软件为恶意软件的第一结果或表征所述待检测安卓软件为良性软件第二结果。
第二方面,本发明实施例还提供一种基于CNN-GRU的安卓恶意软件检测装置,所述装置包括:逆向分析模块,用于对待检测安卓软件进行逆向分析,得到所述待检测安卓软件的权限信息文件和API信息文件;获取模块,用于根据所述权限信息文件和所述API信息文件,获取所述待检测安卓软件的特征信息;其中,所述特征信息包括权限特征、意图特征和API特征;检测模块,用于通过预先训练好的CNN-GRU模型对所述特征信息进行检测,得到所述待检测安卓软件的检测结果;其中,所述检测结果为表征所述待检测安卓软件为恶意软件的第一结果或表征所述待检测安卓软件为良性软件第二结果。
本发明实施例提供的一种基于CNN-GRU的安卓恶意软件检测方法及装置,先对待检测安卓软件进行逆向分析,得到待检测安卓软件的权限信息文件和API信息文件;再根据权限信息文件和API信息文件,获取待检测安卓软件的特征信息,特征信息包括权限特征、意图特征和API特征;之后通过预先训练好的CNN-GRU模型对特征信息进行检测,得到待检测安卓软件的检测结果,检测结果为表征待检测安卓软件为恶意软件的第一结果或表征待检测安卓软件为良性软件第二结果。采用上述技术,从权限特征、意图特征和API特征来对安卓软件进行识别,提高了安卓软件识别的效率和准确率,同时安卓软件识别的准确率不受安卓软件是否有检测记录的影响。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于CNN-GRU的安卓恶意软件检测方法的流程示意图;
图2为本发明实施例中一种基于CNN-GRU的安卓恶意软件检测方法的流程示例图;
图3为本发明实施例中CNN-GRU模型的结构示意图;
图4为本发明实施例中GRU层的结构示例图;
图5为本发明实施例中一种基于CNN-GRU的安卓恶意软件检测装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前现有针对安卓软件的分类检测,往往采用其他平台检测方案的移植,没有考虑到安卓平台的独特性,且没有考虑到比特流前后之间互相作用的联系,导致准确率偏低,检测能力仍存在较大提升空间;并且由于自动化代码编写、重用技术的发展以及安卓***的开源特性,相当一部分安卓恶意软件是由良性软件编写而来的,很难被可视化检测框架区分开来,使其容易产生漏报,表现为召回率不高。基于此,本发明实施提供的一种基于CNN-GRU的安卓恶意软件检测方法及装置,可以缓解现有安卓软件分类检测技术中存在的上述问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于CNN-GRU的安卓恶意软件检测方法进行详细介绍,参见图1所示,该方法可以包括以下步骤:
步骤S102,对待检测安卓软件进行逆向分析,得到待检测安卓软件的权限信息文件和API信息文件。
步骤S104,根据权限信息文件和API信息文件,获取待检测安卓软件的特征信息;其中,特征信息包括权限特征、意图特征和API特征。
步骤S106,通过预先训练好的CNN-GRU模型对特征信息进行检测,得到待检测安卓软件的检测结果;其中,检测结果为表征待检测安卓软件为恶意软件的第一结果或表征待检测安卓软件为良性软件第二结果。
本发明实施例提供的一种基于CNN-GRU的安卓恶意软件检测方法,先对待检测安卓软件进行逆向分析,得到待检测安卓软件的权限信息文件和API信息文件;再根据权限信息文件和API信息文件,获取待检测安卓软件的特征信息,特征信息包括权限特征、意图特征和API特征;之后通过预先训练好的CNN-GRU模型对特征信息进行检测,得到待检测安卓软件的检测结果,检测结果为表征待检测安卓软件为恶意软件的第一结果或表征待检测安卓软件为良性软件第二结果。采用上述技术,从权限特征、意图特征和API特征来对安卓软件进行识别,提高了安卓软件识别的效率和准确率,同时安卓软件识别的准确率不受安卓软件是否有检测记录的影响。
作为一种可能的实施方式,上述步骤S102(即对待检测安卓软件进行逆向分析,得到待检测安卓软件的权限信息文件和API信息文件)可以包括:
(11)采用apktool反编译工具对待检测安卓软件进行逆向分析,得到待检测安卓软件的应用程序包文件;其中,应用程序包文件包括权限信息文件。
(12)采用dex2jar反编译工具将所述应用程序包文件中的虚拟机运行文件转换成jar文件和API信息文件。
示例性地,对于某个未知的安卓软件(即待检测安卓软件),可采用apktool反编译工具对该安卓软件进行逆向分析,获得该安卓软件的apk文件(即应用程序包文件),apk文件包括AndroidManifest文件,AndroidManifest文件即为该安卓软件的权限信息文件;之后采用dex2jar反编译工具将apk文件中的虚拟机运行文件转化成jar文件和smali文件,其中的smali文件即为该安卓软件的API信息文件,其中的jar文件可采用jd-gui工具进行查看。
作为一种可能的实施方式,上述步骤S104(即根据权限信息文件和API信息文件,获取待检测安卓软件的特征信息)可以包括:
(21)根据权限信息文件,获取待检测安卓软件的权限特征和意图特征;其中,意图特征包括显式意图特征和/或隐式意图特征。
(22)根据API信息文件,获取待检测安卓软件的API特征。
示例性地,接续前例,对于某个未知的安卓软件(即待检测安卓软件),权限信息文件是用来声明该安卓软件运行所需要的***权限,保护用户的隐私以及重要数据不会被肆意访问,例如:权限SEND_SMS允许应用发短信,一些恶意软件会使用该权限发高额短信;权限CALL_PHONE允许应用拨打电话,而且无需用户确认通话以及显示通话界面;权限WRITE_CONTACTS允许应用写通讯录,这可能会篡改用户的通讯录信息;除此之外恶意软件还可能申请WRITESMS、RECEIVESMS、INSTALLPACKAGES等权限,因此,可从该安卓软件的权限信息文件的用户权限标签中提取权限信息(即权限特征),通过权限特征对该安卓软件是否为恶意安卓软件进行分析。
安卓软件中,意图(Intent)是一个消息传递对象,活动(Activity)、服务(Service)和广播接收器之间调用和消息传递都是通过意图实现的。意图的三个基本用途为:启动Activity、启动Service和传递广播(Broadcast)。显式意图通过提供应用的软件包名称或组件名称来指定可处理Intent的应用,例如当需要启动其它Activity或者Service时可能需要指定组件名称直接启动组件;隐式意图则不指定特定的组件,而是声明相关的操作,由安卓***寻找与意图匹配的意图过滤器从而启动相应的组件,如果同时有多个意图过滤器与意图匹配,安卓***会弹出选择框让用户选择。为了实现隐式意图和组件之间的匹配,意图有三个属性可以设置:动作(Action)、数据(Data)和类别(Category)。Action是用来指定要执行的操作的通用字符串,在Android***中提供了一些通用的Action字符串如ACTION_CALL、ACTION_VIEW、ACTION_SEND等,可以通过setAction()方法来设置意图的Action。Data用来指定目标组件需要的数据,它由指定数据的URI和数据的MIME类型两部分组成;URI是统一资源标识符,可以用来指定(定位)资源,它的格式为:<scheme>://<host>:<port>/<path>;MIME类型是资源的数据类型,例如图片资源、声音资源等,资源需要与组件匹配,因为显示图片的组件不能够用来播放音乐。Category是一个包含处理意图组件类型的附加信息的字符串。进一步地,因为意图允许将数据从发送方传输到接收方,接收方也可以配置为在所需任务完成时将数据返回给发送方。除了启动活动之外,意图还用于启动服务和广播接收器并实现服务和广播接收器之间的通信;恶意软件通过声明意图过滤器的方式拦截满足过滤器所声明的意图及其所带的动作和数据,如打开浏览器、打开地图等操作。其中意图过滤器是在配置文件AndroidManifest.xml中为一个activity配置的,可以为隐式意图的使用提供多层***筛选。恶意意图(即满足意图过滤器定义的意图)会使应用程序获得对任何匹配的意图过滤器的意图数据访问,从而劫持活动信息(如手机安卓软件中常见的打开浏览器、打开地图等操作中的信息),通过分析恶意安卓软件中高频出现的意图,可以对恶意安卓软件进行分析。因此,对于某个未知的安卓软件(即待检测安卓软件),可在该安卓软件的权限信息文件中提取显式意图和/或隐式意图,通过意图特征对该安卓软件是否为恶意安卓软件进行分析。
API是恶意软件具体实现恶意行为或者窃取隐私数据而具体调用的方法,例如:android.location,该API可以获取手机的地理位置,涉及危险行为或敏感数据;READ_CONTACTS,该API允许应用读取用户联系人数据;WRITE_CONTACTS,该API允许应用写入用户联系人数据;SEND_SMS,该API允许应用发送短信;RECORD_AUDIO,该API允许应用录音;CAMERA,该API允许访问摄像头。所以,对于某个未知的安卓软件(即待检测安卓软件),可在该安卓软件的API信息文件中提取API特征,包括API名称、参数和API恢复值,并将API特征作为判断该安卓软件是否为恶意软件的依据。
可预先为安卓软件的每个权限特征、意图特征和API特征建立相应的特征项,在提取到某个待检测安卓软件的权限特征、意图特征和API特征后,可按照特征项是否存在相应特征将该安卓软件的各个特征项取值为0或1,0代表特征项不存在相应特征,1代表特征项存在相应特征;通过该方式可以得到待检测安卓软件的一个包含0和/或1的序列,之后可将得到的序列输入预先训练好的CNN-GRU模型进行检测,从而判断待检测安卓软件为恶意软件或良性软件。
作为一种可能的实施方式,上述CNN-GRU模型可以包括依次连接的特征提取模块、GRU层和全连接层;特征提取模块可以包括依次连接的第一卷积层、第二卷积层、第一池化层、第三卷积层、第四卷积层、第二池化层、第五卷积层、第六卷积层和第三池化层。
示例性地,对于CNN-GRU模型的构建,具体可使用6层Conv1D来提取特征值,每两层Conv1D组成一个卷积块后再添加一层MaxPooling1D来保留主要特征,从而减少模型计算量;设置三个卷积块的卷积核数分别为64个、64个和64个,设置三个卷积块的卷积核尺寸均为3×3,设置三个池化层的池化窗口大小为3×3;在最后一层MaxPooling1D后添加一层GRU层来判断待检测软件为恶意软件或良性软件,设置GRU层的输出尺寸为70;在GRU层后添加一层Dense层,Dense层将激活函数设置为softmax。针对卷积后产生的特征图大小计算公式为:输入矩阵以及卷积核和特征图矩阵都是方阵,r为输入矩阵的尺寸大小,k为卷积核的尺寸大小,s为步幅,p为补零层数。softmax函数的表达式为:/>n为GRU层神经元的个数,yk为第k个神经元的输出,ak为第k个神经元的输入信号,ai为第i个神经元的输入信号。
损失函数采用categorical_crossentropy,函数表达式如下: m为类别的数量(类别分为恶意软件和良性软件,m=2),/>为Dense层输出的样本i的预测数据,yi为样本i的真实数据;yi取值为0或1,当yi等于1时表示良性软件,当yi等于0时表示恶意软件。
作为一种可能的实施方式,上述第一卷积层、上述第二卷积层、上述第三卷积层、上述第四卷积层、上述第五卷积层和上述第六卷积层各自的激活函数均可以采用tanh函数。
示例性地,接续前例,对于CNN-GRU模型的构建,每个由两层Conv1D组成的卷积块均使用tanh函数(即双曲正切函数)作为激活函数对输出的特征图进行激活,从而提升神经网络的拟合能力,从而利于CNN-GRU模型对数据进行分类。tanh函数的表达式为:y为激活后的数据,x为输入的数据(即进入卷积层的数据,具体为包含0和/或1的序列)。tanh函数在原点附近与y=x函数形式相近,当激活值较低时,神经网络可以直接进行矩阵运算,神经网络的训练相对容易。同时tanh函数在一定程度上减轻了梯度消失的问题,tanh函数的输出和输入能够保持非线性单调上升和下降关系,符合BP(backpropagation,反向传播)神经网络的梯度求解,容错性好,有界。
作为一种可能的实施方式,上述步骤S106(即通过预先训练好的CNN-GRU模型对特征信息进行检测,得到待检测安卓软件的检测结果)可以包括:
(31)特征提取模块对特征信息进行特征提取,得到待检测安卓软件的特征图。
(32)GRU层对特征图进行门控循环,得到待检测安卓软件的隐藏状态。
在特征提取模块输出得到某个待检测安卓软件的特征图后,GRU层首先计算重置门门值kt和更新门门值pt,计算方法就是使用当前时刻输入的特征图xt与上一时刻的隐藏状态Ht-1拼接并进行线性变换,再经过sigmoid激活,具体公式为:kt=σ(Wr·[Ht-1,xt]),pt=σ(Wz·[Ht-1,xt]),σ为sigmoid函数,Wr为kt的权重矩阵,Wz为pt的权重矩阵;之后使用Ht-1重置后的结果kt⊙Ht-1与Pt拼接进行线性变换,再经过tanh激活,得到当前时刻的候选隐藏状态具体公式为:/> tanh为tanh函数,Wh为/>的权重矩阵;kt值越小它和Ht-1的哈达玛积越小,说明上一时刻的隐藏状态要被丢弃的信息就越多,这样一来就可以决定上一时刻传来的信息有多少会被利用;之后计算(1-pt)*Ht-1和/>并将两者相加,得到当前时刻的隐藏状态Ht,具体公式为:pt的值越接近1则代表上一时刻的隐藏状态要被“记忆”(即保留)的信息越多,而pt的值越接近0则代表上一时刻的隐藏状态要被“遗忘”(即丢弃)的信息越多。同理,1-pt的值越接近1则代表上一时刻的候选隐藏状态要被“记忆”(即保留)的信息越多,而1-pt的值越接近0则代表上一时刻的候选隐藏状态要被“遗忘”(即丢弃)的信息越多。
为了便于理解,还可将上述重置门门值kt、更新门门值pt和候选隐藏状态的计算公式展开,展开后的公式如下:
kt=σ(xtWxr+Ht-1Whr+Cr)
pt=σ(xtWxz+Ht-1Whz+Cz)
其中,Wxr为xt对应于kt的权重,Whr为Ht-1对应于kt的权重,Cr为kt的偏置,Wxz为xt对应于pt的权重,Whz为Ht-1对应于pt的权重,Cz为pt的偏置,Wxh为xt对应于的权重,Whh为Ht-1对应于/>的权重,Ch为/>的偏置。
(33)全连接层采用softmax函数对隐藏状态进行处理,得到检测结果。
示例性地,接续前例,将GRU层输出的待检测安卓软件的数据输入Dense层,Dense层通过softmax函数来对数据进行激活,得到待检测安卓软件的检测结果,该检测结果为0或1,1表示待检测安卓软件为良性软件,0表示待检测安卓软件为恶意软件。
作为一种可能的实施方式,上述CNN-GRU模型的训练步骤可以包括:
(41)获取各个已知恶意软件和各个已知良性软件的权限特征、意图特征和API特征。
在提取到各个已知恶意软件和各个已知良性软件的权限特征、意图特征和API特征后,还可将提取到的权限特征、意图特征和API特征保存在数据库中以便于后续对所需数据进行调用。
(42)对各个已知恶意软件和各个已知良性软件的权限特征、意图特征和API特征进行标准化处理,并将标准化处理后的数据划分成训练集和测试集。
(43)用训练集对CNN-GRU模型进行训练,训练完成后用测试集对CNN-GRU模型的性能进行测试。
为了便于理解,在此以某一具体应用对上述基于CNN-GRU的安卓恶意软件检测方法进行示例性描述如下。参见图2所示,该方法可以包括以下步骤:
步骤一,构建CNN-GRU模型。
参见图3所示,使用两层Conv1D组成卷积层1,设置卷积层1的卷积核数为64个,设置卷积层1的卷积核尺寸为3×3,设置卷积层1的激活函数为tanh函数;卷积层1后添加一层MaxPooling1D,并设置该MaxPooling1D的池化窗口大小为3×3;使用两层Conv1D组成卷积层2,设置卷积层2的卷积核数为64个,设置卷积层2的卷积核尺寸为3×3,设置卷积层2的激活函数为tanh函数;卷积层2后添加一层MaxPooling1D,设置该MaxPooling1D的池化窗口大小为3×3;使用两层Conv1D组成卷积层3,设置卷积层3的卷积核数为64个,设置卷积层3的卷积核尺寸为3×3,设置卷积层3的激活函数为tanh函数;卷积层3后添加一层MaxPooling1D,设置该MaxPooling1D的池化窗口大小为3×3;在最后一层MaxPooling1D后添加一层GRU层(其结构参见图4所示),设置GRU层的输出尺寸为70;在GRU层后添加一层Dense层,设置Dense层的激活函数为softmax;定义CNN-GRU模型的损失函数为categorical_crossentropy。
步骤二,训练CNN-GRU模型。
准备多个恶意软件和多个良性软件;提取各恶意软件和各良性软件的权限特征、API特征和意图特征,意图特征包括显式意图和隐式意图;将提取到的数据(即权限特征、API特征和意图特征)保存在数据库中以便于后续对所需数据进行调用。提取到的权限特征、API特征和意图特征一共有241个,主要包括android.location、READ_CONTACTS、WRITE_CONTACTS、SEND_SMS、RECORD_AUDIO、CAMERA等。
之后对提取到的数据进行清洗以去除无用的数据,并对清洗后的数据进行标准化处理;之后将标准化处理后的数据划分为训练集和测试集。
设置CNN-GRU模型的训练轮数epochs=20、设置CNN-GRU模型每轮训练的数据批数batch_size=1,设置CNN-GRU模型的日志显示参数verbose=1(即显示进度条)。然后将训练集输入CNN-GRU模型进行训练,训练完成后将测试集输入CNN-GRU模型进行性能测试。
步骤三,对目标软件(即待检测安卓软件)进行反编译,得到目标软件的权限信息文件和API信息文件。
步骤四,从目标软件的权限信息文件中提取目标软件的权限特征和意图特征,从目标软件的API信息文件中提取目标软件的API特征。
步骤五,将目标软件的权限特征、意图特征和API特征输入训练好的CNN-GRU模型进行检测,通过训练好的CNN-GRU模型判断目标软件为良性软件和恶意软件并输出检测结果。
为了进一步验证CNN-GRU模型的性能,在此对比了单纯使用卷积神经网络(CNN)和使用CNN-GRU模型来对同一批次安卓软件进行检测,其中经过五轮训练后,性能结果如表一所示。
表一
模型 训练轮数 每次数据批数 分类准确率 Loss 精确率
CNN 5 1 97.09% 0.0921 0.93
CNN-GRU 5 1 97.98% 0.0688 0.96
从表一中可以看出,相较于传统的CNN模型,CNN-GRU模型在分辨恶意安卓软件的准确率上更高,且CNN-GRU模型的训练效果更好。
在上述基于CNN-GRU的安卓恶意软件检测方法的基础上,本发明实施例还提供一种基于CNN-GRU的安卓恶意软件检测装置,参见图5所示,该装置可以包括以下模块:
逆向分析模块502,用于对待检测安卓软件进行逆向分析,得到所述待检测安卓软件的权限信息文件和API信息文件。
获取模块504,用于根据所述权限信息文件和所述API信息文件,获取所述待检测安卓软件的特征信息;其中,所述特征信息包括权限特征、意图特征和API特征。
检测模块506,用于通过预先训练好的CNN-GRU模型对所述特征信息进行检测,得到所述待检测安卓软件的检测结果;其中,所述检测结果为表征所述待检测安卓软件为恶意软件的第一结果或表征所述待检测安卓软件为良性软件第二结果。
本发明实施例提供的一种基于CNN-GRU的安卓恶意软件检测装置,先对待检测安卓软件进行逆向分析,得到待检测安卓软件的权限信息文件和API信息文件;再根据权限信息文件和API信息文件,获取待检测安卓软件的特征信息,特征信息包括权限特征、意图特征和API特征;之后通过预先训练好的CNN-GRU模型对特征信息进行检测,得到待检测安卓软件的检测结果,检测结果为表征待检测安卓软件为恶意软件的第一结果或表征待检测安卓软件为良性软件第二结果。采用上述技术,从权限特征、意图特征和API特征来对安卓软件进行识别,提高了安卓软件识别的效率和准确率,同时安卓软件识别的准确率不受安卓软件是否有检测记录的影响。
上述获取模块504还可以用于:根据所述权限信息文件,获取所述待检测安卓软件的权限特征和意图特征;其中,所述意图特征包括显式意图特征和/或隐式意图特征;根据所述API信息文件,获取所述待检测安卓软件的API特征。
上述逆向分析模块502还可以用于:采用apktool反编译工具对待检测安卓软件进行逆向分析,得到所述待检测安卓软件的应用程序包文件;其中,所述应用程序包文件包括所述权限信息文件;采用dex2jar反编译工具将所述应用程序包文件中的虚拟机运行文件转换成jar文件和API信息文件。
上述CNN-GRU模型可以包括依次连接的特征提取模块、GRU层和全连接层;所述特征提取模块包括依次连接的第一卷积层、第二卷积层、第一池化层、第三卷积层、第四卷积层、第二池化层、第五卷积层、第六卷积层和第三池化层。
上述检测模块506还可以用于:所述特征提取模块对所述特征信息进行特征提取,得到所述待检测安卓软件的特征图;所述GRU层对所述特征图进行门控循环,得到所述待检测安卓软件的隐藏状态;所述全连接层采用softmax函数对所述隐藏状态进行处理,得到所述检测结果。
上述检测模块506还可以用于:所述GRU层采用以下公式计算所述待检测安卓软件的重置门门值kt、更新门门值Pt、候选隐藏状态和隐藏状态Ht
kt=σ(xtWxr+Ht-1Whr+Cr)
pt=σ(xtWxz+Ht-1Whz+Cz)
其中,σ为sigmoid函数,xt为当前时刻输入的特征图,Ht-1为上一时刻的隐藏状态,Wxr为xt对应于kt的权重,Whr为Ht-1对应于kt的权重,Cr为kt的偏置,Wxz为xt对应于pt的权重,Whz为Ht-1对应于pt的权重,Cz为pt的偏置,Wxh为xt对应于的权重,Whh为Ht-1对应于/>的权重,Ch为/>的偏置。
上述第一卷积层、上述第二卷积层、上述第三卷积层、上述第四卷积层、上述第五卷积层和上述第六卷积层各自的激活函数均采用tanh函数。
参见图5所示,该装置还可以包括:
训练模块508,用于获取各个已知恶意软件和各个已知良性软件的权限特征、意图特征和API特征;对各个已知恶意软件和各个已知良性软件的权限特征、意图特征和API特征进行标准化处理,并将标准化处理后的数据划分成训练集和测试集;用所述训练集对所述CNN-GRU模型进行训练,训练完成后用所述测试集对所述CNN-GRU模型的性能进行测试。
本发明实施例所提供的基于CNN-GRU的安卓恶意软件检测装置,其实现原理及产生的技术效果和前述基于CNN-GRU的安卓恶意软件检测方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (4)

1.一种基于CNN-GRU的安卓恶意软件检测方法,其特征在于,所述方法包括:
对待检测安卓软件进行逆向分析,得到所述待检测安卓软件的权限信息文件和API信息文件;
根据所述权限信息文件和所述API信息文件,获取所述待检测安卓软件的特征信息;其中,所述特征信息包括权限特征、意图特征和API特征;
通过预先训练好的CNN-GRU模型对所述特征信息进行检测,得到所述待检测安卓软件的检测结果;其中,所述检测结果为表征所述待检测安卓软件为恶意软件的第一结果或表征所述待检测安卓软件为良性软件的第二结果;
根据所述权限信息文件和所述API信息文件,获取所述待检测安卓软件的特征信息的步骤包括:
根据所述权限信息文件,获取所述待检测安卓软件的权限特征和意图特征;其中,所述意图特征包括显式意图特征和/或隐式意图特征;
根据所述API信息文件,获取所述待检测安卓软件的API特征;
所述CNN-GRU模型包括依次连接的特征提取模块、GRU层和全连接层;所述特征提取模块包括依次连接的第一卷积层、第二卷积层、第一池化层、第三卷积层、第四卷积层、第二池化层、第五卷积层、第六卷积层和第三池化层;通过预先训练好的CNN-GRU模型对所述特征信息进行检测,得到所述待检测安卓软件的检测结果的步骤包括:所述特征提取模块对所述特征信息进行特征提取,得到所述待检测安卓软件的特征图;所述GRU层对所述特征图进行门控循环,得到所述待检测安卓软件的隐藏状态;所述全连接层采用softmax函数对所述隐藏状态进行处理,得到所述检测结果;
所述方法还包括:
为安卓软件可能包含的每个权限特征、每个意图特征和每个API特征各自建立相应的特征项,并按照特征项是否存在所述待检测安卓软件的相应特征将各个特征项取值为0或1,0代表特征项不存在相应特征,1代表特征项存在相应特征;将得到的全部特征项取值组成一个包含0和/或1的序列;
所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层、所述第五卷积层和所述第六卷积层各自分别为一层Conv1D,所述第一池化层、所述第二池化层和所述第三池化层各自分别为一层MaxPooling1D;所述特征提取模块对所述特征信息进行特征提取,得到所述待检测安卓软件的特征图的步骤包括:将所述序列输入所述第一卷积层以通过所述特征提取模块对所述序列进行特征提取,得到所述待检测安卓软件的特征图;
所述GRU层对所述特征图进行门控循环,得到所述待检测安卓软件的隐藏状态的步骤包括:
所述GRU层采用以下公式计算所述待检测安卓软件的重置门门值、更新门门值/>、候选隐藏状态/>和隐藏状态/>
其中,为sigmoid函数,/>为当前时刻输入的特征图,/>为上一时刻的隐藏状态,为/>对应于/>的权重,/>为/>对应于/>的权重,/>为/>的偏置,/>为/>对应于/>的权重,/>为/>对应于/>的权重,/>为/>的偏置,/>为/>对应于/>的权重,为/>对应于/>的权重,/>为/>的偏置;
所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层、所述第五卷积层和所述第六卷积层各自的激活函数均采用tanh函数。
2.根据权利要求1所述的方法,其特征在于,对待检测安卓软件进行逆向分析,得到所述待检测安卓软件的权限信息文件和API信息文件的步骤包括:
采用apktool反编译工具对待检测安卓软件进行逆向分析,得到所述待检测安卓软件的应用程序包文件;其中,所述应用程序包文件包括所述权限信息文件;
采用dex2jar反编译工具将所述应用程序包文件中的虚拟机运行文件转换成jar文件和API信息文件。
3.根据权利要求1所述的方法,其特征在于,所述CNN-GRU模型的训练步骤包括:
获取各个已知恶意软件和各个已知良性软件的权限特征、意图特征和API特征;
对各个已知恶意软件和各个已知良性软件的权限特征、意图特征和API特征进行标准化处理,并将标准化处理后的数据划分成训练集和测试集;
用所述训练集对所述CNN-GRU模型进行训练,训练完成后用所述测试集对所述CNN-GRU模型的性能进行测试。
4.一种基于CNN-GRU的安卓恶意软件检测装置,其特征在于,所述装置包括:
逆向分析模块,用于对待检测安卓软件进行逆向分析,得到所述待检测安卓软件的权限信息文件和API信息文件;
获取模块,用于根据所述权限信息文件和所述API信息文件,获取所述待检测安卓软件的特征信息;其中,所述特征信息包括权限特征、意图特征和API特征;
检测模块,用于通过预先训练好的CNN-GRU模型对所述特征信息进行检测,得到所述待检测安卓软件的检测结果;其中,所述检测结果为表征所述待检测安卓软件为恶意软件的第一结果或表征所述待检测安卓软件为良性软件的第二结果;
所述获取模块还用于:根据所述权限信息文件,获取所述待检测安卓软件的权限特征和意图特征;其中,所述意图特征包括显式意图特征和/或隐式意图特征;根据所述API信息文件,获取所述待检测安卓软件的API特征;
所述CNN-GRU模型包括依次连接的特征提取模块、GRU层和全连接层;所述特征提取模块包括依次连接的第一卷积层、第二卷积层、第一池化层、第三卷积层、第四卷积层、第二池化层、第五卷积层、第六卷积层和第三池化层;所述检测模块还用于:所述特征提取模块对所述特征信息进行特征提取,得到所述待检测安卓软件的特征图;所述GRU层对所述特征图进行门控循环,得到所述待检测安卓软件的隐藏状态;所述全连接层采用softmax函数对所述隐藏状态进行处理,得到所述检测结果;
所述装置还用于:为安卓软件可能包含的每个权限特征、每个意图特征和每个API特征各自建立相应的特征项,并按照特征项是否存在所述待检测安卓软件的相应特征将各个特征项取值为0或1,0代表特征项不存在相应特征,1代表特征项存在相应特征;将得到的全部特征项取值组成一个包含0和/或1的序列;
所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层、所述第五卷积层和所述第六卷积层各自分别为一层Conv1D,所述第一池化层、所述第二池化层和所述第三池化层各自分别为一层MaxPooling1D;所述检测模块还用于:将所述序列输入所述第一卷积层以通过所述特征提取模块对所述序列进行特征提取,得到所述待检测安卓软件的特征图;
所述检测模块还用于:
所述GRU层采用以下公式计算所述待检测安卓软件的重置门门值、更新门门值/>、候选隐藏状态/>和隐藏状态/>
其中,为sigmoid函数,/>为当前时刻输入的特征图,/>为上一时刻的隐藏状态,为/>对应于/>的权重,/>为/>对应于/>的权重,/>为/>的偏置,/>为/>对应于/>的权重,/>为/>对应于/>的权重,/>为/>的偏置,/>为/>对应于/>的权重,为/>对应于/>的权重,/>为/>的偏置;
所述第一卷积层、所述第二卷积层、所述第三卷积层、所述第四卷积层、所述第五卷积层和所述第六卷积层各自的激活函数均采用tanh函数。
CN202310396576.3A 2023-04-13 2023-04-13 基于cnn-gru的安卓恶意软件检测方法及装置 Active CN116401667B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310396576.3A CN116401667B (zh) 2023-04-13 2023-04-13 基于cnn-gru的安卓恶意软件检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310396576.3A CN116401667B (zh) 2023-04-13 2023-04-13 基于cnn-gru的安卓恶意软件检测方法及装置

Publications (2)

Publication Number Publication Date
CN116401667A CN116401667A (zh) 2023-07-07
CN116401667B true CN116401667B (zh) 2024-04-19

Family

ID=87013901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310396576.3A Active CN116401667B (zh) 2023-04-13 2023-04-13 基于cnn-gru的安卓恶意软件检测方法及装置

Country Status (1)

Country Link
CN (1) CN116401667B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027068A (zh) * 2019-11-28 2020-04-17 辽宁大学 基于层级DoI-RNNs模型的安卓恶意软件动态检测方法
CN111259393A (zh) * 2020-01-14 2020-06-09 河南信息安全研究院有限公司 一种基于生成对抗网络的恶意软件检测器抗概念漂移方法
CN112434296A (zh) * 2020-12-09 2021-03-02 广东工业大学 一种安卓恶意应用的检测方法及装置
CN112632538A (zh) * 2020-12-25 2021-04-09 北京工业大学 一种基于混合特征的安卓恶意软件检测方法及***
CN112860573A (zh) * 2021-03-12 2021-05-28 南京邮电大学 一种智能手机恶意软件检测方法
CN113312621A (zh) * 2021-06-02 2021-08-27 沈阳航空航天大学 基于增强深度学习的拟态的安卓恶意软件动态检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI461952B (zh) * 2012-12-26 2014-11-21 Univ Nat Taiwan Science Tech 惡意程式偵測方法與系統

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027068A (zh) * 2019-11-28 2020-04-17 辽宁大学 基于层级DoI-RNNs模型的安卓恶意软件动态检测方法
CN111259393A (zh) * 2020-01-14 2020-06-09 河南信息安全研究院有限公司 一种基于生成对抗网络的恶意软件检测器抗概念漂移方法
CN112434296A (zh) * 2020-12-09 2021-03-02 广东工业大学 一种安卓恶意应用的检测方法及装置
CN112632538A (zh) * 2020-12-25 2021-04-09 北京工业大学 一种基于混合特征的安卓恶意软件检测方法及***
CN112860573A (zh) * 2021-03-12 2021-05-28 南京邮电大学 一种智能手机恶意软件检测方法
CN113312621A (zh) * 2021-06-02 2021-08-27 沈阳航空航天大学 基于增强深度学习的拟态的安卓恶意软件动态检测方法

Also Published As

Publication number Publication date
CN116401667A (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
CN109063966B (zh) 风险账户的识别方法和装置
CN109376078B (zh) 移动应用的测试方法、终端设备及介质
CN113489713B (zh) 网络攻击的检测方法、装置、设备及存储介质
CN104866770B (zh) 敏感数据扫描方法和***
US10440050B1 (en) Identifying sensitive data on computer networks
CN108596759A (zh) 贷款申请信息检测方法及服务器
WO2015016901A1 (en) Signal tokens indicative of malware
CN106030527B (zh) 将可供下载的应用程序通知用户的***和方法
CN112434296A (zh) 一种安卓恶意应用的检测方法及装置
Tri et al. Forensics acquisition and analysis method of imo messenger
CN110858247A (zh) 安卓恶意应用检测方法、***、设备及存储介质
Liccardi et al. Improving mobile app selection through transparency and better permission analysis
CN111259382A (zh) 恶意行为识别方法、装置、***和存储介质
Maryam et al. cHybriDroid: A Machine Learning‐Based Hybrid Technique for Securing the Edge Computing
CN111324893A (zh) 基于敏感模式的安卓恶意软件的检测方法及后台***
CN111988327B (zh) 威胁行为检测和模型建立方法、装置、电子设备及存储介质
CN116401667B (zh) 基于cnn-gru的安卓恶意软件检测方法及装置
CN112433936A (zh) 测试方法、装置及存储介质
CN116305120A (zh) 一种双重验证的安卓恶意软件混合检测***及方法
CN115600201A (zh) 一种电网***软件的用户账户信息安全处理方法
CN108108615A (zh) 应用检测方法、装置及检测设备
Fan et al. An api calls monitoring-based method for effectively detecting malicious repackaged applications
CN109818945A (zh) 应用程序行为特征选择方法及装置
CN113139179A (zh) 基于web攻击的分析方法及装置
Tokmak et al. Deep Learning Based Malware Detection Tool Development for Android Operating System

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