恶意软件同源性分析方法、系统、电子设备及存储介质与流程

文档序号:18466314发布日期:2019-08-17 02:30阅读:318来源:国知局
恶意软件同源性分析方法、系统、电子设备及存储介质与流程
本公开涉及网络安全
技术领域
,特别是涉及一种恶意软件同源性分析方法、系统、电子设备及存储介质。
背景技术
:近年来,出现了大量的各类影响严重的、利用恶意软件进行恶意攻击的事件。例如,这类事件包括但不限于危害计算机、窃取机密信息、发送垃圾邮件、关闭服务器、渗透网络以及关键基础设施等。这些恶意攻击的事件经常造成严重的破坏,并导致重大的经济损失。面对这样严峻的网络安全态势,提高恶意软件相似性分析的准确性是亟待解决的技术问题。公开内容本公开实施例的主要目的在于提供一种恶意软件同源性分析方法、系统、电子设备及存储介质,以解决如何提高恶意软件相似性分析的准确性的技术问题。为了实现上述目的,根据本公开的第一方面,提供了以下技术方案:一种恶意软件同源性分析方法,所述方法包括:获取所述恶意软件的样本的数据集;从所述样本的数据集中提取反汇编代码文本以及带属性的控制流程图;基于所述反汇编代码文本以及所述带属性的控制流程图,构建深度神经网络模型;通过所述深度神经网络模型,识别所述恶意软件的所述同源性。结合本公开的第一方面,在本公开第一方面的第一种可能的实现方式中,从所述样本的数据集中提取反汇编代码文本以及带属性的控制流程图的步骤,具体包括:获取所述恶意软件的样本的控制流程图;从所述控制流程图中提取反汇编代码;根据所述控制流程图中的执行路径,将所述反汇编代码形成反汇编代码文本;对所述控制流程图中各块中的内容,按照预定的属性进行统计,得到带属性的控制流程图。结合本公开的第一方面,在本公开第一方面的第二种可能的实现方式中,基于所述反汇编代码文本以及所述带属性的控制流程图,构建深度神经网络模型的步骤,具体包括:对所述带属性的控制流程图进行向量化,得到图嵌入向量特征表示;从所述反汇编代码文本中,提取一阶马尔科夫链特征;将所述图嵌入向量特征表示和所述一阶马尔科夫链特征,作为结构长短期记忆网络的输入,以构建所述深度神经网络模型。结合本公开的第一方面,在本公开第一方面的第三种可能的实现方式中,所述结构长短期记忆网络包括输入门、遗忘门、存储单元和输出门;将所述图嵌入向量特征表示和所述一阶马尔科夫链特征,作为结构长短期记忆网络的输入,以构建所述深度神经网络模型的步骤,具体包括:计算所述带属性的控制流程图中各顶点的特征;将所述带属性的控制流程图中所述各顶点嵌入的集合,作为嵌入向量;将所述嵌入向量表示为结构向量;将所述结构向量添加到所述输入门、所述遗忘门、所述存储单元和所述输出门中;将所述图嵌入向量特征表示和所述一阶马尔科夫链特征,作为所述结构长短期记忆网络的输入,以构建所述深度神经网络模型。为了实现上述目的,根据本公开的第二方面,还提供了以下技术方案:一种恶意软件同源性分析系统,所述系统包括:获取模块,用于获取所述恶意软件的样本的数据集;提取模块,用于从所述样本的数据集中提取反汇编代码文本以及带属性的控制流程图;构建模块,用于基于所述反汇编代码文本以及所述带属性的控制流程图,构建深度神经网络模型;识别模块,用于通过所述深度神经网络模型,识别所述恶意软件的所述同源性。结合本公开的第二方面,在本公开第二方面的第一种可能的实现方式中,所述提取模块具体用于:获取所述恶意软件的样本的控制流程图;从所述控制流程图中提取反汇编代码;根据所述控制流程图中的执行路径,将所述反汇编代码形成反汇编代码文本;对所述控制流程图中各块中的内容,按照预定的属性进行统计,得到带属性的控制流程图。结合本公开的第二方面,在本公开第二方面的第二种可能的实现方式中,所述构建模块具体用于:对所述带属性的控制流程图进行向量化,得到图嵌入向量特征表示;从所述反汇编代码文本中,提取一阶马尔科夫链特征;将所述图嵌入向量特征表示和所述一阶马尔科夫链特征,作为结构长短期记忆网络的输入,以构建所述深度神经网络模型。结合本公开的第二方面,在本公开第二方面的第三种可能的实现方式中,所述结构长短期记忆网络包括输入门、遗忘门、存储单元和输出门;所述构建模块具体用于:计算所述带属性的控制流程图中各顶点的特征;将所述带属性的控制流程图中所述各顶点嵌入的集合,作为嵌入向量;将所述嵌入向量表示为结构向量;将所述结构向量添加到所述输入门、所述遗忘门、所述存储单元和所述输出门中;将所述图嵌入向量特征表示和所述一阶马尔科夫链特征,作为所述结构长短期记忆网络的输入,以构建所述深度神经网络模型。为了实现上述目的,根据本公开的第三方面,还提供了以下技术方案:一种电子设备,其包括处理器和存储器;其中:所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序时,实现本公开第一方面所述的恶意软件同源性分析方法步骤。为了实现上述目的,根据本公开的第四方面,还提供了以下技术方案:一种计算机可读存储介质,其用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行本公开第一方面所述的恶意软件同源性分析方法。本公开实施例提供一种恶意软件同源性分析方法、系统、电子设备及存储介质。其中,该方法包括:获取恶意软件的样本的数据集;从样本的数据集中提取反汇编代码文本以及带属性的控制流程图;基于反汇编代码文本以及带属性的控制流程图,构建深度神经网络模型;通过深度神经网络模型,识别恶意软件的同源性。本公开实施例采用该技术方案,通过深度神经网络模型对恶意软件进行分类,判定恶意软件的归属家族或攻击组织,识别恶意软件之间的同源性,以检测恶意代码的相似性,进而实现对恶意软件相似性的分析,可以识别新的、未知的恶意软件的同源性,挖掘其背后的组织信息,从而可以快速地定位攻击来源或攻击者,以便于可采取更快速、更准确的防治方法,进而可以帮助安全专家构建完整的攻击场景,而且可以跟踪攻击者。这样,攻击来源或攻击者可以产生一定的震慑打击作用,具有遏制黑客攻击、完善网络安全保障体系的重要作用和价值。当出现新的恶意软件时,可快速定位攻击来源或者攻击者,对攻击者产生一定的震慑打击作用,具有遏制黑客攻击、完善网络安全保障体系的重要作用和价值。当然,实施本公开的任一产品不一定需要同时实现以上所述的所有优点。为了能更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为让本公开的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而得以体现。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。所要求保护的主题不限于解决在
背景技术
中提及的任何或所有缺点。附图说明为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,附图作为本公开的一部分,用来对本公开作进一步的理解。下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:图1为根据一示例性实施例的、本公开实施例提供的恶意软件同源性分析方法的应用场景的示意图;图2为根据一示例性实施例的、图1中mcrab原型系统的部署方案的流程图;图3为根据一示例性实施例的、恶意软件同源性分析方法的流程示意图;图4为根据一示例性实施例的、控制流程图的示意图;图5为根据一示例性实施例的、与图4所示控制流程图对应的、带属性的控制流程图的示意图;图6为根据一示例性实施例的、反汇编代码文本的示意图;图7为根据一示例性实施例的、从反汇编代码至slstm之间的处理过程示意图;图8为根据一示例性实施例的、恶意软件同源性分析系统的结构示意图。上述附图和文字描述并不旨在以任何方式来限制本公开的保护范围,而是通过参考特定实施例,以向本领域技术人员说明本公开的概念。并且,任一附图中的标记和文字仅仅是为了更清楚地说明本公开,不应视为对本公开保护范围的不当限定。具体实施方式下面通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合而形成技术方案。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。本公开的示意性实施例及其说明可以用于解释本公开,但不构成对本公开保护范围的不当限定。首先,对本文涉及到的术语进行详细说明。恶意代码是指在一定环境下执行的、对计算机系统或网络系统机密性、完整性、可用性产生威胁,且具有恶意企图的代码序列,其类别包括计算机病毒、蠕虫、木马、僵尸网络、勒索软件等。恶意代码已经成为网络犯罪分子发动网络安全攻击的利器,并已经成为威胁互联网安全的关键因素之一。恶意软件同源性分析是指:检测任意两个恶意软件中的恶意代码是否通过同一个作者或组织进行编写。接下来,对本公开实施例提供的恶意软件同源性分析方法的应用场景进行简要说明。图1示例性地示出了该应用场景的示意图。这里,在应用本公开提供的方法之前,还可以基于成熟的知识库进行预训练。如图1所示,该应用场景包括:威胁事件101、反病毒引擎102、威胁指示器特征(ioc特征)103、mcrab(恶意软件关联分析系统)原型系统104、领域专家105和关联分析报告106。图2示例性地示出了图1中mcrab原型系统的部署方案的流程图。图2所示流程图中包括:威胁情报数据集201、apt(advancedpersistentthreat,高级持续性威胁)样本数据集202、原始特征的提取203、控制流图204、函数控制流图数据集205、函数文本特征数据集206、特征向量化207、具有n个元素的函数向量(例如,(0.53,-0.12,.......0.25))2071、分类模型208、apt组织分类209、网络攻击样本210、预测攻击组织211。图2所示流程主要包括:采集大量apt攻击事件中的恶意软件样本;提取恶意软件样本中对应的原始特征;构建对样本进行分类的模型等等。其中,针对提取的样本的特征来构建对应模型,完成对apt组织样本的分类建模,通过建好的模型可以对新一批的样本进行预测,为安全专家分析人员提供预判性的指导。新一批被专家确认的样本再次投入到数据集中更新数据集,使得模型可以更好地迭代式地学习到样本的特征,增加模型预测的精确度,降低系统的误报率。当发生新的apt攻击事件时,病毒引擎首先对样本进行分析。如果有强大的ioc情报,如:ip地址、域名、url等可以确定apt攻击背后的组织,就直接判定样本对应的apt组织;反之,如果不存在ioc信息的情况下,可以使用mcrab系统来预测和判断恶意软件样本和apt组织之间的相关性,其预测结果作为指导安全领域专家做出预判的方法之一。最后,会结合安全专家意见得到一份恶意软件样本与攻击组织的关联分析报告。目前,针对恶意软件相似性分析的方法主要包括静态相似性分析法和动态相似性分析法。下面分别对静态相似性分析法和动态相似性分析法进行简要说明。静态相似性分析法根据恶意软件中恶意代码的静态信息来进行相似性分析。kinable等人对恶意代码中的系统调用图进行静态分析,基于图的匹配比较来对恶意代码的相似性进行分析,之后对恶意软件家族进行分类。shankarapani等人提出利用序列比对方法,计算静态winapi(视窗应用程序接口)调用序列之间的序列相似性,借助相似性大小来识别恶意代码变种。m.alazab等人静态分析了恶意代码,提取可以根据它调用和测量相似性的api(应用程序接口)列表。这些方法已经提出了用于比较恶意代码相似性的不同解决方案。然而,静态相似性方法在分析混淆和加壳的代码时容易出错。这就导致了静态相似性分析法对恶意软件的分析不够准确。动态相似性分析法根据恶意软件中恶意代码的动态行为来进行相似性分析。park等人通过对恶意软件行为方式进行动态捕获的方法,将行为方式构建成行为的系统调用图,再基于这样的系统调用图对其进行分类,来研究恶意代码的相似性。taejin等人介绍了基于n-gram(一种语音识别技术中的语言模型)和聚类系数自动检测恶意软件突变体,并自动将恶意软件分到不同类型的技术。王帅等人提出了一种利用内存模糊进行二进制代码相似性分析的新方法。动态相似性分析法解决了在静态相似性分析方法中遇到的混淆样本和加壳代码的问题,但并没有充分利用动态行为的特征,由此很容易会被恶意代码通过系统调用重排和加入垃圾调用等方法来增加动态行为序列的差异,而现有的对动态行为序列和控制流程图比较的方式又不能解决这个问题。这就导致了动态相似性分析法在进行相似性比较时,会产生较大的误差。因此,动态相似性分析法也无法准确地分析恶意软件。当出现新的恶意软件时,如果可以及时地有针对性地对其进行处理与防治,会降低其造成的恶意影响,例如对一个恶意软件可以快速判定它与已知样本的同源关系,进而推测可疑恶意样本的家族和所属apt组织,这有利于快速准确地找到应对的方法。鉴于此,为了解决如何提高恶意软件相似性分析的准确性的技术问题,本公开实施例提供一种恶意软件同源性分析方法。如图3所示,该方法主要包括以下步骤s300至步骤。其中:s300:获取恶意软件的样本的数据集。在实际应用中,可以从公开威胁情报中收集恶意软件样本或apt攻击样本,形成恶意软件样本数据集。例如:可以从10个apt组织的约4053个样本中提取出364626个自定函数作为恶意软件样本的数据集。其中,公开威胁情报的数据来源可以是开源的黑名单或安全咨询类网站上的信息等。公开威胁情报可以包括apt(advancedpersistentthreat),高级持续性威胁)攻击事件的组织名称和样本相应的哈希值。根据哈希值可以获得与apt攻击事件的组织名称对应的样本文件。例如,可以根据哈希值,在可疑文件分析服务的网站(例如,virustotal)上进行检索,从而可以获得与apt攻击事件的组织名称对应的样本文件。s310:从样本的数据集中提取反汇编代码文本以及带属性的控制流程图。其中,每个恶意软件样本具有其自定义函数。在实际应用中,可以通过交互式反汇编器(interactivedisassemblerprofessional,idapro)来获取每个自定义函数的控制流程图(controlflowgraph,cfg),然后再从控制流程图中提取反汇编代码。这里,将控制流程图和反汇编代码作为原始特征。其中,控制流程图中的节点(或者程序中的一条语句)表示一个块。通过控制流程图可以确定执行过程中各个块之间的相互关系、动态执行状态、块所对应的的执行步骤、块的执行次数和执行时间等。原始特征代表了各个恶意软件之间的重要特征。具体地,步骤s310可以包括如下步骤s311至步骤s314。其中:s311:获取恶意软件的样本的控制流程图。具体地,本步骤可以通过交互式反汇编器,来获取恶意软件的样本的控制流程图。图4示例性地示出了控制流程图的示意图。s312:从控制流程图中提取反汇编代码。s313:根据控制流程图中的执行路径,将反汇编代码形成反汇编代码文本。其中,反汇编代码文本可表示恶意软件样本的自定义函数。在一个可选的实施例中,在步骤s313之后,恶意软件同源性分析方法还可以包括:对反汇编代码文本进行规范化。例如,对文本中的标记变量名和内存地址进行统一等。通过对文本的规范化,可以提高后续分类的准确率和召回率。在一个可选的实施例中,在步骤s313之后,恶意软件同源性分析方法还可以包括:对反汇编代码文本进行向量化。其中,可以通过word2vec向量化方法对对反汇编代码文本进行向量化。s314:对控制流程图中各块中的内容,按照预定的属性进行统计,得到带属性的控制流程图。其中,带属性的控制流程图(attributedcontrolflowgraph,简称acfg)是一种属性图。该属性图具有点和边的连接关系。其中,预定的属性包括但不限于字符串常量数、内存操作指令数、转移指令数、call指令数、总指令数和算数指令数。这里,预定的属性作为控制流程图的特征表示。具体地,本步骤可以利用交互式反汇编器对控制流程图中各块中的内容,按照预定的属性进行统计,来得到带属性的控制流程图。图5示例性地示出了与图4所示控制流程图对应的、带属性的控制流程图的示意图。如图5所示,对控制流程图中每个块的内容进行统计后,得到的带属性的控制流程图是由六个向量组成的。在本实施例中,根据恶意软件自定义函数的控制流程图,通过交互式反汇编器,形成长语句。在非循环路径上每三个代码块中,编译反汇编代码。根据控制流程图的执行路径,可以将每三个块中的反汇编代码,形成一段表示反汇编代码文本。图6示例性地示出了反汇编代码文本的示意图。s320:基于反汇编代码文本以及带属性的控制流程图,构建深度神经网络模型。其中,深度神经网络模型可以利用cnn(卷积神经网络)和slstm(结构长短期记忆网络)联合实现。本步骤通过深度神经网络模型来学习不同恶意软件中恶意代码的特征表示。该深度神经网络模型通过学习恶意软件样本的特征表示而训练得到。图7示例性地示出了从反汇编代码至slstm之间的处理过程示意图。如图7所示,将反汇编代码转换为输入矩阵;然后将该输入矩阵进行特征映射;接着,将特征映射的结果转换为窗口特征序列;再将该窗口特征序列进行acfg向量化;最后将窗口特征序列和acfg向量化后的结果输入slstm中。具体地,步骤s320可以包括步骤s321至步骤s323。其中:s321:对带属性的控制流程图进行向量化,得到图嵌入向量特征表示。例如,利用stru2vec向量化方法对带属性的控制流程图进行向量化,从而可以得到图嵌入向量特征表示。图嵌入向量特征表示可视为向量空间中具有同等结构的控制流程图的特征表示。因为带属性的控制流程图具有点和边的连接关系。所以,通过将点和边的连接关系作为stru2vec向量化方法的输入,从而可以得到图嵌入向量特征表示。sa1:选择带属性的控制流程图的块级属性(例如:内存操作指令数、转移指令数、call指令数、总指令数和算数指令数等)。sa2:利用构造顶点紧邻集合的方法,结合带属性的控制流程图的块级属性,对带属性的控制流程图进行向量化,得到图嵌入向量特征表示。s322:从反汇编代码文本中,提取一阶马尔科夫链特征。具体地,本步骤可以包括:通过卷积神经网络从反汇编代码文本中提取一阶马尔科夫链特征。该一阶马尔科夫链特征为acfg的图结构特征表示,也即n-gram语言模型的特征,或者称为高级窗口特征表示。sb1:通过下式确定滤波器窗口向量:xi=[xi,xi+1,......xi+k-1];(公式一)式中,xi表示反汇编文本中第i个字的d维向量;k表示过滤器的长度,表示连续单词的数量;i表示每个字的位置;i、d分别取自然数。sb2:通过下式确定图结构特征表示中每个元素的特征映射:ci=f(w×xi+b);(公式二)式中,ci表示图结构特征表示中每个元素的特征映射,也即使用第i个过滤器生成的特征图;f(·)表示非线性函数,例如:sigmoid函数、双曲正切函数等;b表示偏差项,优选地,将线性整流函数作为非线性函数,用作激活函数,可以使得卷积神经网络自行引入稀疏性。这等效于无监督学习的预训练。sb3:通过下式进行向量化,生成acfg的图结构特征表示:c=[c1;c2;......cn];(公式三)式中,c表示acfg的图结构特征表示,n表示过滤器的数量。s323:将所述图嵌入向量特征表示和所述一阶马尔科夫链特征,作为结构长短期记忆网络的输入,以构建深度神经网络模型。这里,可以将每个时间t的结构长短期记忆网络模型单元定义为中的向量集合:一个输入门it、遗忘门ft、输出门ot、存储单元ct、隐藏状态ht和偏差项。其中,d表示结构长短期记忆网络模型单元的数量。acfg可以表示为:g=<v,e>。其中,v表示顶点的集合;e表示边的集合。v中的每个元素v可以具有附加特征:xv。xv对应于acfg中的基本块特征。步骤s323具体可以包括:sc1:计算带属性的控制流程图中各顶点的特征。举例而言,本步骤可以计算顶点v的p维特征μv。sc2:将带属性的控制流程图中各顶点嵌入的集合,作为嵌入向量。例如:本步骤可以将g的嵌入向量μg计算为顶点嵌入的集合,即:sc3:将嵌入向量表示为结构向量。sc4:将结构向量添加到输入门、遗忘门、存储单元和输出门中。具体而言,本步骤可以通过下式来实现:it=σ(wixt+uiht-1+vict-1+bi+pis);(公式四)ft=σ(wfxt+ufht-1+vfct-1+bf+pis);(公式五)ot=σ(woxt+uoht-1+voct-1+bo+pis);(公式六)ht=ot⊙tanh(ct);(公式九)式中,t表示时间;xt表示当前时间步;σ表示激活函数(例如,sigmoid函数),其输出为[0,1];⊙表示数组元素依次相乘;tanh表示双曲正切函数;s表示结构向量,用于表示带属性的控制流程图的结构特征;pi表示固定的向量乘积表示;it表示输入门;ft表示遗忘门;ot表示输出门、ct表示存储单元、ht表示隐藏状态;bi、bf、bo、bc分别表示偏差项。直观地,遗忘门控制擦除存储器单元的每个单元的量,输入门控制每个单元的更新量,并且输出门控制内部存储器状态的曝光。结构长短期记忆网络模型可以处理时间序列数据以学习长期依赖关系,因此选择它作为卷积神经网络模型的下一个输入模型来学习句子中的依赖关系。在结构长短期记忆网络模型中,将softmax(柔性最大化)层添加到隐藏层状态的输出,以进行分类。本公开实施例在构建深度神经网络模型时,由于将结构长短期记忆网络模型用于序列输入,所以,在进行卷积的时候,未在特征映射上应用最大值池化操作来获取最大值,由此可以避免破坏由卷积神经网络提取的图结构特征表示。s330:利用深度神经网络模型,来识别恶意软件的同源性。在本步骤中,通过对图嵌入向量特征表示和一阶马尔科夫链特征的学习,使得深度神经网络模型可以识别出恶意软件中恶意代码的控制流程图,进而通过对控制流程图的识别,而识别恶意软件的同源性,从而准确地识别出各个控制流程图所属的apt组织。假设存在10个apt组织的样本数据;每个样本数据具有标签。通过深度神经网络模型的柔性最大化层就可以计算出10个概率值。这10个概率值代表这个数据属于10个apt组织的概率,最大的那个概率值就是这个数据属于的apt组织。这一过程也称为训练标签过程。这里,将判定训练标签和最初的标定标签的正确数计算定义为深度神经网络模型的分类准确率。所以,通过提高分类准确率,可以提高对恶意软件同源性识别的准确性。表一示例性地示出了10个apt组织的样本数据集。表一:apt组织名称样本数自定义函数数分类标签patchwork482385600hangover586405361stuxnet597394722darkhotel356391603lazarus389413114apt28474388685deeppanda331380656apt10302300787gaza276287048turla260298729共计4053364626表二:如表一所示,从4053个样本中提取了364626个自定义函数。这些自定义函数作为数据集。数据集进一步按8:2分为训练集和测试集,其中使用了10%的训练集进行交叉验证。如表2所示,通过与其他模型的对比,本方法得到很好的准确率。综上所述,本公开实施例通过基于反汇编代码文本以及带属性的控制流程图所构建的深度神经网络模型,对恶意软件进行分类,判定恶意软件的归属家族或攻击组织,识别恶意软件之间的同源性,以检测恶意代码的相似性,进而实现对恶意软件相似性的分析,可以识别新的、未知的恶意软件的同源性,挖掘其背后的组织信息,从而可以快速地定位攻击来源或攻击者,以便于可采取更快速、更准确的防治方法,进而可以帮助安全专家构建完整的攻击场景,而且可以跟踪攻击者。这样,攻击来源或攻击者可以产生一定的震慑打击作用,具有遏制黑客攻击、完善网络安全保障体系的重要作用和价值。在上文中,虽然按照上述的顺序描述了恶意软件同源性分析方法实施例中的各个步骤,本领域技术人员应清楚,本公开实施例中的步骤并不必然按照上述顺序执行,其也可以倒序、并行、交叉等其他顺序执行,而且,在上述步骤的基础上,本领域技术人员也可以再加入其他步骤,这些明显变型或等同替换的方式也应包含在本公开的保护范围之内,在此不再赘述。下面为本公开装置实施例,本公开装置实施例用于执行本公开方法实施例实现的步骤,为了便于说明,仅示出了与本公开实施例相关的部分,具体技术细节未揭示的,请参照本公开方法实施例。在本公开各个装置实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本公开实施例还提供一种恶意软件同源性分析系统。如图8所示,该系统主要包括:获取模块801、提取模块802、构建模块803和识别模块804。其中,获取模块801用于获取恶意软件的样本的数据集。提取模块802用于从样本的数据集中提取反汇编代码文本以及带属性的控制流程图。构建模块803用于基于反汇编代码文本以及带属性的控制流程图,构建深度神经网络模型。识别模块804用于通过深度神经网络模型,识别恶意软件的同源性。在一个可选的实施例中,提取模块802具体用于:获取恶意软件的样本的控制流程图;从控制流程图中提取反汇编代码;根据控制流程图中的执行路径,将反汇编代码形成反汇编代码文本;对控制流程图中各块中的内容,按照预定的属性进行统计,得到带属性的控制流程图。在一个可选的实施例中,构建模块803具体用于:对带属性的控制流程图进行向量化,得到图嵌入向量特征表示;从反汇编代码文本中,提取一阶马尔科夫链特征;将图嵌入向量特征表示和一阶马尔科夫链特征,作为结构长短期记忆网络的输入,以构建深度神经网络模型。在一个可选的实施例中,结构长短期记忆网络包括输入门、遗忘门、存储单元和输出门;上述构建模块803具体用于:计算带属性的控制流程图中各顶点的特征;将带属性的控制流程图中各顶点嵌入的集合,作为嵌入向量;将嵌入向量表示为结构向量;将结构向量添加到输入门、遗忘门、存储单元和输出门中;将图嵌入向量特征表示和一阶马尔科夫链特征,作为结构长短期记忆网络的输入,以构建深度神经网络模型。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统的具体工作过程及其解决的技术问题和取得的技术效果,可以参考前述方法实施例中的对应过程及其解决的技术问题和取得的技术效果,在此不再赘述。另外,本公开实施例还提供一种电子设备,其包括处理器和存储器。其中,存储器用于存放计算机程序。处理器用于执行存储器上所存放的程序时,实现恶意软件同源性分析方法实施例所述的步骤。上述处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(fieldprogrammablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器所执行。在一些示例性的实施例中,该电子设备还可选地包括:外围设备接口和至少一个外围设备。处理器、存储器和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。上述电子设备包括但不限于计算机、智能手机、平板电脑等。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的电子设备的具体工作过程及其解决的技术问题和取得的技术效果,可以参考前述方法实施例中的对应过程及其解决的技术问题和取得的技术效果,在此不再赘述。此外,本公开实施例还提供一种计算机可读存储介质。该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时,使得计算机执行恶意软件同源性分析方法实施例中所述的步骤。该计算机可读存储介质可应用于终端,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现。上述计算机可读存储介质可以包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、只读存储器(rom)、可编程只读存储器(prom)、可擦写可编程只读存储器(eprom)、电可擦写可编程只读存储器(eeprom)、闪存(例如,nor型闪存或nand型闪存)、内容可寻址存储器(cam)、聚合物存储器(例如,铁电聚合物存储器)、相变存储器、双向开关半导体存储器、硅-氧化物-氮化硅-氧化硅-硅(silicon-oxide-nitride-oxide-silicon,sonos)存储器、磁卡或者光卡,亦或是其他任意适当类型的计算机可读存储介质。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的计算机可读存储介质的具体工作过程及其解决的技术问题和取得的技术效果,可以参考前述方法实施例中的对应过程及其解决的技术问题和取得的技术效果,在此不再赘述。以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。需要说明的是,本文中涉及到的流程图和/或框图不仅仅局限于本文所示的形式,其还可以进行划分和/或组合。还需要指出的是,在本公开的系统和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。本说明书中的各个实施例均采用相关的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。本领域技术人员在考虑说明书及这里公开的具体实施方式后,会容易想到本发明的其它实施方案。本公开旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开所未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正保护范围由权利要求指出。以上所述仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。凡在本公开的精神和原则之内所作的任何修改、等同替换、改进、改变、添加和子组合等,均包含在本公开的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1