CN111753290A - 软件类型的检测方法及相关设备 - Google Patents

软件类型的检测方法及相关设备 Download PDF

Info

Publication number
CN111753290A
CN111753290A CN202010454339.4A CN202010454339A CN111753290A CN 111753290 A CN111753290 A CN 111753290A CN 202010454339 A CN202010454339 A CN 202010454339A CN 111753290 A CN111753290 A CN 111753290A
Authority
CN
China
Prior art keywords
software
detected
api sequence
type
dynamic api
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.)
Granted
Application number
CN202010454339.4A
Other languages
English (en)
Other versions
CN111753290B (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.)
Zhengzhou Qiming Star Information Security Technology Co ltd
Beijing Venus Information Security Technology Co Ltd
Venustech Group Inc
Original Assignee
Zhengzhou Qiming Star Information Security Technology Co ltd
Beijing Venus Information Security Technology Co Ltd
Venustech Group Inc
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 Zhengzhou Qiming Star Information Security Technology Co ltd, Beijing Venus Information Security Technology Co Ltd, Venustech Group Inc filed Critical Zhengzhou Qiming Star Information Security Technology Co ltd
Priority to CN202010454339.4A priority Critical patent/CN111753290B/zh
Publication of CN111753290A publication Critical patent/CN111753290A/zh
Application granted granted Critical
Publication of CN111753290B publication Critical patent/CN111753290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/253Fusion techniques of extracted features
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Image Analysis (AREA)

Abstract

本发明实施例公开了一种软件类型的检测方法及相关设备,其中方法之一包括:确定待检测软件的灰度图特征和动态API序列特征;将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;将所述待检测软件的融合特征输入预先训练好的第一软件识别模型,输出所述待检测软件的第一类型。如此,通过训练和识别软件的融合特征来进行检测,能够大大提高软件类型识别的准确率。

Description

