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

识别恶意软件

文献发布时间:2023-06-19 09:29:07


识别恶意软件

技术领域

本公开涉及识别恶意软件。

背景技术

恶意软件开发者试图在用户设备上安装软件(例如,应用),以使用户设备执行对用户有害的操作。例如,恶意软件在被安装在用户设备上时可能会未经用户同意而从用户窃取敏感数据、跟踪用户设备和/或执行其他欺骗性操作。恶意软件通常称为恶意软件(malware),并且一旦被安装在用户设备上,恶意软件就可以继续在用户设备上发展和/或传播到与该用户设备通信的其他设备。

识别恶意软件通常是猫鼠游戏,其中,一侧不断地追寻总是更新其在用户设备上安装恶意软件的方法以逃避检测的恶意软件作者。通常,恶意软件作者会花费大量精力来开发安装模式,以便在不被检测到的情况下在用户设备上安装恶意软件。尽管人们可以将与先前识别的恶意软件关联的已知应用和/或恶意软件访问的已知域名添加到白名单,但有恶意的作者将会定期改变应用的名称和/或域名,以逃避通过这些白名单进行的检测。

发明内容

本公开的一个方面提供了一种用于识别恶意软件的方法。该方法包括在数据处理硬件处接收软件应用,以及通过数据处理硬件执行该软件应用。该方法还包括通过数据处理硬件识别在软件应用的执行期间软件应用与之交互的多个统一资源标识符,和通过数据处理硬件使用被配置为接收多个统一资源标识符作为特征输入的前馈神经网络生成软件应用的向量表示。该方法还包括通过数据处理硬件确定存储在与数据处理硬件通信的存储器硬件中的一池训练应用(a pool of training applications)的相似性分数,每个相似性分数与对应的训练应用关联并指示软件应用的向量表示与对应的训练应用的相应向量表示之间的相似性的水平。该方法还包括通过数据处理硬件在训练应用中的一个或多个具有满足相似性阈值的相似性分数并包括可能有害的应用标签时,将软件应用标示为属于可能有害的应用类别。

本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,识别多个资源标识符包括识别在软件应用的执行期间软件应用访问的多个域名。前馈神经网络可以包括向量空间模型,该向量空间模型被配置为确定识别的统一资源标识符中的每一个的n维数值向量表示,并通过平均识别的统一资源标识符的n维数值向量表示计算软件应用的向量表示。

在一些示例中,确定一池训练应用的相似性分数包括计算软件应用的向量表示与每个对应的训练应用的相应向量表示之间的相应余弦相似性。软件应用的向量表示可以包括数值的n维向量。该方法还可以包括通过数据处理硬件从存储器硬件检索一池训练应用中的与前k个最高相似性分数关联的训练应用。

在一些实施方式中,该方法还包括通过数据处理硬件识别与一池训练应用中的大多数训练应用关联的可能有害的类别,该大多数训练应用中的每一个具有满足相似性阈值的相似性分数并包括可能有害的应用标签,和通过数据处理硬件将软件应用分配(assign)给所识别的可能有害的类别。分配给软件应用的可能有害的类别可以包括以下之一:恶意下载器应用、网络钓鱼应用、植入木马(Rooting Trojan)应用、间谍软件应用、勒索软件应用、恶意软件应用或特权升级应用。该可能有害的类别的列表并不穷尽,而是可以包括恶意或以其他方式可能有害的任何其他应用。该方法还可以包括:在将软件应用标示为属于可能有害的应用类别之后:通过数据处理硬件从与数据处理硬件通信的用户设备接收下载软件应用的下载请求;和响应于接收下载请求,向用户设备发送警告通知,该警告通知指示软件应用被标示为属于可能有害的应用类别。

本公开的另一方面提供了一种用于识别恶意软件的方法。该方法包括在数据处理硬件处从用户设备接收应用安装模式,该应用安装模式指示安装在用户设备上的n个应用的序列。对于n个应用的序列中的每个应用,该方法还包括:通过数据处理硬件使用被配置为接收每个应用和每个应用在n个应用的序列中的顺序作为特征输入的前馈神经网络模型生成对应的应用的数值向量表示,和通过数据处理硬件基于对应的应用的数值向量表示在自由向量空间中聚类对应的应用。该方法还包括:通过数据处理硬件确定n个应用的序列中的任何应用是否与识别为恶意软件的训练应用聚类在一起,和对于与被识别为恶意软件的训练应用聚类在一起的每个应用,通过数据处理硬件将n个应用的序列中的对应的应用识别为恶意软件。

该方面可以包括以下可选特征中的一个或多个。该方法可以可选地包括,对于被识别为恶意软件的n个应用的序列中的每个应用:通过数据处理硬件将应用标记为属于可能有害的应用类别;和通过数据处理硬件将应用和应用的对应的数值向量表示存储在与数据处理硬件通信的存储器硬件中。为每个对应的应用生成的数值向量表示可以包括密码哈希。

