版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(12)发明专利(65)同一申请的已公布的文献号(30)优先权数据(85)PCT国际申请进入国家阶段日(86)PCT国际申请的申请数据PCT/US2020/0566922020(87)PCT国际申请的公布数据(73)专利权人微软技术许可有限责任公司地址美国华盛顿州K·霍尔谢默US2018174033A1,2018.06.21检测计算机系统中未知的恶意内容本文讨论的各种实施例能够检测恶意内容。一些实施例基于特征加权通过确定已知为恶意的内容、计算机对象或指示(例如,向量、文件哈件)或指示之间的相似性分数来做到这一点。在各个训练阶段内,可以学习每个标记的恶意内容或指示的某些特征特性。例如,对于计算机对象的第一恶意软件族,最突出的特征可以是特定的URL,而其他特征对于计算机对象的第一恶意软分类。呈现组件未知数据构造组件未知构造2接收请求以确定计算机对象是否包含恶意内容;从所述计算机对象提取多个特征;至少部分地基于所述多个特征,经由深度学习模型生成在所述计算机对象与已知包含恶意内容的多个计算机对象中的每个计算机对象之间的相似性分数,所述深度学习模型与表示所述多个计算机对象的多个指示相关联,所述多个指示被嵌入在特征空间中,其中所述深度学习模型明确地接受一对匹配的恶意软件文件和一个不匹配的良性文件作为输入至少部分地响应于所述相似性分数高于针对所述多个计算机对象的集合以及所述计算机对象的阈值,使表示所述多个计算机对象的集合的标识符集合以等级顺序被提供给计算设备,其中等级最高的标识符指示所述计算机对象可能属于特定的恶意内容族。2.根据权利要求1所述的方法,其中所述多个特征的所述提取包括提取解包文件串和提取API调用。3.根据权利要求2所述的方法,进一步包括:将所述解包文件字符串和所述API调用以及相关参数编码为N-Gram字符的组合。4.根据权利要求1所述的方法,其中所述深度学习模型包括两个相同的子网络,所述两个相同的子网络共享权重并且通过距离学习函数连接。5.根据权利要求1所述的方法,其中所述深度学习模型包括连体神经网络SNN。6.根据权利要求1所述的方法,进一步包括:在所述请求的所述接收之前训练所述深度学习模型,所述深度学习模型的所述训练包括:仿真文件集合,所述仿真包括从所述文件集合提取信息;通过所述深度学习模型处理所述文件集合的相似文件和不相似文件对;至少部分基于所述处理,调整与所述深度学习模型相关联的权重以指示针对预测或分类的所述文件集合的某些特征的重要性,其中所述调整包括:改变所述相似文件的第一文件在所述特征空间中的嵌入。7.根据权利要求6所述的方法,其中至少部分地基于匹配或接近所述第一文件的经改变的所述嵌入的所述多个特征中的一个或多个特征,来设置针对所述计算机对象的所述相似性分数。8.一个或多个计算机存储介质,其上包含有计算机可执行指令,当所述指令由一个或多个处理器执行时,使所述一个或多个处理器执行一种方法,所述方法包括:接收确定内容是否为恶意的请求;从所述内容中提取多个特征;将所述内容的EventID特征扩展为完整的API名称,并使用字符级三元组将所述完整的API名称编码为字符串基于所述多个特征和所述扩展,经由深度学习模型生成所述内容与多个已知恶意内容中的每一个之间的相似性分数,所述多个已知恶意内容中的每一个属于截然不同的恶意族,其中所述深度学习模型明确地接受一对匹配的恶意软件文件和一个不匹配的良性文件至少部分地响应于所述相似性分数高于所述内容和所述多个已知恶意内容的已知恶3意内容的阈值,使表示所述已知恶意内容的标识符被提供给计算设备,其中,所述标识符指示所述内容可能是恶意的,或者所述内容可能与所述已知的恶意内容属于同一恶意族。9.根据权利要求8所述的计算机存储介质,其中,所述多个已知恶意内容在训练期间被标记为相似或不相似,并且其中,所述深度学习模型进一步用被标记为良性的内容进行训10.根据权利要求8所述的计算机存储介质,其中所述深度学习模型包括连体神经网络11.根据权利要求8所述的计算机存储介质,其中所述深度学习模型包括两个等同子网络,它们共享权重并且在训练期间处理一对相似的已知恶意软件文件和一对不相似的文12.根据权利要求8所述的计算机存储介质,其中所述深度学习模型明确地接受一对匹配的恶意软件文件和一个不匹配的良性文件作为输入来训练。13.根据权利要求8所述的计算机存储介质,所述方法进一步包括:在所述接收所述请求之前训练所述深度学习模型,所述深度学习模型的所述训练包括:接收被标记为截然不同的恶意软件族或良性文件的集合的文件集合;仿真所述文件集合,所述仿真包括从所述文件集合中提取信息;将所述文件集合对的标签标识为相似或不相似的以准备进行训练;并且至少部分基于所述标识,训练所述深度学习模型,所述训练包括调整与所述深度学习模型相关联的权重以指示所述文件集合的某些特征对于预测或分类的重要性,其中,所述训练包括学习所述相似文件的第一文件在特征空间中的嵌入。14.根据权利要求13所述的计算机存储介质,其中,高于所述阈值的所述相似性分数至少部分地基于所述第一文件的所述学习嵌入。一个或多个计算机存储介质,存储计算机可用指令,当由所述一个或多个处理器使用时,所述指令使所述一个或多个处理器执行一种方法,所述方法包括:接收请求以确定计算机对象是否包含恶意内容;从所述计算机对象提取多个特征;基于所述多个特征,确定所述计算机对象的指示是否在特征空间中距已知恶意计算机对象集合在阈值距离内,其中经由基于针对所述已知恶意计算机对象集合的不同特征的经学习权重的训练,所述已知恶意计算机对象集合在所述特征空间中的嵌入被学习,其中所述指示包括向量,所述向量基于学习在两个输入之间的距离函数的深度学习模型的两个分支而被嵌入在所述特征空间中,以及所述深度学习模型明确地接受一对匹配的恶意软件文件和一个不匹配的良性文件作为输入来训练;以及至少部分地响应于确定所述计算机对象的所述指示是在所述阈值距离内,向计算设备的用户接口提供指示所述计算机对象是否包含恶意内容的标识符。16.根据权利要求15所述的系统,其中所述已知恶意计算机对象集合的指示符集合被评分并且被提供给所述用户接口,所述提供指示了所述计算机对象是特定恶意软件族的可能性。17.根据权利要求15所述的系统,其中所述特征空间进一步包括良性文件的指示,并且4其中对所述计算机对象的所述指示是否在阈值距离内的所述确定至少部分地基于分析所述良性文件的所述指示。18.根据权利要求15所述的系统,其中其中第一输入是所述向量,并且第二输入是表示所述已知恶意计算机对象集合的第一恶意软件文件的另一个向量。19.根据权利要求15所述的系统,其中所述特征空间与深度学习模型相关联,所述深度学习模型包括两个相同的子网络,所述两个相同的子网络共享权重并且通过距离学习函数连接。20.根据权利要求15所述的系统,其中所述特征空间与深度学习模型相关联,所述深度学习模型明确地接受一对匹配的恶意软件文件和不匹配的良性文件作为输入来训练。5检测计算机系统中未知的恶意内容背景技术[0001]计算机系统可能会感染恶意内容(例如,恶意软件),这可能会造成损害或允许网络攻击者未经授权访问这些计算机系统。存在各种已知的恶意内容族和子族,诸如病毒、木马、蠕虫、勒索软件等。检测恶意内容对于现有技术来说仍然是一项重大挑战,特别是当存在未知或新变种时。网络攻击者会随着时间的推移不断更改和演变恶意内容,以逃避检测。这种变化量因族而异,因此很难检测到恶意行为的存在。发明内容[0002]提供本发明内容以简化形式介绍一些概念,这些概念将在下面的详细描述中进一步描述。本发明内容并不旨在用于标识所要求保护的主题的主要特征或基本特征,也不旨在孤立用于帮助确定所要求保护的主题的范围。[0003]本文讨论的各种实施例使得能够检测恶意内容。一些实施例基于特征加权通过确定已知恶意内容或表示恶意内容的指示(例如,向量、文件哈希、文件签名、代码等)与其他内容(例如,未知文件)或表示其他内容的指示之间的相似性分数来做到这一点。在各个训练阶段内,可以学习针对每个标记内容或指示的某些特征特性。例如,对于第一恶意软件族,最突出的特征可以是一个特定的URL,而对于第一族的不同迭代,其他特征会发生很大变化(例如,由于网络攻击者的修改)。因此,特定的URL可以被加权以确定特定的输出分类。以这种方式,实施例学习对应于不同特征的权重,使得在相似恶意内容中发现的、并且来自同一族的重要特征对相似性分数有正贡献,而将恶意内容与良性(非恶意)内容区分开来的特征对相似性分数有负贡献。因此,即使网络攻击者引入了未知或新的恶意内容变型,也可以检测到恶意内容。此外,这允许一些实施例确定恶意内容属于哪个族。[0004]在一些实施例中,可以使用独特的深度学习模型,诸如连体神经网络(SNN)的变型或深度结构化语义模型(DSSM)的变型来检测未知的恶意内容。某些实施例训练一个模型,该模型学习以基于特征的重要性给予该特征不同的权重。以这种方式,深度学习模型实施例对于获取未知内容或指示并将它们映射到特征空间中以基于未知文件的特定特征和与已知文件或指示的特征相关联的训练权重确定与已知恶意文件或指示的距离或相似性是有用的。[0005]现有技术存在各种缺点,导致预测精度较低、错误率较高等。例如,现有工具使用Jaccard指数(JaccardIndex)来实现文件之间的相似性分数。但是术要求文件中的所有特征具有相同的权重。本公开的各种实施例通过提高预测准确度和错误率来改善这些现有技术,如本文例如关于实验结果所述。实施例还改善了这些技术,因为它们学习了对于检测内容是否是恶意的或属于特定恶意代码或文件族最重要的某些关键特征,并相应地对它们进行加权。一些实施例还通过减少诸如内存、CPU等的计算资源消耗来改善计算机本身的功能。6附图说明[0007]图1是根据一些实施例的示例系统的框图;[0008]图2是根据一些实施例的示例计算系统架构的框图;[0009]图3是根据一些实施例的用于在各种恶意软件内容上训练机器学习模型并预测一个或多个特定未知内容集合是否包含恶意软件的系统的框图;[0010]图4是根据一些实施例的用于使用经过训练的模型来确定新内容是否是恶意的示例系统的框图;[0011]图5是特定实施例使用的示例深度学习神经网络(DNN)的示意图;[0012]图6是特定实施例使用的示例深度学习神经网络(DNN)的示意图;[0013]图7A是根据一些实施例的用于训练机器学习模型的示例过程的流程图;[0014]图7B是根据一些实施例的用于评估新的或未知的内容的示例过程的流程图;[0015]图8是根据一些实施例的计算设备的框图;[0016]图9是根据一些实施例的图示每个族的配对计数细分的示例表;[0017]图10是根据一些实施例的用于相似和不相似文件的Jaccard指数相似性分数分布的图表;[0018]图11是根据一些实施例的用于相似和不相似文件的SNN相似性分数分布的图表;[0019]图12是图示针对不同高度流行的恶意软件族的KNN的性能测量的示例表;以及[0020]图13是图示根据一些实施例的使用t-sne方法的恶意软件类的潜在向量的可分离性的示例可视化图表。具体实施方式[0021]本公开的各方面的主题在本文中被具体描述以满足法定要求。然而,描述本身并不旨在限制本专利的范围。相反,本发明人已经考虑到,要求保护的主题也可以以其他方式体现,以包括与本文中描述的那些相似的不同步骤或步骤组合,并结合其他现有或未来技但这些术语不应被解释为暗示本文所公开的各个步骤之中或之间的任何特定顺序,除非并且除了各个步骤的顺序是明确描述的。本文描述的每个方法可以包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,可以通过处理器执行存储在存储器中的指令来执行各种功能。该方法还可以体现为存储在计算机存储介质上的计算机可用指令。这些方法可以由独立应用、服务或托管服务(独立或与另一个托管服务组合)或另一个产品的[0022]如本文所用,术语“集合”可用于指代对象(或元素)的有序(即,顺序)或无序(即,非顺序)集合,诸如但不限于数据元素(例如,事件、事件集群等)。一个集合可以包括N个元元素,其中N是没有上限的正整数。一个集合可以只括在另一个集合中的集合。子集可以是但不必须是包含该子集的另一集合的适当或严格子集。也就是说,如果集合B是集合A的子集,那么在一些实施例中,集合B是集合A的适当或严7[0023]本文描述的各种实施例能够检测恶意内容或恶意计算机对象。如本文所述,“内个或多个数据库记录和/或一个或多个数据结构,或内容或计算机对象执行或与之关联的某些行为或功能。“恶意”内容或恶意计算机对象可以指代恶意代码/行为(例如,特定时间戳恶意代码已知会注入代码或已知在其启动活动之前处于非活动状致对计算系统的未经授权的访问的功能。尽管本文根据文件描述了各种示例,但是应当理容”和“计算机对象”在本文中描述时可以互换使用。一些实施例通过基于特征加权确定已知恶意内容(或恶意指示)和未知内容(或未知指示)之间的相似性分数(即,相似性度量)来[0024]如本文所述的“特征”表示内容的特定属性或属性值。例如,第一特征可以是文件的长度和格式,第二特征可以是文件的特定URL,第四特征可以是操作特性,诸如写成短块,以及第五特征可以是注册表项模式。在各种情况下,“权重”表示特征或特征值对于分类或预测的重要性或显著性。例如,每个特征可以与一个整数或其他实数相关联,其中实数越高,该特征对于预测或分类越重要。在一些实施例中,神经网络或其他机器学习应用中的权重可以表示节点或神经元之间从一层(输入)到下一层(输出)的连接强度。权重为0可能意味着输入不会改变输出,而高于0的权重会改变输出。输入的值越高或值越接近1,输出的变化或增加就越大。同样,可以有负权重。负权重按比例降低输出值。例如,输入值增加得越多,输出值下降得越多。负权重可能会导致负分数,这将在下面更详细地描述。在许多情况下,只有选定的特征集合主要负责内容是否属于特定的恶意族并因此是恶意的确定。[0025]各种实施例学习内容的关键特征并在训练期间响应地对它们进行加权。例如,一些实施例基于深度学习学习嵌入向量,以使用诸如余弦距离之类的距离度量来检测特征空间中的相似计算机对象或指示。在这些实施例中,每个计算机对象从字符串或其他形式转换成向量(例如,实数集合),其中每个值或值集合表示计算机对象的单独特征或特征空间中的指示。特征空间(或向量空间)是向量的集合(例如,每个表示恶意或良性文件),每个向量基于向量特征的相似性定向或嵌入空间中。在不同的训练阶段,可以学习每个标记的计算机对象或指示的某些特征特性。例如,对于第一恶意软件族(例如,某个类别或类型的恶意软件),最突出的特征可以是特定的URL,而其他特征对于第一恶意软件族的不同迭代有很大的变化。因此,特定的URL可以被加权以确定特定的输出分类。以这种方式,实施例学习对应于不同特征的权重,使得在相似恶意内容中发现的并且来自同一族的重要特征对相似性分数有正贡献,而将恶意内容与良性内容(非恶意)区分开来的特征对相似性分数有负贡[0026]在一些实施例中,可以使用独特的深度学习模型,诸如连体神经网络(SNN)的变型或深度结构化语义模型(DSSM)的变型来检测未知的恶意内容。实施例训练了一个模型,该模型学习以基于特征的重要性为该特征赋予不同的权重。一些深度学习模型实施例包括两个或更多个等同的子网络或分支,这意味着子网络具有相同的配置,该配置具有相同或绑8极其相似的恶意内容或指示集合不可能被它们各自等同的网络映射到特征空间中非常不于获取未知内容或指示并将它们映射到特征空间中以基于未知文件的特定特征和与已知文件或指示的特征相关联的训练权重确定与已知恶意内容或指示的集合的距离或相似性的恶意软件聚类也可能依赖于计算内容集之间的相似性分数。大部分现有技术使用Jaccard指数作为其共聚类算法的相似性度量。其他技术比较多个Anubis沙盒中单个文件技术的一个问题(除其他外)是Jaccard指数要求文件中的所有特征具有相同的权重。如上[0028]本公开的各种实施例经由这些现有技术或计算机安全系统现在不采用的新功能诸如习某些对于检测内容是否包含恶意软件或属于特定恶意软件族并相应地加权它们最族(和/或良性文件)的特征空间嵌入,使得任何新的或未知的内容指示都可以映射到相同离或相似性,从而可以检测到恶意内容和/或可以将新的或未知的内容分组或映射到特定9耗不必要的内存,尤其是在存储数千或数百万个文件时。[0030]特定实施例改善了计算机本身的功能并改善了其他技术,因为它们不消耗不必要的计算资源。例如,一些实施例使用共享或绑定权重或用于两个或更多个输入的其他参数的深度学习模型。这意味着要训练的参数更少,这意味着需要的数据更少,过拟合的趋势也更小。因此,消耗的内存更少,CPU的利此,实施例可以改善诸如吞吐量和网络延迟等指标。此外,一些实施例通过将字符串和其他内容转换为向量并对内存中的向量进行计算(例如,基于余弦距离的相似性分数),而不是对与向量相比消耗相对较大的内存量的字符串或恶意软件签名进行计算,来执行数据的类压缩功能。因此,实施例节省了诸如CPU和内存之类的计算资源利用率。[0031]现在转向图1,提供了示出示例操作环境100的框图,在该示例操作环境100中可以采用本公开的一些实施例。应当理解,本文描述的这种和其他布置仅作为示例阐述。可以使并且为了清楚起见可以完全省略一些元素。此外,本文描述的许多元素是功能实体,它们可以实现为离散或分布式组件或与其他组件结合,并以任何合适的组合和位置实现。本文描述为由实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,一些功能可以由执行存储在存储器中的指令的处理器来执行。[0032]在未示出的其他组件中,示例操作环境100包括多个用户设备,诸如用户设备102a和102b至102n;多个数据源(例如,数据库或其他数据存储),诸如数据源104a和104b至104n;服务器106;传感器103a和107;以及网络110。应当理解,图1中所示的环境100是一种合适的操作环境的示例。图1中所示的每个组件可以经由任何类型的计算设备,诸如例如结合图8描述的计算设备800来实现。这些组件可以经由网络110相互通信,网络110可以包括但不限于局域网(LAN)和/或广域网(WAN)。在示例性实现方式中,网络110包括互联网和/或蜂窝网络,在各种可能的公共和/或专用网络中的任何一个中的网络。[0033]应当理解,在本公开的范围内,可以在操作环境100内采用任意数量的用户设备、服务器和数据源。每个都可以包括在分布式环境中协作的单个设备或多个设备。例如,服务器106可以经由布置在分布式环境中的多个设备来提供,这些设备共同提供本文描述的功能。另外,未示出的其他组件也可以包括在分[0034]用户设备102a和102b至102n可以是操作环境100的客户端侧的客户端设备,而服务器106可以是操作环境100的服务器侧的服务器。服务器106可以包括设计成与用户设备102a和102b至102n上的客户端软件一起工作的服务器端软件,以便实现本公开中讨论的特征和功能的任何组合。提供操作环境100的这种划分是为了说明合适环境的一个示例,并且对于每个实施方式不要求服务器106和用户设备102a和102b至102n的任何组合保持为单独的实体。在一些实施例中,一个或多个服务器106表示云计算环境中的一个或多个节点。与各种实施例一致,云计算环境包括提供一个或多个云计算服务的基于网络的分布式数据处理系统。此外,云计算环境可以包括许多计算机,成百上千或更多的计算机,其布置在一个或多个数据中心内并被配置为通过网络110共享资源。[0035]在一些实施例中,用户设备102a或服务器106可替代地或附加地包括一个或多个网络服务器和/或应用服务器,以促进将网页或在线内容传送到安装在用户设备102b上的浏览器。通常内容可能包括静态内容和动态内容。当客户端应用(诸如网页浏览器)经由URL或搜索词请求网站或网页应用时,浏览器通常会联系网页服务器以请求静态内容或网站或用的任何动态部分或网页应用的业务逻辑部分。业务逻辑可以描述为管理用户设备和数据存储(例如数据库)之间通信的功能。这样的功能可以包括业务规则或工作流(例如,指示条件if/then语句、while语句等以表示过程的顺序的代码)。[0036]用户设备102a和102b至102n可以包括能够由用户使用的任何类型的计算设备。例如,在一个实施例中,用户设备102a至102n可以是本文关于图8描述的计算设备的类型。作为示例而非限制,用户设备可以体现为个人计算机(PC)、膝上型计算机、移动或移动设备、家用电器、消费电子设备、工作站或这些划定设备的任何组合,或任何其他合适的计算机设[0037]在一些实施例中,用户设备102a和/或服务器106可以包括本文描述的任何组件或图2中所述。在一些实施例中,服务器106可以帮助检测恶意行为,使得结合使用用户设备102a和服务器106来检测恶意代码。例如,可以在用户设备102a上打开网页应用。作为后台任务,或基于来自用户设备102a的明确请求,用户设备102a可以参与通信会话或以其他方式联系服务器106,此时服务器106使用一个或多个模型来检测恶意行为等,诸如关于图2所描述的。[0038]数据源104a和104b至104n可以包括数据源和/或数据系统,其被配置为使数据对结合图2描述的操作环境100或系统200的各种组成部分中的任何一个可用。一个或多个数据源104a至104n的示例可以是数据库、文件、数据结构或其他数据存储中的一个或多个。数据源104a和104b至104n可以与用户设备102a和102b至102n和服务器106分立,或者可以结合和/或集成到这些组件中的至少一个中。在一个实施例中,数据源104a至104n包括传感器(诸如传感器103a和107),它们可以集成到一个或多个用户设备102a、102b或102n或服务器106中或与一个或多个用户设备102a、102b或102n或服务器106相关联。[0039]操作环境100可用于实现系统200的一个或多个组件,如图2中所述。操作环境100还可用于实现结合图7A和7B描述的过程流700和730的各方面,以及如图2-13中描述的任何其他功能。[0040]现在参考图2,结合图1,提供了框图,该框图示出了适用于实现本公开的实施例并且通常被指定为系统200的示例计算系统架构的各方面。通常,系统200的实施例启用或支持检测恶意内容(例如,代码、功能、特征等)和/或将恶意内容映射到一个或多个族(例如,类型、类别或标题)。系统200并非旨在进行限制并且仅表示合适的计算系统架构的一个示例。除了所示出的那些或代替所示出的那些,可以使用其他布置和元件,并且为了清楚起见可以完全省略一些元件。此外,与图1的操作环境100一样,本文描述的许多元素是功能实体,它们可以实现为离散或分布式组件或与其他组件结合,并以任何合适的组合和位置实现。例如,系统200的功能可以经由软件即服务(SAAS)模型,例如,云和/或基于网页的服务来提供。在其他实施例中,系统200的功能可以经由客户端/服务器架构来实现。[0041]仿真器203通常负责运行或模拟标记数据213和/或未知数据215中的内容(例如,应用、代码、文件或其他对象)并从标记数据213和/或未知数据215中提取原始信息。标记数据213包括用标签或分类标记或指示的文件或其他对象样本,以用于在机器学习系统中进行训练。例如,标记数据213可以包括多个文件,其中文件已经根据特定恶意代码或文件族(和/或子族)和/或良性文件的标记为良性(或族/子族)的标记进行标记。例如,标记数据213可以包括已被Rootkit恶意软件感染的文件的若干次迭代或子族(子族是标签),以及其他恶意代码族。以此方式,机器学习模型可以被训练以标识标记数据213中指示的模式或关联以用于预测目的,如本文更详细描述的。未知数据215包括没有预定标签或分类的文件或其他内容。例如,未知数据215可以是在已经部署机器学习模型之后被分析,或者使用标记数据213训练或测试的任何传入文件(例如,测试文件)。[0042]标记数据213和未知数据215通常可以表示为存储。存储通常存储信息,包括在本文描述的技术的实施例中使用的数据、计算机指令(例如,软件程序指令、例程或服务)、内容、数据结构、训练数据和/或模型(例如,机器学习模型)。作为示例而非限制,包括数据213和未知数据215中的数据通常可以自始至终被称为数据。一些实施例存储包括规则、条件、关联、分类模型和其他标准的计算机逻辑(未示出)以执行系统200的组件、模块、分析器、生成器和/或引擎中的任一个的功能。[0043]在一些实施例中,仿真器203(或本文描述的任何组件)在虚拟化(例如,虚拟机或容器)或沙盒化环境中运行。以此方式,任何正在运行的恶意内容都不会感染主机或其他应用。在一些实施例中,从标记数据213和/或未知数据215中提取特定的原始信息。例如,信息可以是解包的文件字符串(或进行函数调用以解压缩文件字符串的字符串)和API调用及其相关参数。这是因为恶意内容经常被打包、压缩或加密,因此可能需要调用来解密或以其他方式解包数据。关于API调用,某些恶意内容可能具有特定的API调用模式,因此也可能需要提取此信息。[0044]特征选择器205通常负责选择标记数据213和/或未知数据215的特定特征(例如,由仿真器203提取的信息的选定特征)以用于训练、测试和/或进行预测。在各种情况下,由仿真器203生成的原始数据中可能有成百上千个特征。使用所有这些特征训练模型可能需要大量计算资源,因此可以使用选定的特征集合进行训练、测试或预测。可以根据任何合适的技术来选择特征。例如,可以基于使用互信息标准产生最具辨别力的特征的特征来选择特征。也就是说,A(t,c)被计算为预期的“项t和类别c的互信息(MI)。MI衡量项的存在/不存在有多少信息有助于在c上做出正确的分类决策。正式地:随机变量,其取值ec=1(文档为类别c)和ec=1(文档不是类别c)。如果从上下文中不清楚项t和类别c指的是哪个,则书写U和U。对于概率的MLE,等式1等价于:不在c(ec=0)中的文档数。N₁=N1₀+N₁₁是包含t(e=1)文档的数量以及独立于类成员的文[0048]训练和/或测试集合构造组件207通常负责选择已知相似的恶意内容(例如,来自相同族/子族的内容)和/或选择在准备训练和//或测试时可能不相似的良性内容。在一些中,训练和/或测试集合构造组件207为标记数据213中的每组内容生成唯一标识符(例如,签名ID),然后实施例可以响应地分组或选择属于同一个恶意族的相似恶意内容对。例如,[0049]模型训练组件209通常负责通过使用经由训练集合构造组件207和/或其他组件选择的数据来训练机器学习模型。在一些实施例中,模型训练组件209另外将由特征选择器在训练期间基于已知恶意内容的嵌入与其他已知恶意内容和/或良性内容之间的余弦或其在阈值距离的范围内。反向传播和其他技术可用于计算权重的损失[0050]未知构造组件220通常负责选择已知相似的恶意内容(例如,来自相同族/子族的内容)和/或选择良性内容并将它们配对在一起或将它们与已知恶意内容配对以用于在模[0051]未知评估器211通常负责确定哪些恶意内容集(在标记数据213内)与未知内容集相似(即,未知集是否包含恶意内容)(在未知数据215内)并相应地对相似性进行评分。例过特定阈值(向量在阈值距离内),则传入的文件或代码可以自动映射到恶意内容的特定族味着未知包含恶意内容的传入文件或代码与标记的恶意文件或代码或其族成员相比具有[0052]呈现组件217通常负责呈现是否基于由未知评估器211确定的相似性分数检测到个族(如在标记数据213中分配的)(或在距离阈值内的某些族)和特定内容集属于该族的置[0053]图3是用于在各种恶意软件内容上训练机器学习模型并预测一个或多个特定未知型的功能,而评估组件350说明在评估一个未知文件集合以自动预测它们是否属于高度流用生产反恶意软件引擎的修改版本来执行文件仿真303。这个反恶意软件引擎在仿真过程件315中提取原始数据以预测族(或基于其[0055]文件仿真303的一些实施例采用从文件中提取的两种类型的数据,包括解包文件特征经由文件仿真303从API调用序列及其参数值构造。API流由来自不同来源的函数调用于读取注册表项值,包括用户模式函数RegQueryValue()和Reg射到单个API事件。在这些实施例中,对RegQueryValue()、RegQueryValueEx()和Rt1QueryRegistryValues()的调用都映射到同一API事件ID(EventID)。可替代地或附加数以千计的原始解包文件字符串或API调用事件及其参数。因为除了非多态(non-polymorphic)恶意软件之外,特定实施例还检测多态(polymorphic)恶意测而不断改变其可标识特征的恶意软件),一些实施例不将潜在特征直接编码为稀疏二进的第二临时文件或使用部分随机URL联系命令和控制(C&C)服务器,则在一些实施例中,不明确地表示文件名或URL。相反,一些实施例将原始解包文件字符串和API调用及其参数编码为N-Grams字符的集合。在一些实施例中,使用所有值的字符的三元组(即,N=3的N-[0058]基于Jaccard指数的相似性系统(如上所述)的一个限制在于它无法区分或确定同一集合中多种类型的特征(例如,EventID、参数值1、参数值2)之间的重要性。此外,诸如EventID(例如98)之类的短值对Jaccard指数的影响要小于包括参数值(例如注册表项名称)在内的更长特征。为了提高Jaccard指数基线系统的性能,一些实施例通过将EventID扩展到完整API并使用字符级三元组(或其他N-Gram配置)将整个API名称编码为字符串来克服这些限制。因此,使用它们的三元组(或其他N-Gram配置)表示API名称允许API名称对文件对的Jaccard指数做出更大的贡献。在一些实施例中,API名称的三元组表示用于所有模型以公平地将SNN模型的结果与基于Jaccard指数的模型进行比较,其结果将在下面更详细地描述。[0059]本文所述的特定实施例不受基于Jaccard指数的模型所受的这些限制的影响。文件仿真303的一些实施例将事件ID或API名称编码为单个分类特征,因为某些深度学习网络,诸如两层深度神经网络,可以学习为对最重要API调用分配更大的权重以用于相似文件习模型(包括SNN模型或DSSM)的性能,因为它为EventID和参数值的N-Grams的每个组合学习了特定的表示。[0060]在一些实施例中,特征选择305包括由特征选择器205执行的功能。在各种情况下,在动态分析过程中生成的原始数据中可能存在数十万个潜在的N-Gram特征,并且使用所有这些特征来训练模型可能在计算上是令人望而却步的。因此,可以按类执行特征选择,这可以使用例如互信息标准产生最具辨别力的特征,如上面所述。为了处理生产级输入数据流,[0061]在一些实施例中,训练集合构造307是由图2的训练集合构造组件207执行的功能。在一些实施例中,在训练之前,训练集合构造307的实施例首先构造一个训练集合,该训练集合包括从已知相似的恶意软件文件对选择的以及从不相似的良性文件选择的N-Gram特征(出于标记目的,即使它们实际上可能相似)。实施例基于若干标准确定用于训练集的相似恶意软件文件或其他内容对。例如,为了正确训练模型,首先要仔细选择相似的文件对。随机选择两个族匹配的文件,在实践中可能效果不佳。问题是其中一些族可能有许多不同的变型。为了解决这个问题,可以利用恶意软件文件的检测签名。反恶意软件引擎可以利用特定签名来确定未知文件或内容是恶意的还是良性的。每个签名通常都非常具体,并且具有唯一标识符(签名ID)。因此,在一些实施例中,确定用于训练的相似对的第一步是将检测到的具有等同签名ID的恶意软件文件或内容对分组。虽然检测到具有相同签名ID的大多数恶意文件或其他内容属于同一恶意软件族,但情况并非总是如此,这就是为什么可能需要进行进一步分析以将唯一标识符映射或标记到正确族的原因。这可能是现有技术的问题,这些技术主要或仅基于恶意软件的签名ID来检测文件是否为恶意文件。因此,一些实施例通过将候选文件或其他内容对标记为属于同一族来改善这些技术。[0062]训练集合构造307的各种实施例基于签名ID和/或恶意软件族来构造恶意软件文件对。在某些实施例中,良性文件都属于一个类或标签,并且没有分配签名ID,因为它们不实施例还构造通过随机选择唯一恶意软件文件和良性文件以形成对而构造的“不相似”对。根据一些实施例,该训练集的格式如下表1所示:字段训练集ID标签(相似不相似)表1:训练和测试集实例格式。训练集ID由恶意软件1(M,)和恶意软件2(M₂)或良性文件(B)的SHA1文件哈希值的中的下一个字段提供标签,其中1指示两个文件是相似的(M1,M2),-1指示它们是不相似的(M1,B)。第三字段提供从主要恶意软件文件M₁中选择的N-Gram特征。来自匹配恶意软件文件M₂或随机选择的良性文件(B)中的N-Gram在最后一个字段中提供。[0066]对于用于评估所有模型的保留测试集,如下文更详细描述的,训练集合构造307的实施例确保训练和测试集中的文件对是唯一的或不同的。为此,可以为训练和测试集随机选择第一恶意软件文件集合,然后是包括恶意软件文件和良性文件的一对文件(例如,第一文件集合)。作为响应,选择第二相似的恶意软件文件对。如果第二对中的任何一个文件与第一集合中的一个文件匹配,则将第二对恶意软件添加到训练集中。如果它不在训练集中,实施例将其添加到测试集中。类似地,在一些实施例中,可以对第二不相似的恶意软件和良性对执行相同的过程,使得将第二不相似的恶意软件和良性对与第一集合进行比较。特定实施例继续执行随机选择恶意软件对并将它们添加到训练或测试集直到每个完成的过程。[0067]在一些实施例中,模型训练309包括由图2的模型训练组件209执行的功能。在一些实施例中,在已经经由训练集合构造307构造了训练集之后,对模型(例如,SNN)进行训练,例如关于图5或图6所描绘的。在一些实施例中,权重在训练期间基于左侧的已知恶意软件文件M₁的向量嵌入(由训练组件340分析)与右侧的恶意软件或良性文件的向量嵌入(由评估组件350分析)之间的余弦距离进行调整。相似和不相似文件的组合集合可以表示为F∈{M₂,B}。一些实施例使用具有随机梯度下降(SGD和Adam优化器)的反向传播来训练模型参[0068]当测试文件或其他内容时,一些实施例将已知的恶意软件文件或内容输入到左侧(训练组件340),然后使用右侧(评估组件350)评估新的或未知的文件或内容(例如,测试文件)。测试文件或内容可表示模型尚未训练的新的或不同的文件或内容。因此,根据一些实施例,在测试期间,模型的输出可以表示左侧的已知恶意软件内容的嵌入或向量与右侧的恶意或良性文件的嵌入或向量之间的余弦距离。例如,未知文件315中的第一文件集合可以首先经受文件仿真333(其可以是由文件仿真303执行并且由仿真器203执行的相同功能),使得第一文件集合被仿真并提取特定信息,诸如API调用和打包字符串,然后将其解包。然后可以从每个335的第一文件集合中选择特征(例如,经由与关于特征选择305描述的相同或相似的功能或经由特征选择器205)。作为响应,可以执行未知对构造320(例如,经由与训练集合构造307相同或相似的功能或经由未知构造组件220),使得相似的恶意测试文件被组合在一起并且任何其他良性测试文件被组合在一起。该功能可以是与训练集合构造307相同的功能,除了文件不是训练数据,而是用于测试模型的准确性或性能的测试数据之外。作为响应,在一些实施例中,对第一文件集合中的每个文件进行未知对评估311。该评估可以使用训练组件340的模型训练309来完成。例如,可以将第一文件集合中的第一测试文件转换为第一向量并映射到特征空间中,并且可以通过确定特征空间中向量之间的距离来确定第一向量与标记文件313中表示的一个或多个其他向量之间的相似性分数(即,表示为向量的其他恶意软件文件)。在各种实施例中,然后经由未知文件预测317输出相似性分数结果的指示。例如,可以生成任何合适的结构化格式、用户接口所描述的。[0069]在一些实施例中,评估组件350说明在数据已经被训练和测试之后,或者模型以其他方式被部署在特定应用中之后如何评估或预测文件。例如,在对模型进行训练和测试后,可以将模型部署在网页应用或其他应用中。因此,例如,用户可以在会话期间将特定文件(例如,未知文件315)上传到特定网页应用,以便请求关于特定文件是否可能与恶意软件相关联或属于特定恶意软件族的预测结果。因此,关于评估组件350描述的所有过程可以响应于请求在运行时执行,使得未知文件预测317可以指示用户上传的文件是否与恶意软件相关联。如系统300中所示,这种预测可以基于其他文件的模型训练309(和/或测试)。[0070]可以提供评估集合的格式,如下表II所示:标签(相似不相似)已知的恶意软件N-Gram特征未知文件N-Gram特征[0073]表II:评估集合实例格式。[0074]与训练集ID相似,评估集合ID包括已知恶意软件文件和未知文件(即AHA1M₁-SHAI)的SHA1文件哈希,从而可以确定哪个恶意软件文件与未知文件相似。其他两个字段包括来自已知恶意软件文件和未知文件的N-Gram。在一些实施例中,为了评估未知文件,首先从训练集(例如,标记的文件313)中高度流行的族的所有已知变型中包含所选择的N-Gram特征。在一些实施例中,这些特征对应于图4的深度学习模型的左侧。然后可以从在特定时间段(例如,特定的一天、一周、一个月等)内到达以进行处理的所有未知文件中包含所[0075]根据流行族的已知变型的数量和未知文件的传入率,可能需要进一步预过滤要考虑的文件对的数量。在一些实施例中,该预过滤包括采用MinHash算法来减少在训练期间使用的文件对的数量或在评估期间包括的文件对的数量。可替代地或附加地使用局部敏感哈希算法。MinHash算法约为0(n),并且仅标识需要与每个正在评估的未知文件进行比较的少量样本。[0076]在实施例中,在构造已知文件对之后,可以经由未知对评估311对它们进行评估。也就是说,可以使用模型训练309评估已知文件对并将其与训练对进行比较。如果相似性分数超过规定阈值,则实施例自动确定该文件与评估对中的已知恶意软件文件属于同一族[0077]一些实施例可替代地确定相似性分数或以其他方式通过用可选的K-最近邻(KNN)分类器替换cosine()距离来检测未知文件是否是恶意的,并将未知文件分配给投票的多数恶意软件族或具有一个或多个最高相似性分数的K个良性类已知文件。分配最近的单个文件的标签(K=1)可能会执行得很好。因此,一些实施例仅需要找到与未知文件(在未知文件315中)最相似的单个文件(例如,存储到标记文件313)。[0078]在一些实施例中,为了处理生产级输入数据流,需要预处理数据以进行训练和测试的其他功能块(例如,在MICROSOFT的COSMOSMapReduce系统中)。这些功能块可以包括用于训练的特征选择和训练集合构造,以及选择特征以创建未知对数据集的评估函数。在一些实施例中,一旦构造了数据集,就可以训练模型并且可以在单个计算机上评估评估或测试集的结果。在实践中,也可以在诸如MapReduce平台之类的平台中从经过训练的模型评估未知文件集和K-最近邻分类器的预测分数。[0079]图4是根据一些实施例的用于使用经过训练的模型来确定新文件是否是恶意的示例系统400的框图。系统400包括文件储存库402、引爆(detonation)和提取模块404、标签数似性模型416、新的未标记文件418、引爆和提取模块420、新文件分类模块422以及具有KNN分类输出424的相似文件。应当理解,系统400的任何组件可以替换图2和/或图3的系统中描述的任何组件或与其组合。[0080]在一些实施例中,引爆和提取模块404首先引爆并从文件存储库402中提取字符串和行为特征。在一些实施例中,引爆和提取模块404包括关于图2的仿真器203和/或图3的文件仿真303描述的功能。在说明性示例中,引爆和提取模块可以从文件储存库402中提取打包文件字符串(然后解包它们)和API调用以及它们的相关参数。在各种实施例中,文件储存库表示尚未标记的文件的数据存储,使得不知道文件是否在没有恶意内容的情况下关联。[0081]在一些实施例中,响应于引爆和提取模块404执行其功能,组合和构建模块408将特征与来自标签数据库406的标签组合并组合成相似性训练数据集,其中相似文件被配对施例中,组合和构建模块408包括关于图2的特征选择器205和/或训练集合构造组件207和/或图3的特征选择305和/或训练集合构造307描述的功能。在说明性示例中,计算设备可以接收对同一族的不同成员的用户选择,这些成员配对在一起以用于训练并标记为“相似”,并且其他成员与良性文件或不同族的成员组合并标记为“不相似”。[0082]在一些实施例中,响应于由组合和构建模块408执行的功能,训练相似性模块410些实施例中,训练相似性模块410包括如关于图2的模型训练组件209和/或图3的模型训练309所描述的功能。在说明性示例中,训练相似性模块410可以获取由组合和构建模块408生成的对,将这些对转换为向量,并将每一对嵌入特征空间中,并且在不同的训练阶段,特定重要特征的权重可以如本文所述进行调整,使得最终训练输出是表示为特征空间中的向量的每个文件,该向量基于在训练迭代中改变权重而以尽可能最小的损失嵌入。[0083]在一些实施例中,响应于被训练的相似性模型,KNN(K-最近邻)索引构建模块414接收由引爆和提取模块404生成的提取字符串和行为特征,并且进一步从标签数据库406接引412用于将传入或新文件(例如,在部署模型之后)映射或快速索引到训练数据,以便可以进行适当的分类。[0084]在一些实施例中,在构建KNN索引412之后,新的未标记文件418(其不是标签数据库406的一部分)被测试和/或以其他方式用于进行预测,诸如在模型部署之后。如图4所示,引爆和提取模块420通过引爆和提取字符串和行为特征来处理新的未标记文件418。在一些实施例中,新的未标记文件418是之前位于文件储存库402中的尚未针对恶意进行分析的新文件。可替代地,在一些实施例中,新的未标记文件418是不位于文件储存库402中的全新文件。在一些实施例中,引爆和提取模块420表示与引爆和提取模块404相同的模块。可替代地,这些可以是单独的模块。在一些实施例中,引爆和提取模块420包括如关于图3的仿真器203和/或文件仿真333所描述的功能。[0085]在一些实施例中,响应于引爆和提取模块420执行其功能,新文件分类模块422将新的未标记文件418中的新文件进行分类。在一些实施例中,这可以通过使用相似性模型416和KNN索引412查找相似的标记文件以产生具有KNN分类424的相似文件集合来发生。在一些实施例中,标签(或由新文件分类模块422进行的分类)通过多数投票确定新的未标记文件418的标签或分类。[0086]图5是本公开的特定实施例使用的示例深度学习神经网络(DNN)500的示意图。在一些实施例中,深度学习神经网络500表示图4的相似性模型416,或图3的模型训练309。深度学习神经网络500包括分支501和503,它们是截然不同但等同的子网络(如相同的参数值和一个输出层。分支501和503在顶部由函数503连接,以确定两个输入(例如,两个内容,诸如两个文件)之间的相似性。应当理解,虽然只有两个分支501和503以及一个特定的DNN配置,但是可以存在适当数量的分支或配置。与其他层相比,每一层都可以执行线性变换和/或挤压非线性函数。DNN可以有效地拥有一个输入层,其将加权输入分配到第一隐藏层,该隐藏层变换其输入并将其发送到第二隐藏层。第二隐藏层变换从第一隐藏层接收到的输出并将其传递给输出层,输出层执行进一步的变换并产生输出分类或相似性分数。[0087]在特定实施例中,DNN500表示经过训练的双深度神经网络,其中余弦相似性分数用于学习分支501和503的参数。在一些实施例中,在训练期间,左分支501和右分支503用已知的相似和不相似的内容对(例如,表示训练组件340)来训一文件转换为第一向量并在第一分支501的输入层处输入,并且将第二相似文件转换为第二向量并在第二分支503的输入层处输入并通过各层(隐藏层1、隐藏层2、输出层)进行馈送,使得输出层学习两个向量之间的距离函数。然后经由函数505,诸如能量函数,计算两个相似性内容集之间的余弦相似性。在一些实施例中,相似性分数是通过将表示第一内容和第二内容的两个向量组合成单个向量的结果而出现的,该单个向量通过取两个向量之间的逐元素绝对差(|h(X₁)h(X₂)1)来实现。在特定实施例中,然后将单个向量通过sigmoid函数以输出0至1之间的相似性分数。这个过程可以在第一训练阶段(或其他训练阶段)针对不相似的内容集对(例如,恶意文件和良性文件)重复,使得将内容集转换为相应的向量并组合成计算了相似性分数的单个向量。以此方式,DNN模型500被配置为接收2个输入或输入对和输入的相似性分数的1个输出,并且可以随时间调整权重。[0088]在一些实施例中,在评估期间(例如,由图3的评估组件350执行的功能),未知内容集被输入到右分支503并与左分支501中的已知恶意内容(例如,如标签数据库406或标记数据213中所示)进行比较。在一些实施例中,输出是未知内容集和已知恶意内容之间的余弦相似性分数。因为内容分析是成对进行的,所以可以针对不同的恶意内容重复输出过程,直到分数在已知恶意内容和新内容之间的距离阈值内(例如,文件足够接近以保证被分类的未知文件是恶意的和/或属于特定的恶意内容族)。例如,在第一迭代中,第一族的第一已知恶意软件文件在第一分支501处被输入并且第一未知文件在第二分支503处被输入。在经由函数505确定第一已知恶意软件文件和第一未知文件之间的距离在阈值之外(它们不相似)之后,可以在第一分支501处输入第二族的第二已知恶意软件文件,并且在第二分支处输入第一未知文件,以再次计算相似性分数。该过程可以重复,直到文件对之间的相似性分数在单个视图中的特征空间中表示或在单个时间进行分析,使得实施例可以确定表示恶意内容的哪个向量与新的未知内容相比最接近或具有最高的相似性分数。[0089]在评估如何工作的示例说明中,一个新的未知文件(不知道它是否包含恶意内容)被转换为第一向量并在第一分支501的输入层处输入,并且第二已知恶意文件被转换为第二向量并且在第一分支501的输入层处输入并且通过各层(隐藏层1、隐藏层2、输出层)进行馈送,使得输出层学习两个向量之间的距离函数。然后经由函数505计算两个相似性文件之间的余弦相似性。在一些实施例中,相似性分数是通过将表示第一文件和第二文件的两个向量组合成单个向量的结果而出现的,该单个向量通过取两个向量之间的逐元素绝对差来实现。在特定实施例中,然后将单个向量通过sigmoid函数以输出0至1之间的相似性分数。[0090]图6是本公开的特定实施例使用的示例深度学习神经网络(DNN)600的示意图。在一些实施例中,深度学习神经网络600表示图4的相似性模型416,或图3的模型训练309.DNN600包括分支603(M1)、605(M2)和607(B)。分支603指示处理第一恶意软件内容。分支605指示处理第二恶意软件内容。并且分支607指示处理良性内容(或新的/未知的内容)。如图6所示,每个分支包括一个输入层、三个隐藏层和一个输出层。分支603、60609和函数611连接以确定两个输入内容之间的相似性。可以理解,虽然只有三个分支603、605和607以及一个特定的DNN配置,但是可以存在任何合适数量的分支或配置。与其他层相比,每一层都可以执行线性变换和/或挤压非线性函数。[0091]在一些实施例中,DNN600表示深度结构化语义模型(DSSM)的变型,尽管DNN600是改善现有模型的新模型。DSSM可以解决训练模型的高级目标,该模型学习以基于重要性为不同的特征赋予不同的权重。然而,当采用特定实施例时,典型的DSSM可能不起作用。典型DSSM系统的输入由一个非常大的查询-文档对的集合组成,已知这些对会导致高点击率。截然不同的查询-文档对通常是不相关的,特别是在数据集很大并且事先随机打乱的情况下。典型的DSSM通过从原始训练集中的其他实例对中随机选择文档,为每个查询匹配文档下文中起作用,但它不适用于标识相似恶意软件内容集的任务。一个问地接受一对匹配的恶意软件文件(M1和M2)和一个不匹配的良性文件(B)的输入以进行训练。行特征选择可以产生对应于图6中所示的输入层大小14067的稀疏二进制特征。在实施例[0093]h=f(W.h;-1+b),i=2,…,N等式3f(WhN-1+b)。在一些实施例中,tanh()函数用作所有隐藏层的激活函数以及每个单独的[0095]虽然图6中所示的概念模型描绘了三个深度神经网络或分支(603、607和607),但相关性分数(分别由特征向量F₁和F₂表示)与它们对应的语义概念向量Y₁和Y₂的余弦相似间包含的文件对的数量。一旦构造了未知内容对的集合,就可以使用经过训练的DNN模型的计算机实现的方法、系统(包括具有至少一个处理器和至少一个计算机可读存储介质的至少一个计算设备)和/或计算机存储介质可以执行或被促使执行这些过程700、730和/或[0108]根据框704,可以选择计算机对象集合的一个或多个特征(例如,通过特征选择器是恶意的),而诸如文件的长度和格式之类的其他特征可以不被选择(例如,因为它们不能关于图2的特征选择器205、图4的组合和构建模块408和/或图3的特征选择305所描述的功[0109]根据框706,标识计算机对象的训练集合构造对(例如,通过训练集合构造组件相似的文件(例如,可以配对良性文件和任何恶意文件或两个属于不同的恶意软件族成员207、组合和构建模块408和/或训练集合构造307所描述的功能。[0110]根据框708,机器学习模型(例如,深度学习模型)至少部分地基于与特征集的重要特征值相关联的学习权重进行训练。例如,使用上图,特定的恶意软件文件可以与特定的或CURRENT_CONFIG项值)相关联。可以为特定族成员的每个标记的恶意软件文件学习这些权重,使得可以学习特征,这些特征对于被分类为恶意软件或在某个族成员中的文件是最重要的。[0111]在一些实施例中,通过将计算机对象的集合与特征空间进行比较并将其映射到特征空间中,通过深度学习模型来处理或运行计算机对象集合的相似计算机对象和不相似计算机对象(或关于框706描述的计算机对象)的对。并且至少部分地基于该处理,可以调整与深度学习模型相关联的权重以指示该计算机对象集合的某些特征对于预测或分类的重要性。在一些实施例中,调整包括改变相似计算机对象的第一计算机对象在特征空间中的嵌入。例如,在第一轮或多轮集的训练之后,可能不知道该计算机对象集合的哪些特征对于进行某个分类或预测是重要的。因此,每个特征可以具有相等的权重(或在阈值内接近相等的权重,诸如改变2%的权重),使得该计算机对象集合的所有指示基本上接近特征空间中的距离阈值或在该距离阈值内。然而,经过数轮训练或任何阈值量的训练后,指示可以基于特征相似性调整或改变彼此之间的距离。两个计算机对象匹配或在阈值内的特征越多,这两个计算机对象彼此越接近,而当特征不匹配或不在阈值内时,两个计算机对象彼此的距离越远。[0112]在各种实施例中,至少部分地基于在准备训练时将计算机对象集合的对的标签标识为相似或不相似,来训练深度学习模型。训练可以包括调整与深度学习模型相关联的权重以指示计算机对象集合的某些特征对于预测或分类的重要性。在一些实施例中,训练包括学习相似计算机对象的第一计算机对象(或计算机对象集合)在特征空间中的嵌入。学习嵌入可以包括基于两个或更多个指示之间的值的特征相似性和调整深度学习模型的权重来学习表示两个或更多个计算机对象(例如,文件)的两个或更多个指示之间的距离。例如,如上所述,两个文件的特征匹配或在阈值特征向量值内的特征越多,这两个文件在特征空间中彼此越接近,而当特征不匹配或不在一个特征向量值阈值内时,两个文件彼此在特征空间中的距离越远。因此,响应于不同的训练阶段,不同层的节点或神经元之间的连接强度可以基于对特定恶意内容族最突出或最重要的对应学习特征值加权或加强。以这种方式,例如,整个特征空间可以包括向量或其他指示的嵌入,这些向量或其他指示都是基于对应于不同特征的学习权重而学习或嵌入在特征空间中的,使得计算机对象的具有在相似计算机中发现的重要特征的指示在特征空间中在彼此之间的阈值距离内,而与不相似计算机对象或具有不重要特征的计算机对象对应的指示在同一特征空间中不在彼此之间的阈值距离内。[0113]在一些实施例中,框708表示或包括如关于图2的模型训练组件209、图4的训练相似性模块410、图3的模型训练309和/或图5的DNN500所描述的功能。[0114]图7B是根据一些实施例的用于评估新文件或未知文件的示例过程730的流程图。在一些实施例中,过程730发生在图7A的过程700之后,使得在框709处做出的相似性分数或预测基于使用关于图7A描述的学习模型。以这种方式,例如,可以在框703处接收请求之前训练深度学习模型。在一些实施例中,过程730表示或包括关于图3的评估组件350描述的功能。在一些实施例中,过程730中使用的“计算机对象”是表示测试计算机对象t的新的或未知的计算机对象(例如,文件),使得过程730表示测试机器学习模型。可替代地,在一些实施例中,在机器学习模型已经被训练、测试和部署之后,在运行时基于用户与网页应用或其他应用的交互来分析计算机对象。在一些实施例中,过程730中使用的计算机对象可替代地是[0115]根据框703,接收确定计算机对象是否包含恶意内容的请求(例如,经由未知构造组件220)。在一些实施例中,恶意内容包括已知的恶意软件签名或恶意软件,诸如Rootkit、特洛伊木马等的其他指示。在一些实施例中,恶意内容包括已知恶意软件要展示的已知功能,诸如在发作之前等待特定时间量,或在不同时间注入特定代码序列,或其他合适的行为。在一些实施例中,基于用户在运行时(例如,在训练和模型部署之后)将文件或指示上传到网页应用或app以确定计算机对象是否包含任何恶意内容,在框703处接收请求。在其他实施例中,基于用户上传机器学习模型尚未训练的新的或未知的计算机对象以测试机器学习模型(例如,在学习模型部署之前),在框703处接收请求。[0116]根据框705,提取计算机对象的一个或多个特征(例如,通过仿真器203)。在一些实施例中,提取包括提取解包的文件字符串和提取API调用,如例如关于图3的文件仿真303或333所描述的。在一些实施例中,框705包括将解包的文件字符串和API调用以及相关参数编码为N-Gram字符的集合,如例如关于文件仿真303和/或333所描述的。如本文所述,基于Jaccard指数的相似性系统的一个限制是它不能区分同一集合或计算机对象的多种类型的并使用字符级三元组将整个API名称编码为字符串来克服这些限制。在一些实施例中,框705表示或包括关于文件仿真303、333、图4的引爆和提取模块404和/或图2的仿真器203描述的功能。[0117]根据框709,基于各特征(在框705处提取),经由深度学习模型在计算机对象和多个计算机对象的已知包含恶意内容的每个计算机对象之间(例如,由未知评估器211)生成相似性分数。在一些实施例中,深度学习模型与表示已知恶意计算机对象的多个指示相关联。可以将多个指示与表示计算机对象的指示进行比较。在一些实施例中,至少部分地基于通过深度学习模型处理或运行计算机对象的指示,在计算机对象和多个已知恶意计算机对象中的每个已知恶意计算机对象之间生成相似性分数。在一些实施例中,相似性分数表示或指示计算机对象与多个已知恶意计算机对象中的每个已知恶意计算机对象之间的距离度量(例如,余弦距离)。以此方式,例如,可以基于多个特征确定计算机对象的指示在特征空间中是否在已知恶意计算机对象集合的阈值距离内。可以经由基于已知恶意计算机对象的不同特征的学习权重的训练来学习特征空间中已知恶意计算机对象集合的嵌入或定向对象与其他已知恶意计算机对象(它们可能各自属于截然不同的族)的特定距离。该距离可以具体地基于计算机对象与已知恶意计算机对象比较的确切特征值。例如,如果计算机对象与一些已知恶意软件计算机对象一样在训练期间具有已被加权到突出或重要性的确切特征值(例如,如关于图7A的框708所描述的),则这两个计算机对象之间的距离将在特征空间的阈值内接近,使得相似性分数很高。实际上,在已知恶意软件计算机对象的训练中,计算机对象具有的已对重要性进行加权的特征值越多,该计算机对象在特征空间中与已知恶意软件计算机对象的距离就越近。反之亦然。在已知恶意软件计算机对象的训练中,计算机对象具有的未对重要性进行加权的特征值越多,计算机对象与已知计算机对象在特征空间中的距离就越远。[0118]在一些实施例中,在框709处使用的学习模型是深度学习模型,该深度学习模型包括共享权重并通过距离学习函数连接的两个等同子网络。例如,在一些实施例中,深度学习模型表示或包括图5的DNN500和本文描述的相关功能。在一些实施例中,深度学习模型包括两个等同的子网络,它们在训练期间共享权重并处理一对相似的已知恶意软件计算机对象和一对不相似的计算机对象(例如良性文件)(例如,如关于图7的框708所描述的)。例如,这些深度学习模型实施例可以包括图5的DNN500。在一些实施例中,深度学习模型明确地接受一对匹配的恶意软件计算机对象和一个不匹配的良性计算机对象作为输入来进行训练,例如关于图6的DNN600所描述的。在各种实施例中,深度学习模型与嵌入在特征空间中的多个已知恶意计算机对象相关联(例如,关于图7A的框708描述的学习模型)。在一些实施例中,框709表示或包括关于图3的未知评估器211、新文件分类模块422和/或未知对评估311所描述的功能。[0119]在一些实施例中,在框709处生成的相似性分数附加地或可替代地包括或表示分类或预测分数(例如,和相关联的置信度),其指示分类或预测计算机对象属于多个已知恶意计算机对象中的每一个的可能性。例如,每个已知的恶意计算机对象可以包括三个截然不同的恶意软件族,诸如第一Rootkit种类、第二Rootkit种类和第三Rootkit种类。相似性分数可以指示计算机对象属于第一Rootkit种类的0.96置信度或可能性、文件属于第二Rootkit种类的0.32置信度或可能性,以及文件属于第三Rootkit种类的0.12置信度或可能[0120]在一些实施例中,至少部分地基于多个特征中的一个或多个与第一计算机对象的改变的嵌入匹配或接近(在阈值距离内)来设置第一计算机对象的相似性分数。在一些实施例中,“改变的”嵌入表示具有基于特征重要性的适当权重的学习或训练嵌入,例如关于图7A的框708中的最终训练嵌入或模型所描述的。[0121]在一些实施例中,特征空间包括良性计算机对象的指示,使得计算机对象的指示是否在阈值距离内的确定至少部分地基于分析良性计算机对象的指示。例如,在框703处接收到的计算机对象实际上可能是不包含恶意软件的良性文件。因此,当文件通过学习模型运行时,该文件可以在特征空间上更接近于基于特征值匹配的其他良性文件,或者更接近于在训练期间分析的良性文件的其他特征。因此,可以确定计算机对象在已知恶意软件计算机对象的阈值距离之外(并且在良性计算机对象的阈值距离内)。在各种实施例中,该指示包括基于学习两个输入(计算机对象)之间的距离函数的深度学习模型的两个分支的嵌入在特征空间中的向量,其中第一输入是所述向量,而第二输入是表示已知恶意软件计算机对象集合的第一恶意软件计算机对象的另一个向量。例如,这是针对关于图5的深度学习模型500描述的功能和分支来描述的。在一些实施例中,框709表示或包括关于图2的未知评估器211、未知对评估311和/或图4的新文件分类模块422描述的功能。[0122]根据框713,表示多个已知恶意计算机对象中的至少一个的一个或多个标识符(例如,特定恶意软件族或文件的名称)被提供(例如,由呈现组件21个或多个标识符可以指示计算机对象可能是恶意的和/或计算机对象可能属于特定的恶意族。在一些实施例中,至少部分地响应于相似性分数高于多个已知恶意计算机对象的集合和该计算机对象的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 叉车操作员职业资格认证培训合同二篇
- 冬季三防安全专项培训:防火、防冻、防煤气中毒
- 二年级科学第七单元溶解现象连线题精练测试卷重难点突破版
- 2026柔性可穿戴设备用信号线滤波阵列板力学适应性测试报告
- 创新生态挚情自真切深化产业创新发展行动方案
- 2026事业单位工勤技能-广东-广东水文勘测工二级(技师)历年参考题库含答案详解
- 2026事业单位工勤技能-山西-山西汽车驾驶与维修员二级(技师)历年参考题库含答案详解
- 2026事业单位工勤技能-山东-山东热力运行工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-安徽-安徽理疗技术员二级(技师)历年参考题库含答案详解
- 2026事业单位工勤技能-安徽-安徽下水道养护工五级(初级工)历年参考题库含答案详解
- 《技术学科知识与教学能力》(高级中学)全套备考核心资料(含真题解析)
- 2026年秋季七年级生物上册苏教版教学计划
- 化工园区公共管廊钢结构工程竣工验收报告
- 河北省2026中考语文作文真题解读及范文
- 2026年养老机构管理人员综合能力测试题
- 数据中心运维管理SOP文件
- 《外婆的澎湖湾》课件2025-2026学年湘艺版三年级下册音乐
- 8D报告培训教材
- 《网络与新媒体营销》课件 第四章 新媒体营销思维
- 防范鼠疫应急预案(3篇)
- 产后伤口感染预防
评论
0/150
提交评论