软件类型的检测方法及相关设备
技术领域
本发明实施例涉及网络安全技术,尤指一种软件类型的检测方法及相关设备。
背景技术
近些年来,在大量不法资金的助力下,黑灰产业蓬勃发展,市值已高达千亿元规模。在此基础上,黑客根据现有反病毒软件存在的漏洞,研发出各种逃避反病毒软件的工具。而如果不能正确识别恶意软件,就可能会导致恶意软件大肆传播,就会给整个社会和国家带来非常巨大的危害。所以,检测恶意软件就显得至关重要。
在检测恶意软件的应用中,绝大多数的方法是利用深度学习模型对恶意软件的单一特征进行训练从而对恶意软件进行检测和识别。例如,对恶意软件的图像样本数据训练卷积神经网络从而利用训练好的卷积神经网络识别恶意软件。又例如,利用机器学习算法对恶意软件的动态行为数据进行训练从而利用训练好的模型识别恶意软件。
由此可见,现有技术中的恶意软件的检测方法都只是通过训练和识别软件的单一特征来进行检测,导致对恶意软件识别的准确率还不够高。
发明内容
有鉴于此,本发明实施例提供了一种软件类型的检测方法,包括:
确定待检测软件的灰度图特征和动态API序列特征;
将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;
将所述待检测软件的融合特征输入预先训练好的第一软件识别模型,输出所述待检测软件的第一类型;
其中,所述第一软件识别模型是对XGBoost模型通过第一软件样本进行训练得到的XGBoost二分类模型,以软件的融合特征作为输入,以软件的第一类型作为输出;所述第一软件样本为多个软件各自的已标注第一类型的融合特征。
本发明实施例还提供了一种软件类型的检测方法,包括:
确定待检测软件的灰度图特征和动态API序列特征;
将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;
将所述待检测软件的融合特征输入预先训练好的第三软件识别模型,输出所述待检测软件的第三类型;
其中,所述第三软件识别模型是对XGBoost模型通过第三软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第三类型作为输出;所述第三软件样本为多个不同类型的软件各自的已标注第三类型的融合特征.
本发明实施例还提供了一种电子装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述软件类型的检测方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有信息处理程序,所述信息处理程序被处理器执行时实现上述任一项所述软件类型的检测方法。
本发明实施例提供的技术方案,通过训练和识别软件的融合特征来进行检测,能够大大提高软件类型识别的准确率。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本发明一实施例提供的一种软件类型的检测方法的流程示意图;
图2为本发明另一实施例提供的一种软件类型的检测方法的流程示意图;
图3为本发明一实施例中提供的一种模型训练方法的流程示意图;
图4为本发明一实施例中多层CNN的结构示意图;
图5为本发明另一实施例提供的一种软件类型的检测方法的流程示意图;
图6为本发明另一实施例提供的一种软件类型的检测方法的流程示意图;
图7为本发明另一实施例提供的一种软件类型的检测方法的流程示意图;
图8为本发明一实施例提供的一种软件类型的检测装置的流程示意图;
图9为本发明另一实施例提供的一种软件类型的检测装置的流程示意图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
图1为本发明一实施例提供的一种软件类型的检测方法的流程示意图,如图1所示,该方法包括:
步骤101,确定待检测软件的灰度图特征和动态API序列特征;
步骤102,将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;
步骤103,将所述待检测软件的融合特征输入预先训练好的第一软件识别模型,输出所述待检测软件的第一类型;
其中,所述第一软件识别模型是对XGBoost模型通过第一软件样本进行训练得到的XGBoost二分类模型,以软件的融合特征作为输入,以软件的第一类型作为输出;所述第一软件样本为多个软件各自的已标注第一类型的融合特征。
在一示例中,所述第一类型为正常软件或者恶意软件。
在一示例中,当所述待检测软件的第一类型为恶意软件时,该方法还包括:
将所述待检测软件的融合特征输入预先训练好的第二软件识别模型,输出所述待检测软件的第二类型;
其中,所述第二软件识别模型是对XGBoost模型通过第二软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第二类型作为输出;所述第二软件样本为多个不同类型的恶意软件各自的已标注第二类型的融合特征。
在一示例中,所述第二类型包括以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
在一示例中,所述确定待检测软件的灰度图特征,包括:
对所述待检测软件进行反汇编得到其二进制代码文件;
将所述二进制代码文件转换成灰度图;
提取所述灰度图的特征向量作为待检测软件的灰度图特征。
在一示例中,所述确定待检测软件的动态API序列特征,包括:
将所述待检测软件在动态沙箱中模拟运行,得到运行后的动态API序列;
执行以下至少一种操作:
提取该动态API序列的特征向量;确定该动态API序列的N-gram特征向量;确定该动态API序列的分布式词向量;
所述动态API序列特征包括以下一种或者多种:
该动态API序列的特征向量、该动态API序列的N-gram特征向量、该动态API序列的分布式词向量。
本发明实施例提供的技术方案,通过训练和识别软件的融合特征来进行检测,能够大大提高软件类型识别的准确率。
图2为本发明另一实施例提供得一种软件类型的检测方法的流程示意图,如图2所示,该方法包括:
步骤201,对XGBoost模型通过第一软件样本进行训练得到第一软件识别模型;
其中,所述第一软件识别模型是对XGBoost模型通过第一软件样本进行训练得到的XGBoost二分类模型,以软件的融合特征作为输入,以软件的第一类型作为输出。
其中,该第一软件样本为为多个软件各自的已标注第一类型的融合特征。
其中,该第一类型为正常软件或者恶意软件。
其中,软件的融合特征是指由该软件的灰度图特征和动态API序列特征拼接组成的特征。该软件的灰度图特征是指该软件对应的灰度图的特征向量,该软件的动态API序列特征包括以下一种或者多种:该动态API序列的特征向量、该动态API序列的N-gram特征、该动态API序列的分布式词向量。
其中,该第一软件识别模型的训练过程包括对第一软件样本的灰度图特征和动态API序列特征两个模态的融合学习。由于该两种模态的物理含义不同,所以无法直接将其一种模态转换成另外一种模态进行学习(例如把文本信息转换到图像,反之亦然),例如,文本的维度是文本的长度*词向量的个数,而图像的维度是图像的长*高,两者如果不进行处理,是无法转换到一起的;如果强行把文本的维度缩放到图像的维度上,必然会造成大量的信息丢失;所以必须设计具体可行的方案才能够对两个模态的特征进行融合学习。另外,由于神经网络学习能力强,能够自动提取特征,但容易造成过拟合现象,并且具有不可解释性,不利于产品的迭代,而XGBoost是提升树模型,它具有不容易过拟合、可解释性、训练速度快等特点。其中XGBoost模型的可解释性极其重要,可以在训练后得到特征的重要性,从而反推得到模型的效果和稳定性。比如得到排名前十的特征,通过统计得到不同类别间这十个特征的差异性,如果差异较大,则说明选取到了具有区分性的特征,模型效果很好,反之亦然。
因此,本实施例中,结合两者的优点,先通过CNN(卷积神经网络,ConvolutionalNeural Networks)网络提取不同模态中不同层次的特征向量,然后再将提取后的特征向量和其他维度的特征向量作为输入给XGBoost进行学习训练。例如,如图3所示,在灰度图模态学习中,先通过多层CNN网络提取特征向量,将倒数第二层即第二个全连接层的输入作为提取后的特征向量,即灰度图特征;在动态API序列模态学习中,由于动态API序列本质上是文本,所以先获取分布式词向量,基于分布式词向量使用单层的TextCNN网络提取特征向量,然后将两个模态提取后的特征向量和API序列的N-gram特征以及分布式词向量拼接到一起,然后将拼接后的融合特征输入XGBoost进行学习。例如,多层CNN提取的特征向量为512维,TextCNN提取的特征向量为128维,N-gram特征向量为90000维,分布式词向量的特征为300,则拼接后的特征向量为90000+300+128+512=90940。之所以在API序列模态学习中,将上述的三种特征进行融合,是由于三种特征的主要信息不同,其中TextCNN中的卷积核的长度可以设置的较大(如10~20),从而提取出对文本分类影响较大的长段落对应的特征,而N-gram由于N的限制(一般不超过3,否则会引起维度灾难),表示的是文本分类影响较大的短段落的特征,而分布式词向量表示的是文本的整体语义,相比其它的特征来说它具有一定的抽象和概括能力。当然,也可以只选用API序列三种特征中的一种或者两种特征向量与灰度图特征向量进行拼接后输入到XGBoost。
在一示例中,所述对XGBoost模型通过第一软件样本进行训练得到第一软件识别模型,包括:
对所述第一软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
将该灰度图的特征向量和该动态API序列的特征向量进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost二分类模型作为所述第一软件识别模型。
在另一示例中,所述对XGBoost模型通过第一软件样本进行训练得到第一软件识别模型,包括:
对所述第一软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
确定该动态API序列的N-gram特征;
将该灰度图的特征向量和该动态API序列的特征向量和N-gram特征进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost二分类模型作为所述第一软件识别模型。
在另一示例中,所述对XGBoost模型通过第一软件样本进行训练得到第一软件识别模型,包括:
对所述第一软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
确定该动态API序列的N-gram特征;
确定该动态API序列的分布式词向量;
将该灰度图的特征向量和该动态API序列的特征向量、N-gram特征和分布式词向量进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost二分类模型作为所述第一软件识别模型。
在一示例中,确定软件的灰度图,包括:
对该软件进行反汇编得到其二进制代码文件;
将该二进制代码文件转换成灰度图。
其中,由于软件的每个字节的范围是在十六进制00-FF之间,正好对应灰度图十进制0-255(0为黑色,255为白色),其恰好覆盖了整个灰度值得范围。因此,将软件的二进制代码文件按照字节进行分割,然后基于十六进制码与图像灰度值的对应关系得到每个字节对应的灰度值,如此就可以将二进制代码文件转换成灰度图。
在一示例中,确定软件的动态API序列,包括:
将该软件在动态沙箱中模拟运行,得到运行后的动态API序列。
其中,沙箱(Sandboxie)是一个虚拟***程序,允许在沙盘环境中运行浏览器或其他程序,运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。动态沙箱可以包括虚拟操作***层,首先将待检测文件在动态沙箱的虚拟操作***层中运行,然后在运行过程中模拟对操作***的应用程序编程接口API(application programming interface)进行调用操作,提取产生的动态行为信息即为动态API序列,该动态API序列为一种文本信息,例如读文件、写注册表等动态行为信息。
其中,在API序列模态学习中,由于API序列本质上是文本,所以使用单层的TextCNN网络提取特征向量。
其中,N-Gram是一种基于统计语言模型的算法,其基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征即N-gram特征,列表中的每一种gram就是一个特征向量维度。
在一示例中,确定动态API序列的分布式词向量,包括:利用词向量算法训练该动态API序列的分布式词向量。
其中,该词向量算法包括以下一种或者多种:Word2vec、Glove、Fasttext。例如使用Word2vec、Glove、Fasttext三种方法训练词向量,并将该动态API序列对应的三种词向量合并到一起作为的该动态API序列的分布式词向量。
步骤202,确定待检测软件的灰度图特征和动态API序列特征;
其中,确定该待检测软件的灰度图特征,包括:
对该软件进行反汇编得到其二进制代码文件;
将该二进制代码文件转换成灰度图;
提取所述灰度图的特征向量作为待检测软件的灰度图特征。
在一示例中,可以通过卷积神经网络(Convolutional Neural Network,CNN)提取所述灰度图的特征向量。例如,采用图4所示的多层CNN网络提取特征向量,将倒数第二层即第二个全连接层的输入作为提取后的特征向量,即灰度图特征。
其中,确定该待检测软件的动态API序列特征,包括:
将该软件在动态沙箱中模拟运行,得到运行后的动态API序列;
执行以下至少一种操作:
提取该动态API序列的特征向量;
和/或,确定该动态API序列的N-gram特征;
和/或,确定该动态API序列的分布式词向量。
其中,所述动态API序列特征包括以下一种或者多种:
该动态API序列的特征向量、该动态API序列的N-gram特征向量、该动态API序列的分布式词向量。
在一示例中,可以使用单层的TextCNN网络提取该动态API序列的特征向量。
步骤203,将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征;
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量进行拼接得到该软件的融合特征。
例如,灰度图特征即通过多层CNN提取的特征向量为512维,动态API序列的特征向量即通过TextCNN提取的特征向量为128维,则拼接后的特征向量为512+128=640。
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量和N-gram特征向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量以及N-gram特征向量进行拼接得到该软件的融合特征。
例如,灰度图特征即通过多层CNN提取的特征向量为512维,动态API序列的特征向量即通过TextCNN提取的特征向量为128维,N-gram特征向量为90000维,则拼接后的特征向量为512+128+90000=90640。
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量、N-gram特征向量和分布式词向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量、N-gram特征向量以及分布式词向量进行拼接得到该软件的融合特征。
例如,多层CNN提取的特征向量为512维,TextCNN提取的特征向量为128维,N-gram特征向量为90000维,分布式词向量的特征为300,则拼接后的特征向量为90000+300+128+512=90940。
步骤204,将所述待检测软件的融合特征输入所述第一软件识别模型,输出所述待检测软件的第一类型。
本发明实施例提供的技术方案,预先训练第一软件识别模型,然后利用该第一软件识别模型对待检测软件的类型进行检测,不仅能够大大提高软件类型识别的准确率,而且提升了检测效率。
图5为本发明另一实施例提供得一种软件类型的检测方法的流程示意图,如图5所示,该方法包括:
步骤501,对XGBoost模型通过第一软件样本进行训练得到第一软件识别模型;
具体的训练过程与上一实施例相同,在此不再赘述。
步骤502,对XGBoost模型通过第二软件样本进行训练得到第二软件识别模型;
其中,所述第二软件识别模型是对XGBoost模型通过第二软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第二类型作为输出。
其中,所述第二软件样本为多个不同类型的恶意软件各自的已标注第二类型的融合特征。
其中,所述第二类型包括以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
其中,该第二软件识别模型以恶意软件的融合特征作为输入,以该软件的恶意软件类型作为输出。软件的融合特征是指由该软件的灰度图特征和动态API序列特征拼接组成的特征。该软件的灰度图特征是指该软件对应的灰度图的特征向量,该软件的动态API序列特征包括以下一种或者多种:该动态API序列的特征向量、该动态API序列的N-gram特征、该动态API序列的分布式词向量。
其中,该第二软件识别模型的训练过程包括对第二软件样本的灰度图和动态API序列两个模态的融合学习。另外,由于神经网络学习能力强,能够自动提取特征,但容易造成过拟合现象,并且具有不可解释性,不利于产品的迭代,而XGBoost是提升树模型,它具有不容易过拟合、可解释性、训练速度快等特点。因此,本实施例中,结合两者的优点,先通过CNN网络提取不同模态中不同层次的特征向量,然后再将提取后的特征向量和其他维度的特征向量作为输入给XGBoost进行学习训练。例如,如图3所示,在灰度图模态学习中,先通过多层CNN网络提取特征向量,将倒数第二层即第二个全连接层的输入作为提取后的特征向量,即灰度图特征;在动态API序列模态学习中,由于动态API序列本质上是文本,所以先获取分布式词向量,基于分布式词向量使用单层的TextCNN网络提取特征向量,然后将两个模态提取后的特征向量和API序列的N-gram特征以及分布式词向量拼接到一起,然后将拼接后的融合特征输入XGBoost进行学习。例如,多层CNN提取的特征向量为512维,TextCNN提取的特征向量为128维,N-gram特征向量为90000维,分布式词向量的特征为300,则拼接后的特征向量为90000+300+128+512=90940。之所以在API序列模态学习中,将上述的三种特征进行融合,是由于三种特征的主要信息不同,其中TextCNN中的卷积核的长度可以设置的较大(如10~20),从而提取出对文本分类影响较大的长段落对应的特征,而N-gram由于N的限制(一般不超过3,否则会引起维度灾难),表示的是文本分类影响较大的短段落的特征,而分布式词向量表示的是文本的整体语义,相比其它的特征来说它具有一定的抽象和概括能力。当然,也可以只选用API序列三种特征中的一种或者两种特征向量与灰度图特征向量进行拼接后输入到XGBoost。
在一示例中,所述对XGBoost模型通过第二软件样本进行训练得到第二软件识别模型,包括:
对所述第二软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
将该灰度图的特征向量和该动态API序列的特征向量进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost多分类模型作为所述第二软件识别模型。
在另一示例中,所述对XGBoost模型通过第二软件样本进行训练得到第二软件识别模型,包括:
对所述第二软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
确定该动态API序列的N-gram特征;
将该灰度图的特征向量和该动态API序列的特征向量和N-gram特征进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost多分类模型作为所述第二软件识别模型。
在另一示例中,所述对XGBoost模型通过第二软件样本进行训练得到第二软件识别模型,包括:
对所述第二软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
确定该动态API序列的N-gram特征;
确定该动态API序列的分布式词向量;
将该灰度图的特征向量和该动态API序列的特征向量、N-gram特征和分布式词向量进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost多分类模型作为所述第二软件识别模型。
在一示例中,确定软件的灰度图,包括:
对该软件进行反汇编得到其二进制代码文件;
将该二进制代码文件转换成灰度图。
其中,由于软件的每个字节的范围是在十六进制00-FF之间,正好对应灰度图十进制0-255(0为黑色,255为白色),其恰好覆盖了整个灰度值得范围。因此,将软件的二进制代码文件按照字节进行分割,然后基于十六进制码与图像灰度值的对应关系得到每个字节对应的灰度值,如此就可以将二进制代码文件转换成灰度图。
在一示例中,确定软件的动态API序列,包括:
将该软件在动态沙箱中模拟运行,得到运行后的动态API序列。
其中,沙箱(Sandboxie)是一个虚拟***程序,允许在沙盘环境中运行浏览器或其他程序,运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。动态沙箱可以包括虚拟操作***层,首先将待检测文件在动态沙箱的虚拟操作***层中运行,然后在运行过程中模拟对操作***的应用程序编程接口API(application programming interface)进行调用操作,提取产生的动态行为信息即为动态API序列,该动态API序列为一种文本信息,例如读文件、写注册表等动态行为信息。
其中,在API序列模态学习中,由于API序列本质上是文本,所以使用单层的TextCNN网络提取特征向量。
其中,N-Gram是一种基于统计语言模型的算法,其基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征即N-gram特征,列表中的每一种gram就是一个特征向量维度。
在一示例中,确定动态API序列的分布式词向量,包括:利用词向量算法训练该动态API序列的分布式词向量。
其中,该词向量算法包括以下一种或者多种:Word2vec、Glove、Fasttext。例如使用Word2vec、Glove、Fasttext三种方法训练词向量,并将该动态API序列对应的三种词向量合并到一起作为的该动态API序列的分布式词向量。
步骤503,确定待检测软件的灰度图特征和动态API序列特征;
其中,确定该待检测软件的灰度图特征,包括:
对该软件进行反汇编得到其二进制代码文件;
将该二进制代码文件转换成灰度图;
提取所述灰度图的特征向量作为待检测软件的灰度图特征。
在一示例中,可以通过卷积神经网络(Convolutional Neural Network,CNN)提取所述灰度图的特征向量。例如,采用图3所示的多层CNN网络提取特征向量,将倒数第二层即第二个全连接层的输入作为提取后的特征向量,即灰度图特征。
其中,确定该待检测软件的动态API序列特征,包括:
将该软件在动态沙箱中模拟运行,得到运行后的动态API序列;
执行以下至少一种操作:
提取该动态API序列的特征向量;
和/或,确定该动态API序列的N-gram特征;
和/或,确定该动态API序列的分布式词向量。
其中,所述动态API序列特征包括以下一种或者多种:
该动态API序列的特征向量、该动态API序列的N-gram特征向量、该动态API序列的分布式词向量。
在一示例中,可以使用单层的TextCNN网络提取该动态API序列的特征向量。
步骤504,将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征;
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量进行拼接得到该软件的融合特征。
例如,灰度图特征即通过多层CNN提取的特征向量为512维,动态API序列的特征向量即通过TextCNN提取的特征向量为128维,则拼接后的特征向量为512+128=640。
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量和N-gram特征向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量以及N-gram特征向量进行拼接得到该软件的融合特征。
例如,灰度图特征即通过多层CNN提取的特征向量为512维,动态API序列的特征向量即通过TextCNN提取的特征向量为128维,N-gram特征向量为90000维,则拼接后的特征向量为512+128+90000=90640。
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量、N-gram特征向量和分布式词向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量、N-gram特征向量以及分布式词向量进行拼接得到该软件的融合特征。
例如,多层CNN提取的特征向量为512维,TextCNN提取的特征向量为128维,N-gram特征向量为90000维,分布式词向量的特征为300,则拼接后的特征向量为90000+300+128+512=90940。
步骤505,将所述待检测软件的融合特征输入所述第一软件识别模型,输出所述待检测软件的第一类型;
步骤506,当该待检测软件的第一类型为恶意软件时,将该待检测软件的融合特征输入所述第二软件识别模型,输出该待检测软件的第二类型。
其中,所述第二类型包括以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
本发明实施例提供的技术方案,预先训练第一软件识别模型和第二软件识别模型,然后利用该第一软件识别模型对待检测软件的类型进行检测;并当待检测软件为恶意软件时,再利用第二软件识别模型检测恶意软件的具体类型;不仅能够检测软件是否为恶意软件,而且还可以检测出恶意软件的具体类型,大大提高了软件类型识别的准确率,而且提升了检测效率。
图6为本发明另一实施例提供的一种软件类型的检测方法的流程示意图,如图6所示,该方法包括:
步骤601,确定待检测软件的灰度图特征和动态API序列特征;
步骤602,将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;
步骤603,将所述待检测软件的融合特征输入预先训练好的第三软件识别模型,输出所述待检测软件的第三类型;
其中,所述第三软件识别模型是对XGBoost模型通过第三软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第三类型作为输出;所述第三软件样本为多个不同类型的软件各自的已标注第三类型的融合特征。
在一示例中,所述第三类型包括正常软件,以及以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
本发明实施例提供的技术方案,直接利用训练好的第三软件识别模型对待检测软件的具体类型进行检测,大大提高了软件类型识别的准确率,而且提升了检测效率。
图7为本发明另一实施例提供得一种软件类型的检测方法的流程示意图,如图7所示,该方法包括:
步骤701,对XGBoost模型通过第三软件样本进行训练得到第三软件识别模型;
其中,所述第三软件识别模型是对XGBoost模型通过第三软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第三类型作为输出。
其中,所述第三软件样本为多个不同类型的软件各自的已标注第三类型的融合特征。
其中,所述第三类型包括正常软件,以及以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
其中,该第三软件识别模型以软件的融合特征作为输入,以该软件的第三类型作为输出。软件的融合特征是指由该软件的灰度图特征和动态API序列特征拼接组成的特征。该软件的灰度图特征是指该软件对应的灰度图的特征向量,该软件的动态API序列特征包括以下一种或者多种:该动态API序列的特征向量、该动态API序列的N-gram特征、该动态API序列的分布式词向量。
其中,该第三软件识别模型的训练过程包括对第二软件样本的灰度图和动态API序列两个模态的融合学习。另外,由于神经网络学习能力强,能够自动提取特征,但容易造成过拟合现象,并且具有不可解释性,不利于产品的迭代,而XGBoost是提升树模型,它具有不容易过拟合、可解释性、训练速度快等特点。因此,本实施例中,结合两者的优点,先通过CNN网络提取不同模态中不同层次的特征向量,然后再将提取后的特征向量和其他维度的特征向量作为输入给XGBoost进行学习训练。例如例如,如图3所示,在灰度图模态学习中,先通过多层CNN网络提取特征向量,将倒数第二层即第二个全连接层的输入作为提取后的特征向量,即灰度图特征;在动态API序列模态学习中,由于动态API序列本质上是文本,所以先获取分布式词向量,基于分布式词向量使用单层的TextCNN网络提取特征向量,然后将两个模态提取后的特征向量和API序列的N-gram特征以及分布式词向量拼接到一起,然后将拼接后的融合特征输入XGBoost进行学习。例如,多层CNN提取的特征向量为512维,TextCNN提取的特征向量为128维,N-gram特征向量为90000维,分布式词向量的特征为300,则拼接后的特征向量为90000+300+128+512=90940。之所以在API序列模态学习中,将上述的三种特征进行融合,是由于三种特征的主要信息不同,其中TextCNN中的卷积核的长度可以设置的较大(如10~20),从而提取出对文本分类影响较大的长段落对应的特征,而N-gram由于N的限制(一般不超过3,否则会引起维度灾难),表示的是文本分类影响较大的短段落的特征,而分布式词向量表示的是文本的整体语义,相比其它的特征来说它具有一定的抽象和概括能力。当然,也可以只选用API序列三种特征中的一种或者两种特征向量与灰度图特征向量进行拼接后输入到XGBoost。
在一示例中,所述对XGBoost模型通过第三软件样本进行训练得到第三软件识别模型,包括:
对所述第三软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
将该灰度图的特征向量和该动态API序列的特征向量进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost多分类模型作为所述第三软件识别模型。
在另一示例中,所述对XGBoost模型通过第三软件样本进行训练得到第三软件识别模型,包括:
对所述第三软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
确定该动态API序列的N-gram特征;
将该灰度图的特征向量和该动态API序列的特征向量和N-gram特征进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost多分类模型作为所述第三软件识别模型。
在另一示例中,所述对XGBoost模型通过第三软件样本进行训练得到第三软件识别模型,包括:
对所述第三软件样本中的每一个软件执行如下操作:
确定该软件的灰度图和动态API序列;
提取该灰度图的特征向量;
提取该动态API序列的特征向量;
确定该动态API序列的N-gram特征;
确定该动态API序列的分布式词向量;
将该灰度图的特征向量和该动态API序列的特征向量、N-gram特征和分布式词向量进行拼接得到该软件的融合特征;
使用XGBoost模型对该软件的融合特征进行训练,将训练得到的XGBoost多分类模型作为所述第三软件识别模型。
在一示例中,确定软件的灰度图,包括:
对该软件进行反汇编得到其二进制代码文件;
将该二进制代码文件转换成灰度图。
其中,由于软件的每个字节的范围是在十六进制00-FF之间,正好对应灰度图十进制0-255(0为黑色,255为白色),其恰好覆盖了整个灰度值得范围。因此,将软件的二进制代码文件按照字节进行分割,然后基于十六进制码与图像灰度值的对应关系得到每个字节对应的灰度值,如此就可以将二进制代码文件转换成灰度图。
在一示例中,确定软件的动态API序列,包括:
将该软件在动态沙箱中模拟运行,得到运行后的动态API序列。
其中,沙箱(Sandboxie)是一个虚拟***程序,允许在沙盘环境中运行浏览器或其他程序,运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。动态沙箱可以包括虚拟操作***层,首先将待检测文件在动态沙箱的虚拟操作***层中运行,然后在运行过程中模拟对操作***的应用程序编程接口API(application programming interface)进行调用操作,提取产生的动态行为信息即为动态API序列,该动态API序列为一种文本信息,例如读文件、写注册表等动态行为信息。
其中,在API序列模态学习中,由于API序列本质上是文本,所以使用单层的TextCNN网络提取特征向量。
其中,N-Gram是一种基于统计语言模型的算法,其基本思想是将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征即N-gram特征,列表中的每一种gram就是一个特征向量维度。
在一示例中,确定动态API序列的分布式词向量,包括:利用词向量算法训练该动态API序列的分布式词向量。
其中,该词向量算法包括以下一种或者多种:Word2vec、Glove、Fasttext。例如使用Word2vec、Glove、Fasttext三种方法训练词向量,并将该动态API序列对应的三种词向量合并到一起作为的该动态API序列的分布式词向量。
步骤702,确定待检测软件的灰度图特征和动态API序列特征;
其中,确定该待检测软件的灰度图特征,包括:
对该软件进行反汇编得到其二进制代码文件;
将该二进制代码文件转换成灰度图;
提取所述灰度图的特征向量作为待检测软件的灰度图特征。
在一示例中,可以通过卷积神经网络(Convolutional Neural Network,CNN)提取所述灰度图的特征向量。例如,采用图3所示的多层CNN网络提取特征向量,将倒数第二层即第二个全连接层的输入作为提取后的特征向量,即灰度图特征。
其中,确定该待检测软件的动态API序列特征,包括:
将该软件在动态沙箱中模拟运行,得到运行后的动态API序列;
执行以下至少一种操作:
提取该动态API序列的特征向量;
和/或,确定该动态API序列的N-gram特征;
和/或,确定该动态API序列的分布式词向量。
其中,所述动态API序列特征包括以下一种或者多种:
该动态API序列的特征向量、该动态API序列的N-gram特征向量、该动态API序列的分布式词向量。
在一示例中,可以使用单层的TextCNN网络提取该动态API序列的特征向量。
步骤703,将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征;
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量进行拼接得到该软件的融合特征。
例如,灰度图特征即通过多层CNN提取的特征向量为512维,动态API序列的特征向量即通过TextCNN提取的特征向量为128维,则拼接后的特征向量为512+128=640。
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量和N-gram特征向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量以及N-gram特征向量进行拼接得到该软件的融合特征。
例如,灰度图特征即通过多层CNN提取的特征向量为512维,动态API序列的特征向量即通过TextCNN提取的特征向量为128维,N-gram特征向量为90000维,则拼接后的特征向量为512+128+90000=90640。
在一示例中,当该软件的动态API序列特征包括:动态API序列的特征向量、N-gram特征向量和分布式词向量时,所述将该待检测软件的灰度图特征和动态API序列特征进行拼接得到该待检测软件的融合特征,包括:
将该待检测软件的灰度图特征和该待检测软件的动态API序列的特征向量、N-gram特征向量以及分布式词向量进行拼接得到该软件的融合特征。
例如,多层CNN提取的特征向量为512维,TextCNN提取的特征向量为128维,N-gram特征向量为90000维,分布式词向量的特征为300,则拼接后的特征向量为90000+300+128+512=90940。
步骤704,将所述待检测软件的融合特征输入预先训练好的第三软件识别模型,输出所述待检测软件的第三类型。
本发明实施例提供的技术方案,直接利用训练好的第三软件识别模型对待检测软件的具体类型进行检测,大大提高了软件类型识别的准确率,而且提升了检测效率。
在本发明的另一实施例中,在上述实施例的基础上,为了提高神经网络学***滑和mixup技术。标签平滑是把标签进行转换,其中转换前的标签为one-hot表示:
Figure BDA0002508668590000241
转换后的类别如下所示,其中∈为较小数,如0.001。
Figure BDA0002508668590000242
而mixup是通过已有的训练数据生成新的训练数据。随机选两个数据i和j,生成随机数λ∈[0,1],则新的训练数据则为:
x=λxi+(1-λ)xj y=λyi+(1-λ)yi
如此,采用标签平滑和mixup技术预先对样本数据进行处理,能够抑制过拟合现象,提高了神经网络学习的效果。
在本发明的另一实施例中,在上述实施例的基础上,在对待检测软件进行检测的过程中,包括在线预测和离线预测两个部分。在线预测指的是使用服务的方式对线上的每个样本进行实时的预测。而离线预测中包括两种模式,一种是基于批量测试数据重新训练模型,另外一种是基于现有模型直接预测。之所以提出基于批量测试数据重新训练模型,是因为当训练集和测试集分布差异较大时,就会导致训练出来的模型在测试集上效果不佳。所以需要先通过模型来判断训练集和测试集是否具有较大的差异。例如,将训练集和测试集数据放到一起;然后定义二分类任务,判断样本属于训练集还是测试集,并使用上面提到的学习过程,只是把XGBoost的学习目标修改为二分类,即输出为预测样本属于测试集的概率;观察上述二分类任务的学习效果,如果模型对应的AUC(AreaUnderCurve,ROC曲线下的面积)超过一定阈值(如0.8),则表明训练集和测试集的差异较大。如果训练集和测试集的差异较大,将训练集样本按照上述任务中属于测试集的概率进行排序,例如,将前20%的样本作为重新训练的验证集,剩余80%作为训练集样本。由于验证集的选取对参数的选取至关重要,所以按照上述的方法重新生成训练集和验证集进行学习,就能在一定程度上提高测试集的效果。
本发明的一实施例还提供了一种软件类型的检测装置,如图8所示,该装置包括:
确定单元,设置为确定待检测软件的灰度图特征和动态API序列特征;
拼接单元,设置为将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;
第一检测单元,设置为将所述待检测软件的融合特征输入预先训练好的第一软件识别模型,输出所述待检测软件的第一类型;
其中,所述第一软件识别模型是对XGBoost模型通过第一软件样本进行训练得到的XGBoost二分类模型,以软件的融合特征作为输入,以软件的第一类型作为输出;所述第一软件样本为多个软件各自的已标注第一类型的融合特征。
在一示例中,所述第一类型为正常软件或者恶意软件。
在一示例中,该装置还包括:
第二检测单元,设置为当所述待检测软件的第一类型为恶意软件时,将所述待检测软件的融合特征输入预先训练好的第二软件识别模型,输出所述待检测软件的第二类型;
其中,所述第二软件识别模型是对XGBoost模型通过第二软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第二类型作为输出;所述第二软件样本为多个不同类型的恶意软件各自的已标注第二类型的融合特征。
在一示例中,所述第二类型包括以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
在一示例中,所述确定单元,设置为对所述待检测软件进行反汇编得到其二进制代码文件;
将所述二进制代码文件转换成灰度图;
提取所述灰度图的特征向量作为待检测软件的灰度图特征。
在一示例中,所述确定单元,设置为将所述待检测软件在动态沙箱中模拟运行,得到运行后的动态API序列;
执行以下至少一种操作:
提取该动态API序列的特征向量;确定该动态API序列的N-gram特征向量;确定该动态API序列的分布式词向量;
所述动态API序列特征包括以下一种或者多种:
该动态API序列的特征向量、该动态API序列的N-gram特征向量、该动态API序列的分布式词向量。
在一示例中,该装置还包括显示单元;
所述显示单元,设置为显示所述待检测软件的第一类型或者第二类型。
本发明实施例提供的技术方案,通过训练和识别软件的融合特征来进行检测,能够大大提高软件类型识别的准确率。
本发明的另一实施例还提供了另一种软件类型的检测装置,如图9所示,该装置包括:
确定单元,设置为确定待检测软件的灰度图特征和动态API序列特征;
拼接单元,设置为将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;
第三检测单元,设置为将所述待检测软件的融合特征输入预先训练好的第三软件识别模型,输出所述待检测软件的第三类型;
其中,所述第三软件识别模型是对XGBoost模型通过第三软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第三类型作为输出;所述第三软件样本为多个不同类型的软件各自的已标注第三类型的融合特征
在一示例中,所述第三类型包括正常软件,以及以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
在一示例中,该装置还包括显示单元;
所述显示单元,设置为显示所述待检测软件的第三类型。
本发明实施例提供的技术方案,通过训练和识别软件的融合特征来进行检测,能够大大提高软件类型识别的准确率。
本发明实施例还提供了一种电子装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述软件类型的检测方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有信息处理程序,所述信息处理程序被处理器执行时实现上述任一项中所述软件类型的检测方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