在一些实施方式中,该方法还包括:通过数据处理硬件确定n个应用的序列中的任何应用先前是否被识别为恶意软件;和当n个应用的序列中的应用中的至少一个先前被识别为恶意软件时,通过数据处理硬件将n个应用的序列中的其余应用中的一个或多个识别为恶意软件。前馈神经网络模型可以包括向量空间模型,该向量空间模型被配置为确定安装在用户设备上的n个应用的序列中的每个应用的n维数值向量表示。此外,向量空间模型可以可选地配置为将n个应用的序列中的每个应用在自由向量空间中聚类在具有相似的n维数值向量表示的训练应用附近。该方法还可以包括:在将n个应用的序列中的对应的应用识别为恶意软件之后,向用户设备发送警告通知,该警告通知指示安装在用户设备上的所述对应的应用包括恶意软件。

本公开的另一方面提供了一种用于识别恶意软件的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,该指令在由数据处理硬件执行时使数据处理硬件执行操作,该操作包括接收软件应用,执行软件应用并识别在软件应用的执行期间软件应用与之交互的多个统一资源标识符。该操作还包括使用被配置为接收多个统一资源标识符作为特征输入的前馈神经网络生成软件应用的向量表示,和确定存储在存储器硬件中的一池训练应用的相似性分数。每个相似性分数与对应的训练应用关联并指示软件应用的向量表示与对应的训练应用的相应向量表示之间的相似性的水平。该操作还包括在训练应用中的一个或多个具有满足相似性阈值的相似性分数并包括可能有害应用标签时,将软件应用标示为属于可能有害的应用类别。

该方面可以包括以下可选特征中的一个或多个。在一些实施方式中,识别多个资源标识符包括识别在软件应用的执行期间软件应用访问的多个域名。前馈神经网络可以包括向量空间模型,该向量空间模型被配置为确定识别的统一资源标识符中的每一个的n维数值向量表示,和通过平均识别的统一资源标识符的n维数值向量表示,计算软件应用的向量表示。

在一些示例中,确定一池训练应用的相似性分数包括计算软件应用的向量表示与每个对应的训练应用的相应向量表示之间的相应余弦相似性。软件应用的向量表示可以包括数值的n维向量。该操作还可以包括从存储器硬件检索一池训练应用中的与前k个最高相似性分数关联的训练应用。

在一些实施方式中,该操作还包括识别与一池训练应用中的大多数训练应用关联的可能有害的类别,该大多数训练应用中的每一个具有满足相似性阈值的相似性分数并包括可能有害的应用标签,和将软件应用分配给所识别的可能有害的类别。分配给软件应用的可能有害的类别可以包括以下之一:恶意下载器应用、网络钓鱼应用、植入木马应用、间谍软件应用、勒索软件应用、恶意软件应用或特权升级应用。该可能有害的类别的列表并不穷尽,而是可以包括恶意或以其他方式可能有害的任何其他应用。该操作还可以包括,在将软件应用标示为属于可能有害的应用类别之后:从与数据处理硬件通信的用户设备接收下载软件应用的下载请求;和响应于接收下载请求,向用户设备发送警告通知,该警告通知指示软件应用被标示为属于可能有害的应用类别。

本公开的另一方面提供了一种用于识别恶意软件的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,该指令在由数据处理硬件执行时使数据处理硬件执行操作,该操作包括从用户设备接收应用安装模式,该应用安装模式指示安装在用户设备上的n个应用的序列。对于n个应用的序列中的每个应用,该操作还包括使用被配置为接收每个应用和每个应用在n个应用的序列中的顺序作为特征输入的前馈神经网络生成对应的应用的数值向量表示,和基于对应的应用的数值向量表示在自由向量空间中聚类对应的应用。该操作还包括确定n个应用的序列中的任何应用是否与被识别为恶意软件的训练应用聚类在一起,和对于与被识别为恶意软件的训练应用聚类在一起的每个应用,将n个应用的序列中的对应的应用识别为恶意软件。

该方面可以包括以下可选特征中的一个或多个。该操作可以可选地包括,对于被识别为恶意软件的n个应用的序列中的每个应用:将应用标记为属于可能有害的应用类别;和将应用和应用的对应的数值向量表示存储在与数据处理硬件通信的存储器硬件中。为每个对应的应用生成的数值向量表示可以包括密码哈希。

在一些实施方式中,该操作还包括:确定n个应用的序列中的任何应用先前是否被识别为恶意软件;和当n个应用的序列中的应用中的至少一个先前被识别为恶意软件时,将n个应用的序列中的其余应用中的一个或多个识别为恶意软件。前馈神经网络模型可以包括向量空间模型,该向量空间模型被配置为确定安装在用户设备上的n个应用的序列中的每个应用的n维数值向量表示。此外,向量空间模型可以可选地被配置为将n个应用的序列中的每个应用在自由向量空间中聚类在具有相似的n维数值向量表示的训练应用附近。该操作还可以包括在将n个应用的序列中的对应的应用识别为恶意软件之后,向用户设备发送警告通知,该警告通知指示安装在用户设备上的对应的应用包括恶意软件。

