CN116720186A - 一种恶意代码识别方法、装置、电子设备及存储介质 - Google Patents
一种恶意代码识别方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116720186A CN116720186A CN202310671242.2A CN202310671242A CN116720186A CN 116720186 A CN116720186 A CN 116720186A CN 202310671242 A CN202310671242 A CN 202310671242A CN 116720186 A CN116720186 A CN 116720186A
- Authority
- CN
- China
- Prior art keywords
- target
- operation code
- code sequence
- sample
- code
- 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
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000012545 processing Methods 0.000 claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 17
- 238000000605 extraction Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 abstract description 17
- 238000012549 training Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 5
- 230000000306 recurrent effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
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/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- 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/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computer Hardware Design (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种恶意代码识别方法、装置、电子设备及存储介质。该方法可包括:对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列;将目标操作码序列输入到预先训练完成的操作码序列预测模型,并根据操作码序列预测模型的输出结果,得到预测操作码序列;对预测操作码序列进行特征提取,得到目标代码所对应的目标特征;针对已识别为恶意代码的样本代码,将目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。本发明实施例的技术方案,可以提高恶意代码识别过程中的抗干扰能力,实现了恶意代码的准确识别。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其是涉及一种恶意代码识别方法、装置、电子设备及存储介质。
背景技术
随着计算机技术对日常生活的影响越来越大,恶意代码对日常生活的影响也越来越大,因此准确识别出恶意代码至关重要。
考虑到通过执行恶意代码以动态分析恶意代码的方案,容易给计算机系统造成伤害,因此目前通常采用静态分析方案识别恶意代码。
在实现本发明的过程中,发明人发现现有技术中存在以下技术问题:容易受到针对恶意代码应用的混淆技术的干扰,无法准确识别出恶意代码。
发明内容
本发明实施例提供了一种恶意代码识别方法、装置、电子设备及存储介质,以实现恶意代码的准确识别。
根据本发明的一方面,提供了一种恶意代码识别方法,可以包括:
对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列;
将目标操作码序列输入到预先训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列;
对预测操作码序列进行特征提取,得到目标代码对应的目标特征;
针对已识别为恶意代码的样本代码,将目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。
根据本发明的另一方面,提供了一种恶意代码识别装置,可以包括:
目标操作码序列得到模块,用于针对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列;
预测操作码序列得到模块,用于将目标操作码序列输入到已训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列;
目标特征得到模块,用于对预测操作码序列进行特征提取,得到目标代码对应的目标特征;
恶意代码识别结果得到模块,用于针对已识别为恶意代码的样本代码,将目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。
根据本发明的另一方面,提供了一种电子设备,可以包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器执行时实现本发明任意实施例所提供的恶意代码识别方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令用于使处理器执行时实现本发明任意实施例所提供的恶意代码识别方法。
本发明实施例的技术方案,针对待进行恶意代码识别的目标代码,通过对目标代码进行处理,得到目标操作码序列;然后,将目标操作码序列输入到已训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列;对预测操作码序列进行特征提取,得到目标代码对应的目标特征;针对已识别为恶意代码的样本代码,对目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。上述技术方案,通过利用操作码序列预测手段,针对样本代码得到的样本特征,好比是对样本代码进行混淆处理之后得到的代码的特征,这样一来,即使目标代码是经混淆处理的恶意代码,利用样本特征依然可准确识别出目标代码为恶意代码,由此提高了恶意代码识别过程中的抗干扰能力,实现了恶意代码的准确识别。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或是重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的一种恶意代码识别方法的流程图;
图2是根据本发明实施例提供的一种恶意代码识别方法中的某恶意代码的控制流图的示意图;
图3是根据本发明实施例提供的另一种恶意代码识别方法的流程图;
图4是根据本发明实施例提供的另一种恶意代码识别方法的流程图;
图5是根据本发明实施例提供的另一种恶意代码识别方法的流程图;
图6是根据本发明实施例提供的另一种恶意代码识别方法中的可选示例的流程图;
图7是根据本发明实施例提供的一种恶意代码识别装置的结构框图;
图8是实现本发明实施例的恶意代码识别方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。“目标”、“原始”等的情况类似,在此不再赘述。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1是本发明实施例中提供的一种恶意代码识别方法的流程图。本实施例可适用于识别恶意代码的情况,尤其适用于对经变形、加壳和多态等混淆处理之后的恶意代码进行识别的情况。该方法可以由本发明实施例提供的恶意代码识别装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备上,该电子设备可以是各种用户终端或是服务器。
参见图1,本发明实施例的方法具体包括如下步骤:
S110、对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列。
其中,目标代码可理解为待进行恶意代码识别的代码,即待识别出是否为恶意代码的代码。目标操作码序列可理解为通过对目标代码进行处理而得到的操作码序列。目标操作码序列中的操作码的数量可以是一个、两个或是多个,这些操作码顺序排列,从而构建得到目标操作码序列。在此基础上,结合到本发明实施例可能涉及的应用场景,目标操作码序列最多包含256种操作码。
对目标代码进行处理,得到目标操作码序列。需要说明的是,在实际应用中,可通过多种方式处理目标代码,得到目标操作码序列,示例性的,对目标代码进行反汇编,得到几何描述语言(Graph Description Language,GDL)文件,这里的GDL文件可理解为代码块,然后从GDL文件中提取出目标操作码序列,这里的目标操作码序列可理解为序列化时序特性;再示例性的,得到GDL文件之后,将GDL文件转换为视觉图像,并从视觉图像中提取出目标操作码序列,该视觉图像可以是灰度图或是控制流图(Control Flow Graph,CFG),CFG也可称为可移植网络图像(Portable Network Graphic,PNG);当然,也可以通过其余方式得到目标操作码序列,在此未做具体限定。
S120、将目标操作码序列输入到预先训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列。
其中,操作码序列预测模型可理解为已训练完成的,用于实现操作码序列预测功能的深度学习模型。结合本发明实施例可能涉及的应用场景,上述深度学习模型可以是循环神经网络(Recurrent Neural Network,RNN)模型或是卷积神经网络(ConvolutionalNeural Network,CNN)模型,尤其可以是RNN模型中的双向循环神经网络(BidirectionalRNN,Bi-RNN,即BRNN)模型,等等,在此未做具体限定。在此基础上,可选的,BRNN模型可以具有一个输入层、三个隐藏层以及一个输出层。考虑到BRNN训练中的梯度消光和梯度爆炸问题,在权衡计算速度和准确度后,可采用门控循环单元(Gate Recurrent Unit,GRU)方式训练BRNN。再可选的,CNN模型可包含一个输入层、四个卷积池化层、一个全连接层以及一个输出层。每次池化操作可接收前一个卷积层的最后输出,池化尺寸可设置为2*2。在目标代码的特征数量过多时,CNN模型可显着减少参数数量,降低训练难度,收敛速度较快。
将目标操作码序列输入到操作码序列预测模型中,从而可根据操作码序列预测模型的输出结果,得到预测操作码序列。实际应用中,可选的,预测操作码序列的数量可以是一个、两个或多个;再可选的,单个预测操作码序列中的操作码的数量可以是一个、两个或多个,这与实际情况有关,在此未做限定。
需要说明的是,预测操作码序列可理解为根据目标操作码序列中的部分或是全部操作码,针对目标操作码序列中的部分或是全部操作码进行预测得到的操作码序列,这意味着预测操作码序列与目标操作码序列具有一定的相似性,这种相似性使得预测操作码序列好比是在对目标操作码序列进行变形、加壳和多态等混淆处理之后得到的操作码序列。
S130、对预测操作码序列进行特征提取,得到目标代码对应的目标特征。
其中,对得到的一个或多个预测操作码序列进行特征提取,得到目标特征。示例性的,可通过对这些预测操作码序列进行哈希处理、统计处理(例如可以是均值处理、最大值处理或是最小值处理)、回归处理或是聚类处理等,得到目标特征。在此基础上,在预测操作码序列的数量包括至少两个的情况下,可直接对至少两个预测操作码序列这个整体进行特征提取,得到目标特征;也可对至少两个预测操作码序列中的每个预测操作码序列分别进行特征提取,从而得到与每个预测操作码序列分别对应的目标特征;等等,在此未做具体限定。
可以理解的是,上述目标特征在目标代码的基础上进行处理得到,因此可称为是目标代码对应的目标特征。
S140、针对已识别为恶意代码的样本代码,将目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。
其中,样本代码可理解为已识别为恶意代码的代码,其的数量可以是一个、两个或是多个,这与实际情况有关,在此未做具体限定。样本特征可理解为与样本代码对应的特征,其的得到过程与目标特征的得到过程类似,具体如下:对样本代码进行处理,得到样本操作码序列;将样本操作码序列输入到操作码序列预测模型中,根据操作码序列预测模型的输出结果,得到推测操作码序列;对推测操作码序列进行特征提取,得到样本特征。样本特征可预先处理得到。
需要说明的是,类似S120中针对预测操作码序列的阐述,推测操作码序列可理解为根据样本操作码序列中的部分或是全部操作码,针对样本操作码序列中的部分或全部操作码进行预测得到的操作码序列,这意味着推测操作码序列与样本操作码序列具有一定的相似性,这种相似性使得推测操作码序列好比是在对样本操作码序列进行变形、加壳和多态等混淆处理之后得到的操作码序列。
将目标特征与样本特征进行对比,从而得到目标代码的恶意代码识别结果,即得到目标代码是否为恶意代码的识别结果。示例性的,可通过对比目标特征与样本特征,得到二者之间的相似度,并在相似度超过预设相似度阈值的情况下,识别出目标代码为恶意代码,否则并非为恶意代码。
本发明实施例的技术方案,针对待进行恶意代码识别的目标代码,通过对目标代码进行处理,得到目标操作码序列;然后,将目标操作码序列输入到已训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列;对预测操作码序列进行特征提取,得到目标代码对应的目标特征;针对已识别为恶意代码的样本代码,对目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。上述技术方案,通过利用操作码序列预测手段,针对样本代码得到的样本特征,好比是对样本代码进行混淆处理之后得到的代码的特征,这样一来,即使目标代码是经混淆处理的恶意代码,利用样本特征依然可准确识别出目标代码为恶意代码,由此提高了恶意代码识别过程中的抗干扰能力,实现了恶意代码的准确识别。
在此基础上,一种可选的技术方案,对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列,包括:
针对待进行恶意代码识别的目标代码,对目标代码进行反汇编,得到几何描述语言文件,并将几何描述语言文件转换为控制流图;
从控制流图中提取出目标操作码序列。
其中,通过对目标代码进行反汇编,得到GDL文件,例如可通过交互式反编译专业版(International disassemble professional,IDAPro,简称为IDA)工具对目标代码进行反汇编。然后,将GDL文件转换为CFG,例如可通过调用graph-easy将GDL文件转换为CFG。示例性的,图2展示了某恶意代码的CFG。再然后,从CFG中提取出目标操作码序列。在此基础上,为了保证从不同目标代码中提取出的目标操作码序列的规范性,可利用Image函数库,先将CFG的尺寸归一化为256*256,然后从归一化后的CFG中提取出目标操作码序列。
图3是本发明实施例中提供的另一种恶意代码识别方法的流程图。本实施例以上述各技术方案为基础进行优化。本实施例中,可选的,操作码序列预测模型通过如下步骤实现操作码序列预测功能:基于目标滑动窗口,在目标操作码序列上进行滑动,以从目标操作码序列中提取出至少一个窗口操作码序列;针对至少一个窗口操作码序列中的每个窗口操作码序列,通过对窗口操作码序列进行分析,预测出预测操作码序列;对预测操作码序列进行特征提取,得到目标代码对应的目标特征,可包括:对与至少一个窗口操作码序列分别对应的预测操作码序列,进行特征提取,得到目标代码对应的目标特征。其中,与上述各实施例相同或是相应的术语的解释在此不再赘述。
参见图3,本实施例的方法具体可以包括如下步骤:
S210、对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列。
S220、将目标操作码序列输入到预先训练完成的操作码序列预测模型中,以通过操作码序列预测模型,执行S230和S240。
其中,将目标操作码序列输入到操作码序列预测模型中,从而通过操作码序列预测模型,执行S230和S240,实现操作码序列预测功能。
S230、基于目标滑动窗口,在目标操作码序列上进行滑动,以从目标操作码序列中提取出至少一个窗口操作码序列。
其中,目标滑动窗口可理解为窗口参数已调整完成的滑动窗口,实际应用中,可选的,该窗口参数可以是窗口尺寸和/或滑动步长。
基于目标滑动窗口,在目标操作码序列上进行滑动,以从目标操作码序列中提取出至少一个窗口操作码序列,该窗口操作码序列为目标操作码序列的子序列。示例性的,假设窗口尺寸是100并且滑动步长是20,那么基于目标滑动窗口得到的至少一个窗口操作码序列,可包括目标操作码序列中的第1-100个操作码构成的窗口操作码序列、第21-120个操作码构成的窗口操作码序列以及第41-140个操作码构成的窗口操作码序列,等等,以此类推。
S240、针对至少一个窗口操作码序列中的每个窗口操作码序列,通过对窗口操作码序列进行分析,预测出预测操作码序列。
其中,针对提取得到的至少一个窗口操作码序列中的每个窗口操作码序列,分别进行处理。具体的,通过对窗口操作码序列进行分析,预测出预测操作码序列,即通过分析窗口操作码序列,预测目标操作码序列中的至少部分操作码,由此得到与窗口操作码序列对应的预测操作码序列。在实际应用中,可选的,该至少部分操作码可以是目标操作码序列中在窗口操作码序列之前或是之后的操作码,也可以是目标操作码序列中与窗口操作码序列相邻或是相隔的操作码;等等,这可根据实际需求进行设置,在此未做具体限定。
S250、根据操作码序列预测模型的输出结果,得到与至少一个窗口操作码序列分别对应的预测操作码序列。
S260、对该与至少一个窗口操作码序列分别对应的预测操作码序列,进行特征提取,得到目标代码对应的目标特征。
其中,对已得到的至少一个预测操作码序列进行特征提取,得到目标特征。在实际应用中,可选的,可直接对至少一个预测操作码序列这个整体进行特征提取,得到目标特征;也可对这个整体中的每个预测操作码序列分别进行特征提取,从而得到与每个预测操作码序列分别对应的目标特征;当然,还可基于其余方式处理至少一个预测操作码序列,在此未做具体限定。
S270、针对已识别为恶意代码的样本代码,将目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。
本发明实施例的技术方案,通过目标滑动窗口,在目标操作码序列上进行滑动以提取出至少一个窗口操作码序列,进而对提取出的每个窗口操作码序列分别进行分析,由此得到的预测操作码序列具有更加丰富的信息,从而与后续步骤相结合,进一步提高了恶意代码识别的准确度。
图4是本发明实施例中提供的另一种恶意代码识别方法的流程图。本实施例以上述各技术方案为基础进行优化。本实施例中,可选的,通过对窗口操作码序列进行分析,预测出预测操作码序列,包括:通过对窗口操作码序列进行分析,预测出相邻操作码序列对应的预测操作码序列,其中,相邻操作码序列为目标操作码序列中在窗口操作码序列之后并且与窗口操作码序列相邻的操作码序列。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
参见图4,本实施例的方法具体可以包括如下步骤:
S310、对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列。
S320、将目标操作码序列输入到预先训练完成的操作码序列预测模型中,以通过操作码序列预测模型,执行S330和S340。
S330、基于目标滑动窗口,在目标操作码序列上进行滑动,以从目标操作码序列中提取出至少一个窗口操作码序列。
S340、针对至少一个窗口操作码序列中的每个窗口操作码序列,通过对窗口操作码序列进行分析,预测出相邻操作码序列对应的预测操作码序列;
其中,相邻操作码序列为目标操作码序列中在窗口操作码序列之后并且与窗口操作码序列相邻的操作码序列。
其中,通过对窗口操作码序列进行分析,针对相邻操作码序列进行预测,得到相邻操作码序列对应的预测操作码序列,该相邻操作码序列可理解为目标操作码序列中在窗口操作码序列之后并且与窗口操作码序列相邻的操作码序列。示例性的,假设相邻操作码序列中的操作码的数量是10个,以上述示例为例,那么与基于第1-100个操作码构成的窗口操作码序列对应的相邻操作码序列,是基于第101-110个操作码构成的操作码序列;与基于第21-120个操作码构成的窗口操作码序列对应的相邻操作码序列,是基于第121-130个操作码构成的操作码序列;等等,以此类推。
S350、根据操作码序列预测模型的输出结果,得到与至少一个窗口操作码序列分别对应的预测操作码序列。
S360、对该与至少一个窗口操作码序列分别对应的预测操作码序列,进行特征提取,得到目标代码对应的目标特征。
S370、针对已识别为恶意代码的样本代码,将目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。
本发明实施例的技术方案,考虑到目标操作码序列中相邻的操作码之间的关联性更加紧密,因此这里根据窗口操作码序列,对与窗口操作码序列相邻的相邻操作码序列进行预测,由此可更好地保证操作码序列的预测精度。
在此基础上,一种可选的技术方案,对与至少一个窗口操作码序列分别对应的预测操作码序列,进行特征提取,得到目标代码对应的目标特征,包括:
针对至少一个窗口操作码序列中每个窗口操作码序列,将窗口操作码序列以及窗口操作码序列对应的预测操作码序列进行拼接;
对拼接得到的拼接操作码序列进行特征提取,得到与目标代码对应的目标特征;
将目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果,包括:
将至少一个窗口操作码序列分别对应的目标特征与样本代码对应的至少一个样本特征进行对比,得到目标代码的恶意代码识别结果。
其中,相较于预测操作码序列,窗口操作码序列直接从目标操作码序列中提取得到,因此也可称为原始操作码序列。将窗口操作码序列以及窗口操作码序列对应的预测操作码序列进行拼接,即将具有关联关系的原始操作码序列与预测操作码序列进行拼接,由此得到的拼接操作码序列具有更加丰富的信息,从而可进一步提高恶意代码识别过程中的抗干扰能力。
进一步,在对拼接操作码序列进行特征提取得到目标特征之后,可将至少一个窗口操作码序列分别对应的目标特征,与,样本代码对应的至少一个样本特征进行对比,从而得到目标代码的恶意代码识别结果。可以理解的是,至少一个样本特征的得到过程,与,至少一个窗口操作码序列分别对应的目标特征的得到过程类似,在此不再赘述。
上述技术方案,通过融合原始操作码序列与预测操作码序列,进一步提高了恶意代码识别过程中的抗干扰能力,进而提高了恶意代码识别的准确度。
在此基础上,可选的,对拼接得到的拼接操作码序列进行特征提取,得到目标代码对应的目标特征,包括:
对拼接得到的拼接操作码序列进行哈希处理,得到目标哈希值,并将目标哈希值作为目标特征;
上述恶意代码识别方法,还包括:
基于至少一个窗口操作码序列分别对应的目标特征,生成目标特征图像;
将至少一个窗口操作码序列分别对应的目标特征与样本代码对应的至少一个样本特征进行对比,得到目标代码的恶意代码识别结果,包括:
通过计算目标特征图像与样本特征图像之间的相似度,得到目标代码的恶意代码识别结果,其中,样本特征图像基于样本代码对应的至少一个样本特征生成,至少一个样本特征通过样本哈希值进行表示。
其中,这里基于哈希处理实现拼接操作码序列的特征提取过程,并将由此得到的目标哈希值作为目标特征进行应用。实际应用中,可选的,可基于最小哈希(minHash)算法进行哈希处理,其中,minHash是一种局部敏感哈希,可用于快速估计两个集合之间的相似度。在此基础上,结合到本发明实施例可能涉及的应用场景,考虑到同一恶意代码家族中的各个恶意代码之间的差异较小,如果仅使用单一操作码,则目标特征过于简单;如果使用过长的操作码序列,则不同恶意代码分别对应的目标特征过拟合,无法显出恶意代码家族的通用性。因此,这里采用3-gram进行处理,其使得最多只有256*256*256个不同操作码序列,这个长度对于恶意代码是较为安全的。
基于至少一个窗口操作码序列分别对应的目标特征,即目标哈希值,生成目标特征图像,然后可直接对比目标特征图像与样本代码对应的样本特征图像之间的相似度,从而得到目标代码的恶意代码识别结果。需要说明的是,样本特征图像的生成过程与目标特征图像类似,在此不再赘述。
上述技术方案,通过对拼接操作码序列进行哈希处理,从而将相似的拼接操作码序列高概率映射到相同的目标特征上,然后再基于目标特征生成的目标特征图像识别目标代码,由此进一步提高了目标代码识别的准确度。
另一种可选的技术方案,操作码序列预测模型通过如下步骤预先训练得到:
对样本代码进行处理,得到样本操作码序列;
将样本操作码序列输入到待训预测模型,以通过待训预测模型,针对样本操作码序列执行下述步骤:
基于待调滑动窗口,在样本操作码序列上进行滑动,以从样本操作码序列中提取出至少一个滑动操作码序列;
针对至少一个滑动操作码序列中的每个滑动操作码序列,通过对滑动操作码序列进行分析,预测并输出临近操作码序列对应的推测操作码序列,其中,临近操作码序列包括样本操作码序列中在滑动操作码序列之后并且与滑动操作码序列相邻的操作码序列;
根据临近操作码序列与推测操作码序列,对待调滑动窗口的窗口尺寸和/或滑动步长进行调整,以训练得到目标滑动窗口,并得到通过目标滑动窗口实现操作码序列预测功能的操作码序列预测模型。
其中,待训预测模型可理解为待进行训练即未训练完成的,用于实现操作码序列预测功能的深度学习模型。待训预测模型与操作码序列预测模型的模型结构相同。待调滑动窗口可理解为窗口参数待进行调整的滑动窗口。临近操作码序列可理解为样本操作码序列中的在滑动操作码序列之后并且与滑动操作码序列相邻的操作码序列。推测操作码序列可理解为基于滑动操作码序列,针对临近操作码序列进行预测得到的操作码序列。
将针对样本代码进行处理得到的样本操作码序列,输入到待训预测模型中,从而通过待训预测模型,基于待调滑动窗口,在样本操作码序列上进行滑动以提取出至少一个滑动操作码序列。然后,针对提取得到的至少一个滑动操作码序列中的每个滑动操作码序列,通过分析滑动操作码序列,针对与滑动操作码序列相邻的临近操作码序列预测出推测操作码序列,并输出推测操作码序列。
进一步,由于推测操作码序列针对临近操作码序列预测得到,因此可确定临近操作码序列与推测操作码序列之间的相似度,然后基于相似度对待调滑动窗口的窗口参数(例如可以是窗口尺寸和/或滑动步长)进行调整,以便训练出可带来较好的预测精度的目标滑动窗口,从而通过目标滑动窗口得到具有较好的预测精度的操作码序列预测模型。
需要说明的是,临近操作码序列与相邻操作码序列的本质相同,这里只是为了区分模型训练阶段和模型应用阶段,而在命名上进行区分,并非是对它们的本质含义的限定。上述说明同样适用于推测操作码序列与预测操作码序列。
图5是本发明实施例中提供的另一种恶意代码识别方法的流程图。本实施例以上述各技术方案为基础进行优化。在本实施例中,可选的,针对已识别为恶意代码的样本代码,将目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果,包括:针对已识别为恶意代码的至少一个样本代码中每个样本代码,将目标特征与样本代码对应的样本特征进行对比,得到特征对比结果;根据与每个样本代码分别对应的特征对比结果,得到目标代码的恶意代码识别结果。其中,与上述各实施例相同或是相应的术语的解释在此不再赘述。
参见图5,本实施例的方法具体可以包括如下步骤:
S410、对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列。
S420、将目标操作码序列输入到预先训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列。
S430、对预测操作码序列进行特征提取,得到目标代码对应的目标特征。
S440、针对已识别为恶意代码的至少一个样本代码中的每个样本代码,将目标特征与样本代码对应的样本特征进行对比,得到特征对比结果。
其中,由于不同样本代码之间存在差异,因此为进一步提高恶意代码识别的准确度,可对至少一个样本代码中的每个样本代码分别进行处理。
具体的,针对每个样本代码,将目标特征与样本代码对应的样本特征进行对比,得到特征对比结果,在实际应用中,可选的,该特征对比结果可反映出目标特征与样本特征之间的相似度。
S450、根据每个样本代码分别对应的特征对比结果,得到目标代码的恶意代码识别结果。
其中,在处理完成每个样本代码,得到每个样本代码分别对应的特征对比结果后,可基于这些特征对比结果,得到目标代码的恶意代码识别结果。示例性的,这里以特征对比结果通过相似度进行表示为例,可从每个样本代码分别对应的相似度中确定数值最大的最大相似度,并在最大相似度超过预设相似度阈值的情况下,识别出目标代码为恶意代码,并且为对应于最大相似度的样本代码这种恶意代码,否则识别出目标代码不是恶意代码。
本发明实施例的技术方案,通过预先处理得到至少一个样本代码分别对应的样本特征,然后基于这些样本特征分别识别目标代码是否为恶意代码,数量较多的样本代码,进一步提高了恶意代码识别的准确度。
一种可选的技术方案,样本代码的数量是至少两个,与至少两个样本代码关联的恶意代码家族包括第一代码家族和第二代码家族,操作码序列预测模型包括针对第一代码家族训练得到的第一预测模型及针对第二代码家族训练得到的第二预测模型,则将目标操作码序列输入到预先训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列,包括:
将目标操作码序列输入到预先训练完成的第一预测模型中,得到第一预测模型输出的预测操作码序列;
将目标操作码序列输入到预先训练完成的第二预测模型中,得到第二预测模型输出的预测操作码序列;
对预测操作码序列进行特征提取,得到目标代码对应的目标特征,包括:
对第一预测模型输出的预测操作码序列进行特征提取,得到第一代码家族对应的目标特征;
对第二预测模型输出的预测操作码序列进行特征提取,得到第二代码家族对应的目标特征;
将目标特征与样本代码对应的样本特征进行对比,得到特征对比结果包括:
将样本代码家族所对应的目标特征与样本代码所对应的样本特征进行对比,得到特征对比结果,其中,样本代码家族为样本代码隶属的恶意代码家族,且样本代码家族包括第一代码家族或是第二代码家族。
其中,经研究发现,隶属同一恶意代码家族的各个恶意代码具有相似性,并且隶属不同恶意代码家族的恶意代码具有差异性,因此为了进一步提高恶意代码识别的准确度,可针对不同的恶意代码家族,分别训练得到各自的操作码序列预测模型。至此可知,样本操作码序列或是说原始操作码序列,可反映出每个恶意代码的独有特征,而经操作码序列预测模型得到的推测操作码序列,可反映出恶意代码家族内的共同特征。
具体的,与已得到的至少两个样本代码关联的恶意代码家族包括第一代码家族和第二代码家族,根据至少两个样本代码中隶属于第一代码家族的一个或是多个第一代码,训练得到第一预测模型,即将针对第一代码家族训练得到的操作码序列预测模型作为第一预测模型;以及,根据至少两个样本代码中隶属于第二代码家族的一个或是多个第一代码,训练得到第二预测模型,即将针对第二代码家族训练得到的操作码序列预测模型作为第二预测模型。
在此基础上,可将目标操作码序列,分别输入到第一预测模型和第二预测模型中,从而得到第一预测模型输出的预测操作码序列以及第二预测模型输出的预测操作码序列,进而得到这两个预测操作码序列分别对应的目标特征,即与第一代码家族对应的目标特征以及与第二代码家族对应的目标特征。
进一步,针对当前正在处理的样本代码,样本代码家族可理解为样本代码隶属的恶意代码家族,其可能是第一代码家族,也可能是第二代码家族,这与实际情况有关,在此未做具体限定。将样本代码家族所对应的目标特征与样本代码所对应的样本特征进行对比。换言之,站在至少两个样本代码这个角度,将第一代码家族对应的目标特征,与一个或是多个第一代码中的每个第一代码分别对应的样本特征,进行对比,以及,将第二代码家族对应的目标特征,与一个或是多个第二代码中每个第二代码分别对应的样本特征,进行对比。然后,可基于这些特征对比结果,得到目标代码的恶意代码识别结果。
上述技术方案,通过针对不同的恶意代码家族分别训练得到各自的操作码序列预测模型,然后基于这些操作码序列预测模型分别处理目标操作码序列,从而将对应于不同恶意代码家族的目标特征,分别与相应的恶意代码家族中的样本代码的样本特征进行对比,由此进一步提高了恶意代码识别的准确度。
在此基础上,可选的,上述恶意代码识别方法,还包括:
在目标代码为恶意代码的情况下,将对应代码隶属的样本代码家族,作为目标代码隶属的恶意代码家族,其中,对应代码为至少两个样本代码中与目标代码对应的样本代码。
其中,对应代码可理解为至少两个样本代码中与目标代码对应的样本代码,即与目标代码最为相似的样本代码,那么可将对应代码隶属的恶意代码家族,作为目标代码隶属的恶意代码家族,由此实现了目标代码隶属的恶意代码家族的准确确定的效果。
为了从整体上更好地理解上述的各个技术方案,下面结合具体示例,对其进行示例性说明。示例性的,如图6所示:
针对训练集中每个样本代码,对样本代码进行反汇编,得到GDL文件,并将GDL文件转换为CFG,然后从CFG中提取得到样本操作码序列。这里的CFG通过直接处理样本代码得到,无需执行样本代码,因此属于静态特征。
这里以操作码序列预测模型是RNN模型为例,基于不同样本代码分别对应的样本操作码序列,训练得到RNN模型,可以理解的是,可通过调整与RNN模型关联的待调滑动窗口的窗口参数以训练得到RNN模型。
在训练得到RNN模型之后,进一步,针对已得到的每个样本操作码序列,将样本操作码序列输入到RNN模型中,得到至少一个推测操作码序列。然后,针对至少一个推测操作码序列中的每个推测操作码序列,将推测操作码序列与相应的滑动操作码序列进行拼接,并对得到的拼接操作码序列进行哈希处理,得到样本哈希值。基于样本操作码序列对应的至少一个样本哈希值,生成样本特征图像。至此,可得到每个样本代码分别对应的样本特征图像。
针对测试集中的每个目标代码,对目标代码进行反汇编,得到GDL文件,然后将GDL文件转换为CFG,并从CFG中提取得到目标操作码序列。然后,将目标操作码序列输入到RNN模型中,得到至少一个预测操作码序列。再然后,针对至少一个预测操作码序列中的每个预测操作码序列,将预测操作码序列与相应的窗口操作码序列进行拼接,并对得到的拼接操作码序列进行哈希处理,得到目标哈希值。基于目标操作码序列对应的至少一个目标哈希值,生成目标特征图像。再然后,将目标特征图像与已得到的每个样本代码分别对应的样本特征图像进行对比,由此得到目标代码的恶意代码识别结果。
为了证明相较于直接应用目标操作码序列识别目标代码,结合预测操作码序列可提高恶意代码识别的准确度,这里结合下述三种方案进行验证:
1)针对目标操作码序列进行处理,得到1024个目标哈希值,然后基于此生成目标特征图像进行对比与识别;
2)针对目标操作码序列进行处理,得到2048个目标哈希值,然后基于此生成目标特征图像进行对比与识别;
3)利用RNN模型,针对目标操作码序列进行预测,得到预测操作码序列,然后将这两种操作码序列进行融合并处理,得到1024个目标哈希值,并基于此生成目标特征图像进行对比与识别。
经试验证明,方案3)针对恶意代码的识别准确度,高于方案1)和方案2),由此证明了本示例结合预测操作码序列,可提高恶意代码识别的准确度。
图7为本发明实施例中提供的恶意代码识别装置的结构框图,该装置用于执行上述任意实施例所提供的恶意代码识别方法。该装置与上述各实施例的恶意代码识别方法属于同一个发明构思,在恶意代码识别装置的实施例中未详尽描述的细节内容,可参考上述恶意代码识别方法的实施例。参见图7,该装置具体可以包括:目标操作码序列得到模块510、预测操作码序列得到模块520、目标特征得到模块530以及恶意代码识别结果得到模块540。其中,
目标操作码序列得到模块510,用于针对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列;
预测操作码序列得到模块520,用于将目标操作码序列输入到已训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列;
目标特征得到模块530,用于对预测操作码序列进行特征提取,得到目标代码对应的目标特征;
恶意代码识别结果得到模块540,用于针对已识别为恶意代码的样本代码,将目标特征与样本代码所对应的样本特征进行对比,得到目标代码的恶意代码识别结果。
可选的,操作码序列预测模型,通过如下模块实现操作码序列预测功能:
窗口操作码序列提取模块,用于基于目标滑动窗口,在目标操作码序列上进行滑动,以从目标操作码序列中提取出至少一个窗口操作码序列;
预测操作码序列预测模块,用于针对至少一个窗口操作码序列中的每个窗口操作码序列,通过对窗口操作码序列进行分析,预测出预测操作码序列;
目标特征得到模块530,包括:
目标特征得到子模块,用于对与至少一个窗口操作码序列分别对应的预测操作码序列,进行特征提取,得到目标代码对应的目标特征。
在此基础上,可选的,预测操作码序列预测模块,包括:
预测操作码序列预测子模块,用于通过对窗口操作码序列进行分析,预测出相邻操作码序列对应的预测操作码序列,其中,相邻操作码序列为目标操作码序列中在窗口操作码序列之后并且与窗口操作码序列相邻的操作码序列。
在此基础上,一可选的,目标特征得到子模块,包括:
操作码序列拼接单元,用于针对至少一个窗口操作码序列中的每个窗口操作码序列,将窗口操作码序列以及窗口操作码序列对应的预测操作码序列进行拼接;
目标特征第一得到单元,用于对拼接出的拼接操作码序列进行特征提取,得到与目标代码对应的目标特征;
恶意代码识别结果得到模块540,包括:
恶意代码识别结果第一得到单元,用于将至少一个窗口操作码序列分别对应的目标特征与样本代码对应的至少一个样本特征进行对比,得到目标代码的恶意代码识别结果。
在此基础上,可选的,目标特征第一得到单元,具体用于:
对拼接得到的拼接操作码序列进行哈希处理,得到目标哈希值,并将目标哈希值作为目标特征;
上述恶意代码识别装置,还包括:
目标特征图像生成模块,用于基于至少一个窗口操作码序列分别对应的目标特征,生成目标特征图像;
恶意代码识别结果第一得到单元,具体用于:
通过计算目标特征图像与样本特征图像之间的相似度,得到目标代码的恶意代码识别结果,其中,样本特征图像基于样本代码对应的至少一个样本特征生成,至少一个样本特征通过样本哈希值进行表示。
另一可选的,操作码序列预测模型,通过如下模块预先训练得到:
样本操作码序列得到模块,用于处理样本代码,得到样本操作码序列;
样本操作码序列输入模块,用于将样本操作码序列输入到待训预测模型中,以使待训预测模型,通过如下单元处理样本操作码序列:
滑动操作码序列提取单元,用于基于待调滑动窗口,在样本操作码序列上进行滑动,以从样本操作码序列中提取出至少一个滑动操作码序列;
推测操作码序列预测单元,用于针对至少一个滑动操作码序列中的每个滑动操作码序列,通过对滑动操作码序列进行分析,预测并输出临近操作码序列对应的推测操作码序列,其中,临近操作码序列包括样本操作码序列中在滑动操作码序列之后并且与滑动操作码序列相邻的操作码序列;
模型训练得到模块,用于根据临近操作码序列与推测操作码序列,对待调滑动窗口的窗口尺寸和/或滑动步长进行调整,以训练得到目标滑动窗口,并且得到通过目标滑动窗口实现操作码序列预测功能的操作码序列预测模型。
可选的,恶意代码识别结果得到模块540,包括:
特征对比结果得到单元,用于针对已识别为恶意代码的至少一个样本代码中的每个样本代码,将目标特征与样本代码所对应的样本特征进行对比,得到特征对比结果;
恶意代码识别结果第二得到单元,用于根据每个样本代码分别对应的特征对比结果,得到目标代码的恶意代码识别结果。
在此基础上,可选的,样本代码的数量是至少两个,与至少两个样本代码关联的恶意代码家族包括第一代码家族和第二代码家族,并且操作码序列预测模型包括针对第一代码家族训练得到的第一预测模型及针对第二代码家族训练得到的第二预测模型;预测操作码序列得到模块520,具体用于:
将目标操作码序列输入到预先训练完成的第一预测模型中,得到第一预测模型输出的预测操作码序列;
将目标操作码序列输入到预先训练完成的第二预测模型中,得到第二预测模型输出的预测操作码序列;
目标特征得到模块530,具体用于:
对第一预测模型输出的预测操作码序列进行特征提取,得到第一代码家族对应的目标特征;
对第二预测模型输出的预测操作码序列进行特征提取,得到第二代码家族对应的目标特征;
特征对比结果得到单元,包括:
特征对比结果得到子单元,用于将样本代码家族对应的目标特征与样本代码对应的样本特征进行对比,得到特征对比结果,其中,样本代码家族为样本代码隶属的恶意代码家族,样本代码家族包括第一代码家族或是第二代码家族。
在此基础上,可选的,上述恶意代码识别装置,还包括:
恶意代码家族确定模块,用于在目标代码为恶意代码的情况下,将对应代码隶属的样本代码家族,作为目标代码隶属的恶意代码家族,其中,对应代码为至少两个样本代码中与目标代码对应的样本代码。
可选的,目标操作码序列得到模块510,具体用于:
针对待进行恶意代码识别的目标代码,对目标代码进行反汇编,得到几何描述语言文件,并将几何描述语言文件转换为控制流图;
从控制流图中提取出目标操作码序列。
本发明实施例提供的恶意代码识别装置,通过目标操作码序列得到模块,针对待进行恶意代码识别的目标代码,对目标代码进行处理,得到目标操作码序列;然后,通过预测操作码序列得到模块,将目标操作码序列输入到已训练完成的操作码序列预测模型中,并根据操作码序列预测模型的输出结果,得到预测操作码序列;通过目标特征得到模块,对预测操作码序列进行特征提取,得到目标代码对应的目标特征;通过恶意代码识别结果得到模块,针对已识别为恶意代码的样本代码,可对目标特征与样本代码对应的样本特征进行对比,得到目标代码的恶意代码识别结果。上述装置,通过利用操作码序列预测手段,针对样本代码得到的样本特征,就好比是对样本代码进行混淆处理之后得到的代码的特征,这样一来,即使目标代码是经混淆处理的恶意代码,利用样本特征依然可准确识别出目标代码为恶意代码,由此提高了恶意代码识别过程中的抗干扰能力,实现了恶意代码的准确识别。
本发明实施例所提供的恶意代码识别装置可执行本发明任意实施例所提供的恶意代码识别方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述恶意代码识别装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
图8示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图8所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如恶意代码识别方法。
在一些实施例中,恶意代码识别方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的恶意代码识别方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行恶意代码识别方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、以及至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、以及该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或是其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行并且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (13)
1.一种恶意代码识别方法,其特征在于,包括:
对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列;
将所述目标操作码序列输入到预先训练完成的操作码序列预测模型中,并根据所述操作码序列预测模型的输出结果,得到预测操作码序列;
对所述预测操作码序列进行特征提取,得到所述目标代码对应的目标特征;
针对已识别为恶意代码的样本代码,将所述目标特征与所述样本代码对应的样本特征进行对比,得到所述目标代码的恶意代码识别结果。
2.根据权利要求1所述的方法,其特征在于,所述操作码序列预测模型,通过如下步骤实现操作码序列预测功能:
基于目标滑动窗口,在所述目标操作码序列上进行滑动,以从所述目标操作码序列中提取出至少一个窗口操作码序列;
针对所述至少一个窗口操作码序列中的每个窗口操作码序列,通过对所述窗口操作码序列进行分析,预测出预测操作码序列;
所述对所述预测操作码序列进行特征提取,得到所述目标代码对应的目标特征,包括:
对与所述至少一个窗口操作码序列分别对应的预测操作码序列,进行特征提取,得到所述目标代码对应的目标特征。
3.根据权利要求2所述的方法,其特征在于,所述通过对所述窗口操作码序列进行分析,预测出预测操作码序列,包括:
通过对所述窗口操作码序列进行分析,预测出相邻操作码序列对应的预测操作码序列,其中,所述相邻操作码序列为所述目标操作码序列中在所述窗口操作码序列之后并且与所述窗口操作码序列相邻的操作码序列。
4.根据权利要求3所述的方法,其特征在于,所述对与所述至少一个窗口操作码序列分别对应的预测操作码序列,进行特征提取,得到所述目标代码对应的目标特征,包括:
针对所述至少一个窗口操作码序列中的每个窗口操作码序列,将所述窗口操作码序列以及所述窗口操作码序列对应的预测操作码序列进行拼接;
对拼接得到的拼接操作码序列进行特征提取,得到与所述目标代码对应的目标特征;
所述将所述目标特征与所述样本代码对应的样本特征进行对比,得到所述目标代码的恶意代码识别结果,包括:
将所述至少一个窗口操作码序列分别对应的目标特征与所述样本代码对应的至少一个样本特征进行对比,得到所述目标代码的恶意代码识别结果。
5.根据权利要求4所述的方法,其特征在于,所述对拼接得到的拼接操作码序列进行特征提取,得到所述目标代码对应的目标特征,包括:
对拼接得到的拼接操作码序列进行哈希处理,得到目标哈希值,并将所述目标哈希值作为目标特征;
所述方法还包括:基于所述至少一个窗口操作码序列分别对应的目标特征,生成目标特征图像;
所述将所述至少一个窗口操作码序列分别对应的目标特征与所述样本代码对应的至少一个样本特征进行对比,得到所述目标代码的恶意代码识别结果,包括:
通过计算所述目标特征图像与样本特征图像之间的相似度,得到所述目标代码的恶意代码识别结果,其中,所述样本特征图像基于所述样本代码对应的至少一个样本特征生成,所述至少一个样本特征通过样本哈希值进行表示。
6.根据权利要求3所述的方法,其特征在于,所述操作码序列预测模型,通过如下步骤预先训练得到:
对所述样本代码进行处理,得到样本操作码序列;
将所述样本操作码序列输入到待训预测模型中,以通过所述待训预测模型,针对所述样本操作码序列执行下述步骤:
基于待调滑动窗口,在所述样本操作码序列上进行滑动,以从所述样本操作码序列中提取出至少一个滑动操作码序列;
针对所述至少一个滑动操作码序列中的每个滑动操作码序列,通过对所述滑动操作码序列进行分析,预测并输出临近操作码序列对应的推测操作码序列,其中,所述临近操作码序列包括所述样本操作码序列中在所述滑动操作码序列之后并且与所述滑动操作码序列相邻的操作码序列;
根据所述临近操作码序列与所述推测操作码序列,对所述待调滑动窗口的窗口尺寸和/或滑动步长进行调整,以训练得到所述目标滑动窗口,并得到通过所述目标滑动窗口实现操作码序列预测功能的所述操作码序列预测模型。
7.根据权利要求1所述的方法,其特征在于,所述针对已识别为恶意代码的样本代码,将所述目标特征与所述样本代码对应的样本特征进行对比,得到所述目标代码的恶意代码识别结果,包括:
针对已识别为恶意代码的至少一个样本代码中的每个样本代码,将所述目标特征与所述样本代码对应的样本特征进行对比,得到特征对比结果;
根据与所述每个样本代码分别对应的特征对比结果,得到所述目标代码的恶意代码识别结果。
8.根据权利要求7所述的方法,其特征在于,所述样本代码的数量是至少两个,与所述至少两个样本代码关联的恶意代码家族包括第一代码家族和第二代码家族,所述操作码序列预测模型包括针对所述第一代码家族训练得到的第一预测模型以及针对所述第二代码家族训练得到的第二预测模型;
所述将所述目标操作码序列输入到预先训练完成的操作码序列预测模型中,并根据所述操作码序列预测模型的输出结果,得到预测操作码序列,包括:
将所述目标操作码序列输入到预先训练完成的第一预测模型中,得到所述第一预测模型输出的预测操作码序列;
将所述目标操作码序列输入到预先训练完成的第二预测模型中,得到所述第二预测模型输出的预测操作码序列;
所述对所述预测操作码序列进行特征提取,得到所述目标代码对应的目标特征,包括:
对所述第一预测模型输出的预测操作码序列进行特征提取,得到所述第一代码家族对应的目标特征;
对所述第二预测模型输出的预测操作码序列进行特征提取,得到所述第二代码家族对应的目标特征;
所述将所述目标特征与所述样本代码对应的样本特征进行对比,得到特征对比结果,包括:
将样本代码家族对应的目标特征与所述样本代码对应的样本特征进行对比,得到特征对比结果,其中,所述样本代码家族为所述样本代码隶属的恶意代码家族,所述样本代码家族包括所述第一代码家族或是所述第二代码家族。
9.根据权利要求8所述的方法,其特征在于,还包括:
在所述目标代码为恶意代码的情况下,将对应代码隶属的样本代码家族,作为所述目标代码隶属的恶意代码家族,其中,所述对应代码为所述至少两个样本代码中与所述目标代码对应的样本代码。
10.根据权利要求1所述的方法,其特征在于,所述对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列,包括:
针对待进行恶意代码识别的目标代码,对所述目标代码进行反汇编,得到几何描述语言文件,并将所述几何描述语言文件转换为控制流图;
从所述控制流图中提取出目标操作码序列。
11.一种恶意代码识别装置,其特征在于,包括:
目标操作码序列得到模块,用于针对待进行恶意代码识别的目标代码进行处理,得到目标操作码序列;
预测操作码序列得到模块,用于将所述目标操作码序列输入到已训练完成的操作码序列预测模型中,并根据所述操作码序列预测模型的输出结果,得到预测操作码序列;
目标特征得到模块,用于对所述预测操作码序列进行特征提取,得到所述目标代码对应的目标特征;
恶意代码识别结果得到模块,用于针对已识别为恶意代码的样本代码,将所述目标特征与所述样本代码对应的样本特征进行对比,得到所述目标代码的恶意代码识别结果。
12.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-10中任一项所述的恶意代码识别方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现如权利要求1-10中任一所述的恶意代码识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310671242.2A CN116720186A (zh) | 2023-06-07 | 2023-06-07 | 一种恶意代码识别方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310671242.2A CN116720186A (zh) | 2023-06-07 | 2023-06-07 | 一种恶意代码识别方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116720186A true CN116720186A (zh) | 2023-09-08 |
Family
ID=87865399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310671242.2A Pending CN116720186A (zh) | 2023-06-07 | 2023-06-07 | 一种恶意代码识别方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116720186A (zh) |
-
2023
- 2023-06-07 CN CN202310671242.2A patent/CN116720186A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559800B (zh) | 用于处理视频的方法、装置、电子设备、介质和产品 | |
CN112949767A (zh) | 样本图像增量、图像检测模型训练及图像检测方法 | |
CN114428677B (zh) | 任务处理方法、处理装置、电子设备及存储介质 | |
CN114429633B (zh) | 文本识别方法、模型的训练方法、装置、电子设备及介质 | |
US12118770B2 (en) | Image recognition method and apparatus, electronic device and readable storage medium | |
CN115546488B (zh) | 信息分割方法、信息提取方法和信息分割模型的训练方法 | |
CN112528641A (zh) | 建立信息抽取模型的方法、装置、电子设备和可读存储介质 | |
CN113887615A (zh) | 图像处理方法、装置、设备和介质 | |
CN114612651B (zh) | Roi检测模型训练方法、检测方法、装置、设备和介质 | |
CN115130581A (zh) | 样本生成方法、训练方法、数据处理方法以及电子设备 | |
CN114037059A (zh) | 预训练模型、模型的生成方法、数据处理方法及装置 | |
CN115690443A (zh) | 特征提取模型训练方法、图像分类方法及相关装置 | |
CN114511743B (zh) | 检测模型训练、目标检测方法、装置、设备、介质及产品 | |
CN113657249B (zh) | 训练方法、预测方法、装置、电子设备以及存储介质 | |
CN114692778A (zh) | 用于智能巡检的多模态样本集生成方法、训练方法及装置 | |
CN114495101A (zh) | 文本检测方法、文本检测网络的训练方法及装置 | |
CN118210670A (zh) | 日志异常检测方法、装置、电子设备及存储介质 | |
CN113643260A (zh) | 用于检测图像质量的方法、装置、设备、介质和产品 | |
CN114444514B (zh) | 语义匹配模型训练、语义匹配方法及相关装置 | |
CN115600607A (zh) | 一种日志检测方法、装置、电子设备及介质 | |
CN113010571B (zh) | 数据检测方法、装置、电子设备、存储介质和程序产品 | |
CN115273148A (zh) | 行人重识别模型训练方法、装置、电子设备及存储介质 | |
CN115601042A (zh) | 信息识别方法、装置、电子设备及存储介质 | |
CN116720186A (zh) | 一种恶意代码识别方法、装置、电子设备及存储介质 | |
CN114842541A (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 |