掌桥专利:专业的专利平台
掌桥专利
首页

用于检测恶意软件的装置和方法

文献发布时间:2023-06-19 13:27:45


用于检测恶意软件的装置和方法

技术领域

通常,以下描述涉及能够执行计算机程序的电子设备领域。更具体地,以下描述涉及用于提供恶意软件检测的装置和方法。

背景技术

现代计算机和具有计算能力的设备(例如,移动电话、汽车和家用电器)通常能够执行第三方计算机应用程序。这使第三方能够改进设备并提供原始制造商未提供的体验。例如,对于手机,游戏是通过第三方应用程序改善手机用户体验的非常普遍的示例。第三方应用程序可能与用户的需求有关,并且可能仅出于娱乐目的。在另一个示例中,第三方应用程序可以直接涉及例如以更新固件代码的形式或类似的形式改进设备。

许多现代设备连接到互联网,通常也连接到电信网络,以便它们能够传输消息。这不仅为改进提供了方便,同时也可能引起故障和恶意行为,因为未经授权的第三方可能会通过提供恶意的软件出于自身目的使用通过网络连接的设备。

因此,有必要提供可靠的第三方应用程序来源。但是,应用程序的数量增长非常迅速,不可能通过传统方式检测所有恶意的软件(也称为恶意软件)。传统方式包括检查源代码等。此外,依赖受信任的提供程序并不总是足够的。计算机程序可能被伪装成来自受信任的提供程序,或者受信任的提供程序可能已被黑客攻击,并且该产品与恶意软件结合。通常,终端用户很难检测到恶意软件,因为这些恶意软件常常试图秘密行动。此外,由于恶意软件生产者知道试图伪装其软件的常见方法,因此要确定恶意软件并不容易。

已经引入了不需要任何用户交互的恶意软件检测系统。这些恶意软件检测系统通常分析计算机程序的伪装源代码,并试图找到由恶意软件引起的模式。另一种可能性是例如通过使用基于神经网络的分类器直接分析包括编译的计算机程序的文件。这些系统可以引入终端用户设备,也可以集中在网络中。

发明内容

公开了用于确定计算机程序是否为恶意软件以及它属于哪个恶意软件类别的装置和方法。在所述方法中,通过观察所述程序的活动来跟踪计算机程序的行为。然后,包括计算机程序的API调用或类似活动的行为序列提供给分类器,用于对计算机程序进行分类。根据所述分类器的结果中,分类结果和所述行为序列中与所述分类器所做的决策相关的部分可以提供给用户,以供进一步确认。

根据第一方面,提供了一种用于检测恶意软件的方法。所述方法包括:导出计算机程序的行为序列,其中,所述行为序列基于所述计算机程序的活动;对所述导出的计算机程序的行为序列进行分类;根据分类结果,确定是否需要向专家提供所述行为序列;作为对肯定确定的响应,将所述分类结果和与所述分类结果相关的所述行为序列的子序列输出给所述专家;根据所述分类,确定所述计算机程序是否为恶意软件。有利的是,确定行为序列的哪些子序列或部分与分类结果实际相关。当专家验证分类结果时,有利的是,只向专家提供行为序列中与分类结果相关的部分。因此,专家能够专注于分析行为序列的重要部分。确定重要部分使得要分析的行为序列的数据内容显著减少。

在所述第一方面的一种实现方式中,所述方法还包括:接收意见,作为对所述输出给所述专家的响应;将所述接收到的意见作为反馈提供给分类器。当分类结果和行为序列的重要部分已提供给专家时,有利的是,将从专家那里接收的响应用作分类器的训练材料。这特别有益,因为训练材料被确认为是真实的。

在所述第一方面的另一种实现方式中,所述方法还包括:使用基于神经网络的分类器进行分类,其中,所述基于神经网络的分类器包括注意力机制。有利的是,使用基于神经网络的分类器,因为这些分类器在基于机器学习的分类中快速且非常可靠。此外,注意力机制可以高效地用于确定对确定分类结果重要的部分。

在所述第一方面的另一种实现方式中,所述方法还包括:从所述行为序列中提取k-gram;将所述提取的k-gram输入到所述分类器;使用所述注意力机制从所述提取的k-gram中选择多个k-gram;将分类结果和所述选择的k-gram作为输出提供给所述专家。有利的是,使用k-gram(一种处理序列类型数据中广泛使用的技术),因为所述k-gram可以在高效地减少计算的同时,仍然捕获数据中包含的大部分信息。

在所述第一方面的另一种实现方式中,所述方法还包括:使用所述提取的k-gram中的每一个k-gram训练所述分类器。有利的是,使用所有提取的k-gram训练分类器,以便使训练材料更完整。