在附图和以下描述中阐明了本公开的一个或多个实施方式的细节。根据描述和附图以及权利要求书,其他方面、特征和优点将是显而易见的。

附图说明

图1是用于识别恶意软件的示例系统的示意图。

图2A-2D是用于识别恶意软件的示例域嵌套过程的示意图。

图3是示例应用安装模式的示意图。

图4是用于识别恶意软件的示例应用嵌套过程的示意图。

图5是将应用嵌套映射到自由向量空间的示例应用聚类图的示意图。

图6是用于识别恶意软件的方法的操作的示例布置的流程图。

图7是用于识别恶意软件的方法的操作的示例布置的流程图。

图8是可以用于实现本文描述的系统和方法的示例计算设备的示意图。

在各个附图中,相似的附图标记指示相似的要素。

具体实施方式

本公开涉及基于来自用户设备的应用安装模式(pattern)和/或在受控环境中执行期间软件应用与之交互的统一资源标识符(URI)来识别恶意软件。URI可以包括统一资源定位符(URL)或域名。应用安装模式指示在对应的用户设备上安装的应用的序列(sequenceof applications)。如本文中使用的,术语“应用的序列”是指哪些应用被安装在用户设备上以及应用安装在用户设备上的顺序。通常,感染了恶意软件的用户设备会在恶意软件通过控制用户设备继续在用户设备上安装恶意软件应用而建立时更改设备上的应用安装模式。另一方面,在用户设备上执行的恶意软件还可以访问特定的URI/与特定URI交互,从而将用户设备连接到恶意服务器,以用恶意软件感染用户设备和/或从用户设备提取用户敏感数据。

本文所述的用于识别恶意软件的技术有助于确保/维持用户设备的完整性和安全性,以避免或减少设备或其中的数据以未经授权的方式被破坏或访问、使用、修改和/或分发的可能性。所提出的技术可以允许发生这种情况,而不会过度影响/干扰与用户设备的用户互动(engagement),并且在识别包括URL或域名的URI的技术的情况下,甚至不必先将应用下载到用户设备。

在一些实施方式中,使用在来自不同用户设备的应用安装模式上训练的神经网络模型来识别恶意软件。神经网络模型可以包括向量空间模型,该向量空间模型确定应用安装模式的全集(corpus)中的对应的应用安装模式中的每个应用在向量空间中的n维数值向量表示。n维数值向量表示可以称为向量空间中的对应的哈希或嵌套。在训练期间,向量空间模型基于向量空间中的n维数值向量表示自动将应用聚类,使得应用的每个聚类可以指示/标识对应的应用类别。例如,新闻应用可以被聚类在一起、社交媒体应用可以被聚类在一起,并且不同类型的恶意软件可以被聚类在一起。有利地,当向量空间模型将新的或未知的应用聚类到与先前识别的恶意软件关联的类别中时,强烈假设该新的或未知的应用也是恶意软件。此外,当先前已将给定安装模式中的应用识别为恶意软件时,向量空间模型可以将该同一安装模式中的其他应用识别为可能尚未被识别的恶意软件的新变体。

在其他实施方式中,在不同软件应用与之交互的URI上训练神经网络模型以识别恶意软件。URI可以包括与在受控执行环境中执行时不同软件应用访问的域名关联的URL。例如,当开发者发布软件应用时,仿真器可以在受控执行环境中执行该软件应用,并识别软件应用执行期间该软件应用与之交互的URI(例如,域名)。在一些示例中,神经网络模型包括向量空间模型,该向量空间模型被配置为确定每个识别的URI(例如,域名)在向量空间中的n维数值向量表示,并通过平均识别的URI的n维数值向量表示来计算软件应用的向量表示。在训练期间,向量空间模型确定一池训练应用的向量表示,并基于向量表示自动对训练应用进行聚类,使得应用的每个聚类可以指示/标识对应的应用类别。有利地,通过基于与新的或未知的应用关联的URI的对应的n维数值向量表示来表示该新的或未知的应用,可以将该新的/未知的应用分配到一类别,该类别与由与其他应用关联的URI的相似的n维数值表示所表示的那些应用关联。因此,当新的或未知的应用落入包括先前被标记为可能有害的其他应用的类别时,可以将它们标示为可能有害。

参考图1,在一些实施方式中,示例系统100包括经由网络120与远程系统110通信的开发者设备102和客户设备104。开发者设备102可以与将软件应用210发布到远程系统110上的开发者10关联,并且客户设备104可以与可以从远程系统110下载发布的软件应用210的客户12关联。远程系统110可以是具有可缩放/弹性计算资源112(例如,数据处理硬件)和/或存储资源114的分布式系统(例如,云环境)。在一些实施方式中,远程系统110的计算资源112执行恶意软件识别器150,该恶意软件识别器150接收由开发者设备102发布的软件应用210和/或接收指示安装在客户设备104上的应用210的序列的应用安装模式300。在一些示例中,应用210与移动应用对应。远程系统100可以与数据存储装置(例如,存储器硬件)180通信。

