CN113761528A - 恶意软件检测方法和装置 - Google Patents
恶意软件检测方法和装置 Download PDFInfo
- Publication number
- CN113761528A CN113761528A CN202010791050.1A CN202010791050A CN113761528A CN 113761528 A CN113761528 A CN 113761528A CN 202010791050 A CN202010791050 A CN 202010791050A CN 113761528 A CN113761528 A CN 113761528A
- Authority
- CN
- China
- Prior art keywords
- operation code
- preset
- code sequence
- target
- feature extraction
- 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
Links
- 238000000605 extraction Methods 0.000 claims abstract description 78
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 76
- 238000001514 detection method Methods 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 17
- 238000013527 convolutional neural network Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000012549 training Methods 0.000 claims description 6
- 239000000126 substance Substances 0.000 claims 1
- 239000000284 extract Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Virology (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了恶意软件检测方法和装置,涉及软件检测领域。方法的一具体实施方式包括:获取待检测软件的操作码序列;基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列;按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量;将目标操作码向量输入预设的检测模型,得到待检测软件是否属于恶意软件的分类结果,有效避免了操作码序列中有价值特征信息的丢失,提高了恶意软件检测的准确性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及软件检测技术领域,尤其涉及一种恶意软件检测恶意软件检测方法和装置。
背景技术
操作码是平台中预先定义好的可直接使用的操作指令,如Linux中的汇编指令,Android的Dalvik虚拟机中的218种操作码指令。因其具有易提取不需要动态加载或运行应用,且不易受到代码混淆等抗分析技术的影响的特性,常用于恶意软件检测。目前基于操作码进行恶意软件检测的主要方法如下:
(1)对安卓中所涉及的多种操作码指令进行抽象化处理,并利用n-gram对操作码指令进行编码,分析和研究在不同n值下的操作码组合的恶意软件检测效果。
(2)收集操作码的频率和操作码序列,使用Bayesian网络和KNN(k-nearestneighbor classification,k近邻分类)算法进行恶意软件检测。
发明内容
本申请实施例提供了一种恶意软件检测方法、装置、设备以及存储介质。
根据第一方面,本申请实施例提供了一种恶意软件检测方法,该方法包括:获取待检测软件的操作码序列;基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列;按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量;将目标操作码向量输入预设的检测模型,得到待检测软件是否属于恶意软件的分类结果,其中,检测模型基于标注有所述分类结果的目标操作码向量样本训练得到。
在一些实施例中,预设的特征提取算法包括:第一特征提取算法和第二特征提取算法,以及基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列,包括:利用第一特征提取算法提取操作码序列中的第一预设数量个操作码;利用第二特征提取算法提取操作码序列中的第二预设数量个操作码;基于第一预设数量个操作码和第二预设数量个操作码,得到目标操作码序列。
在一些实施例中,基于第一预设数量个操作码和第二预设数量个操作码,得到目标操作码序列,包括:将第一预设数量个操作码与第二预设数量个操作码进行组合,得到目标操作码序列。
在一些实施例中,按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量,包括:统计目标操作码序列中每个操作码在预设的目标操作码序列样本集中出现的次数;按照预设的编码规则以及每个操作码的出现次数生成向量元素;根据向量元素生成目标操作码向量。
在一些实施例中,检测模型基于基于自注意力机制的卷积神经网络实现。
根据第二方面,本申请实施例提供了一种恶意软件检测装置,包括:获取模块,被配置成获取待检测软件的操作码序列;提取模块,被配置成基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列;编码模块,被配置成按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量;分类模块,被配置成将目标操作码向量输入预设的检测模型,得到待检测软件是否属于恶意软件的分类结果,其中,检测模型基于标注有所述分类结果的目标操作码向量样本训练得到。
在一些实施例中,预设的特征提取算法包括:第一特征提取算法和第二特征提取算法,以及提取模块进一步包括:第一提取单元,被配置成利用第一特征提取算法提取所述操作码序列中的第一预设数量个操作码;第二提取单元,被配置成利用第二特征提取算法提取操作码序列中的第二预设数量个操作码;获取序列单元,被配置成基于第一预设数量个操作码和所述第二预设数量个操作码,得到目标操作码序列。
在一些实施例中,获取序列单元进一步被配置成:将第一预设数量个操作码与所述第二预设数量个操作码进行组合,得到目标操作码序列。
在一些实施例中,编码模块进一步被配置成:统计目标操作码序列中每个操作码在预设的目标操作码序列样本集中出现的次数;按照预设的编码规则以及每个操作码的出现次数生成向量元素;根据所述向量元素生成目标操作码向量。
在一些实施例中,检测模型基于基于自注意力机制的卷积神经网络实现。
根据第三方面,本申请实施例提供了一种电子设备,该电子设备包括一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被该一个或多个处理器执行,使得一个或多个处理器实现如第一方面的任一实施例的恶意软件检测方法。
根据第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面的任一实施例的恶意软件检测方法。
本申请通过获取待检测软件的操作码序列;基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列;按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量;将目标操作码向量输入预设的检测模型,得到待检测软件是否属于恶意软件的分类结果,有效避免了现有技术中操作码序列的特征往往通过人工选择进行提取,在选择过程中易造成有价值特征信息的丢失,进而降低操作码序列所对应的待检测软件的检测结果的准确性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的说明书而变得容易理解。
附图说明
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的恶意软件检测方法的一个实施例的流程图;
图3是根据本申请的恶意软件检测方法的一个应用场景的示意图;
图4是根据本申请的恶意软件检测方法的另一个实施例的流程图;
图5是根据本申请的恶意软件检测装置的一个实施例的示意图;
图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
应当理解,本发明主要可以应用于安卓(Android)系统恶意软件的检测,此外,也可以应用于其他系统的恶意软件检测,例如,苹果系统(iphone operation system,iOS)恶意软件检测以及微软系统(Windows)恶意软件检测等,本方案将以Android恶意软件检测为例进行介绍。Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端、短消息服务(Short Message Service,SMS)程序、日历、地图、浏览器以及联系人管理程序等。
图1示出了可以应用本申请的恶意软件检测方法的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用软件,例如,搜索类应用软件、问答类应用软件等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供恶意软件检测服务),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如,获取待检测软件的操作码序列;基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列;按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量;将目标操作码向量输入预设的检测模型,得到待检测软件是否属于恶意软件的分类结果。
需要说明的是,本申请实施例所提供的恶意软件检测方法一般由服务器105执行,相应地,用于恶意软件检测装置一般设置于服务器105中。
还需要指出的是,终端设备101、102、103中也可以安装恶意软件检测类应用,终端设备101、102、103也可以基于待检测软件进行检测,此时,恶意软件检测方法也可以由终端设备101、102、103执行,相应地,恶意软件检测装置也可以设置于终端设备101、102、103中。此时,示例性系统架构100也可以不包括服务器105和网络104。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供恶意软件检测服务),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示出了可以应用于本申请的恶意软件检测方法的实施例的流程示意图200。恶意软件检测方法包括以下步骤:
步骤201,获取待检测软件的操作码序列。
在本实施例中,执行主体(例如,图1中的服务器101或终端设备101、102、103)可以首先获取待检测软件,然后再对获取的待检测软件进行预处理得到待检测软件的操作码序列。
这里,待检测软件可以是原始安装包文件,以安卓系统为例,原始安装包文件为.apk文件。
其中,预处理操作可以是现有技术或未来发展技术中的对待检测软件进行处理获取操作码序列的操作。
例如,执行主体可以首先对获取的.apk安装文件进行解压缩得到.apk安装文件包含的class.dex文件,然后,采用.apktool反编译程序对class.dex文件进行反编译,获得smali源文件,从smali源文件中提取Dalvik操作码指令并丢弃操作数,最后根据Android操作码列表,得到操作码序列。
步骤202,基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列。
在本实施例中,执行主体可以采用预设的特征提取算法提取操作码序列中的预设数量个操作码,例如,5个、6个等,并将预设数量个操作码组成的序列作为目标操作码序列。
其中,预设的特征提取算法用于提取操作码序列的特征,而提取出的预设数量个操作码用于表征操作码序列的特征。
这里,预设的特征提取算法可以采用现有技术或未来发展技术中的用于提取文本特征的算法,例如,TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文件频率)、TextRank等,本申请对此不作限定。
其中,TF-IDF是一种统计方法,可以评估字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库出现的频率成反比下降,即一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能够代表该文章。
这里,预设数量个操作码可以是TF-IDF算法统计出的操作码在操作码序列中或操作码序列集合中重要程度比较靠前的预设数量个操作码。
TextRank算法是一种用于文本的基于图的排序算法,用于为文本生成关键字和摘要。这里,TextRank算法可以用于提取操作码序列中的预设数量个关键操作码。
需要指出的是,执行主体可以仅采用一个特征提取算法提取操作码序列的特征,也可以同时采取两个不同的特征提取算法提取操作码序列的特征,本申请对此不作限定。
步骤203,按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量。
在本实施例中,执行主体可以按照预设的编码规则对目标操作码序列中的每个操作码进行编码得到向量元素,根据上述向量元素,得到目标操作码向量。即目标操作码向量中的每一个向量元素都对应于一个操作码,并且目标操作码向量中向量元素的排序可以与该向量元素对应的操作码在目标操作码序列中的排序相同。
这里,预设的编码规则可以为现有技术或未来发展技术中的对操作码进行编码的规则,例如,one-hot编码、根据预设的词典中的标识号进行编码等等,本申请对此不作限定。
其中,one-hot编码,又称为一位有效编码,主要采用N为状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候只有一位有效。
需要说明的是,这里,向量元素的维数可以根据经验、实际需求和具体的应用场景进行设置。
在一些可选的方式中,按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量,包括:统计目标操作码序列中每个操作码在预设的目标操作码序列样本集中出现的次数;按照预设的编码规则以及每个操作码的出现次数生成向量元素,根据向量元素生成目标操作码向量。
在本实现方式中,执行主体可以首先统计目标操作码序列中每个操作码在预设的目标操作码序列样本集中出现的次数。
然后,按照预设的编码规则以及每个操作码的出现次数生成向量元素。
具体地,目标操作码序列包括操作码C1、操作码C2和操作码C3,三个操作码在预设的目标操作码序列样本集中出现的次数分别为5次、9次和10次,则对操作进行编码得到的向量元素可以分别为110、010和001,即出现次数最多的操作码C3对应的向量元素即编码标识最靠前。
在实际应用中,可采用Tensorflow自带的VocabularyProcessor函数来建立操作码和向量元素的映射关系,以有效提高计算速度,其中,向量元素根据操作码在预设的目标操作码序列样本集中出现的次数及预设的编码规则确定。
最后,执行主体根据向量元素生成目标操作码向量。
该实现方式通过根据预设的编码规则以及每个操作码在预设的目标操作码序列样本集中出现的次数生成向量元素,并根据向量元素生成目标操作码向量,使得生成的目标操作向量进一步包含了操作码的频次特征信息,可由于提升根据目标操作码向量得到的待检测软件是否属于恶意软件的分类结果的准确性。
步骤204,将目标操作码向量输入预设的检测模型,得到目标操作码向量所对应的待检测软件是否属于恶意软件的分类结果。
在本实施例中,执行主体在得到上述目标操作码向量后,可以将目标操作码向量或目标操作码向量的转置输入预设的检测模型,得到待检测软件是否属于恶意软件的分类结果,其中,预设的检测模型基于标注有分类结果的目标操作码向量样本训练得到。
这里,预设的检测模型可以基于现有技术或未来发展技术中的深度学习神经网络实现,例如,CNN(Convolutional Neural Networks,卷积神经网络)、RNN(RecurrentNeural Network,循环神经网络)等,本申请对此不作限定。
在一些可选的方式中,检测模型基于基于自注意力机制的卷积神经网络实现。
在本实施例中,检测模型基于基于自注意力机制的卷积神经网络ATT-CNN(Attention based Convolutional Neural Networks)实现。
这里,ATT-CNN包括卷积层、池化层、全连接层和softmax层。
具体地,执行主体首先将包含K(目标操作码序列中操作码的个数)个向量元素的目标操作码向量输入自注意力机制中,以为每个向量元素创建操作码向量,并与原向量元素进行拼接,得到新的向量元素,并与分类器softmax的其他组成成分共同训练,上下文向量会不断更新,其次,将新的目标操作码向量送入卷积层,由于目标操作码向量包含向量元素,一个向量元素对应一个操作码,各向量元素的维数相同,当输入的目标操作码向量为列向量时,卷积操作只在纵向移动,并可以采用多种不同尺寸的卷积核提取出不同的特征,卷积操作后,通过1-max池化层进行池化,之后将特征进行融合,最后使用全连接进行分类,并可以使用dropout方式过拟合。
需要指出的是,这里,卷积层选用了三种卷积核尺寸,每种尺寸的卷积核又有多个,以有效提升目标操作码向量的特征提取效果。
该实现方式,检测模型通过采用基于自注意力机制的卷积神经网络ATT-CNN实现,有助于捕获长期的上下文信息和非连续操作码之间相关性,进而有助于获取的待检测软件是否属于恶意软件的分类结果的准确性。
继续参见图3,图3是根据本实施例的恶意软件检测方法的应用场景的一个示意图。
在图3的应用场景中,执行主体301从终端设备302获取待检测软件的操作码序列303,并基于预设的特征提取算法,例如,TF-IDF,提取操作码序列中的预设数量个,例如,5个,操作码,得到目标操作码序列304,然后按照预设的编码规则,例如,one-hot编码,对目标操作码序列中的每个操作码进行编码,得到目标操作码向量305,最后,将目标操作码向量305输入预设的检测模型306,得到待检测软件是否属于恶意软件的分类结果307,其中,检测模型306基于标注有分类结果的目标操作码向量样本训练得到。
本公开的实施例提供的恶意软件检测方法,通过获取待检测软件的操作码序列;基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列;按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量;将目标操作码向量输入预设的检测模型,得到目标操作码序列所对应的待检测软件是否属于恶意软件的分类结果,有效避免了操作码序列中有价值特征信息的丢失,提高了恶意软件检测的准确性。
进一步参考图4,其示出了恶意软件检测方法的又一个实施例的流程400。在本实施例中,预设的特征提取算法包括:第一特征提取算法和第二特征提取算法,本实施例的恶意软件检测方法的流程400,可包括以下步骤:
步骤401,获取同一坐标系下的键盘视图的最大纵坐标和用户感兴趣视图的最小纵坐标。
在本实施例中,步骤401的实现细节和技术效果,可以参考对步骤201的描述,在此不再赘述。
步骤402,利用第一特征提取算法提取操作码序列中的第一预设数量个操作码。
在本实施例中,执行主体利用第一特征提取算法提取操作码序列中的第一预设数量个,例如,2个、3个等,操作码。
其中,第一特征提取算法可以采用现有技术或未来发展技术中的用于提取文本特征的算法,例如,TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文件频率)、TextRank等,本申请对此不作限定。
步骤403,利用第二特征提取算法提取所述操作码序列中的第二预设数量个操作码。
在本实施例中,在本实施例中,执行主体利用第二特征提取算法提取操作码序列中的第二预设数量个,例如,2个、3个等,操作码。
其中,第二特征提取算法可以采用现有技术或未来发展技术中的用于提取文本特征的算法,例如,TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文件频率)、TextRank等,本申请对此不作限定。
需要说明的是,通常情况下,第一特征提取算法与第二特征提取算法不同。
步骤404,基于第一预设数量个操作码和第二预设数量个操作码,得到目标操作码序列。
在本实施例中,执行主体在获取到根据第一特征提取算法获得的第一预设数量个操作码和根据第二特征提取算法获得的第二预设数量个操作码之后,可以直接将第一预设数量个操作码和第二预设数量个操作码进行组合,得到目标操作码序列,也可以将第二预设数量个操作码中与第一预设数量个操作码相同的操作码与第一预设数量个操作码进行组合,得到目标操作码序列,本申请对此不作限定。
具体地,执行主体利用第一特征提取算法,例如,TF-IDF算法,提取操作码序列中重要程度排序靠前的3个操作码,分别为操作码C1、操作码C2和操作码C3,执行主体利用第二特征提取算法,例如,Textrank算法,提取操作码序列中重要程度排序靠前的2个操作码,分别为操作码C2和操作码C4。进一步地,执行主体可以将操作码C2和操作码C1、操作码C2以及操作码C3进行组合,得到目标操作码序列(操作码C1、操作码C2、操作码C3、操作码C2)。通过将相同的操作码与第一预设数量的操作码进行组合,对相同操作码的特征信息进行了有效的增强。
在一些可选的方式中,基于第一预设数量个操作码和第二预设数量个操作码,得到目标操作码序列,包括:将所述第一预设数量个操作码与第二预设数量个操作码进行组合,得到目标操作码序列。
在本实施例中,执行主体在获取到根据第一特征提取算法获得的第一预设数量个操作码和根据第二特征提取算法获得的第二预设数量个操作码之后,可以直接将第一预设数量个操作码和第二预设数量个操作码进行组合,得到目标操作码序列。
具体地,执行主体利用第一特征提取算法,例如,TF-IDF算法,提取操作码序列中重要程度排序靠前的3个操作码,分别为操作码C1、操作码C2和操作码C3,执行主体利用第二特征提取算法,例如,Textrank算法,提取操作码序列中重要程度排序靠前的2个操作码,分别为操作码C2和操作码C4。进一步地,执行主体可以将操作码C2、操作码C4和操作码C1、操作码C2以及操作码C3进行组合,得到目标操作码序列(操作码C1、操作码C2、操作码C3、操作码C2、操作C4)。
该实现方式通过将第一预设数量个操作码与第二预设数量的操作码进行组合,增强了目标操作码序列的维度,增加了特征信息,同时对相同操作码的特征信息进行了有效的增强。
步骤405,按照预设的编码规则对所述目标操作码序列中的每个操作码进行编号,得到目标操作码向量。
在本实施例中,步骤405的实现细节和技术效果,可以参考对步骤203的描述,在此不再赘述。
步骤406,将目标操作码向量输入预设的检测模型,得到目标操作码序列所对应的待检测软件是否属于恶意软件的分类结果。
在本实施例中,步骤406的实现细节和技术效果,可以参考对步骤204的描述,在此不再赘述。
在本实施例中,执行主体利用第一特征提取算法提取操作码序列中的第一预设数量个操作码,利用第二特征提取算法提取第二预设数量个操作码,并基于第一预设数量个操作码和第二预设数量个操作码,得到目标操作码序列,增大了目标操作码序列的维数,使得目标操作码序列融合了更多的特征信息,进而有助于提升根据预设的检测模型以及目标操作码序列得到的待检测软件是否属于恶意软件的分类结果的准确性。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种恶意软件检测装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的恶意软件检测装置500包括:获取模块501、提取模块502、编码模块503和分类模块504。
其中,获取模块501,可被配置成获取待检测软件的操作码序列。
提取模块502,可被配置成基于预设的特征提取算法提取操作码序列中的预设数量个操作码,得到目标操作码序列。
编码模块503,可被配置成按照预设的编码规则对目标操作码序列中的每个操作码进行编号,得到目标操作码向量。
分类模块504,可被配置成将目标操作码向量输入预设的检测模型,得到待检测软件是否属于恶意软件的分类结果,其中,检测模型基于标注有所述分类结果的目标操作码向量样本训练得到。
在本实施例的一些可选的方式中,预设的特征提取算法包括:第一特征提取算法和第二特征提取算法,以及提取模块进一步包括:
第一提取单元,被配置成利用第一特征提取算法提取操作码序列中的第一预设数量个操作码;第二提取单元,被配置成利用第二特征提取算法提取操作码序列中的第二预设数量个操作码;获取序列单元,被配置成基于所述第一预设数量个操作码和所述第二预设数量个操作码,得到目标操作码序列。
在本实施例的一些可选的方式中,获取序列单元进一步被配置成:将第一预设数量个操作码与第二预设数量个操作码进行组合,得到目标操作码序列。
在本实施例的一些可选的方式中,编码模块进一步被配置成:统计目标操作码序列中每个操作码在预设的目标操作码序列样本集中出现的次数;按照预设的编码规则以及每个操作码的出现次数生成向量元素;根据向量元素生成目标操作码向量。
在本实施例的一些可选的方式中,检测模型基于基于自注意力机制的卷积神经网络实现。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的恶意软件检测方法的电子设备的框图。
600是根据本申请实施例的恶意软件检测方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的恶意软件检测方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的恶意软件检测方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的恶意软件检测方法对应的程序指令/模块(例如,附图5所示的获取模块501、提取模块502、编码模块503和分类模块504)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的恶意软件检测方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储恶意软件检测的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至恶意软件检测的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
恶意软件检测方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与直播视频流的质量监控的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,有效避免了操作码序列中有价值特征信息的丢失,提高了恶意软件检测的准确性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (12)
1.一种恶意软件检测方法,所述方法包括:
获取待检测软件的操作码序列;
基于预设的特征提取算法提取所述操作码序列中的预设数量个操作码,得到目标操作码序列;
按照预设的编码规则对所述目标操作码序列中的每个操作码进行编号,得到目标操作码向量;
将所述目标操作码向量输入预设的检测模型,得到所述待检测软件是否属于恶意软件的分类结果,其中,所述检测模型基于标注有所述分类结果的目标操作码向量样本训练得到。
2.根据权利要求1所述的方法,其中,所述预设的特征提取算法包括:第一特征提取算法和第二特征提取算法,以及所述基于预设的特征提取算法提取所述操作码序列中的预设数量个操作码,得到目标操作码序列,包括:
利用第一特征提取算法提取所述操作码序列中的第一预设数量个操作码;
利用第二特征提取算法提取所述操作码序列中的第二预设数量个操作码;
基于所述第一预设数量个操作码和所述第二预设数量个操作码,得到目标操作码序列。
3.根据权利要求2所述的方法,其中,所述基于所述第一预设数量个操作码和所述第二预设数量个操作码,得到目标操作码序列,包括:
将所述第一预设数量个操作码与所述第二预设数量个操作码进行组合,得到目标操作码序列。
4.根据权利要求1所述的方法,所述按照预设的编码规则对所述目标操作码序列中的每个操作码进行编号,得到目标操作码向量,包括:
统计所述目标操作码序列中每个操作码在预设的目标操作码序列样本集中出现的次数;
按照预设的编码规则以及每个操作码的出现次数生成向量元素;
根据所述向量元素生成目标操作码向量。
5.根据权利要求1-4任一所述的方法,其中,所述检测模型基于基于自注意力机制的卷积神经网络实现。
6.一种恶意软件检测装置,其特征在于,包括:
获取模块,被配置成获取待检测软件的操作码序列;
提取模块,被配置成基于预设的特征提取算法提取所述操作码序列中的预设数量个操作码,得到目标操作码序列;
编码模块,被配置成按照预设的编码规则对所述目标操作码序列中的每个操作码进行编号,得到目标操作码向量;
分类模块,被配置成将所述目标操作码向量输入预设的检测模型,得到所述待检测软件是否属于恶意软件的分类结果,其中,所述检测模型基于标注有所述分类结果的目标操作码向量样本训练得到。
7.根据权利要求6所述的装置,其中,其中,所述预设的特征提取算法包括:第一特征提取算法和第二特征提取算法,以及所述提取模块进一步包括:
第一提取单元,被配置成利用第一特征提取算法提取所述操作码序列中的第一预设数量个操作码;
第二提取单元,被配置成利用第二特征提取算法提取所述操作码序列中的第二预设数量个操作码;
获取序列单元,被配置成基于所述第一预设数量个操作码和所述第二预设数量个操作码,得到目标操作码序列。
8.根据权利要求7所述的装置,其中,所述获取序列单元进一步被配置成:将所述第一预设数量个操作码与所述第二预设数量个操作码进行组合,得到目标操作码序列。
9.根据权利要求6所述的装置,其中,所述编码模块进一步被配置成:
统计所述目标操作码序列中每个操作码在预设的目标操作码序列样本集中出现的次数;
按照预设的编码规则以及每个操作码的出现次数生成向量元素;
根据所述向量元素生成目标操作码向量。
10.根据权利要求6-9任一所述的装置,其中,所述检测模型基于基于自注意力机制的卷积神经网络实现。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010791050.1A CN113761528A (zh) | 2020-08-07 | 2020-08-07 | 恶意软件检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010791050.1A CN113761528A (zh) | 2020-08-07 | 2020-08-07 | 恶意软件检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113761528A true CN113761528A (zh) | 2021-12-07 |
Family
ID=78785666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010791050.1A Pending CN113761528A (zh) | 2020-08-07 | 2020-08-07 | 恶意软件检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113761528A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920954A (zh) * | 2018-06-28 | 2018-11-30 | 中国科学院软件研究所 | 一种恶意代码自动化检测平台及方法 |
CN109165510A (zh) * | 2018-09-04 | 2019-01-08 | 中国民航大学 | 基于双通道卷积神经网络的Android恶意应用程序检测方法 |
CN110472417A (zh) * | 2019-08-22 | 2019-11-19 | 东北大学秦皇岛分校 | 基于卷积神经网络的恶意软件操作码分析方法 |
CN110489968A (zh) * | 2019-08-15 | 2019-11-22 | 东北大学秦皇岛分校 | 基于RNN和CNN的Android恶意软件检测方法及系统 |
-
2020
- 2020-08-07 CN CN202010791050.1A patent/CN113761528A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920954A (zh) * | 2018-06-28 | 2018-11-30 | 中国科学院软件研究所 | 一种恶意代码自动化检测平台及方法 |
CN109165510A (zh) * | 2018-09-04 | 2019-01-08 | 中国民航大学 | 基于双通道卷积神经网络的Android恶意应用程序检测方法 |
CN110489968A (zh) * | 2019-08-15 | 2019-11-22 | 东北大学秦皇岛分校 | 基于RNN和CNN的Android恶意软件检测方法及系统 |
CN110472417A (zh) * | 2019-08-22 | 2019-11-19 | 东北大学秦皇岛分校 | 基于卷积神经网络的恶意软件操作码分析方法 |
Non-Patent Citations (1)
Title |
---|
修扬;刘嘉勇;: "基于操作码序列频率向量和行为特征向量的恶意软件检测", 信息安全与通信保密, no. 09, 10 September 2016 (2016-09-10) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111709247B (zh) | 数据集处理方法、装置、电子设备和存储介质 | |
CN111626202B (zh) | 用于识别视频的方法及装置 | |
CN112036509A (zh) | 用于训练图像识别模型的方法和装置 | |
CN111737994A (zh) | 基于语言模型获取词向量的方法、装置、设备及存储介质 | |
CN111680145A (zh) | 知识表示学习方法、装置、设备以及存储介质 | |
CN111078878B (zh) | 文本处理方法、装置、设备及计算机可读存储介质 | |
KR20210132578A (ko) | 지식 그래프를 구축하는 방법, 장치, 기기 및 저장 매체 | |
CN112000792A (zh) | 自然灾害事件的抽取方法、装置、设备以及存储介质 | |
CN112380847B (zh) | 兴趣点处理方法、装置、电子设备及存储介质 | |
CN112084366A (zh) | 用于检索图像的方法、装置、设备以及存储介质 | |
CN111667056A (zh) | 用于搜索模型结构的方法和装置 | |
CN111783427B (zh) | 用于训练模型与输出信息的方法、装置、设备及存储介质 | |
CN111079945A (zh) | 端到端模型的训练方法及装置 | |
CN111522944A (zh) | 用于输出信息的方法、装置、设备以及存储介质 | |
CN111488740A (zh) | 一种因果关系的判别方法、装置、电子设备及存储介质 | |
CN111611990A (zh) | 用于识别图像中表格的方法和装置 | |
CN111582477A (zh) | 神经网络模型的训练方法和装置 | |
CN111241810A (zh) | 标点预测方法及装置 | |
CN112507090A (zh) | 用于输出信息的方法、装置、设备和存储介质 | |
CN111782785B (zh) | 自动问答方法、装置、设备以及存储介质 | |
CN113765873A (zh) | 用于检测异常访问流量的方法和装置 | |
CN111756832A (zh) | 推送信息的方法、装置、电子设备及计算机可读存储介质 | |
CN114244795B (zh) | 一种信息的推送方法、装置、设备及介质 | |
CN111783998A (zh) | 一种违规账号识别模型训练方法、装置及电子设备 | |
CN111563198A (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 |