CN109063478A - 可移植的可执行文件的病毒检测方法、装置、设备及介质 - Google Patents
可移植的可执行文件的病毒检测方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN109063478A CN109063478A CN201810794318.XA CN201810794318A CN109063478A CN 109063478 A CN109063478 A CN 109063478A CN 201810794318 A CN201810794318 A CN 201810794318A CN 109063478 A CN109063478 A CN 109063478A
- Authority
- CN
- China
- Prior art keywords
- static nature
- file
- extracted
- training
- feature
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
Abstract
本发明提供了一种可移植的可执行文件的病毒检测方法、装置、设备及介质。其中,该方法包括:采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集,其中,静态特征包括:PE文件属性特征和指令序列特征;将特征集作为训练集,从训练集中随机选择多组训练数据进行检测模型训练;采用静态特征提取方法提取待检文件的静态特征;将待检文件的静态特征输入到训练后的检测模型中,得到训练后的检测模型输出的检测结果。通过本发明,解决了传统的病毒检测存在滞后性的问题,实现了能够即时检测新生病毒或者病毒变种的技术效果。
Description
技术领域
本发明涉及病毒检测领域,具体而言,涉及一种可移植的可执行文件的病毒检测方法、装置、设备及介质。
背景技术
术语解释:
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UCBerkeley AMP lab(加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark是一种与Hadoop相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark是在Scala语言中实现的,它将Scala用作其应用程序框架。与Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建Spark是为了支持分布式数据集上的迭代作业,但是实际上它是对Hadoop的补充,可以在Hadoop文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。Spark由加州大学伯克利分校AMP实验室(Algorithms,Machines,and PeopleLab)开发,可用来构建大型的、低延迟的数据分析应用程序。
Spark主要有三个特点:
首先,高级API剥离了对集群本身的关注,Spark应用开发者可以专注于应用所要做的计算本身。
其次,Spark很快,支持交互式计算和复杂算法。
最后,Spark是一个通用引擎,可用它来完成各种各样的运算,包括SQL查询、文本处理、机器学习等,而在Spark出现之前,我们一般需要学习各种各样的引擎来分别处理这些需求。
PE文件的全称是Portable Executable,意为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)。
随着国民经济和社会的快速发展,我国各行各业的信息化水平也在不断提高。在全民信息化的背景下,计算机恶意程序的数量越来越大,出现的频率也越来越高,而对这些未知恶意程序特征的自动化分析和取证就显得尤为重要。
传统的防病毒技术只能在病毒造成损害之后,通过分析病毒样本、提取特征码、更新病毒特征来检测病毒。然而,当未知病毒或已知病毒的一个新的变体出现且造成损害之后,该病毒又将被重新分析,以更新特征库中的特征信息。该检测方法具有不可避免的滞后性,病毒的检测技术总是落后于新型病毒的出现。亟需能够识别未知病毒的智能检测方法,达到将病毒危害降低到最小的目的。
发明内容
本发明提供了一种可移植的可执行文件的病毒检测方法、装置、设备及介质,以至少解决相关技术中的病毒检测存在滞后性的问题。
第一方面,本发明实施例提供了一种可移植的可执行文件的病毒检测方法,包括:
采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集,其中,所述静态特征包括:PE文件属性特征和指令序列特征;
将所述特征集作为训练集,从所述训练集中随机选择多组训练数据进行检测模型训练;
采用静态特征提取方法提取待检文件的静态特征;
将所述待检文件的静态特征输入到训练后的检测模型中,得到训练后的检测模型输出的检测结果。
第二方面,本发明实施例提供了一种可移植的可执行文件的病毒检测装置,所述装置包括:
第一提取模块,用于采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集,其中,所述静态特征包括:PE文件属性特征和指令序列特征;
训练模块,用于将所述特征集作为训练集,从所述训练集中随机选择多组训练数据进行检测模型训练;
第二提取模块,用于采用静态特征提取方法提取待检文件的静态特征;
检测模块,用于将所述待检文件的静态特征输入到训练后的检测模型中,得到训练后的检测模型输出的检测结果。
第三方面,本发明实施例提供了一种可移植的可执行文件的病毒检测设备,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现第一方面所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现第一方面所述的方法。
通过本发明实施例提供的可移植的可执行文件的病毒检测方法、装置、设备及介质,采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集,其中,静态特征包括:PE文件属性特征和指令序列特征;将特征集作为训练集,从训练集中随机选择多组训练数据进行检测模型训练;采用静态特征提取方法提取待检文件的静态特征;将待检文件的静态特征输入到训练后的检测模型中,得到训练后的检测模型输出的检测结果的方式,解决了传统的病毒检测存在滞后性的问题,实现了能够即时检测新生病毒或者病毒变种的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的可移植的可执行文件的病毒检测方法的流程图;
图2是根据本发明优选实施例的可移植的可执行文件的病毒检测方法的流程图;
图3是根据本发明优选实施例的提取样本指令特征的示意图;
图4是根据本发明优选实施例的已知病毒的分类的示意图;
图5是根据本发明优选实施例的GRAB集成分类模型的示意图;
图6是根据本发明实施例的可移植的可执行文件的病毒检测装置的结构框图;
图7是根据本发明实施例的可移植的可执行文件的病毒检测设备的硬件结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本实施例中提供了一种可移植的可执行文件的病毒检测方法,图1是根据本发明实施例的可移植的可执行文件的病毒检测方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集,其中,静态特征包括:PE文件属性特征和指令序列特征;
步骤S102,将特征集作为训练集,从训练集中随机选择多组训练数据进行检测模型训练;
步骤S103,采用静态特征提取方法提取待检文件的静态特征;
步骤S104,将待检文件的静态特征输入到训练后的检测模型中,得到训练后的检测模型输出的检测结果。
通过上述步骤,提取已知病毒和正常程序的静态特征,并采用静态特征对检测模型进行训练,从而使得检测模型根据已知病毒和正常程序的静态特征对属于病毒的程序的特征进行归纳,并可以通过分类和验证不断修正检测模型的参数,提高检测模型对未知病毒进行识别分类的准确性。在检测模型经过足够的训练,准确率符合预设标准后,则提取待检文件的静态特征并输入到训练模型中,训练模型输出的分类结果即表示该待检文件是否符合病毒的特征,甚至在一些实施例中还可以输出未知病毒的具体分类(例如:蠕虫病毒、木马病毒等具体分类)。上述病毒检测方法,相对于现有技术中分析已知病毒的特征,并将待检文件的特征直接逐一与已知病毒的特征进行比较的方式而言,上述病毒检测方法通过对已知病毒的特征进行归纳分类后,不仅再局限于对已知病毒的检测,而是还可以根据归纳分类的结果进一步实现对未知病毒的检测,解决了传统的病毒检测存在滞后性的问题,实现了能够即时检测新生病毒或者病毒变种的技术效果。
其中,采用静态特征提取方法提取海量PE文件的静态特征,相比于提取其他静态特征,指令序列特征更能突显病毒文件的在其内容性和行为性两方面的特点,在表征同族变形病毒有显著优势,比二进制机器码有更好的语义特性,较Windows API calls以及其他动态特征有更高的样本覆盖率,也能更有效率地进行特征提取以及生成特征签名,并且相比于动态特征提取方法,采用静态特征提取方法不仅可以对非执行病毒程序(DLL)进行分析,而且时间开销较小。
可选地,上述的静态特征提取方法包括:获取待提取文件的PE文件属性特征,并对该PE文件属性特征进行归一化处理;采用改进的N-Gram方法提取待提取文件的指令序列特征;合并待提取文件的归一化后的PE文件属性特征和指令序列特征,得到待提取文件的静态特征。
可选地,上述的改进的N-Gram方法包括:将待提取文件反汇编,获得反汇编指令代码形式的样本文件,去除样本文件中的所有操作数和无关信息;采用固定长度为N的N-Gram窗口对该样本文件滑动分割,该N-Gram窗口每次滑动一个单位长度,从而获得指令序列特征的特征段,并为各特征段赋予唯一的特征ID,其中该特征段的长度为N;依据特征ID和特征段出现的频率信息,生成与样本文件对应的特征向量,作为表征该样本文件的指令序列特征。
可选地,在步骤S101或者步骤S103中,采用静态特征提取方法提取待提取文件的静态特征包括:对待提取文件进行脱壳处理,得到脱壳的待提取文件;采用静态特征提取方法提取脱壳的待提取文件的静态特征。
可选地,采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集包括:采用静态特征提取方法提取已知病毒和正常程序的静态特征,并将已知病毒的静态特征按照已知病毒分类进行分类,构成特征集。
可选地,采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集包括:采用静态特征提取方法提取已知病毒和正常程序的静态特征;将提取到的静态特征分布式存储在基于Spark的计算集群中;通过Spark加载在计算集群中分布式存储的静态特征,构成特征集。通过上述方式,将Spark引入到海量PE文件分析中,结合Spark提供的机器学习库,对存储在不同主机上的PE样本进行静态特征提取、存储、分析,通过病毒样本的已知信息,对病毒特性进行定义、分类,在病毒样本分类的基础上,进行机器学习,继而对未知样本进行分析、判定。相比于传统的处理方式,Spark架构于Hadoop上,通过分布式计算框架可以处理HDFS上存储的数据,其处理的数据量级更大,消耗的时间更少,从空间、时间上大大提升效率。
可选地,将特征集作为训练集,从训练集中随机选择多组训练数据进行检测模型训练包括:将特征集作为训练集,从训练集中随机选择多组训练数据,并采用GRAB集成分类方法进行检测模型训练。
下面采用优选实施例对本发明实施例进行说明和描述。
图2是根据本发明优选实施例的可移植的可执行文件的病毒检测方法的流程图。如图2所示,本优选实施例提供的可移植的可执行文件的病毒检测方法包括如下步骤:
步骤1,选择PE样本的静态特征并建立数据模型;
步骤2,对PE恶意软件进行聚类分析得到分类;
步骤3,获取未知样本的特征,并通过检测模型对其检测分类。
采用上述步骤,通过提取已知病毒的特征与未知病毒的特征,可以精确地检测出未知病毒。
下面参照图2对本优选实施例的病毒检测方法进行说明。
脱壳处理
大多数病毒通过加壳来隐藏自身的行为,从而逃避杀毒软件的检测。壳的引入使得对于高度依赖特征的机器学习在特征提取上不能提取到该样本真实信息,无法对加壳的病毒程序和加壳的正常程序进行判别,进而影响模型整体准确率,最终影响检测效果。对已知病毒样本和正常样本通过静态脱壳机和动态脱壳机进行脱壳处理,脱壳之后的样本再进行特征提取,能有效的避免以上问题,使得模型能得到样本真实信息,从而提高模型判别准确性。
提取病毒文件静态特征
采用静态特征提取方法提取各已知病毒和正常程序的静态特征,静态特征是PE相关属性,包括但不限于资源的语言类型、节属性、资源属性以及导入表相关信息等。
表1中示出了从PE文件中提取到的相关的属性特征,其维度达到50几个。由于相关属性特征数值上不统一,故需要进行归一化,例如在本实施例中通过对属性特征归一化而将所有数据压缩到0-1区间中。
表1PE文件属性特征
提取样本指令特征做N-Gram
N-Gram是大词汇连续语音识别中常用的一种语言模型,对中文而言,我们称之为汉语语言模型(Chinese Language Model,简称为CLM)。汉语语言模型利用上下文中相邻词间的搭配信息,可以实现到汉字的自动转换。该模型基于这样一种假设,第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。常用的是二元的Bi-Gram和三元的Tri-Gram。
在本优选实施例中,改进的N-Gram是指提取程序的指令特征时,去除所有的操作数和无关信息,以少量的原始数据获取更多的有效信息,使提取的指令序列在表征病毒文件内容与程序行为方面都具有更高的敏锐度。
在对某个单项进行分类后,采用该类中所有样本的静态特征构成特征集,按照所述特征集中各指令序列特征的信息增益大小对所述特征集排序,选择所述特征集中信息增益最大的n个指令序列特征作为优化特征集。
如图3所示,原始文件十六进制序列为以8bff为首的数据,通过反汇编得到样本汇编形式,这里我们只提取opcode,即图片中红框部分,于是得到以mov、push开头的opcode指令序列。对opcode指令序列做2-Gram得到新的特征序列集合(mov,push),(push,mov),(mov,push)……,对opcode指令序列做3-Gram得到新的特征序列集合(mov,push,mov),(push,mov,push),(mov,push,mov)……。
当然,静态特征提取方法除了上述改进的N-Gram方法外,还可以采用其他静态特征提取方法,由于静态特征提取方法在特征提取中属于成熟技术,在此不对其他的静态特征提取方法予以累述。
合并文件静态特征和N-Gram特征
传统方式下只提取文件静态特征或N-Gram特征,都不能较全面的表征一个样本的特性,通过组合静态特征和N-Gram特征可以丰富特征向量,使得整个模型能更加准确的做出判别。
通过Spark对样本文件加载分析
在本优选实施例中,还进一步结合Spark来实现对海量的已知病毒的特征提取和分析。在结合Spark时,已知病毒样本的特征提取后需要进行分布式存储;然后通过Spark对特征文件进行加载分析,通过Spark提供的机器学习库,对海量的PE病毒文件进行分类处理,按照病毒、蠕虫、特洛伊木马、后门、Rootkit、间谍软件、广告软件等进行分类。
如图4所示,是从已知海量样本库中提取的病毒分类,此分类来自于杀毒引擎的命名,其中sha1为全局唯一ID,可以唯一标定病毒,vname即杀毒引擎查杀已知病毒报的名称,而平台(platform)、类别(classes)、其他(other)等共同组成了更加细致的分类标签。通过sha1可以在海量样本库中唯一确定一个样本,对该样本提取相关特征,而以上vname、platform、classes、other作为标签,其共同建立了Spark训练数据集。
模型训练
在本优选实施例中,优选采用结合AdaBoost的GRAB集成分类方法进行检测模型训练。
AdaBoost算法即自适应的Boosting算法,其思想是利用大量学习能力一般的弱分类器,通过一定方法集成,通过样本训练,构建一个分类能力更强的强分类器。简言之,通过合并许多“弱分类器”的输出以产生有效“投票委员会”的过程。理论证明,只要每个弱分类器的分类能力比随机猜测好,当弱分类器的个数趋于无穷时,强分类器的出错率将趋于零。AdaBoost算法的这一特性对于弥补弱分类器的自身局限性和训练样本的主观选择等不足具有重要意义。
AdaBoost算法的主要步骤为:
(1)给出弱学习算法和训练集,从训练集中找出m组训练数据,初始化时,指定每组训练数据的权重分别为D1(i)=1/m。
(2)调用弱学习算法进行T次迭代,每次迭代后,按照训练结果更新训练数据权重,对于训练失败的样本赋予较大的权值,使得下一次迭代更加关注这些样本。弱分类器通过反复迭代得到一个分类函数序列f1,f2,……,fT,每个分类函数f也赋予一个权重,分类效果越好的函数,其权值越大。
(3)经过T次迭代后,在分类问题中最终的强分类函数F经“投票委员会”产生,即通过迭代权值的投票法产生。利用集成的强分类器可对新样本进行有效判断。
另外,广义回归神经网络(GRNN)是Donald F.Specht在1991年提出的,是径向基函数神经网络的一种,也是一种新颖而有效的前馈式神经网络。GRNN具有很强的非线性映射能力和柔性网络结构以及高度的容错性和鲁棒性,能够根据给定的样本数据逼近其中隐含的映射关系,被广泛应用于函数逼近。这种网络不仅具有全局逼近性质,而且具有最佳逼近性质。GRNN和BP等神经网络都可以用于分类、预测,但GRNN在逼近能力和学习速度上有更强优势,网络最后收敛于样本量积聚较多的优化回归面,并且在样本数据较少时,预测效果也较好。此外,GRNN需要调整的参数只有SPREAD一个,可以更快地分类、预测,具有较大计算优势。
AdaBoost算法本身是通过改变数据分布来实现的,它根据每次训练集中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值,然后将每次训练得到的分类器fT组合起来,作为最后的分类器F。AdaBoost在准确度和效率方面都具有很大的优势,使用AdaBoost算法,可以排除一些不必要的特征,并将重点放在关键的特征上。
为了提高检测系统的识别精确度,本发明实施例中提出一种结合AdaBoost算法提高弱分类器(GRNN)的分类性能和运算效率的网络模型GRAB。GRAB模型即把GRNN作为弱分类器,反复训练GRNN预测样本输出,通过AdaBoost算法得到多个GRNN弱分类器组成的强分类器,GRAB集成分类模型如图5所示。
该GRAB集成分类方法包括以下步骤:
(1)将特征集作为训练集,从训练集中随机选择m组训练数据作为训练数据序列y,其中各训练数据的期望分类结果表示为yi,下标i表示训练数据在训练数据序列中的位置,将训练数据序列y中各组训练数据的权重均初始化为其中,D1(i)表示第1轮训练后第i组训练数据的权重,i=1,…,m,m为大于1的整数,并且根据输入输出维数确定GRNN弱分类器的结构,初始化SPREAD参数,其中输入维数由特征集的维数确定,在本优选实施例中维数选取为1;
(2)弱分类器预测获得预测序列:采用训练数据序列训练t个GRNN弱分类器并预测训练数据序列的输出,获得预测序列gt,设定预测序列的表示函数为gt(i),其中下标t表示训练的轮数,i表示训练数据在所述训练数据序列中的位置,gt(i)表示训练数据序列经第t轮训练后第i组训练数据的预测分类结果;
求取预测误差和et:如果训练数据序列经t轮训练后第i组训练数据的预测分类结果gt(i)与期望分类结果yi不相等,即如果gt(i)≠yi则表示两者存在误差,将所有存在误差的训练数据的权重相加即获得预测序列gt的预测误差和et,即其中Dt(i)表示训练数据序列经第t轮训练后第i组训练数据的权重,且1≤t≤T,T为大于1的整数;
(3)计算预测序列权重at:根据预测序列gt的预测误差和et计算所述预测序列的权重at:其中1≤t≤T,T为大于1的整数;
(4)获得第t轮训练后第t组弱分类器函数f(gt,at);
(5)判断t≥T是否成立,如果成立则执行步骤(7),如果不成立则执行步骤(6);
(6)根据所述预测序列gt的权重at调整第t+1轮训练数据序列中各组训练数据的权重Dt+1(i),调整公式为:
其中Dt+1(i)表示所述训练数据序列经第t+1轮训练后第i组训练数据的权重,exp[]表示以自然对数e为底的指数函数,且Bt是归一化因子,为常数,用于在权重比例不变的情况下使权重和为1;其后重复执行步骤(2)~(5);
(7)根据各轮训练获得的T组弱分类器函数,由T组弱分类器组合获得强分类器F:
(8)对待检样本进行特征提取,根据强分类器F对待检样本进行识别,输出检测结果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种可移植的可执行文件的病毒检测装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”或者“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的可移植的可执行文件的病毒检测装置的结构框图,如图6所示,该装置包括:
第一提取模块61,用于采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集,其中,静态特征包括:PE文件属性特征和指令序列特征;
训练模块62,用于将特征集作为训练集,从训练集中随机选择多组训练数据进行检测模型训练;
第二提取模块63,用于采用静态特征提取方法提取待检文件的静态特征;
检测模块64,用于将待检文件的静态特征输入到训练后的检测模型中,得到训练后的检测模型输出的检测结果。
可选地,所述第一提取模块61采用静态特征提取方法提取已知病毒和正常程序的静态特征包括:获取待提取文件的PE文件属性特征,并对该PE文件属性特征进行归一化处理;采用改进的N-Gram方法提取待提取文件的指令序列特征;合并待提取文件的归一化后的PE文件属性特征和指令序列特征,得到待提取文件的静态特征。
可选地,所述第一提取模块61采用改进的N-Gram方法提取待提取文件的指令序列特征包括:将待提取文件反汇编,获得反汇编指令代码形式的样本文件,去除样本文件中的所有操作数和无关信息;采用固定长度为N的N-Gram窗口对该样本文件滑动分割,该N-Gram窗口每次滑动一个单位长度,从而获得指令序列特征的特征段,并为各特征段赋予唯一的特征ID,其中该特征段的长度为N;依据特征ID和特征段出现的频率信息,生成与样本文件对应的特征向量,作为表征该样本文件的指令序列特征。
可选地,第一提取模块61或者第二提取模块63采用静态特征提取方法提取待提取文件的静态特征包括:对待提取文件进行脱壳处理,得到脱壳的待提取文件;采用静态特征提取方法提取脱壳的待提取文件的静态特征。
可选地,第一提取模块61采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集包括:采用静态特征提取方法提取已知病毒和正常程序的静态特征,并将已知病毒的静态特征按照已知病毒分类进行分类,构成特征集。
可选地,第一提取模块61采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集包括:采用静态特征提取方法提取已知病毒和正常程序的静态特征;将提取到的静态特征分布式存储在基于Spark的计算集群中;通过Spark加载在计算集群中分布式存储的静态特征,构成特征集。
可选地,训练模块62将特征集作为训练集,从训练集中随机选择多组训练数据进行检测模型训练包括:将特征集作为训练集,从训练集中随机选择多组训练数据,并采用GRAB集成分类方法进行检测模型训练。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
另外,结合图1描述的本发明实施例的可移植的可执行文件的病毒检测方法可以由可移植的可执行文件的病毒检测设备来实现。图7示出了本发明实施例提供的可移植的可执行文件的病毒检测设备的硬件结构示意图。
可移植的可执行文件的病毒检测设备可以包括处理器71以及存储有计算机程序指令的存储器72。
具体地,上述处理器71可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器72可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器72可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器72可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器72可在数据处理装置的内部或外部。在特定实施例中,存储器72是非易失性固态存储器。在特定实施例中,存储器72包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器71通过读取并执行存储器72中存储的计算机程序指令,以实现上述实施例中的任意一种可移植的可执行文件的病毒检测方法。
在一个示例中,可移植的可执行文件的病毒检测设备还可包括通信接口73和总线70。其中,如图7所示,处理器71、存储器72、通信接口73通过总线70连接并完成相互间的通信。
通信接口73,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线70包括硬件、软件或两者,将可移植的可执行文件的病毒检测设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线70可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
该可移植的可执行文件的病毒检测设备可以基于获取到的数据,执行本发明实施例中的可移植的可执行文件的病毒检测方法,从而实现结合图1描述的可移植的可执行文件的病毒检测方法。
另外,结合上述实施例中的可移植的可执行文件的病毒检测方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种可移植的可执行文件的病毒检测方法。
综上所述,与现有的恶意软件分析方法相比,本实施例提供的病毒检测方法通过提取静态特征实现了在无先验知识的情况下基于静态特征的自动分类,并能够通过频繁项集挖掘的方式,在高层语义上对恶意软件取证提供信息和线索;本实施例提供的病毒检测方法特别适用于对未知软件的分析和检测,克服了传统的基于特征码查杀的弊端。实践证明在常规的应用下,本方法能达到超过百分之九十以上的准确率而时间消耗极短。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种可移植的可执行文件的病毒检测方法,其特征在于,包括:
采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集,其中,所述静态特征包括:PE文件属性特征和指令序列特征;
将所述特征集作为训练集,从所述训练集中随机选择多组训练数据进行检测模型训练;
采用静态特征提取方法提取待检文件的静态特征;
将所述待检文件的静态特征输入到训练后的检测模型中,得到训练后的检测模型输出的检测结果。
2.根据权利要求1所述的方法,其特征在于,所述静态特征提取方法包括:
获取待提取文件的PE文件属性特征,并对该PE文件属性特征进行归一化处理;
采用改进的N-Gram方法提取所述待提取文件的指令序列特征;
合并所述待提取文件的归一化后的PE文件属性特征和所述指令序列特征,得到所述待提取文件的静态特征。
3.根据权利要求2所述的方法,其特征在于,所述改进的N-Gram方法包括:
将所述待提取文件反汇编,获得反汇编指令代码形式的样本文件,去除所述样本文件中的所有操作数和无关信息;
采用固定长度为N的N-Gram窗口对该样本文件滑动分割,该N-Gram窗口每次滑动一个单位长度,从而获得指令序列特征的特征段,并为各特征段赋予唯一的特征ID,其中该特征段的长度为N;
依据特征ID和特征段出现的频率信息,生成与所述样本文件对应的特征向量,作为表征该样本文件的所述指令序列特征。
4.根据权利要求1所述的方法,其特征在于,采用静态特征提取方法提取待提取文件的静态特征包括:
对所述待提取文件进行脱壳处理,得到脱壳的待提取文件;
采用静态特征提取方法提取脱壳的待提取文件的静态特征。
5.根据权利要求1所述的方法,其特征在于,采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集包括:
采用静态特征提取方法提取已知病毒和正常程序的静态特征,并将已知病毒的静态特征按照已知病毒分类进行分类,构成特征集。
6.根据权利要求1至5中任一项所述的方法,其特征在于,采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集包括:
采用静态特征提取方法提取已知病毒和正常程序的静态特征;
将提取到的静态特征分布式存储在基于Spark的计算集群中;
通过Spark加载在所述计算集群中分布式存储的静态特征,构成所述特征集。
7.根据权利要求1至6中任一项所述的方法,其特征在于,将所述特征集作为训练集,从所述训练集中随机选择多组训练数据进行检测模型训练包括:
将所述特征集作为训练集,从所述训练集中随机选择多组训练数据,并采用GRAB集成分类方法进行检测模型训练。
8.一种可移植的可执行文件的病毒检测装置,其特征在于,所述装置包括:
第一提取模块,用于采用静态特征提取方法提取已知病毒和正常程序的静态特征,构成特征集,其中,所述静态特征包括:PE文件属性特征和指令序列特征;
训练模块,用于将所述特征集作为训练集,从所述训练集中随机选择多组训练数据进行检测模型训练;
第二提取模块,用于采用静态特征提取方法提取待检文件的静态特征;
检测模块,用于将所述待检文件的静态特征输入到训练后的检测模型中,得到训练后的检测模型输出的检测结果。
9.一种可移植的可执行文件的病毒检测设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810794318.XA CN109063478A (zh) | 2018-07-19 | 2018-07-19 | 可移植的可执行文件的病毒检测方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810794318.XA CN109063478A (zh) | 2018-07-19 | 2018-07-19 | 可移植的可执行文件的病毒检测方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109063478A true CN109063478A (zh) | 2018-12-21 |
Family
ID=64817317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810794318.XA Pending CN109063478A (zh) | 2018-07-19 | 2018-07-19 | 可移植的可执行文件的病毒检测方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109063478A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111079143A (zh) * | 2019-11-25 | 2020-04-28 | 北京理工大学 | 一种基于多维特征图的木马检测方法 |
CN111371812A (zh) * | 2020-05-27 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种病毒检测方法、装置和介质 |
CN112149116A (zh) * | 2020-10-26 | 2020-12-29 | 北京安信天行科技有限公司 | 一种基于沙箱的行为检测方法与系统 |
CN112818344A (zh) * | 2020-08-17 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 一种运用人工智能算法提高病毒查杀率的方法 |
CN113378162A (zh) * | 2020-02-25 | 2021-09-10 | 深信服科技股份有限公司 | 可执行和可链接格式文件的检验方法、装置及存储介质 |
CN113656421A (zh) * | 2021-08-13 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 病毒库更新方法、装置、系统及防火墙设备 |
CN113656308A (zh) * | 2021-08-18 | 2021-11-16 | 福建卫联科技有限公司 | 一种计算机软件分析系统 |
CN113688391A (zh) * | 2021-08-31 | 2021-11-23 | 南方电网科学研究院有限责任公司 | 一种电力软件恶意代码监测方法、系统、设备和介质 |
CN117892301A (zh) * | 2024-01-15 | 2024-04-16 | 湖北大学 | 少样本恶意软件的分类方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294765A1 (en) * | 2004-07-13 | 2007-12-20 | Sonicwall, Inc. | Managing infectious forwarded messages |
CN102346829A (zh) * | 2011-09-22 | 2012-02-08 | 重庆大学 | 基于集成分类的病毒检测方法 |
CN104899561A (zh) * | 2015-05-27 | 2015-09-09 | 华南理工大学 | 一种并行化的人体行为识别方法 |
CN105138913A (zh) * | 2015-07-24 | 2015-12-09 | 四川大学 | 一种基于多视集成学习的恶意软件检测方法 |
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
-
2018
- 2018-07-19 CN CN201810794318.XA patent/CN109063478A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294765A1 (en) * | 2004-07-13 | 2007-12-20 | Sonicwall, Inc. | Managing infectious forwarded messages |
CN102346829A (zh) * | 2011-09-22 | 2012-02-08 | 重庆大学 | 基于集成分类的病毒检测方法 |
CN104899561A (zh) * | 2015-05-27 | 2015-09-09 | 华南理工大学 | 一种并行化的人体行为识别方法 |
CN105138913A (zh) * | 2015-07-24 | 2015-12-09 | 四川大学 | 一种基于多视集成学习的恶意软件检测方法 |
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111079143A (zh) * | 2019-11-25 | 2020-04-28 | 北京理工大学 | 一种基于多维特征图的木马检测方法 |
CN111079143B (zh) * | 2019-11-25 | 2022-02-11 | 北京理工大学 | 一种基于多维特征图的木马检测方法 |
CN113378162A (zh) * | 2020-02-25 | 2021-09-10 | 深信服科技股份有限公司 | 可执行和可链接格式文件的检验方法、装置及存储介质 |
CN113378162B (zh) * | 2020-02-25 | 2023-11-07 | 深信服科技股份有限公司 | 可执行和可链接格式文件的检验方法、装置及存储介质 |
CN111371812A (zh) * | 2020-05-27 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种病毒检测方法、装置和介质 |
CN112818344A (zh) * | 2020-08-17 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 一种运用人工智能算法提高病毒查杀率的方法 |
CN112818344B (zh) * | 2020-08-17 | 2024-06-04 | 北京辰信领创信息技术有限公司 | 一种运用人工智能算法提高病毒查杀率的方法 |
CN112149116A (zh) * | 2020-10-26 | 2020-12-29 | 北京安信天行科技有限公司 | 一种基于沙箱的行为检测方法与系统 |
CN113656421A (zh) * | 2021-08-13 | 2021-11-16 | 杭州安恒信息技术股份有限公司 | 病毒库更新方法、装置、系统及防火墙设备 |
CN113656308A (zh) * | 2021-08-18 | 2021-11-16 | 福建卫联科技有限公司 | 一种计算机软件分析系统 |
CN113688391A (zh) * | 2021-08-31 | 2021-11-23 | 南方电网科学研究院有限责任公司 | 一种电力软件恶意代码监测方法、系统、设备和介质 |
CN117892301A (zh) * | 2024-01-15 | 2024-04-16 | 湖北大学 | 少样本恶意软件的分类方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109063478A (zh) | 可移植的可执行文件的病毒检测方法、装置、设备及介质 | |
Yuxin et al. | Malware detection based on deep learning algorithm | |
Yan et al. | Classifying malware represented as control flow graphs using deep graph convolutional neural network | |
Zhong et al. | A multi-level deep learning system for malware detection | |
CN108920954B (zh) | 一种恶意代码自动化检测平台及方法 | |
Hu et al. | Scsguard: Deep scam detection for ethereum smart contracts | |
Demirkıran et al. | An ensemble of pre-trained transformer models for imbalanced multiclass malware classification | |
CN102346829A (zh) | 基于集成分类的病毒检测方法 | |
Kan et al. | Towards light-weight deep learning based malware detection | |
Perry et al. | No-doubt: Attack attribution based on threat intelligence reports | |
KR101858620B1 (ko) | 기계 학습을 이용한 자바스크립트 분석 장치 및 방법 | |
CN116361801B (zh) | 基于应用程序接口语义信息的恶意软件检测方法及系统 | |
Shah et al. | Virus detection using artificial neural networks | |
Anandhi et al. | Malware visualization and detection using DenseNets | |
Li et al. | An adversarial machine learning method based on OpCode N-grams feature in malware detection | |
Kakisim et al. | Sequential opcode embedding-based malware detection method | |
CN111400713B (zh) | 基于操作码邻接图特征的恶意软件族群分类方法 | |
Park et al. | Birds of a feature: Intrafamily clustering for version identification of packed malware | |
Dhalaria et al. | CSForest: an approach for imbalanced family classification of android malicious applications | |
Feng et al. | Hrs: A hybrid framework for malware detection | |
US11164658B2 (en) | Identifying salient features for instances of data | |
Chen et al. | Android malware detection method based on graph attention networks and deep fusion of multimodal features | |
Jyothish et al. | Effectiveness of machine learning based android malware detectors against adversarial attacks | |
Pei et al. | Combining multi-features with a neural joint model for Android malware detection | |
Kaczmarczyck et al. | Spotlight: malware lead generation at scale |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181221 |