在一些实施方式中,数据处理硬件112的恶意软件识别器150实现仿真器160,该仿真器160被配置为在安全执行环境中执行从开发者设备102接收的软件应用210并识别在软件应用210的执行期间软件应用210与之交互(即,访问)的一个或多个统一资源标识符(URI)220。如在本文中使用的,URI可以指域名220或与相应域名关联的统一资源定位符(URL)220。仿真器160可以包括能够在安全执行环境中执行软件应用210的一个或多个测试设备。测试设备可以包括虚拟设备和/或实体设备。

另外,数据处理硬件112的恶意软件识别器150利用可以使用URI 220作为特征输入而被训练的神经网络模型170。训练URI 220可以与同训练URI 220交互的一池训练应用210关联,使得神经网络模型170计算每个URI 220在自由向量空间中的数值向量表示250(例如,域嵌套),然后通过平均对应的URI 220的数值向量表示生成每个训练应用210的对应的向量表示260(例如,应用嵌套)。神经网络模型170可以将URI 220的数值向量表示250和训练应用210的向量表示260存储在数据存储硬件180中。

在一些示例中,使用来自不同客户设备104的应用安装模式300作为特征输入来训练神经网络模型170。每个训练应用安装模式300指示安装在对应的客户设备104上的n个应用210的对应的序列。在这些示例中,神经网络模型170被配置为计算对应的训练应用安装模式300中的每个应用210在自由向量空间中的数值向量表示350,并基于对应的数值向量表示350将每个应用210在自由向量空间中聚类。数值向量表示350也可以称为应用嵌套350。神经网络模型170可以将从客户设备104接收的训练应用安装模式300的应用210的数值向量表示350存储在数据存储装置180中。在一些实施方式中,每个数值向量表示350(域嵌套)被表示为不能被解密回的密码哈希值。例如,每个应用嵌套350可以包括从安全哈希算法(SHA)(诸如生成256位(32字节)哈希的SHA-256算法)获得的对应的密码哈希。在一些示例中,神经网络模型170确定每个应用安装模式300的对应的向量表示360,其包括多个哈希,每个哈希与表示安装在客户设备104上的对应的应用210的对应的应用嵌套350关联。向量表示360中的哈希按应用安装日期排序,使得向量表示360中的第一哈希识别安装在客户设备104上的n个应用210的序列中的第一应用210。

参考图2A-2D,在一些实施方式中,数据处理硬件112的恶意软件识别器150执行域嵌套过程200以识别恶意软件。图2A示出接收训练应用210、210T、210a-n的全集202的过程200。仿真器160在安全执行环境中执行每个应用210,并识别在对应的应用210的执行期间每个应用210与之交互的一组URI 220。在所示示例中,URI 220包括域名。在其他示例中,URI 220可以包括可以转换为相应域名的统一资源定位符(URL)。神经网络模型170a可以包括域向量空间模型170a,该域向量空间模型170a接收与给定应用210关联的一组识别的域名220(例如,www.google.com和www.youtube.com)作为特征输入并确定每个域名220的n维数值向量表示250(例如,域嵌套)。在一些示例中,每个域嵌套250与自由向量空间中的100维数值向量表示关联。在所示示例中,域向量空间模型170a输出每个域名220和对应的域嵌套250之间的映射(例如,哈希映射)204。

在一些示例中,每个域嵌套250被表示为不能被解密回的密码哈希值。例如,每个域嵌套250可以包括从安全哈希算法(SHA)(诸如生成256位(32字节)哈希的SHA-256算法)获得的对应的密码哈希。域向量空间模型170a还可以通过平均对应的域名220的域嵌套250来确定每个训练应用210T的向量表示260。每个域名220和域嵌套250之间的映射(例如,哈希映射)204以及每个应用210T的向量表示260T可以存储在数据存储装置180中。

参考图2B,域嵌套过程200示出仿真器160在安全执行环境中执行软件应用(App1)210a,并识别应用210a执行期间应用210a与之交互的多个域名220a。在所示示例中,仿真器160将识别的域名220a提供给域向量空间模型170a,并将查询212发送到结果管理器230,以基于识别的域名220查询应用210a是否属于可能有害的类别240、240b和/或包括恶意软件。在一些示例中,仿真器160提供URL 220a,并且域向量空间模型170a和/或结果管理器230将接收的URL 220a转换为相应的域名(例如,www.google.com和www.youtube.com)。

域向量空间模型170a被配置为接收识别的域名220a作为特征输入,并确定每个域名220a的n维数值向量表示250、250a(例如,域嵌套)。n维数值向量表示250可以包括自由向量空间内的100维数值向量表示。域向量空间模型170a可以将每个识别的域名220a的n维数值向量表示250a存储在数据存储装置180的域嵌套存储装置180a中。例如,域向量空间模型170a可以存储每个识别的域名220a和对应的n维数值向量表示250a之间的相应映射(例如,哈希映射)204a。在一些实施方式中,域向量空间模型170a通过平均对应的识别的域名220a的n维向量表示来生成应用(App 1)210a的对应的向量表示260a(例如,聚合应用嵌套)。在所示示例中,域向量空间模型170a将应用210a的对应的向量表示260a存储在数据存储装置180的应用嵌套存储装置180b中。因此,域向量空间模型170a连续接收应用210作为新的训练数据以用于聚类应用210来识别恶意软件。训练应用210a和对应的向量表示260a可以用于每天更新域向量空间模型170a。