在所述第一方面的另一种实现方式中,所述方法还包括:为每个k-gram分配注意力权重;使用预先计算的注意力权重集合聚合所述注意力权重;在所述输出中向所述专家提供分类结果和注意力权重高于预定阈值的k-gram。使用注意力权重并将其与阈值进行比较,提供了一种高效的方法来选择对分类结果实际重要的k-gram。

在所述第一方面的另一种实现方式中,所述对所述行为进行分类的步骤还包括:将所述行为序列输入到所述基于神经网络的分类器的递归神经网络中;将所述递归神经网络的输出与所述注意力机制的输出组合;将所述组合的输出提供给多层感知器;提供分类结果和与所述注意力机制选择的所述递归神经网络输出相对应的行为序列。使用多层感知器提供最终分类结果可提高分类的正确性,因为最终结果是根据基于神经网络的分类器和注意力机制的组合模型。

在所述第一方面的另一种实现方式中,所述导出所述行为序列的步骤包括从外部系统接收所述行为序列。这是有利的,因为可疑的恶意软件不需要在分类环境中执行。这提高了整个系统的安全性,因为恶意软件无法更改分类结果。

在所述第一方面的另一种实现方式中,所述外部系统是沙箱装置。这是有利的,因为恶意软件无法传播到生产或日常生活中使用的系统。此外,这是有利的,因为沙箱装置可以很容易地清理。因此,如果恶意软件感染了用于生成行为序列的沙箱环境,则很容易清理,以使得后续分析也是可靠的,因为环境不会被可能导致错误结果的另一个恶意软件感染。

在所述第一方面的另一种实现方式中,所述行为序列包括由所述计算机程序执行的API调用列表。这是有利的,因为API调用非常好地描述了计算机程序活动,API调用增加可能与正常和恶意活动相关联。例如,恶意活动可能是过度使用网络连接或处理器。

在所述第一方面的另一种实现方式中,分类结果包括分类为恶意软件和非恶意软件,在恶意软件的情况下,所述分类还包括将恶意软件分类为特定恶意软件族。确定恶意软件的类别也是有利的,因为不同的类别具有不同的行为类型。了解恶意软件的类别可以提高分类结果的可靠性,并为系统操作员提供预防恶意软件的工具。

根据第二方面,提供了一种用于检测恶意软件的计算机程序。所述计算机程序包括计算机程序代码,其中,所述计算机程序代码用于:当所述计算机程序代码在计算设备中执行时,使得执行上文所述的方法。有利的是,有可能将所述方法实现为计算机程序,以便它可以在通用计算机中执行。

根据第三方面,公开了一种用于确定恶意软件的装置。所述用于确定恶意软件的装置包括至少一个处理电路,所述至少一个处理电路用于使得执行上文所述的方法。使用用于执行所述方法的装置是有利的,因为所述装置可以专门为执行所述方法而准备。

上述公开的方法、计算机程序和装置的优点是,例如可以由注意力模块操作的选择使得能够识别负责分类器的最终决策的序列的关键元素。对与恶意软件预测相关的执行跟踪(例如,API调用)进行分类,以便提取的子序列可以帮助专家了解分类结果,如果分类结果合格,则专家可以向分类系统提供反馈,以提高分类系统的性能。与传统方法相比,这种选择具有对交叉熵损失使用反向传播和梯度下降以监督方式学习的理想优势。

上述和其它目的是通过由独立权利要求请求保护的主题来实现。其它实现方式在从属权利要求、具体实施方式和附图中是显而易见的。

本说明书中讨论的原则可以在硬件和/或软件中实现。

附图说明

将结合以下附图描述其它示例性实施例,其中:

图1示出了用于检测恶意软件的布置的示例性框图;

图2示出了基于神经网络的分类器的示例性流程图;

图3示出了注意力模块的详细示例。

在以下附图中,使用相同的附图标记表示相同的或至少功能等同的特征。

具体实施方式

以下结合附图进行描述,所述附图形成本发明的一部分,并通过图解说明的方式示出可以实施本发明的装置和方法的具体方面。应理解,在不脱离权利要求书的范围的情况下,可以利用其它方面,并且可以进行结构或逻辑更改。因此,以下详细描述不应被理解为限制性的。

例如,应当理解的是,与描述方法有关的公开内容可以对用于执行所述方法的对应设备或系统也同样适用,反之亦然。例如,如果描述了一个具体的方法步骤,则对应的设备可以包括一个单元来执行所述描述的方法步骤,即使附图中未明确描述或说明这样的单元。另外,应当理解,除非另外明确说明,本文中描述的各种示例性方面的特征可以相互组合。

