用于检测异常数据的方法、设备和计算机可读存储介质与流程

文档序号:17928126发布日期:2019-06-15 00:34阅读:151来源:国知局
本公开涉及数据处理领域,且更具体地涉及用于检测异常数据的方法、设备和计算机可读存储介质。
背景技术
::随着计算机和互联网的普及,特别是便携式电子设备的普及,软件和网络等已经变成了人们生产生活中不可或缺的一部分。自然而然的,数据安全就不可避免地成为了重要研究领域之一。对于软件来说,恶意软件(malware)是主要的安全威胁之一,其包括例如针对本地和网络的计算机病毒、蠕虫、木马、勒索软件、脚本等等,其通过窃取、绑架用户的私密信息等方式对用户造成经济、时间、精力等方面的损失。类似地,对于网络来说,欺诈行为等是主要的安全威胁之一,其包括例如通过注册海量新账号来滥用新手福利、通过批量下载数据资料并进行转卖来减少网站的正当收益等不当的用户行为。为了规避或减轻这些威胁,软件开发商们开发出各种软件来试图检测、避免或至少减轻威胁,例如反病毒软件、注册认证系统等等。与此相对的,为了规避这些检测,攻击方也不停地演进以躲避检测系统,而检测机制则要对此进行响应。根据最新的研究发现:仅66%的恶意软件能够在出现之后的24个小时内被检测出,仅72%的恶意软件能够在1周内被检测出,而仅93%的恶意软件能够在1个月内被检测出。事实上,为了躲避检测,攻击方通常会制造海量的不同的恶意二进制文件。例如mcafee每天接受超过30万个二进制文件的提交。类似地,在不当的用户行为方面,恶意用户通常会不停地更换它们攻击模式,例如使用不同的注册地址、注册电话,或者通过不同的ip地址等来进行注册、交互等,从而可以躲避对这种恶意网络行为的检测。技术实现要素:为了至少部分解决或减轻上述问题,提供了根据本公开实施例的用于检测异常数据的方法、设备和计算机可读存储介质。根据本公开的第一方面,提供了一种检测异常数据的方法。该方法包括:根据使用当前的检测器模型所确定的待检测数据的第一异常指数,向外部数据分析资源发送所述待检测数据中的至少一部分作为查询数据;从所述外部数据分析资源接收针对所述查询数据的分析结果;至少部分根据所述分析结果和所述待检测数据来更新所述检测器模型;以及根据使用经更新的检测器模型所确定的所述待检测数据的第二异常指数,将所述待检测数据中具有高于预定阈值的第二异常指数的数据确定为异常数据。在一些实施例中,使用当前的检测器模型或经更新的检测器模型来确定所述待检测数据的第一异常指数或第二异常指数包括:提取所述待检测数据的特征向量;以及对所述特征向量应用当前的检测器模型或经更新的检测器模型,以分别确定所述待检测数据的第一异常指数或第二异常指数。在一些实施例中,提取所述待检测数据的特征向量包括针对所述待检测数据的一个或多个属性数据中的每个属性数据执行以下操作之一:如果所述属性数据是分类型数据,则所述属性对应于所述特征向量中的特定元素;如果所述属性数据是序数型数据,则所述属性所在的分区对应于所述特征向量中的特定元素;如果所述属性数据是无格式串数据,则与所述属性相对应的3-gram对应于所述特征向量中的特定元素;以及如果所述属性数据是顺序型数据,则与所述属性相对应的n-gram对应于所述特征向量中的特定元素。在一些实施例中,所述外部数据分析资源是第三方检测器和/或专家评审。在一些实施例中,根据使用当前的检测器模型所确定的待检测数据的第一异常指数,向外部数据分析资源发送所述待检测数据中的至少一部分作为查询数据包括:确定所述待检测数据中的具有低于所述预定阈值的第一异常指数的第一数据;确定所述第一数据中的第一异常指数排名靠前的一个或多个第二数据作为所述查询数据;以及向所述外部数据分析资源发送所述查询数据。在一些实施例中,所述一个或多个第二数据的数目是所述第一数据的数目与固定比例的乘积或其取整值。在一些实施例中,所述一个或多个第二数据的数目是固定数目。在一些实施例中,至少部分根据所述分析结果和所述待检测数据来更新所述检测器模型包括:基于所述分析结果来更新所述待检测数据中的所述查询数据的异常标签;以及使用经更新的待检测数据来重新训练所述检测器模型。在一些实施例中,使用经更新的待检测数据来重新训练所述检测器模型包括:将经更新的查询数据相对于所述待检测数据中的其它数据以增加权重的方式来重新训练所述检测器模型。在一些实施例中,所述待检测数据是涉及用户行为的用户行为数据。在一些实施例中,所述用户行为数据包括以下至少一项:用户的注册信息、用户的操作信息以及用户的社交信息。根据本公开的第二方面,提供了一种电子设备。该电子设备包括:处理器;存储器,存储有指令,所述指令在由所述处理器执行时使得所述处理器执行根据本公开第一方面所述的方法。根据本公开的第三方面,提供了一种包括指令在内的计算机可读存储介质,所述指令在由处理器执行时还使得所述处理器执行根据本公开第一方面所述的方法。通过使用上述方法、设备和计算机可读存储介质,可以在引入有限的外部资源的情况下大幅提高针对异常数据的检测率,从而实现成本低廉且高效的异常数据检测机制。附图说明通过下面结合附图说明本公开的优选实施例,将使本公开的上述及其它目的、特征和优点更加清楚,其中:图1是示出了根据本公开实施例的用于检测异常数据的示例系统的架构和流程图。图2a和2b是示出了根据本公开实施例的检测系统所针对的示例数据的分布的曲线图。图3a是示出了针对交叉验证、时间一致样本和根据本公开实施例的时间一致标签这三种训练方案进行示例说明的示意图。图3b是示出了针对交叉验证、时间一致样本和根据本公开实施例的时间一致标签这三种训练方案的性能进行比较的曲线图。图4是示出了在不同配置下对根据本公开实施例的用于检测异常数据的系统的性能进行比较的曲线图。图5a和5b是示出了根据本公开实施例的用于检测异常数据的系统在不同影响因素的作用下的性能比较图。图6是示出了根据本公开实施例的用于检测异常数据的示例方法的示例流程图。图7是示出了根据本公开实施例的用于检测异常数据的示例设备的硬件布置图。具体实施方式下面参照附图对本公开的部分实施例进行详细说明,在描述过程中省略了对于本公开来说是不必要的细节和功能,以防止对本公开的理解造成混淆。在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不脱离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同的附图标记用于相同或相似的功能、器件和/或操作。此外,在附图中,各部分并不一定按比例来绘制。换言之,附图中的各部分的相对大小、长度等并不一定与实际比例相对应。此外,本公开并不局限于所涉及的设备的各个具体通信协议,包括(但不限于)2g、3g、4g、5g网络,wcdma、cdma2000、td-scdma系统等,不同的设备可以采用相同的通信协议,也可以采用不同的通信协议。此外,本公开并不局限于设备的具体操作系统,可以包括(但不限于)ios、windowsphone、symbian(塞班)、android(安卓)、linux、unix、windows、macos等,不同的设备可以采用相同的操作系统,也可以采用不同的操作系统。尽管下文中将主要结合软件应用和/或用户行为数据来说明根据本公开实施例的用于检测异常数据的方案,然而本公开不限于此。事实上,本公开的实施例在经过恰当的调整和修改的情况下,也可以适用于各种其它异常数据检测领域,例如识别具有特定行为模式的用户群体(例如,高价值用户)。换言之,只要是需要对异常数据加以区分的场景,都可以使用根据本公开的实施例的方案。如上所述,需要一种能够检测异常数据的方案,以快速检测出诸如恶意软件、恶意用户行为之类的异常数据。机器学习提供了大规模及时检测的可能性,但是恶意软件领域或恶意用户行为领域不同于常见的机器学习应用。与诸如语音和/或文本识别之类的应用(其中,发音和字符形状随时间而保持相对恒定)不同,恶意软件/恶意用户行为会随着敌人尝试躲避或欺骗检测方而不停演进。实际上,恶意软件检测或恶意用户行为检测已变成了一种在线过程,其中,软件商/网络服务提供商必须响应于新的威胁而连续更新其检测器,这要求了针对新数据的准确标签。不幸的是,恶意软件/恶意用户行为标记(labelling,或有时也被称为“打标签”、“加标签”)提出了与众不同的挑战。与在文本识别领域中进行阅读这一行为足以对文本进行正确标记相反,恶意软件和/或恶意用户行为的欺骗性和技术性的本质要求进行专家式分析,这通常涉及消耗更多的资源(时间、精力、金钱等)。为此,根据本公开的一些实施例提出了一种可以将机器学习与专家评审相结合的大规模检测机制,以使得该检测机制能够跟上最新威胁的进化步伐。由于专家评审标记是成本高的,因此将专家建模为能够针对有限样本选择来提供标签(或标记)。从而,将有限提供的专家评审标签与更广泛提供的有噪标签相结合。在本文中,可以将专家标签视为准确性相对更高的昂贵资源,例如通过计算更费时的高精度算法所得到的更准确的结果,或者甚至通过人工计算、检查、预测等给出的精确结果;相对地,可以将有噪标签视为准确性相对更低的廉价资源,例如通过计算时间短的低精度算法、或大批量未经专业培训的人员所得到的更快速的标记结果。如下面的涉及软件应用(例如,二进制文件或binary)的一些实施例中所描述的,可以使用向virustota1(其是恶意软件分析和检测网站,http://www.virustotal.com/)提交的样本来检验本公开实施例的方案。该数据集包括针对每次提交的二进制文件的时间戳和反病毒标签,其捕捉到了在2.5年跨度上的二进制文件的出现和流行性以及标签知识。根据本公开一些实施例的方案采用了结合准确的专家评审标签和有噪反病毒标签的定制方案来每周训练新的模型,且针对下一周来评估每个模型。此外,为了进行大规模的评估,在一些实施例中,通过揭示在样本首次出现之后的至少8个月后进行自动扫描的结果对专家评审标签进行仿真,为自动化检测器提供了更新并检测新病毒的可能性。事实上,可以注意到:准确的训练标签通常并不能在第一时间对于所有数据可用,且因此在下文中检验了训练标签对性能测量的影响。现有的工作已经引入了“时间一致样本”的概念,其要求用于对机器学习模型进行训练的二进制文件早于用于对经训练的机器学习模型进行评估的二进制文件。而在本公开的一些实施例中,进一步引入了“时间一致标签”的概念,其不仅要求训练用二进制文件早于评估用二进制文件,还要求训练用标签也早于评估用二进制文件。然而需要注意的是:时间一致性标签限制了标签质量。例如在二进制文件出现的早期,其相对应的标签往往不一定正确,随着时间的推移以及各种检测器的演进,才有可能出现更为准确的标签,从而这也导致在使用“时间一致标签”的情况下所训练出的模型并不一定能够实现高检测率。与此相对的,在通常做法中,通常收集在二进制文件首次出现很久之后的标签,并使用该成熟的标签用于训练和评估,从而导致所训练出的模型具有虚假的高检测率。与此类似的,对于异常用户行为来说,在新出现一种欺诈模式的情况下,没有正确标签的训练数据也使得在实际中训练出的检测模型不能或很小可能地正确检测到这种欺诈模式。从而更一般地,在一些实施例中,对于任何训练数据集,其中应当采用时间一致标签的训练方式,以保证所训练出的检测器与现实场景更为相符。因此,本公开的一些实施例所提供的异常数据检测方案实际上做出了以下贡献:-提出了一种融合了有限外部资源(例如,专家评审)的检测系统,其可以大幅提升对异常数据的正确检测率。例如,在恶意软件检测领域中,可以将恶意二进制文件(或异常二进制文件)检测率从0.5%误报率下的72%(与virustotal上的最佳反病毒软件相当)分别提升到在使用平均每天10个和80个专家评审的情况下的77%和89%。此外,该检测系统还可检测到之前尚未被任何其它软件检测到的42%的恶意二进制文件。-此外,证明了时间不一致标签对性能测量的影响,其人为地虚涨了检测率,将某些检测器的正确检测率在0.5%误报率的情况下从72%涨到91%。此外,如下面将要提到的:评估还包括提供用于更全面理解检测性能的若干附加试验。尽管根据本公开一些实施例的检测系统的设计包括静态和/或动态特征,然而由于作为对比的virustotal检测器必须静态工作,因此在一些情况下还仅使用静态特征将根据本公开一些实施例的检测器的性能与virustotal进行比较。注意到:限制到静态特征实际上对本方案较为不利,因为virustotal检测器可以针对任何文件进行操作,而本方案将自身约束到virustotal中可用的静态属性上。本方案的性能受到轻微的倾向,在每天80条查询的情况下产生了在0.5%误报率下的84%检测率,然而这依然胜过了virustotal上最好的检测器。此外,还通过对仿真专家标签添加随机噪声,来探索了不准确的人类标记者或不完全准确的算法对系统的检测性能的影响。从而可以发现根据本公开一些实施例的方案在存在不完美标签的情况下是鲁棒的。假如采用具有90%正确率和5%误报率的专家评审,则本方案依然能够实现在0.5%误报率下的82%检测率(尽管与使用准确的专家评审的89%检测率相比略低)。相关的若干种异常数据检测方案通常采用“弱检测器”设计,即,其将某些实例标记为良性是成本低廉的,而将任何实例标记为恶意则需要成本高昂的确认。与弱检测器相比,根据本公开一些实施例的方案将昂贵的资源(例如,专家评审标签)视为周期性重新训练系统的组成部分,而不是检测流程中的最终步骤。本方案不是尝试将整个恶意实例集合传递给昂贵的资源用于验证,而是从该实例集合中识别出能够最大程度提高自动化检测的较小实例集合,并将其交给准确度更高的有限资源进行标记,并将该高准确度标签与其它数据结合使用,从而以相对低的成本训练出具有高准确度(或检测率)的检测模型。此外,在相关的检测方案中,由于样本数据缺少时间戳,因此通常将样本随机分为若干组来进行训练和验证。因此实际上其并不能准确地评估在面对新型攻击时检测器性能或专家评审的工作负载。这是因为随机分组保证了在验证时遇到的病毒类型通常都能在训练时遇到,从而虚涨了其检测性能。但在实际中,当遇到训练时没出现过的新型恶意软件时,这样的检测器并不能具有这种检测准确性。相对地,根据本公开实施例的检测方案中,专家评审集成相对于不确定采样提升了检测率17个百分点。接下来,将结合附图1来详细描述根据本公开一些实施例的用于检测异常数据的示例系统的架构和流程图。图1是示出了根据本公开实施例的用于检测异常数据的示例系统10的架构和流程图。示例系统10大致上分为两个部分,可以大致将在横跨附图的虚线上方的部分视为系统10的“检测流程”,而将虚线下方的部分视为“训练流程”。当输入待检测数据110(例如,二进制文件、用户行为数据等)时,检测流程可以提取待检测数据110的特征向量120,并对特征向量120应用当前模型130以得到判定结果140,例如,将待检测数据110分类为异常的或正常的(即,标记、加标签或打标签)。与此同时或在这之前或之后,训练流程将待检测数据110连同所有其它截至目前的数据(已检测、未检测、有标签、无标签等)一起存储在数据库115中。在每次重新训练周期期间,在一些实施例中,数据库115可将其中已经具有标签的数据直接作为训练数据170,而将没有标签的数据提供给第三方150(例如,virustotal或任何其它外部资源)进行数据分析。需要注意的是:该第三方150可以是具有低准确度的标记资源,例如免费的反病毒软件检测服务(例如,virustotal等),在本实施例中,不要求其提供高准确度的数据分析结果(或标签)。此外,在另一些实施例中,数据库115也可以将其中存储的有标签数据提供给第三方150进行数据分析,以例如使用第三方150周期更新的免费资源来更新这些数据的标签(例如,有些之前被标记为正常的数据在更新后可能被发现属于异常数据)。回到第三方150的数据分析,在一些实施例中,被第三方150视为是异常的数据(例如,恶意软件或恶意用户行为等)可以作为训练数据170,而被第三方150视为是正常的数据(例如,良性软件或良性用户行为等)可以提供给系统10的检测流程的特征提取120以被当前模型进一步检测。如下面详细描述的,这样做的原因主要是因为通常第三方在认定数据异常时会非常谨慎,与此相对的在认定数据正常时会相对宽松,从而需要对被认定为正常的数据进行进一步检测。然而本公开不限于此,在另一些实施例中,也可以将被认定为正常数据用作训练数据170。此外,如图1所示,经过第三方150上的检测器和/或当前模型130检测的二进制文件可被视为是针对集成专家评审160的提交。在一些实施例中,被当前模型130所确信检测出的异常数据(例如,恶意二进制文件、恶意用户行为数据等)可直接被包括在训练数据170中。此外,根据查询策略135,向集成专家评审160提交剩余数据中被有限评审预算所允许的一部分据称为正常的数据(例如,良性二进制文件、良性用户行为数据等)。此外,在一些实施例中,最后剩余的未被提交的数据作为正常或良性数据被包括在训练数据170中。在重新训练周期结束时,在训练流程中产生(例如,通过特征提取180和模型训练190)的下一个模型195取代当前模型130,且重复这样的过程。接下来,将简要介绍特征提取120和180的操作。很多机器学习算法在针对数字特征学习时最有效,但是并不是所有的数据(例如,二进制文件、用户行为数据等)的属性都能具有该格式。因此这里讨论将二进制文件/用户行为数据的静态和动态属性转换为数值特征向量时的四种常用技术。具体应用四种技术中的哪一种可以根据属性来具体确定。对于每种技术,这里讨论应当如何应用技术来最大化防止对手规避的鲁棒性。分类型(categorical):分类映射将每种可能属性与相应一个维度相关联。例如,在软件应用领域中,deviceiocontrolapi调用可以对应于特征向量x中的索引i,其中,当且仅当二进制文件发出deviceiocontrolapi调用时xi=1。类似地,在用户行为领域中,用户注册时填写的诸如性别之类的每种属性可以对应于特征向量x中的索引i,其中,例如当且仅当该用户行为数据相对应的用户具有相应属性时xi=1。由于属性的缺少也揭示了与数据有关的信息,因此可将包括特殊的“空(null)索引”来指示没有该属性的值。例如,该二进制文件可以不生成任何网络流量,或者可以未被签名。在可能的情况下,对分类特征提取的应用构造为将攻击方约束在有限的值集合内。例如,对二进制文件访问的ip地址应用子网掩码,以有效地缩减ip空间,并将对相似ip地址的访问与相同的特征索引相关联,从而使得在提取特征这一步骤就能够有效地防止对手规避。序数型(ordinal):序数型属性表现为在可能性有序范围内的特定值,例如二进制文件的大小、用户行为数据的大小等。为了保留适应由于对手尝试躲避检测而进行波动的鲁棒性,可以使用分区(binning)方案对序数值进行向量化,而不是将每个不同的数量与唯一的索引相关联。分区方案如下工作:对于给定的属性值,我们将返回该值所落入的分区的索引,并将相应维度设为1。此外,对于大范围变化的属性来说,可以使用非线性方案来避免较大的值在训练期间压倒较小的值。例如,写文件的次数v可被离散化为值i,使得3i≤v≤3i+1,其中,指数分区容纳了该数量的较大动态范围。无格式串(free-formstring)或无格式字符串:很多重要的属性表现为无界的串,例如软件签名校验中的评论字段、用户发帖的内容等。如果将这些属性表示为分类型特征,则可能导致攻击者能够通过以下方式来躲避检测:改变属性中的单一字符,使得属性映射到不同的维度。为了增加鲁棒性,可以捕捉这些串的3-gram,其中,每三个邻接字符的序列表示不同的3-gram,且将每个3-gram视为不同的维度。由于该方案依然对于改变3-gram的变型敏感,所以引入了附加的字符串简化。在一些实施例中,为了减少对3-gram变化的敏感性,定义了字符之间的等价关系的类,且将每个字符替换为其典型代表(canonicalrepresentative)。例如,在一些实施例中,串3pue5f可被典型化为0baa0b,其中,大小写元音被分别映射为“a”和“a”,大小写辅音被分别映射为“b”和“b”,且数值字符被映射为“0”。类似地,串7sei2d也可被典型化为0baa0b。有时,我们将3-gram的字符加以分类,以进一步控制变形且更好地捕捉串的形态。映射可移植可执行(portableexecutable)资源名称(其有时呈现出长的随机外观字节序列)是该串简化技术的一种应用。顺序型(sequential):有些属性的值是令牌序列,其中,每个令牌表现为有限值范围。这些顺序型属性与无格式的串属性具有强关联性,然而个体令牌不限于个体字符。在软件领域中,可以使用顺序型特征提取来捕捉例如api调用信息,因为存在有限的api调用集合且调用按特定顺序发生。与此类似的,在用户行为领域中,可以使用顺序型特征提取来捕捉例如用户触发网站动作的命令序列,其同样也存在有限的网站动作且按特定顺序发生。与无格式串特征类似,可以使用n-gram方案,其中,每n个相邻令牌的序列对应于单个特征。在对手能够引入不具有效果的令牌和不同含义的令牌的情况下,顺序向量化对于规避可能是脆弱的。为了增加鲁棒性,在一些实施例中,可以应用在n=1、n=2以及n=3情况下的n-gram向量化,以减少对手能够生成的唯一n-gram的数量。需要注意的是:在上文中提到的n-gram(例如,n=3是为3-gram)是针对语言的机器学习领域中常用的技术手段,鉴于其并不是本公开的研究对象,因此这里省略对其的详细描述,具体细节可以参看相关论文、网站。然而,这并不影响本领域技术人员根据本文描述的内容来实现本公开实施例的方案。以下,以二进制文件为例来大致介绍在向量提取时所可能涉及到的各种属性。与通过分析二进制文件本身所获得的静态属性相反,可以通过在诸如cuckoo沙盒之类的虚拟机中执行二进制文件来获得动态属性。以下表1提供了静态属性、动态属性和相关联向量化技术的概览。表1:其中针对所有属性应用了分类型向量化,针对标有*的属性应用了无格式串向量化,针对标有的属性应用了序数型向量化,以及针对标有的属性应用了顺序型向量化此外,可用的静态属性可由以下各项构成:可执行代码本身的直接属性、与可执行代码相关联或根据其导出的属性、以及对可执行代码应用的启发式工具的结果。从代码直接提取的属性可包括任何静态导入库函数以及可移植可执行格式的各个方面,例如资源语言、段属性(例如,熵)和资源属性(例如,类型)。与代码相关联的元数据可包括magic和exiftool工具的输出,其推断诸如文件类型的属性,以及与文件相关联的任何数字签名。可以从每个数字签名中收集验证状态、证书链中每个实体的身份、评论、产品名称、描述、版权、内部名称、以及发布方。对可执行文件应用的启发式工具可包括peid和来自clamav的工具,且检查与恶意软件或潜在不想要的应用相关联的打包、网络工具或管理工具。此外,可用的动态属性捕捉与主机操作系统、磁盘/光盘、和网络资源等的交互。与操作系统的交互可包括:动态库导入、互斥标记(mutex)活动以及对系统上运行的其他进程的操纵。此外,可捕捉由二进制文件访问的所有windowsapi调用的执行轨迹,包括任何系统调用的参数、参数值以及返回值。磁盘/光盘活动的概述可包括文件系统和注册表操作,其捕捉二进制文件的任何持久性效果。此外,还可以在特征提取期间捕捉利用文件系统操作的完全和/或部分路径、针对文件系统的操作的类型和/或数量;还利用二进制文件所访问或修改的特定注册表键。最后,可从二进制文件的网络活动中提取特征,包括http和dns流量和经由tcp和udp来访问的ip地址。与此类似的,也可以提取表示用户行为数据的各种静态属性和/或动态属性的特征向量。此外对于用户行为数据,同样也可以设置相应的静态属性、动态属性和相关联的向量化技术的对应关系。在一些实施例中,用户行为数据可以包括(但不限于):用户的注册信息(例如,用户名、昵称、头像、签名、住址、联系电话、电子邮件等)、用户的操作信息(例如,用户的登录时间、地点、ip地址、频率、所使用的软件名称、版本、消费情况等)、社交数据(例如,论坛发帖信息、好友信息、与好友的互动等)等。回到图1,在每个重新训练周期期间,训练过程必须向所有可用的训练用二进制文件分配标签。在一些实施例中,该分配训练标签的处理对四种不同的信息源加以统一协同:来自第三方150的判定结果、来自当前模型130的判定结果(即,未被查询策略135所选中提交的结果)、任何在先的评审(即,来自数据库115的判定结果)、以及针对由查询策略135所选择用于评审160的少量二进制文件的附加新鲜判定结果。然而本公开不限于此,例如在另一些实施例中,可以采用上述这些判定结果中的一部分或附加地采用来自其它资源的判定结果等。回到图1,该加标签过程可以开始于第三方数据分析结果150和对当前模型130的应用,这二者都对要由查询策略135向集成专家评审160提交的数据集合进行删减。对第三方数据分析150的结果的应用利用了以下直觉知识:即,比起误报,第三方数据分析150所提供的判定更倾向于漏报。换言之,第三方数据分析150认定某个数据恶意时更为谨慎,而认定某个数据良性时相对更为宽松。与此相对应的,在训练流程期间将第三方数据分析150提出的某个数据是异常的这一信息视为足以将该数据标记为异常的,但是通常不在做进一步分析之前将未被检测出异常的数据标记为正常。可以将该启发式方法称为“未检测到”过滤器,因为仅未被第三方数据150分析检测出的二进制文件才被视为进行专家评审160的候选。接下来,可以对所有未检测出异常的数据应用当前的检测模型130,并为分数高于阈值m的任何数据分配异常标签。可以将该启发式方法称为“自动重新标记(autorelabeling)”,因为一些未被检测出异常的数据被自动重新标记,类似于来自半监督学习的自我训练概念。如果数据既未被第三方数据分析150检测出,也不能被当前检测器模型130所自动重新标记,则可以考虑将该数据提交给查询策略135。在一些实施例中,从不能被可信地标记为异常的数据中,查询策略135可以选择其子集进行专家评审160以改进其训练标签。该不确定性采样查询策略135可选择最接近判定边界(例如,前述阈值m)的数据。直观上的原因是使得模型训练受益于了解其不确定的那些数据的标签。鉴于已有的不确定性采样策略并未意识到前述两种启发式方法如何使用来自反病毒扫描器的有噪标签来过滤数据供其考虑,因此提出一种能够意识到启发式方法的新型查询策略,以增加集成专家评审的有效性。由于启发式方法有可能将数据识别为异常的,可以将未被它们识别的或未被选择进行专家评审的任何数据标记为良性的。因此,仅将数据标记为异常的专家评审结果将影响最终的训练数据标签。因此,开发出了异常度查询策略,其选择接收到本检测模型的较高分数的、但并未高到要经过自动重新标记的数据进行专家评审。更一般的,在一些实施例中,该查询策略135可具有提交预算b,其中,将b确定为在重新训练周期期间新的训练数据的总数中的固定百分比。此外,在另一些实施例中,预算b也可以是不依赖于总数的固定值。然后异常度查询策略135可向集成专家评审160提交具有小于自动重新标记阈值m的最大异常度分数的b个剩余数据。未向集成专家评审提交的超过b的剩余二进制文件被标记为良性。通过选择有可能是异常的、但将可能被标记为良性的数据,异常度方案比不确定性采样能够使得专家评审更大可能地影响训练标签的改变。此外,在一些实施例中,在考虑了若干形式的学习(包括基于判定树和最近邻居的方案)之后,可以选择逻辑回归(logisticregression)作为根据本公开实施例的异常数据检测模型的基础。作为线性分类器,逻辑回归为每个特征分配一个权重,并计算作为特征向量的线性函数的预测,从而得到实值量。将每个数据评分为实值量使得可以通过调整数据被标记为异常所使用的阈值来创建正确报告和误报之间的平衡。线性分类可以很好地适应各种数据规模,因为模型的大小是数据维度的函数,而不是训练数据大小的函数。此外,权重和特征之间的清晰关系允许分析人员容易地理解检测器正在做什么以及为什么这样做,而这对于复杂的树集成(treeensemble)来说是相当困难的。最后,在具有能够适应高维度特征空间和大量训练数据的很多可用实现中,逻辑回归在训练时可以进行扩缩。回到训练流程,其将来自专家评审160的高质量标签与来自第三方数据分析150和当前模型130的有噪标签加以集成。由于专家评审160仅对相对少量的数据进行标记,因此如果不做任何特殊处理,则来自第三方数据分析150的有噪标签将在训练期间淹没专家评审160的标签,除非对专家评审160的标签进行特殊处理。因此,提出以下的标准逻辑回归训练过程,然后描述对专家评审160的标签进行的特殊处理。逻辑回归训练过程找到使标签训练集{(x1,y1),...,(xn,yn)}的以下损失函数最小化的权重向量w,其中,yi∈{-1,+1}表示数据xi的标签:其中,c_>0和c+>0是控制正则化和分类重要性加权的不同的超参数,而l(x)=log(1+exp(-x))是逻辑损失函数。上式(1)中的第一项和第二项分别对应于针对阴性实例和阳性实例的误分类损失,且最后一项是正则化项,其阻碍具有很多大的非零权重的模型的出现。为了加强专家评审160的标签的效果,在训练期间为由专家评审160标记为良性的任何数据分配较高的权重w。从而获得了仅对专家评审160标记为良性的数据进行加权的出众结果,这是因为异常度查询策略135倾向于选择落在判定边界的异常侧的数据进行专家评审。当在训练期间将正常数据分类为异常的,则必须要求特别高的权重以对模型产生纠正效果,并强制该实例接收正常分类。在针对二进制文件的示例中,评估用数据集包括了各种二进制文件,以反应二进制文件随时间的出现和流行,并记录随时间进展的针对二进制文件的最佳可用标签知识方面的改变。因此,在一些实施例中,所使用的评估数据集由在2012年1月到2014年6月之间提交到virustotal上的大约110万个不同的二进制文件构成,其实现了上述标准。virustotal从终端用户、研究者和公司接收提交,得到了包含上千个恶意软件族(异常数据)和良性实例(正常数据)在内的多样化二进制文件采样。为了对与每天和每小时的批处理提交作业的交互进行随机化,virustotal提供了在前述收集周期的每个小时期间在随机化分段期间提交的二进制文件的散列值,这反映了在收集周期期间总二进制文件的大约1%。因此,数据集包括了每个二进制文件的每次提交,以准确地表示二进制文件随时间的流行性和标签知识。最终,保留了2012年1月~2012年12月,即数据集的第一年,用于获得初始模型,并使用从2013年1月到2014年6月的数据来执行针对检测器的完整滚动窗口评估。图2a示出了扫描随时间的变化,可见扫描在测量性能的整个周期中持续出现,且大约前200天包含了较少的扫描。除了随时间的良好分布之外,扫描还将跨不同二进制文件分布。图2b示出了对数据集的重新提交,且水平轴按从最常提交到最不常提交的顺序来对二进制文件进行排序。该数据集包括重新提交以确保评估数据的分布通过并入每个个体文件的流行性来对向virustotal提交的实际数据的分布加以镜像,有效地平衡了数据集中的多态性(polymorphism)的任何效果。此外,在分析中包括重新扫描事件在评估期间提供了更及时的标记。检测系统评估证明了集成专家评审技术在提升性能方面相对于当前反病毒软件商的潜力、以及专家评审错误的影响、额外专家评审的边际效应以及不同专家评审集成策略的影响。如前所述,在一些实施例中,取代使用实际人类专家评审,可以使用具有高准确度且高成本的算法来提供专家评审160。此外,在一些实施例中,在例如对根据本公开一些实施例的检测系统进行评估时,可以使用已有的高准确度标签对专家评审160进行仿真。例如,通过使用与二进制文件相关联的黄金标签(goldlabel)对集成专家评审160进行建模。对于考虑到不完美专家评审的实验,可以为仿真专家评审分配正确报告率和误报率,允许专家评审提供正确标签的可能性依赖于样本的黄金标签。通过调节对样本的黄金标签的正确响应的可能性,能够更精确的对实际专家评审的错误(其高度可能将良性二进制文件正确识别为良性的,但较不可能将恶意二进制文件正确识别为恶意的)进行建模。此外,在一些实施例中,可以对前述各种系统参数进行管理,包括专家评审提交预算b、自动重新标记置信阈值m和学习参数c-、c+和w。下文中描述了改变提交预算b的效果。在一些实施例中,在每天平均进行80个查询的情况下进行试验。在一些实施例中,微调剩余的参数以在误报率在0.01和0.001之间的情况下最大化针对从行业伙伴获得的二进制文件集合的检测率。在一些实施例中,可以使用以下值:m=1.25、c-=0.16、c+=0.0048以及w=10。在研究或开发设置下测量检测系统性能的主要动机是理解系统将如何在生产设置下表现。因此,测量技术应当寻求最小化与生产设置的差异。实际中,随着新的待检测数据的出现以及检测器用经更新的标签来恰当响应,对待检测数据和标签的了解也随时间改变。未能随时间变化识别出待检测数据和标签知识的出现的性能测量技术有效地利用了来自未来的知识,使得测量出的方案准确性虚涨。例如,考虑到能够躲避检测但一旦首次被识别出就能够容易被检测的恶意软件。由于将正确标记的数据插入训练数据中导致性能虚涨出现,其实际上避开了首次识别异常数据这一困难的任务。以下分析了用于测量检测器的性能的三种方案,每种方案以不同程度来识别随时间出现的二进制文件和标签。“交叉验证”是在待检测数据独立同分布(i.i.d.)情况下用于机器学习评估的常见方案。然而,在恶意软件/恶意用户行为检测场景中,i.i.d.假设并不成立,这是因为恶意软件/恶意用户行为随时间变化以躲避检测。交叉验证评估完全不考虑时间,其将数据随机划分并对所有数据应用评估质量标签。维持了时间一致样本的评估识别出数据在时间上的排序,但是并未识别出标签随时间的出现。相反,其对所有二进制文件应用来自未来扫描结果的黄金标签。在训练期间使用黄金质量标签有效地假设了准确检测立刻发生。维持时间一致标签的评估完全尊重知识的渐进性,将数据按时间排序并将训练过程约束为在训练时可用的数据和标签。为了进行具有时间一致样本和时间一致标签这二者的测量,可以将数据划分为周期,并使用前n-1个周期来检测周期n中的内容。在下文中,除非另行明确指示,否则可以使用周期长度为一周,然而本公开不限于此。图3a示出了上述三种方案的细节。图3a是示出了针对交叉验证、时间一致样本和根据本公开实施例的时间一致标签这三种训练方案进行示例说明的示意图。如图3a所示,左上角示出了在不同时间时可能具有不同标签的数据a~g。例如,数据c在t=0的时候出现,且其在出现时的标签为阴性结果(即,正常数据),而到了时间t=2时其标签变为阳性结果(即,异常数据),且最终确认的黄金标签为阳性结果。在图3a右上角的“交叉验证”方案中,对数据及其标签的出现时间顺序不作要求,且因此在训练时可能会出现在验证时使用的数据。例如,训练时使用具有已知黄金标签的数据e′(例如,第二次提交的具有阳性标签的数据e′),而经过这样训练的模型无疑可以准确地识别标签未知的第一次提交的数据e。换言之,由于使用了不区分出现时间的训练数据,因此使得检测器的检测性能虚涨。在左下角的“时间一致样本”方案中,尽管样本(或数据)本身按时间顺序出现,但其对应的标签则始终使用的是最终的黄金标签,这同样会导致检测器性能虚涨。以样本c为例,尽管如图3a的左上角所示,其在t=0时刻时是阴性结果,但在时间一致样本方案中,将使用其阳性的黄金标签来进行训练,从而使得检测器能够准确检测到该样本,这也与实际出现的情况不同。在右下角的“时间一致标签”方案中,数据和标签都是按时间顺序出现的,这与实际情况保持一致。换言之,经过该方案训练和评估出来的检测器性能才是最接近实际情况的检测器性能。该实验证明了测量技术有效地影响了执行结果。图3b示出了分析的结果。注意到:交叉验证310和时间一致性样本320表现类似,在0.5%误报率的情况下它们的检测率相对于时间一致性标签330分别虚长了20和19个百分点。由于专家评审通过揭示未来标签来有效地减少了时间一致性标签的影响,因此在没有任何专家评审查询的情况下进行了这些实验。注意到:这里的结论仅适用于恶意软件/用户行为检测环境,而不是用于分类场景。这是因为分类场景有可能会根据待分类数据的变化而导致分类的变化,例如分类增多或减少,换言之并不存在所谓的黄金标签。图4是示出了在不同配置下对根据本公开实施例的用于检测异常数据的系统的性能进行比较的曲线图。在不涉及来自集成专家评审的情况410下,检测器实现了0.5误报率下的72%检测率,这与virustotal上的最佳的检测器表现大体相当。在获得来自专家评审的支持的情况420下,通过使用例如平均每天80个查询将检测率增加为0.5%误报率下的89%。此外,virustotal从命令行调用检测器,而不是在执行环境下,这允许检测器任意检验文件,但是不能观察其动态行为。由于本检测系统包括分析动态属性,因此也观察了在被约束到virustotal提供的静态属性时的性能,分别是与具有和不具有专家评审相对应的曲线430和440。注意到该约束对本检测器施加了比对第三方的检测器更加不利的约束,第三方检测器可以访问二进制文件本身并应用根据动态分析所导出的签名。图4证明了本检测器性能在被约束到静态特征时下降,但是在来自集成专家评审的支持的情况下,依然超过了第三方检测器,实现了0.5%误报率下的84%检测率。除了提供相对于第三方标签的跨所有数据聚集的更优检测性能,本检测器还体验到了更大的成功:其能够检测被virustotal的检测器所漏检的新型恶意软件。在一些实际数据集包括的110万样本中,存在具有恶意黄金标签但是未被所有软件商在样本出现的第一时间检测到的6873个样本。使用每天80个专家评审查询,本检测器能够在1%误报率和0.1%误报率的情况下分别检测到44%和32%的新型样本。此外,为了提供对误报的相应分析,测量了在具有良性黄金标签且未被任何软件商在样本首次出现时检测为恶意软件的61213个样本上的性能。在这61213个良性样本中,本检测器在针对所有数据的误报率1%和0.1%情况下将2.0%和0.2%分别标记为恶意的。由于该样本尚未被包括为训练数据,可以预期对良性样本的初始扫描的误报率增加。此外,专家评审查询策略可以表现出相对于现有工作的大量优势。图5a示出了上文中介绍并讨论的三种改进中的每种改进的影响。例如,在采用全部三种改进的情况下,即查询策略135根据恶意度(而非不确定性)来选择向专家评审提交的样本、采用“未检测到”过滤器、以及采用自动重新标记,可以看到其正确报告率或检测率是最高的。而在选择其中两项甚至一项的时候,正确报告率下降。对于固定的标签预算b=80,不确定性采样导致了在0.1%误报率的情况下比上述技术改进的组合的检测率低17个百分点。此外,图5b示出了在专家评审160本身的正确率变化的情况下的对比。可以看到随着专家评审的正确报告率(truepositiverate或tpr)上升,最终训练出的检测器模型的正确报告率也逐步上升。但即便专家评审的tpr在0.80时,最终训练出的检测器模型的tpr也高于0.8。可见,通过使用上述结合专家评审的检测机制,可以在引入有限的外部资源的情况下大幅提高针对异常数据的检测率,从而实现成本低廉且高效的异常数据检测机制。接下来,将结合图6来详细描述根据本公开实施例的用于检测异常数据的方法。图6是示出了根据本公开实施例的用于检测异常数据的示例方法600的流程图。如图6所示,方法600可以包括步骤s610、s620、s630和s640。根据本公开的一些实施例,方法600的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图6所示的具体操作顺序。方法600开始于步骤s610,在步骤s610中,可以根据使用当前的检测器模型所确定的待检测数据的第一异常指数,向外部数据分析资源发送待检测数据中的至少一部分作为查询数据。在步骤s620中,可以从外部数据分析资源接收针对查询数据的分析结果。在步骤s630中,可以至少部分根据分析结果和待检测数据来更新检测器模型。在步骤s640中,可以根据使用经更新的检测器模型所确定的待检测数据的第二异常指数,将待检测数据中具有高于预定阈值的第二异常指数的数据确定为异常数据。在一些实施例中,使用当前的检测器模型或经更新的检测器模型来确定待检测数据的第一异常指数或第二异常指数可以包括:提取待检测数据的特征向量;以及对特征向量应用当前的检测器模型或经更新的检测器模型,以分别确定待检测数据的第一异常指数或第二异常指数。在一些实施例中,提取待检测数据的特征向量包括针对待检测数据的一个或多个属性数据中的每个属性数据可以执行以下操作之一:如果属性数据是分类型数据,则属性对应于特征向量中的特定元素;如果属性数据是序数型数据,则属性所在的分区对应于特征向量中的特定元素;如果属性数据是无格式串数据,则与属性相对应的3-gram对应于特征向量中的特定元素;以及如果属性数据是顺序型数据,则与属性相对应的n-gram对应于特征向量中的特定元素。在一些实施例中,外部数据分析资源可以是第三方检测器和/或专家评审。在一些实施例中,根据使用当前的检测器模型所确定的待检测数据的第一异常指数,向外部数据分析资源发送待检测数据中的至少一部分作为查询数据可以包括:确定待检测数据中的具有低于预定阈值的第一异常指数的第一数据;确定第一数据中的第一异常指数排名靠前的一个或多个第二数据作为查询数据;以及向外部数据分析资源发送查询数据。在一些实施例中,一个或多个第二数据的数目可以是第一数据的数目与固定比例的乘积或其取整值。在一些实施例中,一个或多个第二数据的数目可以是固定数目。在一些实施例中,至少部分根据分析结果和待检测数据来更新检测器模型可以包括:基于分析结果来更新待检测数据中的查询数据的异常标签;以及使用经更新的待检测数据来重新训练检测器模型。在一些实施例中,使用经更新的待检测数据来重新训练检测器模型可以包括:将经更新的查询数据相对于待检测数据中的其它数据以增加权重的方式来重新训练检测器模型。在一些实施例中,待检测数据可以是涉及用户行为的用户行为数据。在一些实施例中,用户行为数据可以包括以下至少一项:用户的注册信息、用户的操作信息以及用户的社交信息。图7是示出了根据本公开实施例的用于检测异常数据的设备700的示例硬件布置图。如图7所示,电子设备700可以包括:处理器710、存储器720、输入/输出模块730、通信模块740和其它模块750。需要注意的是:图7所示实施例仅为说明本公开之用,且因此不对本公开加以任何限制。事实上,该电子设备700可以包括更多、更少或不同的模块,且可以是单独的设备或分布在多处的分布式设备。例如,该电子设备700可以包括(但不限于):个人计算机(pc)、服务器、服务器集群、计算云、工作站、终端、平板电脑、膝上型计算机、智能电话、媒体播放器、可穿戴设备、和/或家用电器(例如、电视、机顶盒、dvd播放器)等。处理器710可以是负责电子设备700的整体操作的组件,其可以与其他各个模块/组件通信连接,以从其它模块/组件接收待处理数据和/或指令并向其他模块/组件发送经处理数据和/或指令。处理器710可以是例如通用处理器,例如中央处理单元(cpu)、信号处理器(dsp)、应用处理器(ap)等。在该情况下,其可以在存储器720中存储的指令/程序/代码的指示下执行上面根据本公开实施例的用于检测异常数据的方法的各个步骤中的一个或多个步骤。此外,处理器710也可以是例如专用处理器,例如专用集成电路(asic)、现场可编程门阵列(fpga)等。在该情况下,其可以根据其电路设计专门执行上面根据本公开实施例的用于检测异常数据的方法的各个步骤中的一个或多个步骤。此外,处理器710也可以是硬件、软件和/或固件的任意组合。此外,尽管图7中仅示出了一个处理器710,但实际上处理器710也可以包括分布在多个地点的多个处理单元。存储器720可以被配置为临时或持久性地存储计算机可执行指令,该计算机可执行指令在由处理器710执行时可以使得处理器710执行本公开中描述的各个方法的各个步骤中的一个或多个步骤。此外,存储器720还可以被配置为临时或持久性地存储与这些步骤相关的数据,例如待处理的用户行为数据、特征向量、异常度数据等。存储器720可以包括易失性存储器和/或非易失性存储器。易失性存储器可以包括例如(但不限于):动态随机存取存储器(dram)、静态ram(sram)、同步dram(sdram)、高速缓存等。非易失性存储器可以包括例如(但不限于):一次性可编程只读存储器(otprom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、掩膜型rom、闪存rom、闪存(例如,nand闪存、nor闪存等)、硬盘驱动器或固态驱动器(ssd)、高密度闪存(cf)、安全数字(sd)、微型sd、迷你型sd、极限数字(xd)、多媒体卡(mmc)、记忆棒等。此外,存储器720也可以是远程存储设备,例如网络连接存储设备(nas)等。存储器720也可以包括分布在多个地点的分布式存储设备,例如云存储器。输入/输出模块730可以被配置为从外部接收输入和/或向外部提供输出。尽管在图7所示实施例中将输入/输出模块730示出为单一模块,但实际上其可以是专门用于输入的模块、专门用于输出的模块或其组合。例如,输入/输出模块730可以包括(但不限于):键盘、鼠标、麦克风、摄像头、显示器、触摸屏显示器、打印机、扬声器、耳机或任何其他可以用于输入/输出的设备等。此外,输入/输出模块730也可以是被配置为与上述设备连接的接口,例如耳机接口、麦克风接口、键盘接口、鼠标接口等。在该情况下,电子设备700可以通过该接口与外部输入/输出设备连接并实现输入/输出功能。通信模块740可以被配置为使得电子设备700能够与其它电子设备进行通信并交换各种数据。通信模块740可以是例如:以太网接口卡、usb模块、串行线路接口卡、光纤接口卡、电话线路调制解调器、xdsl调制解调器、wi-fi模块、蓝牙模块、2g/7g/4g/5g通信模块等。从数据输入/输出的意义上,通信模块740也可以被视为输入/输出模块730的一部分。此外,电子设备700还可以包括其它模块750,包括(但不限于):电源模块、gps模块、传感器模块(例如,接近传感器、照度传感器、加速度传感器、指纹传感器等)等。然而,需要注意的是:上述模块仅是电子设备700所可能包括的模块的部分示例,根据本公开实施例的电子设备不限于此。换言之,根据本公开其它实施例的电子设备可以包括更多的模块、更少的模块或不同模块。至此已经结合优选实施例对本公开进行了描述。应该理解,本领域技术人员在不脱离本公开的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本公开的范围不局限于上述特定实施例,而应由所附权利要求所限定。此外,在本文中被描述为通过纯硬件、纯软件和/或固件来实现的功能,也可以通过专用硬件、通用硬件与软件的结合等方式来实现。例如,被描述为通过专用硬件(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)来实现的功能,可以由通用硬件(例如,中央处理单元(cpu)、数字信号处理器(dsp))与软件的结合的方式来实现,反之亦然。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1