1.一种软件类型的检测方法,包括:
确定待检测软件的灰度图特征和动态API序列特征;
将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;
将所述待检测软件的融合特征输入预先训练好的第一软件识别模型,输出所述待检测软件的第一类型;
其中,所述第一软件识别模型是对XGBoost模型通过第一软件样本进行训练得到的XGBoost二分类模型,以软件的融合特征作为输入,以软件的第一类型作为输出;所述第一软件样本为多个软件各自的已标注第一类型的融合特征。
2.根据权利要求1所述的检测方法,其特征在于,
所述第一类型为正常软件或者恶意软件。
3.根据权利要求2所述的检测方法,其特征在于,当所述待检测软件的第一类型为恶意软件时,该方法还包括:
将所述待检测软件的融合特征输入预先训练好的第二软件识别模型,输出所述待检测软件的第二类型;
其中,所述第二软件识别模型是对XGBoost模型通过第二软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第二类型作为输出;所述第二软件样本为多个不同类型的恶意软件各自的已标注第二类型的融合特征。
4.根据权利要求3所述的检测方法,其特征在于,
所述第二类型包括以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
5.根据权利要求1所述的检测方法,其特征在于,所述确定待检测软件的灰度图特征,包括:
对所述待检测软件进行反汇编得到其二进制代码文件;
将所述二进制代码文件转换成灰度图;
提取所述灰度图的特征向量作为待检测软件的灰度图特征。
6.根据权利要求1所述的检测方法,其特征在于,
所述确定待检测软件的动态API序列特征,包括:
将所述待检测软件在动态沙箱中模拟运行,得到运行后的动态API序列;
执行以下至少一种操作:
提取该动态API序列的特征向量;确定该动态API序列的N-gram特征向量;确定该动态API序列的分布式词向量;
所述动态API序列特征包括以下一种或者多种:
该动态API序列的特征向量、该动态API序列的N-gram特征向量、该动态API序列的分布式词向量。
7.一种软件类型的检测方法,包括:
确定待检测软件的灰度图特征和动态API序列特征;
将所述待检测软件的灰度图特征和动态API序列特征进行拼接得到所述待检测软件的融合特征;
将所述待检测软件的融合特征输入预先训练好的第三软件识别模型,输出所述待检测软件的第三类型;
其中,所述第三软件识别模型是对XGBoost模型通过第三软件样本进行训练得到的XGBoost多分类模型,以软件的融合特征作为输入,以软件的第三类型作为输出;所述第三软件样本为多个不同类型的软件各自的已标注第三类型的融合特征。
8.根据权利要求7所述的检测方法,其特征在于,
所述第三类型包括正常软件,以及以下全部或者部分类型:勒索病毒、挖坑程序、DDos木马、蠕虫病毒、感染型病毒、后门程序、木马程序。
9.一种电子装置,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8中任一项所述软件类型的检测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有信息处理程序,所述信息处理程序被处理器执行时实现如权利要求1-8任一项中所述软件类型的检测方法。
CN202010454339.4A 2020-05-26 2020-05-26 软件类型的检测方法及相关设备 Active CN111753290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010454339.4A CN111753290B (zh) 2020-05-26 2020-05-26 软件类型的检测方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010454339.4A CN111753290B (zh) 2020-05-26 2020-05-26 软件类型的检测方法及相关设备