在所示示例中,响应于接收包括识别的域名220a的查询212(或接收用于转换成相应域名的URI/URL),结果管理器230从域嵌套存储装置180a检索每个识别的域名220a的对应的n维数值向量表示250a(即,使用对应的映射204a),并且通过平均所有n维数值向量表示250a来计算应用210a的对应的向量表示260a。可选地,结果管理器230可以替代地从应用嵌套存储装置180b检索由域向量空间模型170a生成的对应的向量表示260a。同时,结果管理器230可以从应用嵌套存储装置180b检索一池训练应用210T的训练向量表示260T。

在一些实施方式中,结果管理器230基于应用210a的对应的向量表示260a和训练向量表示260T来确定一池训练应用210T的相似性分数262。每个相似性分数262与对应的训练应用210T关联,并且指示应用(App 1)210a的对应的向量表示260a与对应的训练应用210T的相应训练向量表示260T之间的相似性(例如,语义相关)的水平。在一些示例中,确定相似性分数262包括计算应用(App 1)210a的对应的向量表示260a与每个对应的训练应用210T的相应训练向量表示260T之间的相应余弦相似性。

在一些示例中,与表示应用(App 1)210a的一组识别的域名220a关联的查询212请求结果管理器230建议与应用(App 1)210a关联的类别240。在此,建议的类别240可以基于一池训练应用210T的相似性分数262指示应用210a属于合法应用类别240a或可能有害的应用类别240b。附加地或可替代地,建议的类别240可以进一步指定与应用210a关联的具体类别类型,诸如新闻应用、社交媒体应用或特定类型的恶意软件。附加地或可替代地,查询212可以进一步请求结果管理器230返回相似性列表270,该相似性列表270包括与前k个最高相似性分数262关联的训练应用210T。这里,前k个最高相似性分数262可以指示至软件应用的对应的向量表示260a的指定数量k的最近训练向量表示260T。换句话说,相似性列表270可以包括聚类在应用(App 1)210a附近的训练应用210T。

参考图2C,结果管理器230生成响应214,该响应214包括指示与前k个最高相似性分数262关联的所有训练应用210T的相似性列表270。在所示示例中,在确定相似性分数262之后,结果管理器230从应用嵌套存储装置180b检索前k个相似的训练应用210Ta-Tk。在此,前k个相似的训练应用210Ta-210Tk对应于与前k个最高相似性分数262关联的训练应用210T。另外,结果管理器230检索前k个相似的训练应用210Ta-Tk中的每一个与之交互的域名220Ta-Tk的列表。之后,结果管理器230生成相似性列表270以包括检索到的前k个相似的训练应用210Ta-Tk,并将包括相似性列表270的响应214返回给仿真器160。结果管理器230与仿真器160之间的查询212和响应214可以包括远程过程调用(RPC)。在一些示例中,相似性列表270中的前k个相似的训练应用210Ta-Tk中的每一个包括对应的相似性分数262和域名220Ta-Tk的对应的列表。相似性列表270可以附加地或可替代地包括类别240(例如,合法应用类别240a或可能有害的应用类别240b)。在所示示例中,前k个相似的训练应用中的第一(App a)210Ta包括对应的相似性分数262Ta、对应的域名220Ta的列表以及分配给对应的应用210Ta的类别240。

在一些示例中,应用嵌套存储装置180b内被识别为属于可能有害应用(PHA)类别240b的训练应用210T被标记有PHA标签。在一些配置中,应用嵌套存储装置180b被分区为包括用于包括PHA标签的训练应用210T的单独的嵌套存储装置。当检索包括PHA标签的所有训练应用210T

参考图2D,结果管理器230生成响应214,该响应214包括由包括在查询212(图2A)中的一组对应的域名220a表示的应用210a的建议的PHA类别240b。在所示示例中,结果管理器230从应用嵌套存储装置180b检索包括PHA标签的所有训练应用210T

实施方式还包括过程200在训练应用210T

图3示意性地示出示例应用安装模式300。在一些实施方式中,应用安装模式300包括设备信息310,该设备信息310指示与应用安装模式300关联的客户设备104的设备类型。例如,设备类型可以指定客户设备104是智能电话、平板计算机、膝上型计算机、台式机或其他类型的计算设备之一。设备类型还可以包括客户设备104的品牌和型号。设备信息310可以进一步包括客户设备104的操作系统。应用安装模式300还指示安装在客户设备104上的n个应用210、210a-n(例如,应用A、应用B、...、应用N)的对应的序列。此处,该序列按客户设备104上的安装日期对应用210进行排序。例如,应用A可以与安装在用户设备上的第一应用210a对应,应用B可以与安装在客户设备104上的第二应用210b对应,并且应用N可以与安装在客户设备104上的最新或最近的应用210n对应。因此,应用安装模式300还可以包括安装在客户设备104上的n个应用210中的每一个的应用安装日期。