图1公开了包括三个计算实体100、110、120的布置。三个计算实体各自包括适合执行计算机程序的电路101、111、121。电路通常包括一个或多个用于执行计算机程序的处理器。电路还包括至少一个用于存储计算机程序和相关数据的存储器。电路通常还包括网络连接,计算设备可以使用该网络连接而连接到互联网。计算实体通常是具有操作系统和特定软件的普通通用计算机,这些软件用于执行以下示例中描述的功能。可以使用可以被认为是等效的设备(例如,移动电话)代替通用计算机。此外,类似的原理也可以用于分析特殊用途设备的软件,但是,恶意软件在普遍的通用设备中更常见。

在图1的布置中,计算设备100是沙箱环境。沙箱是一种计算设备(例如,普通计算机),其可以是物理的,也可以是虚拟的。沙箱与普通计算机的不同之处在于,它通过限制软件可以做的活动来确保安全。这样做的目的是防止恶意软件在沙箱环境之外分发。沙箱用于导出计算机程序的行为序列。当需要验证计算机程序时,它将在沙箱环境中执行。沙箱环境100包括另一个计算机程序,该计算机程序用于跟踪经验证的程序的行为。例如,可以监控和存储经验证的程序的所有API调用,以便在另一个计算设备中进一步分析它们。可以监控例如网络访问或其它硬件资源(例如,手机的摄像头或麦克风)的使用,而不是监控API调用。存储的行为序列表示经验证的程序的活动。因此,如果程序是恶意软件,并意图以不希望的方式使用计算设备,则行为序列包括不希望的活动的代表性样本。API调用被理解为通过应用程序编程接口完成的调用,该应用程序编程接口本质上是一个或多个计算机程序发送和接收来自其它计算机程序、操作系统、程序代码库等的消息的机制。例如,计算机程序可以通过API请求对网络设备、硬盘驱动器等的访问。作为响应,提供所请求的数据。由于API调用用于访问设备资源,因此可以确定哪些是正常的,哪些是异常的。例如,如果程序正在广泛访问硬盘和网络接口,则程序可能正在执行不正常的操作,并且发出这些请求的程序可能出于恶意意图执行此操作。

在图1中,计算设备110是分析计算机设施,该分析计算机设施从充当沙箱的计算设备100中导出行为序列。计算设备110可以连接到若干沙箱计算机或虚拟沙箱实体,用于接收要分析的行为序列。计算设备110也可以接收来自其它来源(例如已存储行为序列的数据库)的行为序列。计算设备110运行基于神经网络的分类器,该分类器对接收到的行为序列进行分类。分类器是基于机器学习的分类器,可以将经验证的分类结果用作进一步的训练材料。这种基于机器学习的分类器的一个示例是下面详细解释的基于神经网络的分类器。计算设备110可以与沙箱100具有类似的类型。但是,这并不是必要的。例如,如果使用基于神经网络的分类器,则可以使用专门为执行神经网络应用程序而设计的计算资源。由于计算设备110仅用于分析,因此它不需要能够执行恶意软件。

计算设备120是专家使用的外部系统。计算设备120接收来自计算设备110的请求,并将其显示给用户。用户是恶意软件和计算机行为方面的专家,可以对请求做出决策。该请求包括行为序列的子序列和初始分类结果。专家可以根据接收到的子序列决策分析的计算机程序是否为恶意软件。所做出的决策可以作为反馈而反馈给基于神经网络的分类器或任何其它基于机器学习的分类器。计算设备120可以是能够与其它设备通信,具体地与计算设备110通信,并且能够向专家显示行为子序列和分类结果的任何类型的计算设备。此外,专家必须能够向计算设备120提供反馈。

图2公开了根据恶意软件分类示例的方法。在方法开始时接收的输入包括计算机程序的行为序列。行为序列导出为上文所述的计算机程序的执行跟踪。执行跟踪包括选择的活动,并记录在沙箱环境中。

在可以使用图2的示例之前,需要对示例中用于分类的递归神经网络进行训练。这可以通过为递归神经网络提供一个大型恶意软件示例数据库作为训练材料来实现。训练材料可以包括若干不同类型的恶意软件和非恶意软件,以便作为机器学习分类器的示例的递归神经网络可以被训练为用于分类执行跟踪和选择用于恶意软件检测的重要子序列的模型。训练可以是(并且通常是)在普通使用期间补充的。目前的安排也是如此,特别是专家反馈被用作训练材料。

当递归神经网络被训练后,可以开始该方法的普通使用。在该方法中,首先,将包括分析程序的行为序列的输入馈送到递归神经网络中,步骤200。