Publications (2)

Publication Number Publication Date
CN111753290A true CN111753290A (zh) 2020-10-09
CN111753290B CN111753290B (zh) 2024-05-28

Family

ID=72673907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010454339.4A Active CN111753290B (zh) 2020-05-26 2020-05-26 软件类型的检测方法及相关设备

Country Status (1)

Country Link
CN (1) CN111753290B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139187A (zh) * 2021-04-22 2021-07-20 北京启明星辰信息安全技术有限公司 一种预训练语言模型的生成、检测方法及装置
CN113221115A (zh) * 2021-07-09 2021-08-06 四川大学 基于协同学习的可视化恶意软件检测方法
CN113722713A (zh) * 2021-09-10 2021-11-30 上海观安信息技术股份有限公司 一种恶意代码检测的方法、装置、电子设备及存储介质
CN115828248A (zh) * 2023-02-17 2023-03-21 杭州未名信科科技有限公司 基于可解释性深度学习的恶意代码检测方法及装置
CN116910752A (zh) * 2023-07-17 2023-10-20 重庆邮电大学 一种基于大数据的恶意代码检测方法
CN117113351A (zh) * 2023-10-18 2023-11-24 广东省科技基础条件平台中心 一种基于多重多级预训练的软件分类方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205396A (zh) * 2015-10-15 2015-12-30 上海交通大学 一种基于深度学习的安卓恶意代码检测***及其方法
CN107315954A (zh) * 2016-04-27 2017-11-03 腾讯科技(深圳)有限公司 一种文件类型识别方法及服务器
CN110210218A (zh) * 2018-04-28 2019-09-06 腾讯科技(深圳)有限公司 一种病毒检测的方法以及相关装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205396A (zh) * 2015-10-15 2015-12-30 上海交通大学 一种基于深度学习的安卓恶意代码检测***及其方法
CN107315954A (zh) * 2016-04-27 2017-11-03 腾讯科技(深圳)有限公司 一种文件类型识别方法及服务器
CN110210218A (zh) * 2018-04-28 2019-09-06 腾讯科技(深圳)有限公司 一种病毒检测的方法以及相关装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139187A (zh) * 2021-04-22 2021-07-20 北京启明星辰信息安全技术有限公司 一种预训练语言模型的生成、检测方法及装置
CN113139187B (zh) * 2021-04-22 2023-12-19 北京启明星辰信息安全技术有限公司 一种预训练语言模型的生成、检测方法及装置
CN113221115A (zh) * 2021-07-09 2021-08-06 四川大学 基于协同学习的可视化恶意软件检测方法
CN113221115B (zh) * 2021-07-09 2021-09-17 四川大学 基于协同学习的可视化恶意软件检测方法
CN113722713A (zh) * 2021-09-10 2021-11-30 上海观安信息技术股份有限公司 一种恶意代码检测的方法、装置、电子设备及存储介质
CN115828248A (zh) * 2023-02-17 2023-03-21 杭州未名信科科技有限公司 基于可解释性深度学习的恶意代码检测方法及装置
CN116910752A (zh) * 2023-07-17 2023-10-20 重庆邮电大学 一种基于大数据的恶意代码检测方法
CN116910752B (zh) * 2023-07-17 2024-03-08 重庆邮电大学 一种基于大数据的恶意代码检测方法
CN117113351A (zh) * 2023-10-18 2023-11-24 广东省科技基础条件平台中心 一种基于多重多级预训练的软件分类方法及设备
CN117113351B (zh) * 2023-10-18 2024-02-20 广东省科技基础条件平台中心 一种基于多重多级预训练的软件分类方法及设备