参考图4,在一些实施方式中,数据处理硬件112的恶意软件识别器150执行应用嵌套过程400以识别恶意软件。参考图4A,过程400从对应的客户设备104、104a-n接收应用安装模式300、300A-N的全集402,其中,每个应用安装模式300包括安装在对应的客户设备104上的n个应用210的对应的序列。例如,应用安装模式300A包括n个应用210、210Aa-An的对应的序列。在一些示例中,神经网络模型170包括应用向量空间模型170b,该应用向量空间模型170b接收与对应的应用安装模式300关联的n个应用210的序列中的每个应用210作为特征输入并生成每个应用210的对应的数值向量表示350(例如,应用嵌套350)。在接收属于对应的应用安装模式300的n个应用210的序列时,神经网络模型170可以预测安装在客户设备104上的下一应用210。

此后,神经网络模型170b基于对应的应用210的数值向量表示350,将每个对应的应用210在自由向量空间502中聚类。应用聚类图(application cluster plot)500可以将每个数值向量表示350(例如,应用嵌套)映射到自由向量空间502,以在语义上将相关应用210嵌套在彼此附近。随着输入应用向量空间模型170b的应用安装模式300的训练数据增加,应用向量空间模型170b变得更加稳健,并形成许多不同组的聚类,其中,相关应用在自由向量空间502中被分组/聚类在一起。这样,当给定聚类中的多个应用210被获知/获悉/识别为包括恶意软件或属于PHA类别(例如,包括PHA标签)时,可以将被分组到同一给定聚类中的新的或先前未识别的应用210识别为也包括恶意软件。

类似地,由于神经网络模型170可以预测安装在客户设备104上的下一应用210,因此当对应的应用安装模式300中的实际下一应用210与预测的下一应用210不同时,该实际下一应用210可能与改变应用安装模式300的恶意下载器对应。换句话说,如果安装不符合预测的应用,则可能会出现标志来指示可能的恶意下载器的识别。

图5示出基于从应用向量空间模型170b输出的对应的数值向量表示350将应用210在自由向量空间502中进行映射的示例图500。在所示示例中,数值向量表示350包括嵌套在自由/连续向量空间中的SHA-256摘要表示,在自由/连续向量空间中,在语义上相似的摘要(例如,嵌套350)嵌套在彼此附近以形成聚类510、510a-n。每个聚类510可以用于学习/识别与聚类510的应用210关联的对应的应用类别240、240a-b。例如,聚类510n可以属于PHA类别240b(例如,块恶意下载器(Block Hostile Downloader)),而聚类510a可以属于合法应用类别240a。

图2A-2D的过程200可以基于对应的向量表示260类似地将应用210在相似的自由向量空间502中映射,以基于在仿真器160上执行时每个应用210与之交互的URI 220(域名)形成相关应用210的聚类。可选地,域向量空间模型170a可以基于对应的域嵌套250(密码哈希)将域名在自由向量空间502中映射,以将相似的域名紧密聚类在一起。以这种方式,域向量空间模型170a不仅可以识别应用210中的恶意软件,而且可以学习以识别与恶意软件关联的域名。

返回参考图4,在一些实施方式中,每个应用嵌套350与自由向量空间502中的100维数值向量表示关联。在所示示例中,应用向量空间模型170b输出每个应用210与对应的应用嵌套350之间的映射(例如,哈希映射)404。与每个应用安装模式300关联的哈希映射404可以存储在数据存储装置180中。在一些示例中,应用嵌套350被表示为密码哈希值,诸如SHA-256哈希。应用向量空间模型170b可以进一步确定包括多个哈希的每个应用安装模式300的对应的向量表示360。向量表示360中的每个哈希与表示安装在客户设备104上的对应的应用210的对应的应用嵌套350关联。向量表示360中的哈希350按应用安装日期排序,使得向量表示360中的第一哈希标识安装在客户设备104上的n个应用210的序列中的第一应用210。

虽然每个安装模式300的应用210按应用安装日期排序成序列,但是应用210被安装在客户设备104上的实际日期(例如,2017年1月30日)不包括在提供给应用向量空间模型170b的安装模式300中。实际上,n个应用210的序列中的应用210与不包括包名称、安装时间或任何其他信息的应用摘要对应。由于应用摘要不保留任何结构,因此应用向量空间模型170b将生成同一应用210的不同版本的不同的应用嵌套250(例如,哈希)。但是,同一应用的不同版本有大概率将在自由向量空间中彼此紧靠聚类。

