使用查询数据提供流行率信息的制作方法

文档序号:10694069阅读:396来源:国知局
使用查询数据提供流行率信息的制作方法
【专利摘要】在一个示例中,一种数据安全系统能够基于针对对象(例如,文件或文件的散列)的查询数据来确定文件流行率。一种示例性算法可以在存储很少数据记录的同时提供使用所述流行率的在统计上合理的估计值,并且因此可以以O(1)时间复杂度(即,恒定时间)来提供流行率信息。这种算法可以近实时地应用于提供例如对所述文件流行率的查询的立即响应。
【专利说明】
使用查询数据提供流行率信息
技术领域
[0001]所描述实施例总体上涉及计算机安全领域,并且更具体地,涉及使用查询数据提供流行率(prevelance)信息。
【背景技术】
[0002]现代计算技术可以提供在全球分布的资源上维持大量数据的能力。某些分布式体系结构允许对标识大的分布式数据组(例如,金融市场分析师(analyst)、跟踪药物流行病学、数据安全系统等)的趋势的请求作出响应的能力。处理这种数据是具有挑战性的。数据安全系统例如可以分析分布式数据以便标识安全威胁并且向不同端点提供最新安全信息,所述端点各自可以远离所述系统定位。
【附图说明】
[0003]结合附图参考以下说明以便提供对本公开及其特征和优点的更彻底的理解,其中,类似参考标号表示类似部分,在附图中:
[0004]图1是展示根据本说明书一个或多个实施例的用于提供数据安全信息(包括信誉信息)的示例性系统的部件图。
[0005]图2是根据本说明书一个或多个实施例的信誉信息系统的方框图。
[0006]图3是展示根据本说明书一个或多个实施例的用于提供查询数据的流行率信息的逻辑的流程图。
[0007]图4是根据本说明书一个或多个实施例的用于改变连续值数目而使查询值与目标值相匹配的概率分布的图形表示。
[0008]图5是示出匹配值数目与流行率信息之间的基于概率的示例性对应性的图表。
[0009]图6A和图6B描绘了展示根据本说明书一个或多个实施例的用于提供文件的散列的流行率信息的逻辑的流程图。
[0010]图7展示了根据本说明书实施例的对应于三个设备的三个示例性位序列。
[0011 ]图8是根据实施例的耦合到示例处理器上的存储器的方框图。
[0012]图9是根据实施例的以点对点(PtP)配置安排的示例计算系统的方框图。
【具体实施方式】
[0013]提供数据安全常常要求处理大量的数据。提供数据安全信息的系统可以接收对与一个或多个对象相关的安全信息的多个查询(例如,在30天时间周期内数百万或数十亿)。对象可以是文件、散列值、文件的散列、或任何其他数据对象。所述系统可以响应于所述多个查询中的每一个而提供信誉分数。信誉分数反映出所查询对象为恶意(例如,恶意软件或被病毒感染的文件)的可能性。数据安全系统可以使用信誉分数来确定行动(例如,隔离所述文件、删除所述文件、和/或停止利用所述文件的任何线程运行)的过程。信誉分数可以基于多个因素来确定。确定信誉分数的因素可以包括:对象的内容、针对对象的查询数目、和/或对象的流行率。每个因素可以用作信誉分数的一个指示符。例如,流行率可以表示已经向数据安全系统查询对象的唯一设备的数目并且可以用于提供信誉分数。类似地,针对对象的查询数目可以用于提供信誉分数。作为示例,服务器端多态恶意软件具有非常低的流行率,因为由服务器输出的每个文件实例如果被散列的话则具有不同的散列值。因此,低流行率可能对应于低信誉分数,而高流行率可能对应于高信誉分数。在示例中,一些对象是高度流行的并且已知是恶意的;在这种情况下,高流行率分数可能并不对应高信誉分数。
[0014]实现提供信誉分数的数据安全系统的挑战并不是微不足道的。例如,所述系统可以包括一个或多个分布式部件(例如,分布在不同城市、州或国家的服务器)并且可以处理来自多个设备的查询。每个设备可以是不同类型的设备(例如,不同操作系统)并且远离数据安全系统。因此,实现这种系统可能要求进行复杂的分布式处理以便基于多个因素提供信誉分数。例如,通过对查询文件的唯一设备的数目进行计数来计算文件的流行率可能要求针对所述文件维持唯一设备的列表。考虑以下对唯一设备的数目进行计数的挑战的说明。假设设备的数目是在17的数量级,文件的数目是在19的数量级,并且国家的数目是在12的数量级,那么所述系统可能要处理数据记录的118个条目(例如,查询数据库记录、或数据库)来对唯一设备的数目进行计数。因此,对唯一设备的数目进行计数可能要求强大的处理和存储能力,以便计算、存储和查询必要的数据。此外,首次报告文件的每个设备可能要求全局态变化(例如,计数的增量),这潜在地造成高数据波动率。另外,对设备的数目进行计数的过程可能具有为0(n)的时间复杂度。
[0015]以下公开内容提供了用于实现本公开的不同特征的许多不同实施例或示例。以下描述部件和安排的具体示例以便简化本公开。当然,这些仅是示例并且并不旨在是限制性的。另外,本公开在不同示例中可以重复参考标号和/或字母。这种重复是出于简明性和清楚性的目的,并且本身并不决定所描述的不同实施例和/或配置之间的关系。
使用查询数据的流行率信息
[0016]通过使用查询数据确定流行率信息或查询数目的基于统计学的估计值来提供数据安全信息的系统可以要求较小的计算和存储能力并且增强所述系统的响应性。有利地,这提供了流行率在数学上合理的估计值,并且可以在接收到查询的时候(即,在查询时间、实时地、或近实时地)得到确定,从而避免由于处理大数目的数据记录所造成的长的延迟。
[0017]图1是展示根据本说明书一个或多个实施例的用于提供数据安全信息(包括信誉信息)的示例性系统的部件图。在这个示例中,安全信息系统100包括安全服务器102、信誉信息系统104、通信网络106、以及通信设备108。通信设备108经由通信网络106向安全服务器102发射数据和/或从其接收数据。
[0018]通信设备108各自可以经由通信网络106向安全服务器102提交对与对象相关的安全信息的查询(例如,查询数据)。安全信息可以包括例如:信誉分数、流行率分数、查询数目、和/或已经进行查询的唯一设备的数目。在一种实现方式中,通信设备108可以基于用户对查询文件的选择而生成请求所述文件的流行率分数的查询数据。可替代地,作为数据扫描程序的部分,在通信设备108上执行的应用可以生成查询数据。在一种实现方式中,通信设备108可以包括以下各项中的至少一项:计算设备、有线或无线通信设备、移动电话、台式计算机、或可以提供对安全信息的查询的任何其他通信设备。
[0019]安全服务器102可以被配置成用于至少部分地基于信誉信息系统104的针对对象的输出向通信设备108提供所述对象的数据安全信息。响应于接收来自通信设备108的查询数据,安全服务器102可以处理查询数据和/或向信誉信息系统104提供查询数据以便进行处理。在处理数据之后,安全服务器102可以向通信设备108发射含有与对象相关的安全信息的响应。所述响应可以包括:对象是否是恶意的、指示的置信水平、信誉分数、流行率、查询数目、已经进行查询的唯一设备的数目、和/或其估计值。安全服务器102的示例性实现方式可以提供用于向通信设备108发射响应的基于万维网的框架。
[0020]通信网络106可以被配置成用于在安全服务器102与通信设备108之间传输数据。通信网络106的示例性实现方式可以利用无线或有线技术(例如,局域网(LAN)、无线LAN、蜂窝网络),并且可以支持不同的通信和/或安全协议(例如,互联网协议(IP)、超文本传输协议(HTTP)、安全套接字层(SSL)、简单对象访问协议(SOAP))。
[0021]为了清楚起见,图1对于通信设备108、安全服务器102以及通信网络106中的每一项描绘了特定数目。然而,在根据本说明书一个或多个实施例的系统中可以实现任何数目的服务器、设备以及网络。此外,图1所描绘的示例性信誉信息系统104示出了两个部件104a和104b。然而,信誉信息系统104可以在一个位置(例如,单个设备)中实现或在多个位置中实现(例如,跨多个设备分布)。
[0022]图2是根据本说明书一个或多个实施例的信誉信息系统的方框图。如图2所描绘的信誉信息系统104是如图1所描绘的信誉信息系统104的示例性实现方式。在这个示例中,信誉信息系统104包括查询系统202、数据存储区(data store)208、数据挖掘系统210、查询数据204、以及信誉数据206。查询系统202、数据存储区208以及数据挖掘系统210中的每一个彼此耦合以便允许所述系统与数据存储区之间的双向数据传输。
[0023]查询系统202接收查询数据204并且输出信誉数据206。在一种实现方式中,查询系统202可以使用不同途径对新出现的威胁或众所周知的威胁起反应。新出现的威胁可以是具有低流行率和未知安全威胁水平的文件。众所周知的威胁可以是具有高流行率和已知安全威胁水平的文件。对于新出现的威胁,例如,所述系统可以立即更新信誉分数并向基于云的服务器发布更新的信誉分数。然而,对于众所周知的威胁,所述系统可以既不更新信誉分数(例如,由于信誉是已知的并且可能是相对稳定的)也不立即向基于云的服务器发布更新的信誉分数。替代地,众所周知的威胁的数据可以由数据挖掘系统210处理,并且稍后用于更新信誉分数并向基于云的服务器发布更新的信誉分数。处置方面的不同之处在于信誉被更新和/或分布的速度。对于低流行率文件,可能重要的是快速发布更新的估计值,因为威胁可能是快速进化的(例如,多形恶意软件)。对于高流行率文件,可能重要的是提供详细分析和历史上下文,以便确定例如恶意文件正在扩散的方式以及恶意文件扩散所用的机制。
[0024]在实施例中,查询系统202可以使用至少一个处理器来实现用于提供流行率信息的逻辑。例如,查询系统202可以实现如图3所描绘的用于提供查询数据的流行率信息的逻辑,和/或如图6A和图6B所描绘的用于提供文件的散列的流行率信息的逻辑。
[0025]查询数据204封装用于查询信誉信息系统104的数据。在实施例中,查询数据204可以包括以下各项中的至少一项:与设备相关联的标识符、用于通信设备108的元数据、和/或与文件相关联的标识符。与设备相关联的标识符可以包括:设备标识符、生成和/或提交查询的设备的全球唯一隐式标识符设备标识符、设备标识符的散列、设备上所存在的操作系统。用于通信设备108的元数据可以包括生成和/或提交查询的设备的IP地址、设备所位于的国家、和/或其组合。与文件相关联的标识符可以包括:文件标识符、经受查询的文件的全球唯一隐式标识符、经受查询的文件的全球唯一隐式的散列、文件的至少一部分内容的散列、文件的全部内容的整体的的散列、文件的统一资源定位符(URL)、和/或其任意组合。
[0026]信誉数据206封装用于提供信誉信息的数据,在一种实现方式中,信誉数据206可以包括估计响应和精确响应中的至少一项。例如,信誉数据206可以包括已经查询对象的唯一设备的估计数目或精确数目或所接收的针对对象的查询的估计数目或精确数目(例如,不管查询设备)。
[0027]数据存储区208可以被配置成用于存储从通信设备108、数据挖掘系统210或查询系统202接收的数据。存储在数据存储区208中的数据可以包括查询数据204、信誉数据206、或与信誉或安全相关的其他数据。在一种示例性实现方式中,数据存储区208可以包括以下各项中的至少一项:关系数据库、大规模并行处理(MPP)数据库、结构查询语言(SQL)数据库(例如,CSR/数据库实例)、NoSQL数据库、MongoDB、和/SHadoop。
[0028]数据挖掘系统210可以被配置成用于访问数据存储区208、查询系统202、查询数据204和/或信誉数据206。在一种实现方式中,数据挖掘系统210可以利用以下各项中的至少一项:统计分析、集群、分类、机器学习、MapReduce、和/或回归。
用于基于查询数目估计流行率的统计模型
[0029]对象的流行率可以基于所接收的针对对象的查询数目来估计。因此,系统已经接收的针对对象的查询数目的估计值可以用作对象的流行率的估计值。用于基于查询数目估计流行率的统计模型可以将针对对象(例如,文件、文件的散列等)文件的查询表示为投掷η面骰子的结果,其中,每个“面”具有成为投掷结果的相等概率。如以上所讨论,η的值用作已经接收的针对对象的查询数目的估计值。投掷η面骰子的结果可以是查询值。骰子的目标值可以是整数值,其中,O〈目标值Sn。在这个示例中,查询值匹配目标值的可能性与骰子已经被投掷η次数关联。换言之,如果骰子的结果匹配目标值,那么可以估计出骰子已经被投掷了 η次数。由于骰子的投掷表示查询,骰子已经被投掷了 η次数的估计值对应于已经接收了 η个针对对象的查询的估计值。因此,所述模型可以基于针对对象的查询数目的数学上合理的估计值提供流行率的估计值。
[0030]由于所接收的对每个对象的查询数目在文件之间可以是不同的,所述模型可以单独地应用于每个对象。在已经接收了针对对象的查询之前,针对对象的查询数目是已知的;它等于零。从这个初始点开始,可以选择η的值来标识所考虑的目标值。如果例如,η的值被增量地设定成表示数量级(例如,I; 10; 100; I,000;10,000; 100,000;等)的值,那么所述模型可以提供已经查询对象的设备的数目数量级的估计值。作为另一示例,η的值和目标值都可以被设定成10。每次“投掷”骰子时,将结果(S卩,查询值)与目标值进行比较。在一种实现方式中,随机数生成器(RNG)可以生成值以便表示投掷η面骰子的结果。如果结果匹配目标值,可以将η的值记录为针对对象的查询数目的估计值。在记录了估计值之后,可以使η的值增加到所考虑的下一个数目(例如,下一个数量级,在这个示例中,从10增加到100)。例如,如果已经接收到4个查询,那么数量级可以是I;如果已经接收到354,001个查询,那么数量级可以是100,000。在一种实现方式中,在结果匹配目标值之后,可以增加目标值以匹配η的值,保持相同的值,或可以向目标值分派大于零且小于或等于η的新的值。针对每个对象,可以单独存储估计值、查询值、目标值中的每一项的值、和/或η的值。
[0031]图3是展示根据本说明书一个或多个实施例的用于提供查询数据的流行率信息的逻辑的流程图。图3中的逻辑是用于基于查询数目估计流行率的统计模型的实现方式。在这个示例中,逻辑300包括:起点302,检索至少一个目标值304,从设备接收查询数据306,响应于接收查询数据而生成至少一个查询值308,将至少一个查询值与至少一个目标值进行比较310,基于比较输出查询数据的流行率312,以及终点314。
[0032]逻辑300从起点302开始。起点302可以与其他逻辑、例程、应用或线程的起点/终点重合。此外,在起点302处,可以对数据(例如,对象、值、变量等)进行初始化、检索、或访问,以供在逻辑300中使用。
[0033]接着,在程序304处,检索至少一个目标值。所述至少一个目标值可以被实现为单个值、值序列、位序列、与设备相关联的标识符、查询文件的第一设备的标识符、或可以与每个查询的其他值(例如,查询值)进行比较的任何值。目标值可以是从数据源(例如,数据源208)检索的或可以是生成的。例如,目标值可以是基于与设备相关联的设备标识符生成的位序列或η面骰子的值,如以上相对于统计模型所描述的。
[0034]在程序306处,从设备(例如,通信设备108)接收查询数据(例如,查询数据204)。例如,可以从通信设备接收文件和对文件的流行率的请求。
[0035]根据程序308,响应于接收查询数据而生成至少一个查询值。在一种实现方式中,查询值可以是与设备(即,查询设备)相关联的标识符、随机生成的数目、与设备相关联的标识符的散列、或可以与每个查询的其他值(例如,目标值)进行比较的任何值。
[0036]在程序310处,将至少一个查询值与至少一个目标值进行比较。为了便于比较,可以用相同方式来实现目标值和查询值(例如,目标值和查询值中的每一个是位序列,每一个都是整数值等)。所述比较可以包括通过以下方式来对值进行比较:确定哪一个是较大值/较小值,确定值是否相等,对值执行成对比较,和/或确定值是否呈相同格式。所述格式可以包括例如:编码类型、用于产生序列的散列类型、和/或位序列的长度。比较的结果可以作为流行率值(例如,作为其估计值)直接输出,或可以用作其他计算的基础。例如,所述结果可以被输入到模型(诸如统计模型和/或模拟),以便确定查询数据的流行率。
[0037]在程序312处,输出(查询数据的流行率。流行率可以包括流行率值、所估计查询数目、已经查询对象的唯一设备的所估计数目等。流行率可以基于比较查询值和目标值的结果来计算。例如,流行率值可以从信誉信息系统向提交查询数据的设备输出。在一种实现方式中,可以从第一设备接收查询数据并且可以将相应信誉信息提供给第二设备、或多个设备。
[0038]最后,在终点314处,所述逻辑结束。终点314可以用作其他逻辑、例程、应用或线程的起点/终点。例如,终点314可以在接收到随后的查询时指挥处理器执行从起点302开始的逻辑。
用于基于唯一设备的数目估计流行率的统计模型
[0039]对象的流行率可以基于已经提交针对对象的查询的唯一设备的数目来估计。因此,已经提交针对对象的查询的唯一设备的数目的估计值可以用作对象的流行率的估计值。用于基于唯一设备的数目估计流行率的统计模型可以将查询设备表示为具有位的随机分布的二进制数。例如,散列函数可以应用于与查询设备相关联的唯一标识符(例如,设备ID),以便生成具有位的随机(或伪随机)分布的位序列。在一种实现方式中,散列函数可以是若干众所周知的散列算法之一。例如,散列函数可以是消息摘要算法5(MD5)、安全散列算法1(SHA1)、和/或安全散列算法(SHA256)之一。二进制数可以是查询值。当从设备接收到针对对象的第一查询时,生成所述设备的查询值(即,具有位的随机分布的二进制数)并将其存储作为目标值。对于来自第一设备之外的设备的每一个随后的查询,将传入查询的查询值与第一设备的查询值(即,目标值)进行比较,以便从序列中的第一位开始确定连续匹配位的数目。仅在匹配位数目大于最大匹配位数目(n_max)的情况下,才可以对匹配位数目进行存储。最大匹配位数目(n_max)表示针对对象所观察到的最多匹配位数目。高匹配位数目的可能性与已经查询对象的唯一设备的高数目的可能性关联。换言之,增长的最大匹配位数目与已经查询对象的唯一设备的较高数目的增长的可能性关联。因此,所述模型基于已经查询对象的唯一设备的数目在数学上合理的估计值提供流行率的估计值。
[0040]在这个模型中,来自同一设备对同一文件的重复查询对已经查询对象的唯一设备的数目的估计值无影响。以下是情况就是这样的简单证明:
(1)来自针对其与第一设备匹配的位的数目(n_i)大于当前最大匹配位数目(n_max)的设备的任何传入查询导致n_max采取n_i的值。如果设备提交另一个对同一文件的查询,n_i必定小于或等于n_max,因此随后的查询对n_max值将无影响。
(2)来自针对其与第一设备匹配的位的数目(n_i)小于或等于当前最大匹配位数目(n_max)的设备的任何传入查询并不使n_max改变。如果设备提交随后的对同一文件的查询,n_i必定小于或等于n_max,因此随后的查询对n_max值将无影响。
[0041]所述模型的统计特性可以至少部分地基于二进制数的长度(S卩,位序列的长度、或N)来得到。对于给定长度的位序列,唯一位序列的数目是有限的并且由(2N-1)限定。唯一位序列的数目表示所述模型针对N的值可以表示的唯一设备的数目。此外,所述数目的唯一设备可以被排序的方式的数目是有限的并且由((2N-1)!)限定。所述数目的设备可以被排序的方式的数目表示所述设备可以查询对象的方式(即,查询设备的次序)的数目。因此,对于任何所希望的连续匹配位数目(n_match),其中,0〈n_match<N,有可能生成第x个针对对象的查询导致连续匹配位数目等于njnatch的概率的有限概率分布。
[0042]作为说明,白球数目(n_white)可以表示对于其连续匹配位数目等于n_match的设备的数目;黑球数目(n_black)可以表示所有其他设备(S卩,针对其连续匹配位数目不等于n_match的设备)的数目。所述模型对应于包括所述数目的白球和所述数目的黑球的袋子。所述袋子中的球的总数(total)表示由所述模型表示的唯一设备的总数(例如,唯一位序列的数目)。因此,从所述袋子中抽出的第X个球是白色的概率(即,PU))从所述袋子中抽出的第X个球是白色的概率(即,PU))可以如下表示:
[0043]total = (2N-1)
[0044]n_whi te = ((2'(N-n_match))-1)
[0045]n_black = total_n_white
[0046]P(I) =n_white/n_total
[0047]P(x)=P(x_l)*(n_black-(x_l))/(total_(x_l))
[0048]图4是根据本说明书一个或多个实施例的用于针对变化的连续值数目使查询值与目标值相匹配的概率分布的图形表示。图4中的概率分布是使用以上等式生成的,其中,N =10并且11_13作61:被给予范围是从1-8的给定整数值。
[0049]图5是示出最大匹配值数目(例如,n_max)与流行率信息之间的基于累积概率的示例性对应性的图表,其中,N=64。确切地,n_max值具有相应的以下各项:
(1)数量级(OOM)值(例如,I;10; 100; I,000; 10,000; 100,000;等)范围;
(2)00M精确范围的准确度,在图5中被标注为“Prob”。确切地,这个值表示:对于给定11_max来说实际查询值数目位于OOM范围内的概率。应用了>0.7+/-0.2的阈值概率;以及
(3)OOM精确范围、加或减一个OOM范围的准确度,在图5中被标注为“00M+-Prob”。确切地,这个值表示:对于给定n_max来说实际查询值数目位于给定OOM范围、所述给定OOM范围加一个OOM范围、或所述给定OOM范围减一个OOM范围内的概率。应用了 >0.95的阈值概率。
[0050]累积概率提供了使匹配值数目(或匹配值数目的范围)与相应流行率值相关的示例性统计基础djiiax的具体数目可以基于所希望系统细节层次来计算。例如,所希望细节层次可以是数量级(OOM)值(例如,I; 10; 100; I,000; 10,000; 100,000;等)或范围。OOM值提供已经查询对象的唯一设备的数目的数量级的估计值。为了获得所希望范围的OOM值,所述系统可以提供达到指定累积概率的相应n_max值。可以生成类似的对应性数据以获得所希望细节层次的任何选定值。
[0051]在图5中,〈5的n_max对应于累积概率为0.4的1-10的数量级(OOM)范围,并且对应于累积概率为I的1-100的OOM范围。剩余的n_max值中的每一个(S卩,5、9、12、15、以及19)对应于各自具有为至少0.68或近似0.7的累积概率的增长的(OOM)范围(即,对应地,10-100 ;100-1,000;11(-101(;101(-1001(;1001(-1]\0。此外,剩余的11_11^1值中的每一个对应于累积概率为至少0.98的00M、加或减一个00M。对于n_max的任何选定值,可以生成类似的对应性数据。在这个示例中,针对X的任何值,其中,n_max = x,等于范围10z—1至102的0011的累积概率可以由Δ [P(10z—11 n_max = x),P(10Z | n_max = x)]计算,并且加或减一个OOM的累积概率可以由A [P(10z—2 n_max = x),P(10Z+11n_max = x)]计算。这些表达式表示对应地范围10z—1至102与范围10z—2至1z+1的端点之间的累积概率之差。
[0052]在一种实现方式中,与图5中数据类似的数据可以用于使比较查询值与目标值(例如,比较310和/或618)的结果与已经查询对象的唯一设备的数目的估计值相关。这类数据基于已经查询对象的唯一设备的数目在数学上合理的估计值提供流行率的估计值。
[0053]示例性算法可以如下实现用于基于唯一设备的数目估计流行率的统计模型:
1.针对对文件f_x的第一传入查询0_1,存储设备标识符0_1,其中,所述设备标识符标识所述查询所来自于的设备。将n_max初始化为等于零,其中,n_max表示:针对文件€_1,D_1与其他设备标识符之间的当前所记录的最大匹配数目。
i1.对于来自具有设备标识符D_y的设备的每一个随后的对文件f_x的查询Q_z,进行以下操作:
如果D_y不等于D_l:从其中,Dj和D_y相匹配的第一位开始并向上增长以确定连续匹配位数目n_y ;并且如果n_max小于n_y,那么将n_max设定成n_y。
[0054]所遇到的唯一设备标识符越多,我们将越有可能遇到η的较高值。因此,当前针对任何文件所记录的n_max是已经查询文件f_x的唯一设备的数目在统计上合理的指示符。
[0055]以上的示例性算法可以如下扩展以便跟踪三个最普及的国家:
1.针对每个文件f_x,记录呈(c,n_max)形式的三个元组,其中,c是国家代码并且n_max是根据来自相关联国家j对£_1的查询所计算的η的最大值。 i 1.针对来自位于国家c_j内的设备D_i的对文件f_x的每个传入查询:
如果c_ j匹配三个元组中的国家之一:
如果n_i大于当前针对c_ j所记录的n_max,那么将n_max设定成n_i。
如果c_j不匹配三个元组中的任何国家:
如果n_i大于当前针对三个元组中的任何国家所记录的n_max值,那么用(c_ j,n_i)替换具有最小n_max值的元组。
[0056]这种示例性算法存储三个元组以便保持三个国家的针对文件f_x报告最高n_max值的标识符,并且因此,提供了三个国家的具有报告文件f_x的存在的最多设备的统计上合理的指示。此外,对于每个元组变化,n_max值是增长的,所以数据变化(波动)的数目可以不大于跟踪同一文件的全球流行率所要求的波动数目的3倍。
[0057]有利地,这种算法的实现方式并不需要对唯一设备ID进行计数,并且因此,时间复杂度并不取决于唯一设备ID的数目。替代地,结果的提供可以是0(1)时间复杂度(S卩,恒定时间),并且因此,可以实时地(例如,在万维服务器中在查询时间)被应用。此外,这种算法的空间要求相对于存储所有唯一设备ID的要求得到降低。
[0058]在一种实现方式中,统计法可以存储设备ID以便有利地解决其中一个设备发送对同一对象的多个查询的情况。设备ID的存储可以是例如单个参考点,这针对来自同一设备的随后的查询提供可再现输出,而不是对所有先前针对对象的查询进行计数。此外,多个设备(例如,万维服务器和/或数据中心)可以有利地使用不记录每个查询设备的设备ID的数据系统来提供对全球查询业务的响应。
[0059]图6A和图6B描绘了展示根据本说明书一个或多个实施例的用于提供文件的散列的流行率信息的逻辑的流程图。图6A和图6B所描绘的逻辑是以上所描述的流行率估计算法的示例性实现方式。在这个示例中,逻辑600包括:起点602;从设备604接收文件的散列;基于设备的标识符生成位序列606;确定文件的散列是否已经存储在数据存储区中608;将位序列、散列、以及位序列与散列之间的关联性存储在数据存储区中610;将等于零的最大匹配位数目存储在数据存储区中612;基于存储在数据存储区中的最大匹配位数目输出查询数据的流行率614;确定位序列是否已经与跟散列的关联性一起存储在数据存储区中616;将所生成的位序列与存储在数据存储区中的位序列进行比较618;确定所述比较是否产生超过存储在数据存储区中的最大匹配位数目的匹配位数目620;基于所述比较更新存储在数据存储区中的最大匹配位数目622;以及终点624。
[0060 ]逻辑600从起点602开始。起点602可以与其他逻辑、例程、应用或线程的起点/终点重合。此外,在起点602处,可以对数据(例如,对象、值、变量等)进行初始化、检索、或访问,所述系统可以针对对象和/或变量进行初始化或检索以供在逻辑600中使用。
[0061]接着,在程序604处,从设备接收文件的散列。文件的散列是示例性查询数据(例如,查询数据204)。可替代地,可以从设备接收文件,并且作为逻辑600的执行部分可以生成文件的散列,或文件的散列可以由第三方生成。散列可以由查询系统202、信誉系统104或安全服务器102中的至少一个接收。
[0062]在程序606处,可以基于设备的标识符生成位序列。在一种实现方式中,标识符可以是以下各项中的一项:设备的唯一标识符、生成和/或提交查询的设备的全球唯一隐式标识符、设备上所存在的操作系统、设备拥有者的姓名、或与设备相关联的任何其他标识符。例如,散列函数可以应用于标识符,以便生成具有位的随机(或伪随机)分布的位序列。在一种实现方式中,散列函数可以是MD5、SHAl、和/或SHA256之一。
[0063]接着,在程序608处,逻辑600确定文件的散列是否已经存储在数据存储区中。这个程序检验所接收的文件的散列是否表示对文件的第一查询。
[0064]如果确定文件的散列已经存储在数据存储区中,那么根据程序610,将位序列、散列、以及位序列与散列之间的关联性存储在数据存储区中。逻辑600的这个分支可以处理其中散列表示对文件的第一查询的情况。在对文件的第一查询的情况下,最大匹配位数目(例如,n_max)的当前值为零。因此,在程序612处,将最大匹配位数目设定成等于零。在程序614处,基于存储在数据存储区中的最大匹配位数目输出查询数据的流行率。在对文件的第一查询的情况下,流行率可以指示:这个查询是针对对象的第一查询。例如,可以输出为零、一、低值、和/或空之一的流行率值。
[0065]如果在程序616处确定文件的散列尚未存储在数据存储区中,那么在程序616处进行另一确定。确切地,确定所生成的位序列是否已经与跟散列的关联性一起存储在数据存储区中。这可以表示其中从设备接收到散列并不表示来自先前查询同一散列的设备的随后查询的情况。尽管所接收查询可以不是对文件的散列的第一查询,它可以表示这个设备已经查询所述散列的第一时间。
[0066]如果在程序616处确定所生成的位序列已经与跟散列的关联性一起被存储,那么可以基于存储在数据存储区中的最大匹配位数目输出文件的流行率。这表示其中从设备接收到散列表示来自先前查询同一文件的设备的随后查询的情况。
[0067]如果确定所生成的位序列尚未与跟散列的关联性一起被存储,那么在程序618处,将所生成的位序列与存储在数据存储区中的位序列进行比较。存储在数据存储区中的位序列可以表示响应于对文件的散列的第一查询而存储的目标值。所生成的位序列可以表示响应于对文件的散列的随后查询而生成的查询值。在一种实现方式中,所述比较可以如关于程序310和/或图5所描述地执行。
[0068]在程序620处,确定所述比较是否产生超过存储在数据存储区中的最大匹配位数目的匹配位数目。来自先前已经查询同一文件的设备的随后查询对存储在数据存储区中的最大位数目无影响。在从通信设备接收到随后的查询数据时,所述比较将产生小于或等于当前所存储的最大匹配位数目的匹配位数目。因此,逻辑600通过不更新最大数目来维持数据存储区中的最大匹配数目。在此针对用于基于唯一设备的数目估计流行率的统计模型提供了这种结果的简单证明。
[0069]如果所述比较产生超过存储在数据存储区中的最大匹配位数目(例如,n_max)的匹配位数目,根据程序622,基于所述比较更新所述值(n_max)。在一种实现方式中,在程序622处,可以更新最大匹配位数目以便采取根据程序620处的比较所确定的匹配位数目的值。
[0070]在程序614处,基于存储在数据存储区中的最大匹配位数目示出查询数据的流行率614。使用至少一个统计模型,可以基于最大匹配位数目(n_max)确定流行率值和/或流行率值的置信度。例如,使用图5中的值,可以输出流行率值。在图5中,等于9的n_max对应于为
0.69的实际流行率在100与I,000之间的概率。例如,(多个)输出流行率值可以包括OOM值(例如,100和I,000)的范围、范围中的单个值(例如,999)、或范围的端点(例如,100或I,000)。流行率值可以基于流行率值的置信度、诸如实际流行率等于流行率值或在其范围f内的概率来进行加权。
[0071]最后,在终点624处,所述逻辑结束。终点624可以用作其他逻辑、例程、应用或线程的起点。例如,终点624可以在接收到随后的查询时指挥处理器执行从起点602开始的逻辑。此外,可以修改逻辑600以便跟踪三个最普及的国家,如关于基础算法的扩展所讨论的。
[0072]在一种实现方式中,逻辑600能够以与逻辑300类似的方式进行操作。程序604中的从设备接收文件的散列可以对应于程序304中的接收查询数据。基于程序606-612,所述系统可以基于第一设备的标识符生成并存储位序列,所述位序列可以对应于如程序304中所提供的目标值。在程序616-622处,所述系统访问数据存储区并且对若干位序列进行比较,这可以对应于程序310。在程序614处,所述系统还基于存储在数据存储区中的数据输出流行率,这可以对应于程序312。
[0073]对于逻辑300和/或600,值(例如,查询值、目标值、或位)序列的长度可以基于阈值来确定。例如,域值可以对应于:流行率大小的上限(例如,I,000个唯一设备、或I,000,000个唯一设备)、系统的设计参数、和/或所述系统将遇到的设备的估计数目。在使用位作为值的示例中,等于64的序列长度可以提供足够的唯一位序列来表示264个、或18 X 118个唯一设备。
[0074]图7展示了根据本说明书实施例的对应于三个设备的三个示例性位序列。在这个示例中,设备I对应于从01101000……(例如,第一设备id)开始的位序列,设备2对应于从00101011……(例如,第二设备id)开始的位序列,并且设备3对应于从01101010……(例如,第三设备id)开始的位序列。三个位序列的指数被标记Si^in。为了简单起见,未示出完整的位序列。
[0075]位序列的长度(S卩,N的值)可以基于阈值来确定,例如像针对逻辑300和600所讨论的。在一种实现方式中,使用等于64的η可以提供足够的唯一位序列来表示264个、或18 X118个唯一设备,这可足以避免潜在问题(例如,具有精确匹配的位序列的两个不同设备)。
[0076]在这个示例中,三个设备中的每一个发送与同一文件相关的查询数据。设备I首先发送查询数据、之后是设备2、并且然后是设备3。因此,例如,基于由程序304或610提供的逻辑,将第一设备id存储在数据存储区(例如,数据存储区208)中。对于来自新设备的与同一文件相关的每个随后的查询,例如,基于由程序606、608、616和618提供的逻辑,通过比较新的位序列与第一设备id来标识匹配位数目。
[0077]所述比较可以包括:从第一位序列和第二位序列中的每一个中的第一位开始,成对地比较第一位序列中的连续位与第二位序列中的相应连续位。第一设备id和第二设备id的示例性成对比较产生等于一的匹配值数目。这是因为在两个设备id之间仅第一个值(SP,指数为的值)相匹配,但第二值(即,指数为i2的值)不匹配。尽管在第一设备id与第二设备id之间第三值相匹配,但第三值并不位于从第一位(S卩,指数Si1的值)开始的连续匹配位序列之内,并且因此,并不计入匹配位数目。第一设备id与第三设备id之间的类似比较产生等于六的匹配值数目,例如,基于由程序620和622提供的逻辑,可以将所述匹配值数目存储在数据存储区中。对于与同一文件相关的每个随后的查询,将对应于查询设备的位序列与对应于已经针对同一文件查询的第一设备的位序列(即,第一设备id)进行比较。通过比较连续值(即,可能值的排列)而不是所述系统所维持的任何匹配相应值对,较大的唯一值数目因此可以模拟较大的流行率值。
[0078]代替对应于已经针对所述文件查询的第一设备的位序列,可以使用其他值或值序列。例如,随机值序列、随机位序列、对应于已经针对同一文件查询的第二设备的位序列、对应于已经针对所述文件查询的任何设备的位序列、或随机数。
[0079]图8是根据实施例的耦合到示例处理器上的存储器的方框图。图8展示了根据一个实施例的处理器核800。处理器核800可以是用于任何类型的处理器的核,所述处理器诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、或执行代码的其他设备。尽管图8展示了仅一个处理器核800,处理元件可以可替代地包括多于一个图8所展示的处理器核800。(参见,例如,以下图9中的多核实施例)。处理器800可以是任何类型的处理器,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、多核处理器、单核处理器、或执行代码的其他设备。处理器核800可以是单线程核,或者,对于至少一个实施例,处理器核800可以是多线程的,因为它可能包括每核多于一个硬件线程描述表(或“逻辑处理器”)。这类核800可以被配置成用于以在此公开的方式执行指令码。图8所示的这种系统可以用于实现在此被描述为是由安全服务器、信誉信息系统、查询系统、以及图1、图2所示的任何部件等执彳丁的功能。
[0080]图8还展示了耦合到处理器800上的存储器870。存储器870可以是如本领域的技术人员已知的或以其他方式可获得的多种多样的存储器(包括存储器层级的不同层)中的任何存储器。存储器870可以包括有待由处理器800核执行的一个或多个码指令813。处理器核800遵循由代码813指示的指令程序序列。每个指令进入前端部分810并且由一个或多个解码器820处理。解码器可以生成呈预定义格式的微操作(诸如固定宽度微操作)作为其输出,或者可以生成反映出原始码指令的其他指令、微指令、或控制信号。前端810还包括寄存器重命名逻辑825和调度逻辑830,它们总体上分配资源并且将对应于用于执行的转换指令的操作进行排队。
[0081]处理器800被示出为包括执行逻辑850,所述执行逻辑具有一组执行单元855-1至855-N。一些实施例可以包括专用于特定功能或功能集的数个执行单元。其他实施例可以包括仅一个执行单元、或可以执行特定功能的一个执行单元。执行逻辑850执行由码指令指定的操作。
[0082]在完成由码指令指定的操作的执行之后,后端逻辑860使代码813的指令引退。在一个实施例中,处理器800允许指令的无序执行但要求指令的有序引退。引退逻辑x65可以采取本领域的技术人员已知的多种形式(例如,重排序缓冲器等)。以此方式,在代码813的执行过程中,至少就由解码器、寄存器重命名逻辑825所利用的硬件寄存器和表、以及由执行逻辑850修改的任何寄存器(未示出)生成的输出而言,处理器核800被变换。
[0083]尽管图8未展示,但处理元件可以包括其他芯片内元件与处理器核800。例如,处理元件可以包括存储器控制逻辑(参见,例如,以下图9的MC 972)连同处理器核200。处理元件可以包括I/O控制逻辑,和/或可以包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可以包括一个或多个高速缓存。
[0084]图9是根据实施例的以点对点(PtP)配置安排的示例计算系统的方框图。图9示出了多处理器系统900,所述多处理器系统包括第一处理元件970和第二处理元件980。虽然示出了两个处理元件970和980,应当理解的是,系统900的实施例还可以包括仅一个此类的处理元件。图9所示的这种系统可以用于实现在此被描述为是由安全服务器、信誉信息系统、查询系统、以及图1、图2所示的任何部件等执行的功能。
[0085]系统900被展示为点对点互连系统,其中,第一处理元件970和第二处理元件980经由点对点互连件950耦合。应当理解的是,图9所展示的任何或所有互连件可以被实现为多站式总线而不是点对点互连件。
[0086]如图9所示,处理元件970和980中的每一个可以是多核处理器,包括第一处理器核和第二处理器核(即,处理器核974a和974b以及处理器核984a和984b)。这类核974、974b、984a、984b可以被配置成用于以在此公开的方式执行指令码。
[0087]每个处理元件970、980可以包括至少一个共享高速缓存1896。共享高速缓存1896a、1896b可以存储由处理器的一个或多个部件、诸如对应地核974a、974b以及984a、984b利用的数据(例如,指令)。例如,共享高速缓存可以本地高速缓存存储在存储器932、934中的数据,以便由处理器的部件更快地访问。在一个或多个实施例中,共享高速缓存可以包括一个或多个中间级高速缓存(诸如2级(L2)、3级(L3)、4级(L4)、或其他级高速缓存)、最后一级高速缓存(LLC)、和/或其组合
[0088]虽然仅示出了两个处理元件970、980,应当理解的是,本说明书的范围不限于此。在其他实施例中,给定处理器中可以存在一个或多个另外的处理元件。可替代地,处理元件970、980中的一个或多个可以是处理器之外的元件,诸如ASIC芯片或现场可编程门阵列。例如,(多个)另外的处理元件可以包括与第一处理器970相同的(多个)另外的处理器、与第一处理器970异构或不对称的(多个)另外的处理器、加速器(例如像图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列、或任何其他处理元件。就一系列品质量度(包括体系结构、微体系结构、热、功耗特性等)而言,处理元件970、980之间存在多种差异。这些差异可以有效地表明它们是处理元件970、980之间的不对称性和异构性。对于至少一个实施例,不同处理元件970、980可以驻留在同一管芯封装中。
[0089]第一处理元件970可以进一步包括存储器控制器逻辑(MC)972以及点对点(P-P)接口 976和978。类似地,第二处理元件980可以包括MC 982以及P-P接口 986和988。如图9所示,MC 972和982将处理器耦合到对应存储器、即存储器932和存储器934上,所述存储器可以是主存储器的本地附接到对应处理器上的部分。虽然MC逻辑972和982被展示为集成到处理元件970、980中,但对于替代性实施例,MC逻辑可以是位于处理元件970、980外部而不是集成在其中的离散逻辑。
[0090]第一处理元件970和第二处理元件980可以对应地经由P-P互连件976、986和984而耦合到I/o子系统990上。如图9所示,I/O子系统990包括P-P接口994和998。此外,I/O子系统990包括接口992以便将I/O子系统990与高性能图形引擎938耦合起来。在一个实施例中,可以使用总线949来将图形引擎938耦合到I/O子系统990上。可替代地,点对点互连件939可以耦合这些部件。
[0091 ] I/O子系统990进而可以经由接口 996耦合到第一总线916上。在一个实施例中,第一总线916可以是外围部件互连(PCI)总线,或诸如PCI Express总线或另一种第三代I/O互连总线的总线,尽管本说明书的范围不限于此。
[0092]如图9所示,不同I/O设备914可以连同总线桥918耦合到第一总线916上,所述总线桥可以将第一总线916耦合到第二总线910上。在一个实施例中,第二总线920可以是低引脚数(LPC)总线。不同设备可以耦合到第二总线920上,所述不同设备包括例如:键盘八氧标912、(多个)通信设备926(所述通信设备进而可以与计算机网络202通信)、以及数据存储单元928 (诸如磁盘驱动器或其他大容量存储设备),在一个实施例中,所述数据存储单元可以包括代码930。代码930可以包括用于执行以上所描述方法中的一种或多种的实施例的指令。另外,音频I/O 924可以耦合到第二总线920上。
[0093]应当注意:考虑到其他实施例。例如,替代图9的点对点体系结构,系统可以实现多站式总线或另一种这样的通信拓扑结构。另外,图9元件可以可替代地使用比图9所示多或少的集成芯片来进行分区。
[0094]应当注意:通过在此提供的示例,可以关于两个、三个、或更多个计算设备描述交互。然而,这样做只是出于清楚和示例的目的。在某些情况下,通过仅参考有限数目的计算设备,可以更易于描述一组给定流程的一个或多个功能性。此外,根据本说明书的一个或多个实施例的对信誉信息、流行率信息以及安全数据分析的提供是容易缩放的,并且可以跨大数目的部件、以及更复杂/尖端的安排和配置实现。因此,所提供的示例不应当限制对信誉信息、流行率信息以及安全数据分析的提供的范围或抑制其广义传授内容,因为其潜在地适用于无数其他体系结构。
[0095]同样重要的是应当注意:与对信誉信息、流行率信息以及安全数据分析的提供相关的功能展示了可以由图1至图9展示的系统执行或在其内执行的可能功能中的仅一些功能。这些操作中的一些在适当情况下可以被删除或移除,或在不偏离本公开的范围的情况下,这些操作可以被大幅修改或改变。另外,这些操作的时序可以被大幅改动。已经出于示例和讨论的目的提供了前述操作流程。在此描述的实施例提供了很大灵活性,因为在不偏离本公开的传授内容的情况下,可以提供适合的安排、时间排序以及时序机制。
[0096]在一种示例实现方式中,实现在此描述的实施例所涉及的不同设备或部件可以包括用于实现所描述功能的软件,并且在此描述的这些设备或部件可以包括用于促进在此描述的活动的在一个或多个非瞬态、有形介质中具体化的软件。在此公开的这些系统和设备(例如,安全服务器、信誉信息系统、查询系统、以及图1、图2所示的任何部件等)中的至少一部分还可以包括用于存储有待用于实现如在此概述的功能的信息的存储器设备(或存储器元件)。另外,在此描述的这些系统和设备(例如,安全服务器、信誉信息系统、查询系统、以及图1、图2所示的任何部件等)可以包括一个或多个处理器,所述一个或多个处理器能够执行软件或算法,以便执行如本说明书中所讨论的功能。这些设备可以进一步将信息保持在任何适合的存储器元件(随机存取存储器(“RAM” )、ROM、EPROM、EEPROM、ASIC等)、软件、硬件中,或者在适当情况下并且基于特定需要,将信息保持在任何其他适合的部件、设备、元件、或对象中。在此讨论的任何存储器术语(诸如(多个)数据存储区和(多个)数据源)应当被解释为涵盖在广义术语“存储器元件”内。类似地,本说明书中所描述的任何潜在处理元件、模块和机器应当被解释为涵盖在广义术语“处理器”内。每个网络元件还可以包括用于在网络环境中接收、发射、和/或以其他方式传达数据或信息的适合的接口。
[0097]应当注意:在某些示例实现方式中,在此并且在此所包括的附图/图示中所概述的功能可以由编码在一个或多个有形介质中的逻辑(例如,设置在应用专用集成电路(“ASIC”)中的嵌入式逻辑、数字信号处理器(“DSP”)指令、有待由处理器或其他类似机器执行的软件(潜在地包括目标码和源代码)等)。在这些实例中的一些中,提供存储器元件以便存储用于在此描述的操作的数据。这包括:存储器元件能够存储被执行以便实行本说明书所描述的活动的软件、逻辑、代码、或处理器指令。处理器可以执行与实现在此在本说明书中详述的操作的数据相关联的任何类型的指令。在一个示例中,处理器可以将元件或东西(例如,数据)从一种状态或事物转变成另一种状态或事物。在另一个示例中,在此概述的活动可以利用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)实现,并且在此标识的元件可以是某种类型的可编程处理器,可编程数字逻辑(例如,现场可编程门阵列(“FPGA”)、可擦可编程只读存储器(“EPROM” )、电可擦除可编程ROM( “EEPROM” )),或包括数字逻辑、软件、代码、电子指令或其任何适合的组合的ASIC。
[0098]程序指令可以用于使编程有指令的通用或专用处理系统执行在此描述的操作。可替代地,这些操作可以由含有用于执行这些操作的硬件连线的逻辑的特定硬件部件执行,或者由程序计算机部件和自定义硬件部件的任意组合执行。在此描述的这些方法可以作为计算机程序产品来提供,所述计算机程序产品可以包括一个或多个非瞬态的、有形的机器可读介质,所述一个或多个介质具有存储在其上的指令,所述指令可以用于编程处理系统或其他电子设备以便执行这些方法。在此使用的术语“机器可读介质”应当包括能够存储或编码指令序列的任何介质,所述指令序列用于由机器执行并且使机器执行在此描述的任一种方法。术语“非瞬态机器可读介质”应当包括但不限于诸如固态存储器、光盘或磁盘的存储器。此外,在本领域中常常将呈一种或另一种形式(例如,程序、规程、过程、应用、模块、逻辑等)说成采取行动或造成结果。这类表述仅是陈述由处理系统对软件的执行使处理器执行行动或产生结果的简写方式。
[0099]应当注意:在此描述的基础结构(例如,安全服务器、信誉信息系统、查询系统、以及图1、图2所示的任何部件等)的大部分被设置为任何类型的网络元件的部分。在此使用的,用于对信誉信息、流行率信息以及安全数据分析的提供的术语安全服务器、信誉信息系统、查询系统、以及图1、图2所示的任何部件可以涵盖:计算机、服务器、网络设备、主机、路由器、交换机、网关、桥、虚拟设备、负载均衡器、防火墙、处理器、模块,或在网络环境中可操作来交换信息的任何其他合适的设备、部件、元件或对象。此外,这些网络元件可以包括促进其操作的任何适合的硬件、软件、部件、模块、接口或对象。这可以包括允许数据或信息的有效交换的适当的算法和通信协议。
[0100]尽管已经详细参考特定安排和配置描述了本公开,但在不偏离本公开的范围的情况下,可以大大地改变这些示例配置和布置。例如,尽管已经参考特定通信交换描述了本公开,但在此描述的实施例可以可适用于其他体系结构。
[0101]本领域的技术人员可以确定众多其他改变、替代、变型、更改和变换,并且本公开意在涵盖归属所附权利要求书的范围的所有这类改变、替代、变型、更改和变换。为了帮助美国专利及商标局(USPTO)以及另外本申请发布的任何专利的任何读者理解本申请所附权利要求书,
【申请人】希望注意本
【申请人】:(a)并不旨在所附权利要求中的任一项因为在本申请的申请日存在而援引35U.S.C.第112章第(6)段,除非在特定权利要求中确切地使用了字词“用于……的装置”或“用于……的步骤”;并且(b)并不旨在通过本说明书中未在所附权利要求书中反映出的任何陈述以任何方式限制本公开。
[0102]根据非常确实的原则:“
【申请人】有权成为他或她自己的词典编纂者”,MPEP2111.01(IV),引用In re Paulson案,30F.3d 1475,1480(联邦巡回上诉法院(Fed.Cir.)1994),在此已经明确定义了某些术语。明确地旨在:这些术语具有所提供的定义,并且它们并不被给予与这些定义不一致的任何解释。
[0103]以下示例涉及本公开的一些实施例。
[0104]示例I是一种机器可读非瞬态存储介质,具有存储在其上的用于基于查询提供流行率信息的指令,其中,所述指令在由至少一个处理器执行时使所述至少一个处理器执行以下操作:从数据源检索(retrieve)目标值序列;从通信设备接收查询数据;基于与所述通信设备相关联的标识符生成查询值序列;比较所述查询值序列与所述目标值序列以便标识匹配值数目;以及至少部分地基于所述匹配值数目向所述通信设备输出所述查询数据的流行率值。
[0105]在示例2中,如示例I所述的主题可以可选地包括:在确定所述匹配值数目超过存储在数据存储区中的最大匹配数目时,更新所述数据存储区中的所述最大匹配数目;以及使用统计模型基于所述最大匹配数目来计算所述流行率值以及所述流行率值的置信度。
[0106]在示例3中,如示例I或2所述的主题可以可选地包括:从所述通信设备接收另外的查询数据,其中,所述另外的查询数据与所述查询数据是相同的;以及响应于所述接收所述另外的查询数据,通过不更新所述数据存储区中的所述最大匹配数目来维持所述数据存储区中的所述最大匹配数目。
[0107]在示例4中,如示例I至示例3中任一项所述的主题可以可选地包括:所述比较包括:从所述查询值序列和所述目标值序列中的每一个中的第一个值开始,成对地比较所述查询值序列中的连续值与所述目标值序列中的相应连续值。
[0108]在示例5中,如示例I至示例4中任一项所述的主题可以可选地包括:所述从所述数据源检索所述目标值序列包括:从第一通信设备接收第一查询数据;基于与所述第一通信设备相关联的标识符生成第一位序列;以及将所述第一位序列存储在所述数据存储区中作为所述目标值序列。
[0109]在示例6中,如示例5所述的主题可以可选地包括:所述从所述通信设备接收所述查询数据包括:从第二通信设备接收第二查询数据,并且其中,基于与所述通信设备相关联的标识符生成所述查询值序列包括基于与所述第二通信设备相关联的标识符生成第二位序列。
[0110]在示例7中,如示例6所述的主题可以可选地包括:所述生成第一位序列包括将散列函数应用于与所述第一通信设备相关联的所述标识符以便生成所述第一位序列;并且可选地包括生成所述第二位序列包括将所述散列函数应用于与所述第二通信设备相关联的所述标识符以便生成所述第二位序列。
[0111]在示例8中,如示例7所述的主题可以可选地包括:所述散列函数包括以下各项中的至少一项:消息摘要算法、加密散列函数、消息摘要算法5(MD5)、安全散列算法I(SHAl)、或安全散列算法(SHA256)。
[0112]在示例9中,如示例1-8中任一项所述的主题可以可选地包括:所述查询数据是文件的散列。
[0113]在示例10中,如示例1-9中任一项所述的主题可以可选地包括:所述查询值序列是基于阈值确定的。
[0114]在示例11中,如示例2-10中任一项所述的主题可以可选地包括:基于所述流行率值的所述置信度对所述流行率值进行加权。
[0115]在示例12中,如示例1-11中任一项所述的主题可以可选地包括:其中,所述流行率值包括对应于数量级的至少一个值。
[0116]在示例13中,如示例2-12中任一项所述的主题可以可选地包括:所述置信度包括针对所述至少一个值计算的概率。
[0117]示例14是一种用于基于查询提供流行率信息的装置,所述装置包括:至少一个存储器元件;至少一个处理器,所述至少一个处理器耦合到所述至少一个存储器元件上;信誉信息服务器,所述信誉信息服务器耦合到所述至少一个处理器上,其中,所述信誉信息服务器被配置成用于:从数据源检索目标值序列;从通信设备接收查询数据;基于与所述通信设备相关联的标识符生成查询值序列;比较所述查询值序列与所述目标值序列以便标识匹配值数目;并且至少部分地基于所述匹配值数目向所述通信设备输出所述查询数据的流行率值。
[0118]在示例15中,如示例14所述的主题可以可选地包括:所述信誉信息服务器被进一步被配置成用于:在确定所述匹配值数目超过存储在所述数据存储区中的最大匹配数目时,更新所述数据存储区中的所述最大匹配数目;并且使用统计模型基于所述最大匹配数目来计算所述流行率值以及所述流行率值的置信度。
[0119]在示例16中,如示例14或15所述的主题可以可选地包括:所述信誉信息服务器被进一步被配置成用于:从所述通信设备接收另外的查询数据,其中,所述另外的查询数据与所述查询数据是相同的;并且响应于所述接收所述另外的查询数据,通过不更新所述数据存储区中的所述最大匹配数目来维持所述数据存储区中的所述最大匹配数目。
[0120]在示例17中,如示例14-16中任一项所述的主题可以可选地包括:所述比较包括:从所述查询值序列和所述目标值序列中的每一个中的第一个值开始,成对地比较所述查询值序列中的连续值与所述目标值序列中的相应连续值。
[0121]在示例18中,如示例14-17中任一项所述的主题可以可选地包括:从所述数据源检索所述目标值序列包括:从第一通信设备接收第一查询数据;基于与所述第一通信设备相关联的标识符生成第一位序列;以及将所述第一位序列存储在所述数据存储区中作为所述目标值序列。
[0122]在示例19中,如示例18所述的主题可以可选地包括:所述从所述通信设备接收所述查询数据包括从第二通信设备接收第二查询数据,并且可选地包括基于与所述通信设备相关联的标识符生成所述查询值序列包括基于与所述第二通信设备相关联的标识符生成第二位序列。
[0123]在示例20中,如示例19所述的主题可以可选地包括:所述生成第一位序列包括将散列函数应用于与所述第一通信设备相关联的所述标识符以便生成所述第一位序列;并且可选地包括生成所述第二位序列包括将所述散列函数应用于与所述第二通信设备相关联的所述标识符以便生成所述第二位序列。
[0124]在示例21中,如示例20所述的主题可以可选地包括:所述散列函数包括以下各项中的至少一项:消息摘要算法、加密散列函数、消息摘要算法5(MD5)、安全散列算法I(SHAl)、或安全散列算法(SHA256)。
[0125]在示例22中,如示例14-21中任一项所述的主题可以可选地包括:所述查询数据是文件的散列。
[0126]在示例23中,如示例14-22中任一项所述的主题可以可选地包括:所述查询值序列是基于阈值确定的。
[0127]在示例24中,如示例15-23中任一项所述的主题可以可选地包括:所述信誉信息服务器被进一步被配置成用于:基于所述流行率值的所述置信度对所述流行率值进行加权。
[0128]在示例25中,如示例14-24中任一项所述的主题可以可选地包括:所述流行率值包括对应于数量级的至少一个值。
[0129]在示例26中,如示例15-25中任一项所述的主题可以可选地包括:所述置信度包括针对所述至少一个值计算的概率。
[0130]示例27是一种用于基于查询提供流行率信息的方法,所述方法包括:从数据源检索目标值序列;从通信设备接收查询数据;基于与所述通信设备相关联的标识符生成查询值序列;比较所述查询值序列与所述目标值序列以便标识匹配值数目;以及至少部分地基于所述匹配值数目向所述通信设备输出所述查询数据的流行率值。
[0131]在示例28中,如示例27所述的主题可以可选地包括:在确定所述匹配值数目超过存储在所述数据存储区中的最大匹配数目时,更新所述数据存储区中的所述最大匹配数目;以及使用统计模型基于所述最大匹配数目来计算所述流行率值以及所述流行率值的置信度。
[0132]在示例29中,如示例27或28所述的主题可以可选地包括:从所述通信设备接收另外的查询数据,其中,所述另外的查询数据与所述查询数据是相同的;以及响应于所述接收所述另外的查询数据,通过不更新所述数据存储区中的所述最大匹配数目来维持所述数据存储区中的所述最大匹配数目。
[0133]在示例30中,如示例27-29中任一项所述的主题可以可选地包括:所述比较包括:从所述查询值序列和所述目标值序列中的每一个中的第一个值开始,成对地比较所述查询值序列中的连续值与所述目标值序列中的相应连续值。
[0134]在示例31中,如示例27-30中任一项所述的主题可以可选地包括:从所述数据源检索所述目标值序列包括:从第一通信设备接收第一查询数据;基于与所述第一通信设备相关联的标识符生成第一位序列;以及将所述第一位序列存储在所述数据存储区中作为所述目标值序列。
[0135]在示例32中,如示例31所述的主题可以可选地包括:所述从所述通信设备接收所述查询数据包括从第二通信设备接收第二查询数据,并且可选地包括,基于与所述通信设备相关联的标识符生成所述查询值序列包括基于与所述第二通信设备相关联的标识符生成第二位序列。
[0136]在示例33中,如示例32所述的主题可以可选地包括:所述生成第一位序列包括将散列函数应用于与所述第一通信设备相关联的所述标识符以便生成所述第一位序列;并且可选地包括生成所述第二位序列包括将所述散列函数应用于与所述第二通信设备相关联的所述标识符以便生成所述第二位序列。
[0137]在示例34中,如示例33所述的主题可以可选地包括:所述散列函数包括以下各项中的至少一项:消息摘要算法、加密散列函数、消息摘要算法5(MD5)、安全散列算法I(SHAl)、或安全散列算法(SHA256)。
[0138]在示例35中,如示例27-34中任一项所述的主题可以可选地包括:所述查询数据是文件的散列。
[0139]在示例36中,如示例27-35中任一项所述的主题可以可选地包括:所述查询值序列是基于阈值确定的。
[0140]在示例37中,如示例28-36中任一项所述的主题可以可选地包括:基于所述流行率值的所述置信度对所述流行率值进行加权。
[0141]在示例38中,如示例27-37中任一项所述的主题可以可选地包括:所述流行率值包括对应于数量级的至少一个值。
[0142]在示例39中,如示例28-38中任一项所述的主题可以可选地包括:所述置信度包括针对所述至少一个值计算的概率。
[0143]示例40是一种用于基于查询提供流行率信息的装置,所述装置包括:用于从数据源检索目标值序列的装置;用于从通信设备接收查询数据的装置;用于基于与所述通信设备相关联的标识符生成查询值序列的装置;用于比较所述查询值序列与所述目标值序列以便标识匹配值数目的装置;以及用于至少部分地基于所述匹配值数目向所述通信设备输出所述查询数据的流行率值的装置。
[0144]在示例41中,如示例40所述的主题可以可选地包括:用于在确定所述匹配值数目超过存储在所述数据存储区中的最大匹配数目时更新所述数据存储区中的所述最大匹配数目的装置;以及用于使用统计模型基于所述最大匹配数目来计算所述流行率值以及所述流行率值的置信度的装置。
[0145]在示例42中,如示例40-41中任一项所述的主题可以可选地包括:用于从所述通信设备接收另外的查询数据的装置,其中,所述另外的查询数据与所述查询数据是相同的;以及用于响应于所述接收所述另外的查询数据而通过不更新所述数据存储区中的所述最大匹配数目来维持所述数据存储区中的所述最大匹配数目的装置。
[0146]在示例43中,如示例40-42中任一项所述的主题可以可选地包括:所述比较包括:从所述查询值序列和所述目标值序列中的每一个中的第一个值开始,成对地比较所述查询值序列中的连续值与所述目标值序列中的相应连续值。
[0147]在示例44中,如示例40-43中任一项所述的主题可以可选地包括:所述用于从所述数据源检索所述目标值序列的装置包括:用于从第一通信设备接收第一查询数据的装置;用于基于与所述第一通信设备相关联的标识符生成第一位序列的装置;以及用于将所述第一位序列存储在所述数据存储区中作为所述目标值序列的装置。
[0148]在示例45中,如示例44所述的主题可以可选地包括:所述用于从所述通信设备接收所述查询数据的装置包括用于从第二通信设备接收第二查询数据的装置;并且所述用于基于与所述通信设备相关联的标识符生成所述查询值序列的装置包括用于基于与所述第二通信设备相关联的标识符生成第二位序列的装置。
[0149]在示例46中,如示例45所述的主题可以可选地包括:所述用于生成第一位序列的装置包括用于将散列函数应用于与所述第一通信设备相关联的所述标识符以便生成所述第一位序列的装置;并且所述用于生成所述第二位序列的装置包括用于将所述散列函数应用于与所述第二通信设备相关联的所述标识符以便生成所述第二位序列的装置。
[0150]在示例47中,如示例46所述的主题可以可选地包括:所述散列函数包括以下各项中的至少一项:消息摘要算法、加密散列函数、消息摘要算法5(MD5)、安全散列算法I(SHAl)、或安全散列算法(SHA256)。
[0151]在示例48中,如示例40-47中任一项所述的主题可以可选地包括:所述查询数据是文件的散列。
[0152]在示例49中,如示例40-48中任一项所述的主题可以可选地包括:所述查询值序列是基于阈值确定的。
[0153]在示例50中,如示例41-49中任一项所述的主题可以可选地包括:用于基于所述流行率值的所述置信度对所述流行率值进行加权的装置。
[0154]在示例51中,如示例40-50中任一项所述的主题可以可选地包括:所述流行率值包括对应于数量级的至少一个值。
[0155]在示例52中,如示例41-51中任一项所述的主题可以可选地包括:所述置信度包括针对所述至少一个值计算的概率。
[0156]示例53是一种用于基于查询提供流行率信息的装置,所述装置包括用于执行如权利要求27-39中任一项所述的方法的装置。
[0157]在示例54中,如示例40所示的主题可以可选地包括:所述用于执行所述方法的装置包括至少一个处理器和至少一个存储器元件。
[0158]在示例55中,如示例54所示的主题可以可选地包括:所述至少一个存储器元件包括机器可读指令,所述机器可读指令在被执行时使所述装置执行如权利要求27-39中任一项所述的方法。
[0159]在示例56中,如示例53-55所述的主题可以可选地包括:所述装置是计算设备。
[0160]示例57是至少一种机器可读存储介质,包括用于基于查询提供流行率信息的指令,其中,所述指令在被执行时实施如示例27-39中任一项所述的方法或实现如示例53-56中任一项所述的装置。
[0161]示例58是至少一种机器可读介质,包括代码,所述代码在被执行时使机器执行如权利要求27-39中任一项所述的方法。
[0162]在示例59中,如示例40所述的主题可以可选地包括:所述装置是计算设备。
【主权项】
1.一种机器可读非瞬态存储介质,具有存储在其上的用于基于查询提供流行率信息的指令,其中,所述指令在由至少一个处理器执行时使所述至少一个处理器执行以下操作: 从数据源检索目标值序列; 从通信设备接收查询数据; 基于与所述通信设备相关联的标识符生成查询值序列; 比较所述查询值序列与所述目标值序列以便标识匹配值数目;以及 至少部分地基于所述匹配值数目向所述通信设备输出所述查询数据的流行率值。2.如权利要求1所述的机器可读非瞬态存储介质,进一步包括: 在确定所述匹配值数目超过存储在数据存储区中的最大匹配数目时,更新所述数据存储区中的所述最大匹配数目;以及 使用统计模型基于所述最大匹配数目来计算所述流行率值以及所述流行率值的置信度。3.如权利要求1或2所述的机器可读非瞬态存储介质,进一步包括: 从所述通信设备接收另外的查询数据,其中,所述另外的查询数据与所述查询数据是相同的;以及 响应于接收所述另外的查询数据,通过不更新所述数据存储区中的所述最大匹配数目来维持所述数据存储区中的所述最大匹配数目。4.如权利要求1或2所述的机器可读非瞬态存储介质,其中,所述比较包括:从所述查询值序列和所述目标值序列中的每一个中的第一个值开始,成对地比较所述查询值序列中的连续值与所述目标值序列中的相应连续值。5.如权利要求1或2所述的机器可读非瞬态存储介质,其中,从所述数据源检索所述目标值序列包括: 从第一通信设备接收第一查询数据; 基于与所述第一通信设备相关联的标识符生成第一位序列;以及 将所述第一位序列存储在所述数据存储区中作为所述目标值序列。6.如权利要求5所述的机器可读非瞬态存储介质,其中,所述从所述通信设备接收所述查询数据包括从第二通信设备接收第二查询数据,并且其中,基于与所述通信设备相关联的标识符生成所述查询值序列包括基于与所述第二通信设备相关联的标识符生成第二位序列。7.如权利要求6所述的机器可读非瞬态存储介质,其中,所述生成第一位序列包括将散列函数应用于与所述第一通信设备相关联的所述标识符以便生成所述第一位序列;并且其中,生成所述第二位序列包括将所述散列函数应用于与所述第二通信设备相关联的所述标识符以便生成所述第二位序列。8.如权利要求7所述的机器可读非瞬态存储介质,其中,所述散列函数包括以下各项中的至少一项:消息摘要算法、加密散列函数、消息摘要算法5(MD5)、安全散列算法I(SHAl)、或安全散列算法(SHA256)。9.如权利要求1或2所述的机器可读非瞬态存储介质,其中,所述查询数据是文件的散列。10.如权利要求1或2所述的机器可读非瞬态存储介质,其中,所述查询值序列的长度是基于阈值确定的。11.如权利要求2所述的机器可读非瞬态存储介质,进一步包括: 基于所述流行率值的所述置信度对所述流行率值进行加权。12.如权利要求1或2所述的机器可读非瞬态存储介质,其中,所述流行率值包括对应于数量级的至少一个值。13.如权利要求2所述的机器可读非瞬态存储介质,其中,所述置信度包括针对所述至少一个值计算的概率。14.一种用于基于查询提供流行率信息的装置,所述装置包括: 至少一个存储器元件; 至少一个处理器,所述至少一个处理器耦合到所述至少一个存储器元件上; 信誉信息服务器,所述信誉信息服务器耦合到所述至少一个处理器上,其中,所述信誉信息服务器被配置成用于: 从数据源检索目标值序列; 从通信设备接收查询数据; 基于与所述通信设备相关联的标识符生成查询值序列; 比较所述查询值序列与所述目标值序列以便标识匹配值数目;并且 至少部分地基于所述匹配值数目向所述通信设备输出所述查询数据的流行率值。15.如权利要求14所述的装置,其中,所述信誉信息服务器进一步被配置成用于: 在确定所述匹配值数目超过存储在所述数据存储区中的最大匹配数目时,更新所述数据存储区中的所述最大匹配数目;并且 使用统计模型基于所述最大匹配数目来计算所述流行率值以及所述流行率值的置信度。16.如权利要求14或15所述的装置,其中,所述信誉信息服务器进一步被配置成用于: 从所述通信设备接收另外的查询数据,其中,所述另外的查询数据与所述查询数据是相同的;并且 响应于所述接收所述另外的查询数据,通过不更新所述数据存储区中的所述最大匹配数目来维持所述数据存储区中的所述最大匹配数目。17.如权利要求14或15所述的装置,其中,从所述数据源检索所述目标值序列包括: 从第一通信设备接收第一查询数据; 基于与所述第一通信设备相关联的标识符生成第一位序列;以及 将所述第一位序列存储在所述数据存储区中作为所述目标值序列。18.如权利要求17所述的装置,其中,所述从所述通信设备接收所述查询数据包括从第二通信设备接收第二查询数据,并且其中,基于与所述通信设备相关联的标识符生成所述查询值序列包括基于与所述第二通信设备相关联的标识符生成第二位序列。19.如权利要求18所述的装置,其中,所述生成第一位序列包括将散列函数应用于与所述第一通信设备相关联的所述标识符以便生成所述第一位序列;并且其中,生成所述第二位序列包括将所述散列函数应用于与所述第二通信设备相关联的所述标识符以便生成所述第二位序列。20.—种用于基于查询提供流行率信息的方法,所述方法包括: 从数据源检索目标值序列; 从通信设备接收查询数据; 基于与所述通信设备相关联的标识符生成查询值序列; 比较所述查询值序列与所述目标值序列以便标识匹配值数目;以及 至少部分地基于所述匹配值数目向所述通信设备输出所述查询数据的流行率值。21.如权利要求20所述的方法,进一步包括: 在确定所述匹配值数目超过存储在数据存储区中的最大匹配数目时,更新所述数据存储区中的所述最大匹配数目;以及 使用统计模型基于所述最大匹配数目来计算所述流行率值以及所述流行率值的置信度。22.如权利要求20或21所述的方法,进一步包括: 从所述通信设备接收另外的查询数据,其中,所述另外的查询数据与所述查询数据是相同的;以及 响应于所述接收所述另外的查询数据,通过不更新所述数据存储区中的所述最大匹配数目来维持所述数据存储区中的所述最大匹配数目。23.如权利要求20或21所述的方法,其中,从所述数据源检索所述目标值序列包括: 从第一通信设备接收第一查询数据; 基于与所述第一通信设备相关联的标识符生成第一位序列;以及 将所述第一位序列存储在所述数据存储区中作为所述目标值序列。24.如权利要求23所述的方法,其中,所述从所述通信设备接收所述查询数据包括从第二通信设备接收第二查询数据,并且其中,基于与所述通信设备相关联的标识符生成所述查询值序列包括基于与所述第二通信设备相关联的标识符生成第二位序列。
【文档编号】G06F17/30GK106062749SQ201580010965
【公开日】2016年10月26日
【申请日】2015年2月28日
【发明人】R·莫里, G·罗伯茨, R·文努戈帕兰, N·威尔森
【申请人】迈克菲股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1