在图2的示例中,示出了基于注意力权重概念的神经网络分类器,用于自动k-gram选择。本质上,首先通过递归神经网络(步骤200)和注意力模块(步骤201)的组合选择重要的k-gram,然后将该重要的k-gram作为输入提供给简单多层感知器、前馈神经网络模块,以创建最终结果步骤202。使用递归神经网络有助于学习每个k-gram的表示,使用注意力权重使我们能够知道哪些k-gram对底层恶意软件分类任务重要。k-gram是从沙箱环境或类似环境导出的行为序列中k个项目的连续序列。这些项目表示API调用或类似调用,从这些调用可以确定计算机程序的行为。

递归神经网络200接收正在分析的程序的行为序列。当对分类进行决策时,递归神经网络通常根据接收到的行为序列的子序列进行确定,该分类决策至少包括确定分析的计算机程序是否为恶意软件,以及通常还确定它属于哪个恶意软件类别。这是因为整个行为序列通常不重要,恶意活动是根据相关章节确定的。下文将解释如何确定相关章节。

在图2的示例中,递归神经网络适用以下情况:对于任何给定的输入序列x=(x

递归神经网络层(也称为嵌入层)接收包括API函数名称的行为序列作为输入,表示为a

在图2中,注意力模块201连接到递归神经网络200,用于接收输入。将注意力模块用于神经网络模型中,以学习如何对不同的张量赋予权重,以便使最终的性能得到提高。此处,算法使用注意力模块自动学习如何为每个k-gram赋予最佳权重,以便在加权平均输出中强调更重要的k-gram,从而为多层感知器部分提供更好的最终决策。参考图3给出了确定权重的详细示例。

注意力模块的焦点并不固定,因此可能会根据所考虑的特定流程而改变。例如,恶意软件可能会因为使用单个安全相关API而被识别,而其它恶意软件可能需要更复杂的分析并且使用更多的API和k-gram。

最后,神经网络执行模型选择,因为注意力模块将选择不同大小的k-gram,并因此决定使用更大或更短的k-gram进行分类,这取决于数据集的大小和输入序列中有用模式的大小。在图2的示例中,这是由多层感知器202和下面的softmax运算符完成的。这些操作应用如下:分类器的最终输出使用具有2维输出的2层多层感知器(multilayer perceptron,MLP)202和softmax运算符203计算,以确保输出值在0与1之间。

图2中公开的布置被理解为仅是一个示例。还可以使用其它神经网络架构、注意力模块和前馈神经网络模块,前提是它们可以用于类似的功能,其中,可以检测相关行为子序列,并可以将基于这些相关行为子序列的决策提供给专家。可以提供使用专家意见的可选可能性,以便可以将确认或拒绝的决策,连同行为序列或至少连同确定为相关的部分一起用作基于机器学习的分类器的训练材料。

图3公开了注意力模块的更详细的示例。在示例中,输入300被馈送到注意力机制301中。注意力机制的结果与softmax运算符302一起用于导出输出303。

分类器(例如图2的基于神经网络的分类器)使用注意力模块,以在线性变换的k图表示上使用softmax运算符对k图表示φ(x

其中,ω(x

注意力权重定义如下。对于每个

由于权重已经导出,因此可以将这些与预定阈值进行比较。超过阈值的权重可提供给专家,因为这些权重被认为是重要的。

如上所解释,上文所述的使用预编码混编的布置可以在移动电话、平板电脑、计算机、电信网络基站或任何其它网络连接设备等硬件中实现,或实现为一种方法。所述方法可以实现为计算机程序。然后,在计算设备中执行所述计算机程序。

所述装置,例如用于在通信网络中传输信号的装置,用于执行上述方法中的一个方法。该装置包括必要的硬件组件。这些硬件组件可以包括至少一个处理器、至少一个存储器、至少一个网络连接、总线等。例如,可以与其它组件共享存储器或处理器,或者从云服务、集中式计算单元或可经由网络连接使用的其它资源访问,代替专用硬件组件。

本文已经结合各种实施例描述了用于在通信网络中传输信号的装置和对应的方法。但是,根据对附图、本发明和所附权利要求书的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现所公开实施例的其它变型。在权利要求书中,词语“包括”不排除其它元件或步骤,术语“一”或者“一个”不排除多个。单个处理器或其它单元可以满足权利要求中所描述的若干项目的功能。在互不相同的从属权利要求中列举某些措施并不表示这些措施的组合不能被有效地使用。计算机程序可存储/分配在合适的介质上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储介质或者固态介质,还可以以其它形式例如通过互联网或者其它有线或无线电信系统分配。

相关技术
  • 恶意软件感染终端的检测装置、恶意软件感染终端的检测系统、恶意软件感染终端的检测方法以及恶意软件感染终端的检测程序
  • 用于检测域生成算法恶意软件和被此类恶意软件感染的系统的系统和方法
技术分类

06120113686972