在所示示例中,与对应的应用安装模式300关联的哈希映射404包括按安装日期排序的n个应用210中的每个应用,以及每个应用210的对应的应用嵌套350。每个应用嵌套350可以是数值向量表示(例如,n维向量表示)或密码哈希。第一应用210a包括社交应用,第二应用210b包括消息传递应用,第三应用210c包括虚假应用210c,第四应用210d是未知应用,并且n个应用210的序列中的最后应用210n是植入木马。社交应用210a、消息传递应用210b、虚假应用210c和植入木马210d可以是被先前视为/识别为具有分配的类别240(例如,社交、消息传递、虚假、植入)的应用210。此外,虚假应用210c和植入木马210n可以包括PHA类别标签,该PHA类别标签指示应用210c、210n先前已经被识别为属于PHA类别240b。另一方面,社交应用210a和消息传递应用210b是先前已经被识别为属于合法应用类别240a的已知应用。未知应用210d先前未被见到,因此与未知应用210d关联的应用类别240是未知的。

在一些实施方式中,过程400基于聚类图500将表示未知应用210d的应用嵌套350(密码哈希/n维向量表示)在自由向量空间502中映射的位置来确定未知应用210d属于合法应用类别240a还是PHA类别240b。例如,如果过程400将未知应用210d的应用嵌套350分组到聚类510n中,则未知应用210d可被识别为可能有害并被标记为属于PHA类别240b。另一方面,如果过程400将应用嵌套350分组到聚类510a中,则过程400可以将未知应用210d识别为合法应用,并将未知应用210d标记为属于合法应用类别240a。

在一些示例中,应用向量空间模型170d基于确定虚假应用210c和植入木马210n先前被识别为恶意软件,将未知应用210d识别为恶意软件。在这些示例中,由于在n个应用210的序列中将未知应用210d排序为接近虚假应用210c,因此未知应用210d也是恶意软件的概率非常高。在将未知应用210d识别为恶意软件后,恶意软件识别器150(图1)可以将应用210d标记为属于PHA类别240b,然后将应用210d连同PHA类别标签和对应的数值向量表示350存储在数据存储装置180中。因此,并且参考图1,恶意软件识别器150可以向用户设备发送警告通知192,指示未知应用210d被识别为恶意软件(例如,被标示为属于PHA类别240b)。警告通知192可以进一步指示在n个应用的序列中被识别为恶意软件(例如,属于PHA类别240b)的虚假应用210c、植入木马210n和任何其他应用210的存在。

图6是用于识别恶意软件的方法600的操作的示例布置的流程图。数据处理硬件112可以通过执行存储在存储器硬件114上的指令来执行方法600的操作。在操作602处,方法600包括接收软件应用210并执行软件应用210。仿真器160可以在安全执行环境中执行软件应用210。在操作604处,该方法包括识别在软件应用210的执行期间软件应用210与之交互的多个统一资源标识符(URI)220。URI可以包括诸如域名的统一资源定位符(URL)。

在操作606处,方法600包括使用被配置为接收多个URI 220作为特征输入的前馈神经网络(即,域向量空间模型170a)生成软件应用的向量表示260。此处,模型170a确定识别的URI 220中的每一个的n维数值向量表示250,并通过平均识别的URI 220的n维数值向量表示250计算软件应用210的向量表示260。

在操作608处,方法600包括确定存储在存储器硬件114(例如,数据存储装置180)中的一池训练应用210T的相似性分数262。每个相似性分数262与对应的训练应用210T关联,并且指示软件应用210的向量表示260与对应的训练应用210T的相应向量表示260T之间的相似性的水平。

在操作610处,方法600包括在训练应用210T中的一个或多个具有满足相似性阈值的相似性分数262并包括PHA标签时,将软件应用210标示为属于可能有害的应用(PHA)类别240b。

图7是用于识别恶意软件的方法700的操作的示例布置的流程图。数据处理硬件112可以通过执行存储在存储器硬件114上的指令来执行方法700的操作。在操作702处,方法700包括从用户设备104接收应用安装模式300,该应用安装模式300指示安装在用户设备104上的n个应用210的序列。在操作704处,对于n个应用的序列中的每个应用210,方法700包括使用前馈神经网络(即,应用向量空间模型170b)生成对应的应用210的数值向量表示350,该前馈神经网络被配置为接收每个应用210和每个应用210的顺序作为特征输入。数值向量表示350可以包括密码哈希。在操作706处,对于n个应用的序列中的每个应用210,方法700包括基于对应的应用210的数值向量表示350将对应的应用210在自由向量空间502中聚类。

在操作708处,方法700包括确定是否将n个应用210的序列中的任何应用210与被识别为恶意软件的训练应用聚类在一起。在操作710处,方法700包括对于与被识别为恶意软件的训练应用210聚类在一起每个应用210,将n个应用的序列中的对应的应用210识别为恶意软件。

在一些示例中,方法700还包括对于n个应用的序列中被识别为恶意软件的每个应用:将应用210标记为属于可能有害的应用类别240b,并将应用210和应用210的对应的数值向量表示350存储在与数据处理硬件112通信的存储器硬件114(例如,数据存储装置180)中。