Also Published As

Publication number Publication date
CN111753290B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
CN111753290B (zh) 软件类型的检测方法及相关设备
CN112329016B (zh) 一种基于深度神经网络的可视化恶意软件检测装置及方法
CN109302410B (zh) 一种内部用户异常行为检测方法、***及计算机存储介质
CN106778241B (zh) 恶意文件的识别方法及装置
CN111027069B (zh) 恶意软件家族检测方法、存储介质和计算设备
CN108021806B (zh) 一种恶意安装包的识别方法和装置
RU2708356C1 (ru) Система и способ двухэтапной классификации файлов
CN109359439A (zh) 软件检测方法、装置、设备及存储介质
CN111062036A (zh) 恶意软件识别模型构建、识别方法及介质和设备
CN113360912A (zh) 恶意软件检测方法、装置、设备及存储介质
CN109145030B (zh) 一种异常数据访问的检测方法和装置
CN111626367A (zh) 对抗样本检测方法、装置、设备及计算机可读存储介质
CN112182585B (zh) 源代码漏洞检测方法、***及存储介质
CN111881289A (zh) 分类模型的训练方法、数据风险类别的检测方法及装置
CN112052451A (zh) 一种webshell检测方法和装置
CN111866004A (zh) 安全评估方法、装置、计算机***和介质
CN112733140A (zh) 一种针对模型倾斜攻击的检测方法及***
CN115828239A (zh) 一种多维数据决策融合的恶意代码检测方法
CN110879888A (zh) 病毒文件检测方法、装置及设备
CN115100739A (zh) 人机行为检测方法、***、终端设备及存储介质
KR20200063067A (ko) 자가 증식된 비윤리 텍스트의 유효성 검증 장치 및 방법
CN110705622A (zh) 一种决策方法、***以及电子设备
CN110855635A (zh) Url识别方法、装置及数据处理设备
CN114285587A (zh) 域名鉴别方法和装置、域名分类模型的获取方法和装置
CN111488574A (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
GR01 Patent grant
GR01 Patent grant