软件应用(即软件资源)可以指使计算设备执行任务的计算机软件。在一些示例中,软件应用可以被称为“应用”、“app”或“程序”。示例应用包括但不限于系统诊断应用、系统管理应用、系统维护应用、文字处理应用、电子表格应用、消息传递应用、媒体流传输应用、社交联网应用和游戏应用。

非暂时性存储器可以是用于临时地或永久地存储程序(例如,指令的序列)或数据(例如,程序状态信息)以供计算设备使用的实体设备。非暂时性存储器可以是易失性和/或非易失性可寻址半导体存储器。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及盘或带。

图8是可以用于实现本文档中描述的系统和方法的示例计算设备800的示意图。计算设备800旨在表示各种形式的数字计算机,诸如膝上型计算机、台式机,工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。此处所示的组件、它们的连接和关系以及它们的功能仅意味着是示例性的,并不意味着限制本文档中描述和/或要求保护的发明的实施方式。

计算设备800包括处理器810、存储器820、存储设备830、连接到存储器820和高速扩展端口850的高速接口/控制器840以及连接到低速总线870和存储设备830的低速接口/控制器860。组件810、820、830、840、850和860中的每一个使用各种总线而互连,并且可以安装在共同主板上或以其他适当的方式安装。处理器810可以处理用于在计算设备800内执行的指令,包括存储在存储器820中或存储设备830上的指令,以在诸如联接到高速接口840的显示器880的外部输入/输出设备上显示图形用户界面(GUI)的图形信息。在其他实施方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和多个类型的存储器。另外,可以连接多个计算设备800,每个设备提供必要操作的一些部分(例如,作为服务器库、一组刀片服务器或多处理器系统)。

存储器820在计算设备800内非暂时地存储信息。存储器820可以是计算机可读介质、(一个或多个)易失性存储器单元或(一个或多个)非易失性存储器单元。非暂时性存储器820可以是用于临时或永久地存储程序(例如,指令的序列)或数据(例如,程序状态信息)以供计算设备800使用的实体设备。非易失性存储器的示例包括但不限于闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及盘或带。

存储设备830能够为计算设备800提供大容量存储。在一些实施方式中,存储设备830是计算机可读介质。在各种不同的实施方式中,存储设备830可以是软盘设备、硬盘设备、光盘设备或带设备、闪存或其他类似的固态存储器设备、或设备的阵列,包括在存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,指令在执行时执行一种或多种方法,诸如上面描述的那些方法。信息载体是计算机或机器可读介质,诸如存储器820、存储设备830或处理器810上的存储器。

高速控制器840管理计算设备800的带宽密集型操作,而低速控制器860管理带宽较不密集型操作。这种职责分配仅是示例性的。在一些实施方式中,高速控制器840联接到存储器820、显示器880(例如,通过图形处理器或加速器)并联接到高速扩展端口850,该高速扩展端口850可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器860联接到存储设备830和低速扩展端口890。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口890可以例如通过网络适配器联接到一个或多个输入/输出设备,例诸如键盘、指向设备、扫描仪,或联网设备,诸如交换机或路由器。

如图所示,可以以多种不同形式来实现计算设备800。例如,它可以被实现为标准服务器800a或在这样的一组服务器800a中被多次实现,被实现为膝上型计算机800b,或者被实现为机架服务器系统800c的一部分。

本文描述的系统和技术的各种实施方式可以在数字电子电路和/或光学电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在一个或多个计算机程序中的实施方式,该一个或多个计算机程序可以在包括至少一个可编程处理器的可编程系统上执行和/或解译,该可编程处理器可以是专用的或通用的、经联接以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令并将数据和指令发送到存储系统、至少一个输入设备和至少一个输出设备。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象编程语言和/或以汇编/机器语言来实现。如在本文中使用的,术语“机器可读介质”和“计算机可读介质”指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指用于向可编程处理器提供机器指令和/或数据的任何信号。

本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程处理器(也称为数据处理硬件)执行,从而通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流也可以由专用逻辑电路来执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。举例来说,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何种类的数字计算机的一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或二者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。一般来说,计算机将也包括用于存储数据的一个或多个大容量存储设备(例如、磁盘、磁光盘或光盘)或可以操作性地联接一个或多个大容量存储设备以从其接收数据或将数据传输到其处或者接收和传输二者。然而,计算机不必具有这样的设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说,包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或可以结合到其中。

为了提供与用户的交互,本公开的一个或多个方面可以实现在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏)及可选的键盘和指向设备(例如,鼠标或轨迹球)的计算机上,用户可以通过键盘和指向设备向计算机提供输入。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,通过向由用户使用的设备发送文档和接收来该设备的文档,计算机可以与用户交互;例如,通过响应于从web浏览器接收的请求而将网页发送到用户的客户端设备上的web浏览器。

已经描述了多个实施方式。然而,将理解,在不背离本公开的精神和范围的情况下可以进行各种修改。因此,其他实施方式在所附权利要求的范围内。

技术分类

06120112180306