用于对异常进行检测和评分的系统和方法与流程

文档序号:15884428发布日期:2018-11-09 18:34阅读:390来源:国知局
用于对异常进行检测和评分的系统和方法与流程

本申请根据35u.s.c.§119要求于2015年9月5日提交的美国临时专利申请第62/214,969号的权益,其通过引用整体并入本文。

本申请与以下申请在同一天提交:申请序列号__,题为“systemsandmethodsformatchingandscoringsameness”,代理案号为l0702.70006us00,以及申请序列号__,题为“systemsandmethodsfordetectingandpreventingspoofing”,代理案号为l0702.70003us01。这些申请中的每一个都通过引用整体并入本文。

背景技术

具有在线存在的大型组织通常每分钟接收数以万计的请求以启动数字交互。支持多个大型组织的安全系统可能同时处理数百万次数字交互,并且安全系统每周分析的数字交互总数可能轻易超过10亿次。

随着组织越来越需要实时结果,安全系统必须分析大量数据,并在几分之一秒内准确确定数字交互是否合法。这带来了巨大的技术挑战,尤其是考虑到安全系统处理的大量数字交互。



技术实现要素:

根据一些实施例,提供了一种用于分析多个数字交互的计算机实现的方法,所述方法包括以下动作:(a)识别属性的多个值,所述多个值中的每个值分别对应于所述多个数字交互中的数字交互;(b)将所述多个值划分成多个桶;(c)对于所述多个桶中的至少一个桶,确定来自落入所述至少一个桶内的所述多个值的值的计数;(d)将来自落入所述至少一个桶内的所述多个值的值的计数与关于所述属性的历史信息进行比较;以及(e)至少部分基于动作(d)的结果确定属性是否是异常的。

根据一些实施例,提供了一种用于分析数字交互的计算机实现的方法,所述方法包括以下动作:从简档中识别多个属性;针对所述多个属性中的每个属性,确定所述数字交互关于所述属性是否匹配所述简档,包括:从所述简档识别所述属性的可能值的至少一个桶,所述至少一个桶指示异常行为;从数字交互中识别属性的值;以及确定从数字交互识别的值是否落入至少一个桶中,其中如果确定从数字交互识别的值落入至少一个桶中,则将数字交互确定为关于上述属性匹配简档;以及至少部分基于关于其所述数字交互与所述简档相匹配的属性的计数来确定罚分。

根据一些实施例,提供了一种用于分析数字交互的计算机实现的方法,所述方法包括以下动作:确定数字交互是否可疑;响应于确定数字交互是可疑的,部署第一类型的安全探测器以从数字交互收集第一数据;分析由所述第一类型的安全探测器从所述数字交互收集的第一数据以确定所述数字交互是否继续表现为可疑;如果通过第一类型的安全探测器从数字交互中收集到的第一数据指示数字交互继续表现为可疑,则部署第二类型的安全探测器以从数字交互中收集第二数据;并且如果通过第一类型的安全探测器从数字交互中收集到的第一数据指示数字交互不再表现为可疑,则部署第三类型的安全探测器以从数字交互中收集第三数据。

根据一些实施例,提供了一种系统,包括至少一个处理器和至少一个其上存储有指令的计算机可读存储介质,所述指令在被执行时编程所述至少一个处理器以执行任何上述方法。

根据一些实施例,其上存储有指令的至少一个计算机可读存储介质在被执行时编程至少一个处理器以执行任何上述方法。

附图说明

图1a示出根据一些实施例的可以经由其发生数字交互的说明性系统10。

图1b示出根据一些实施例的用于处理从数字交互收集的数据的说明性安全系统14。

图1c示出了根据一些实施例的数字交互内的说明性流程40。

图2a示出根据一些实施例的用于记录来自数字交互的观察的说明性数据结构200。

图2b示出根据一些实施例的用于记录来自数字交互的观察的说明性数据结构220。

图2c示出了根据一些实施例的用于记录来自数字交互的观察的说明性过程230。

图3示出了根据一些实施例的可以由安全系统监视的说明性属性。

图4示出了根据一些实施例的用于检测异常的说明性过程400。

图5示出根据一些实施例的用于将多个数字属性值划分成多个范围的说明性技术。

图6示出根据一些实施例的用于将数字和/或非数字属性值划分成桶的说明性散列取模技术。

图7a示出了根据一些实施例的表示多个桶之间的数字属性值的分布的说明性直方图700。

图7b示出了根据一些实施例的表示多个桶之间的属性值分布的说明性直方图720。

图8a示出了根据一些实施例的表示多个桶之间的属性值分布的说明性预期直方图820。

图8b示出了根据一些实施例的图7b的说明性直方图720与图8a的说明性预期直方图820之间的比较。

图9示出了根据一些实施例的说明性时间段902和904。

图10示出了根据一些实施例的说明性归一化直方图1000。

图11示出了根据一些实施例的随时间推移的直方图的说明性阵列1100。

图12示出了根据一些实施例的具有多个异常属性的说明性简档1200。

图13示出了根据一些实施例的用于检测异常的说明性过程1300。

图14示出根据一些实施例的用于将数字交互与模糊简档匹配的说明性过程1400。

图15示出了根据一些实施例的说明性模糊简档1500。

图16示出了根据一些实施例的说明性模糊简档1600。

图17示出了根据一些实施例的用于动态安全探测器部署的说明性过程1700。

图18示出了根据一些实施例的用于更新一个或多个分段列表的说明性循环1800。

图19示出了根据一些实施例的用于动态部署多个安全探测器的说明性过程1900。

图20示出了根据一些实施例的可由安全系统用来确定是否部署探测器和/或将部署哪个或哪些探测器的决策树2000的示例。

图21示意性地示出了可以在其上实现本公开的任何方面的说明性计算机5000。

具体实施方式

本公开的各方面涉及用于对异常进行检测和评分的系统和方法。

在对网站或应用程序的分布式攻击中,攻击者可能会协调多台计算机来执行攻击。例如,攻击者可能会使用“僵尸网络”发起攻击。在某些情况下,僵尸网络可能包含受攻击者远程控制的病毒感染计算机网络。

发明人已经认识并理解检测web攻击中的各种挑战。例如,在分布式攻击中,所涉及的计算机可能位于世界各地,并可能具有不同的特征。因此,可能很难确定哪些计算机参与了相同的攻击。另外,为了逃避检测,复杂的攻击者可以稍微修改每个受控计算机的行为,以便在整个攻击过程中不容易辨别出一致的行为简档。因此,在一些实施例中,提供了异常检测技术,其针对由展现不同行为的计算机参与的攻击提高了有效性。

i.动态生成的模糊简档

一些安全系统使用触发器,这些触发器会对于某些观察到的行为脱扣(trip)。例如,触发器可以是包括电子商务用户进行高价值订单并运送到新地址或者使用不同信用卡号进行多个订单的新账户的模式。当检测到这些可疑模式中的一个时,可以针对用户或账户提出警报,和/或可以采取行动(例如,暂停交易或账户)。然而,发明人已经认识并理解,基于触发器的系统可能产生假阳性(例如,对于合法事件脱扣的触发器)和/或假阴性(例如,当已有重大损害时攻击期间未脱扣或脱扣过晚的触发器)。

因此,在一些实施例中,提供具有降低的假阳性率和/或假阴性率的异常检测技术。例如,可以创建一个或多个模糊简档。当从数字交互形成观察时,可以为每个模糊简档导出分数,其中分数指示观察与模糊简档匹配的程度。在一些实施例中,除了如上所述的触发器的布尔输出之外或者代替布尔输出,可以导出这样的分数,并且可以为确定响应于观察而要采取什么样的动作(如果有的话)的决策逻辑提供更细微的一组数据点。

发明人已经认识并理解,尽管许多攻击表现出已知的可疑模式,但这样的模式可能需要时间才能出现。例如,攻击者可以获得对看起来不相关的多台计算机(例如,与不同用户、不同的网络地址、不同的地理位置等相关联的计算机)的控制,并且可以使用被盗用的计算机同时开展攻击。因此,在检测到任何可疑模式之前,可能已经造成了损害。

发明人已经认识到并理解,安全系统可以通过寻找实时出现的异常而不是提前限定的可疑模式来标记潜在的攻击。例如,在一些实施例中,安全系统可以监视在特定网站处发生的数字交互,并比较当前观察的内容与先前在同一网站观察到的内容。作为一个示例,安全系统可以将来自当前时间段(例如,30分钟,1小时,90分钟,2小时等)的某个统计量(例如,报告某个浏览器类型的数字交互的计数)与来自过去时间段(例如,前一天、前一周、前一个月、前一年等的相同时间段)的同一统计量进行比较。如果统计量的当前值显著偏离统计量的过去值(例如,超过选定的阈值量),则可以报告异常。以这种方式,可以基于特定网站处的活动模式动态地限定异常。这种灵活性可以减少假阳性和/或假隐性的错误。此外,安全系统可以能够检测不展现任何已知可疑模式的攻击,并且在重大损害已经造成之前,这种检测是可能的。

ii.用于高效处理和表示数据的技术

发明人已经认识并理解用于对异常进行检测和评分的安全系统可以处理极大量的数据。例如,安全系统可以分析多个大型组织的数字交互。每个组织的网站每秒可能处理数百次数字交互,使得安全系统每秒可以接收数千、数万或数十万个请求来检测异常。在一些情况下,可以从每个数字交互(例如,被访问的url,用户设备信息,击键记录等)捕获几兆字节的数据,并且在评估捕获的数据时,安全系统可以检索并分析几兆字节的历史、群体和/或其他数据。因此,安全系统可能每秒钟分析几千兆字节的数据,以仅支持每秒1000个请求。因此,在一些实施例中,提供用于聚合数据以促进高效存储和/或分析的技术。

一些安全系统仅在用户采取实质性行动,例如更改一个或多个访问凭证(例如账户标识符、密码等),更改联系人信息(例如电子邮件地址、电话号码等),改变运送地址,进行购买等时才执行安全检查。发明人已经认识并理解,在安全检查开始之前,这样的安全系统可能已经收集了很少的信息。因此,在一些实施例中,一旦实体到达网站,安全系统就可以开始分析数字交互。例如,甚至在实体试图登录到某个账户之前,安全系统就可以开始从数字交互收集数据。在一些实施例中,安全系统可以将实体的行为与群体数据进行比较。以这种方式,在实体采取任何实质性行动之前,安全系统可能能够得出关于实体是否可能是合法用户、或者机器人或人类欺诈者的一些推论。本文描述了用于对于大量数字交互实时执行这样的分析的各种技术。

在一些实施例中,可以针对特定网站选择多个属性,其中属性可以是关于数字交互可能询问的问题,并且该属性的值可以是对问题的回答。作为一个例子,问题可能是“查看产品到结账之间经过了多长时间?”。答案可能是基于产品详情页面请求的时间戳以及结账页面请求的时间戳计算出的值(例如,以秒或毫秒为单位)。作为另一个例子,属性可以包括从数字交互中可观察到的锚类型。例如,安全系统可以观察到,与数字交互有关所接收的数据分组指示特定的源网络地址和/或特定的源设备标识符。另外或替代地,安全系统可以观察到某个电子邮件地址被用于登录和/或某个信用卡与数字交互相关地被收费。锚类型的示例包括但不限于账户标识符、电子邮件地址(例如用户名和/或电子邮件域名)、网络地址(例如,ip地址、子地址等)、电话号码(例如,区域代码和/或订户号码)、位置(例如gps坐标、大陆、国家、地区、城市、指定市场区域等)、设备特征(例如品牌、型号、操作系统、浏览器、设备指纹等)、设备标识符等。

在一些实施例中,安全系统可针对属性(例如,浏览器类型)的每个可能值(例如,chrome,safari等)维护一个或多个计数器。例如,用于可能的属性值(例如,chrome)的计数器可以跟踪在某个时间段内(例如,30分钟、一小时、90分钟、两个小时等)观察到多少次具有该特定属性值(例如,chrome)的数字交互。因此,为了确定是否存在与属性相关的异常,安全系统可以简单地检查一个或多个计数器。例如,如果当前时间是下午3:45,则安全系统可以比较将跟踪自下午3点以来报告chrome浏览器的数字交互的数量的计数器与跟踪在之前的一天(或一周前,一个月前,一年前等)的下午3:00至下午4:00之间报告chrome浏览器的数字交互的数量的计数器进行比较。这可以消除或至少减少与属性值相关联的原始数据的即时处理,从而提高安全系统的响应性。

发明人已经认识并理解,随着由安全系统处理的数字交互量增加,由安全系统维护的计数器集合可能变得庞大。相应地,在一些实施例中,属性的可能值可以被划分成多个桶(bucket)。安全系统可以为每个属性值桶维护一个或多个计数器,而不是为每个属性值维护一个或多个计数器。例如,计数器可跟踪与来自网络地址桶b的任何网络地址的数字交互的数量,而不是与特定网络地址y的数字交互的数量。因此,多个计数器(例如针对桶b中的每个属性值的单独的计数器)可以替换成单个计数器(例如,针对桶b中的所有属性值的聚合计数器)。

以这种方式,通过选择适当数量的桶可以实现精度和效率之间的期望平衡。例如,更大数量的桶可以提供更高的分辨率,但是更多的计数器可能要被维护和更新,而更少数量的桶可以减少存储需求并且加快检索和更新,但是可能丢失更多信息。

发明人已经认识并理解,可能需要将属性值大致均匀地分布在多个桶中。因此,在一些实施例中,可以将散列函数应用于属性值,并且可以应用模操作来将产生的散列划分成多个桶,其中对于模操作的每个余数可以存在一个桶。基于需要多少桶来选择适当的模数,并且可以选择适当的散列函数来将属性值大致均匀地散布在可能的散列上。合适的散列函数的例子包括但不限于md5、md6、sha-1、sha-2、sha-3等。

例如,可能有成千上万的可能的用户代理。发明人已经认识并理解精确地跟踪哪些用户代理已经被看到可能并不重要。因此,应用散列取模技术将成千上万个可能的用户代理划分成比如一百个或更少的桶可能就足够了。以这种方式,如果已经看到多个用户代理,则多个桶被命中的可能性很高,这可以为异常检测提供足够的信息。

iii.动态部署的安全性探测器

一些安全系统会标记所有可疑数字交互以进行手动审查,这可能会延迟向用户发送确认。通过因特网销售实物商品的组织可能会接受适度的延迟,因为对于每个订单,可能会有一个时间窗口,在此时间窗口期间从仓库中挑选订购的实物商品并将其包装用于装运,因此可以在此时间窗口期间进行手动审核。然而,许多数字交互涉及数字商品(例如,音乐、游戏等)的销售、资金转移等。对于这样的数字交互,可能期望安全系统实时响应每个请求,例如,在数百或数十毫秒内。这种快速响应可以改善用户体验。例如,进行转移或订购歌曲、游戏等的用户可能希望接收交易已经通过的实时确认。相应地,在一些实施例中,提供了用于自动调查可疑数字交互的技术,从而改善了安全系统的响应时间。

在一些实施例中,如果数字交互与一个或多个模糊简档匹配,则安全系统可以更仔细地仔细检查数字交互,即使还没有足够的信息来证明将数字交互分类为攻击的一部分是合理的。安全系统可以以非侵入方式仔细检查数字交互,以减少用户体验摩擦。

例如,安全系统可能会在涉及特定产品或服务的零售网站上观察到异常高百分比的业务,并且可以这样在模糊简档中指示。与尝试购买该产品或服务的数字交互可能会被标记为与模糊简档相匹配,但单凭这种模式可能并不足够可疑,因为许多用户可能出于正当理由购买该产品或服务。为了防止假阳性,一种方法可以是将标记的数字交互发送给操作人员进行审查。另一种方法可能是在批准尝试购买之前需要一个或多个验证任务(例如验证码挑战、安全问题等)。发明人已经认识并理解,这两种方法都可能对用户体验产生负面影响。

因此,在一些实施例中,与模糊简档的匹配可以触发非侵入性的附加分析。例如,安全系统可以以非侵入方式收集来自数字交互的附加数据,并且可以实时分析数据,以便在数字交互进行到可能损害的阶段(例如,对信用卡收费)之前,安全系统可能已经确定数字交互是否可能是合法的。

在一些实施例中,可动态部署一个或多个安全探测器以从数字交互获得信息。例如,可以只有当安全系统确定这样做有足够的价值(例如,使用对用户行为的理解)时才部署安全探测器。作为例子,当与数字交互相关的可疑级别足够高以有正当理由进行调查时(例如,当数字交互匹配包含一个或多个异常属性的模糊简档时,或者当数字交互表示与过去观察到的在数字交互中报告的锚值(例如设备标识符)的活动模式的显著偏差时),可以部署安全探测器。

发明人已经认识到并理解,通过降低用于监视的安全探测器的部署率,攻击者可能更难以检测到监视和/或发现监视是如何进行的。结果,攻击者可能无法有效地逃避监视。

在一些实施例中,可以部署多个安全探测器,其中每个探测器可以被设计为发现不同的信息。例如,由探测器收集的信息可以被安全系统用来通知关于接下来要部署哪一个或多个其他探测器的决定。以这种方式,安全系统可能能够深入理解网络业务(例如网站和/或应用业务)。例如,安全系统可能能够:以便于识别恶意业务的方式对业务进行分类,精确限定正在观察到什么类型的攻击,和/或发现某些可疑行为实际上是合法的。在一些实施例中,结果可能不仅指示某些业务是恶意的可能性,而且还可能指示恶意业务的可能类型。因此,这样的结果可能比仅仅数字分数更有意义。

发明人已经认识并理解一些在线行为评分系统使用客户端侧检查来收集信息。在一些情况下,在许多交互期间在客户端中启用这样的检查,这可能使攻击者清楚了解在线行为评分系统如何工作(例如,收集什么信息,执行什么测试等)。结果,攻击者可能能够适应和逃避检测。因此,在一些实施例中,提供了用于模糊客户端侧功能的技术。单独使用或与动态探测器部署(可能会将部署的探测器的数量减少为例如成千上万的交互中的一个)结合使用,客户端侧功能模糊可以减少恶意实体检测监视和/或发现监视是如何进行的可能性。例如,客户端侧功能模糊可能会使恶意实体难以在一致的环境中测试探测器的行为。

iv.进一步的描述

应该意识到,上面介绍的以及下面更详细讨论的技术可以以多种方式中的任何一种来实现,因为技术不限于任何特定的实现方式。这里仅为了说明的目的提供了实施细节的例子。此外,本文公开的技术可以单独使用或以任何合适的组合使用,因为本公开的方面不限于使用任何特定技术或技术组合。

图1a示出根据一些实施例的可以经由其发生数字交互的说明性系统10。在该示例中,系统10包括用户设备11a-c、在线系统12和13以及安全系统14。用户15可以使用用户设备11a-c参与数字交互。例如,用户设备11a可以是智能电话并且可以被用户15用来检查电子邮件和下载音乐,用户设备11b可以是平板电脑并且可以被用户15使用来购物和进行银行业务,并且用户设备11c可以是膝上型计算机并且可以被用户15用来观看电视和玩游戏。

应该理解的是,除了或者代替上述那些,用户15可以参与其他类型的数字交互,因为本公开的方面不限于对任何特定类型的数字交互的分析。此外,数字交互不限于通过因特网连接进行的交互。例如,数字交互可能涉及租用电话线上的atm交易。

此外,应该理解,用户设备11a-c的特定组合仅出于说明的目的而提供,因为用户15可以使用任何合适的设备或设备的组合来参与数字交互,并且用户可以使用不同的设备参与相同类型的数字交互(例如,检查电子邮件)。

在一些实施例中,数字交互可以涉及用户15与例如在线系统12或在线系统13之类的在线系统之间的交互。例如,在线系统12可以包括应用服务器,该应用服务器托管用户15使用的银行业务app的后端,并且在线系统13可以包括托管用户15使用web浏览器访问的零售商的网站的web服务器。应该理解的是,除了在线系统12和13之外或者代替在线系统12和13,用户15可以与其他在线系统(未示出)交互。例如,用户15可以访问药房的网站来使处方被填写并且交付,访问旅行社网站来预订旅行,访问政府机构的网站以续展许可证,等等。

在一些实施例中,用户15的行为可以由安全系统14测量和分析。例如,在线系统12和13可以向安全系统14报告从用户15观察到的行为。另外地或替代地,用户设备11a-c可以向安全系统14报告从用户15观察到的行为。作为一个示例,从由在线系统13托管的网站下载的网页可以包括软件(例如javascript片段),该软件对在用户设备11a-c之一上运行的浏览器进行编程以观察和报告用户15的行为。这样的软件可以由安全系统14提供并且由在线系统13插入到网页中。作为另一示例,运行在用户设备11a-c中的一个上的应用程序可以被编程为观察和报告用户15的行为。应用程序观察到的行为可以包括用户15与应用程序之间的交互,和/或用户15和另一个应用程序之间的交互。作为另一个例子,在用户设备11a-c之一上运行的操作系统可以被编程为观察和报告用户15的行为。

应该意识到,观察和报告用户行为的软件可以用任何合适的语言编写,并且可以以任何合适的方式传递给用户设备。例如,软件可以通过防火墙(例如,应用程序防火墙)、网络运营商(例如comcast,sprint等)、网络加速器(例如akamai)或沿着用户设备和在线系统之间或者在用户设备和安全系统之间的通信路径的任何设备来传递。

尽管在图1a中仅示出了一个用户(即,用户15),应该理解,安全系统14可以被编程为测量和分析互联网上的许多用户的行为。此外,应该理解的是,除了在线系统12和13之外或者代替在线系统12和13,安全系统14可以与其他在线系统(未示出)交互。本发明人已经认识并理解,通过分析涉及许多不同用户和许多不同在线系统的数字交互,安全系统14可以更全面和准确地理解用户的行为方式。然而,本公开的各方面不限于对从不同在线系统收集的测量进行分析,因为这里描述的一种或多种技术可以用于分析从单个在线系统收集的测量。同样地,本公开的各方面不限于对从不同用户收集的测量进行分析,因为这里描述的一种或多种技术可以用于分析从单个用户收集的测量。

图1b示出了根据一些实施例的图1a所示的安全系统14的说明性实现方式。在这个例子中,安全系统14包括一个或多个前端系统和/或一个或多个后端系统。例如,安全系统14可以包括被配置为与用户设备(例如,图1a中所示的说明性用户设备11c)和/或在线系统(例如,图1a中所示的说明性在线系统13)交互的前端系统22。另外地或替代地,安全系统14可以包括被配置为与后端用户接口34交互的后端系统32。在一些实施例中,后端用户接口34可以包括用于显示关于个人用户和/或用户群体的当前观察和/或历史趋势的图形用户界面(例如,控制面板)。这样的界面可以以任何合适的方式(例如,作为web应用程序或云应用程序)递送,并且可以由任何适当的方(例如组织的安全人员)使用。

在图1b所示的例子中,安全系统14包括日志存储装置24。日志存储装置24可以存储日志文件,该日志文件包括由前端系统22从用户设备(例如,用户设备11c)、在线系统(例如,在线系统13)和/或任何其他合适的来源接收的数据。日志文件可能包含任何合适的信息。例如,在一些实施例中,日志文件可以包括在某段时间(例如,几秒,几分钟,几小时等)内从数字交互记录的击键和/或鼠标点击。另外或替代地,日志文件可以包括其他感兴趣的信息,例如账户标识符、网络地址、用户设备标识符、用户设备特性、访问的url、所查看产品的库存量单位(sku)等等。

在一些实施例中,日志存储装置24可以存储在某个合适的时间段(例如几年)内累积的日志文件,这些日志文件可以达到数百亿、数千亿或者万亿的日志文件。每个日志文件可以具有任何合适的大小。例如,在一些实施例中,可以从每分钟的数字交互中捕获大约60千字节的数据,使得记录几分钟用户行为的日志文件可以包括几百千字节的数据,而记录一小时用户行为的日志文件的可能包含几兆字节的数据。因此,日志存储装置24整体上可以存储pb的数据。

发明人已经认识到并且理解,每次接收到检查数字交互异常的请求时,从日志存储装置24检索和分析日志文件可能是不切实际的。例如,安全系统14可能执行期望在100毫秒、80毫秒、60毫秒、40毫秒、20毫秒或更少内响应于检测异常的请求。安全系统14可能不能在如此短的时间窗内识别和分析来自日志存储装置24的所有相关日志文件。相应地,在一些实施例中,日志处理系统26可以被设置为过滤、变换和/或路由来自日志存储装置24的数据到一个或多个数据库28。

日志处理系统26可以以任何合适的方式来实现。例如,在一些实施例中,日志处理系统26可以包括一个或多个服务,其被配置为从日志存储装置24检索日志文件,从日志文件提取有用的信息,变换一条或多条提取的信息(例如,添加纬度和经度坐标到提取的地址),和/或将提取和/或变换的信息存储在一个或多个适当的数据库(例如,一个或多个数据库28中的数据库)中。

在一些实施例中,一个或多个服务可以包括被配置为将数据从日志文件路由到一个或多个队列的一个或多个服务,和/或被配置为处理一个或多个队列中的数据的一个或多个服务。例如,每个队列可能有专门的服务来处理该队列中的数据。取决于在队列中要处理的数据量,可以运行服务的任何合适数量的实例。

一个或多个数据库28可以被安全系统14的任何合适的组件访问。作为一个示例,后端系统32可以查询一个或多个数据库28以生成关于个人用户和/或用户群体的当前观察和/或历史趋势的显示。作为另一个例子,数据服务系统30可以查询一个或多个数据库28以向前端系统22提供输入。

发明人已经认识到并理解一些数据库查询可能是耗时的。例如,如果每当接收到检测到异常的请求时前端系统22都要查询一个或多个数据库28,则前端系统22可能不能在100毫秒、80毫秒、60毫秒、40毫秒、20毫秒或更少内对请求作出响应。因此,在一些实施例中,数据服务系统30可以维护与一个或多个数据库28分离的一个或多个数据源。由数据服务系统30维护的数据源的示例在图2a中示出并且如下面讨论的那样。

在一些实施例中,由数据服务系统30维护的数据源可以具有有界大小,而不管要分析多少数据以填充数据源。例如,如果存在来自某个账户的活动突发,则增加的数据量可以存储在与该账户相关联的一个或多个数据库28中。数据服务系统30可以将存储在一个或多个数据库28中的数据处理到有界大小,使得前端系统22能够以恒定的时间响应请求。

这里描述了用于处理到来的数据的各种技术。例如,在一些实施例中,所有可能的网络地址可以被划分成一定数量的桶。可以关于这样的桶上,而不是单独的网络地址来维护统计数据。以这种方式,即使观察到的网络地址的实际数量可能随时间波动,也可以分析有界数量的统计数据。除了分桶(bucketing)之外或作为分桶的替代,还可以使用一种或多种其他技术,例如维护一定大小的阵列。

在一些实施例中,数据服务系统30可以包括多个数据服务(例如,使用面向服务的体系结构来实现)。例如,一个或多个数据服务可以周期性地(例如,每小时,每几小时,每天等)访问一个或多个数据库28,并且可以分析所访问的数据并填充前端系统22使用的一个或多个第一数据源。另外或替代地,一个或多个数据服务可以从日志处理系统26接收数据,并且可以使用所接收的数据来更新由前端系统22使用的一个或多个第二数据源。这样的第二数据源可以使用从一个或多个数据库28访问的数据利用自上一次填充一个或多个第一数据源以来已经到达的最近数据来补充一个或多个第一数据源。在各种实施例中,一个或多个第一数据源可以与一个或多个第二数据源相同或不同,或者可以有一些重叠。

尽管实现细节在图1b中示出并在上面进行了讨论,但是应该理解,本公开的各方面不限于使用任何特定组件,或组件的组合,或者组件的任何特定布置。此外,前端系统22、日志处理系统26、数据服务系统30和后端系统32中的每一个可以以任何合适的方式实现,例如使用在相同位置或不同位置操作的一个或多个并行处理器。

图1c示出了根据一些实施例的数字交互内的说明性流程40。在这个示例中,流程40可以表示用户在商家的网站上进行的一系列活动。例如,用户可登录网站,改变账单地址,查看第一产品的产品详情页面,查看第二产品的产品详情页面,将第二产品添加到购物车,然后结账。

在一些实施例中,安全系统可以接收从整个流程40的数字交互中捕获的数据。例如,安全系统可以接收来自数字交互中所涉及的用户设备和/或在线系统的日志文件(例如,如图1b所示并在上面讨论那样)。

安全系统可以以任何合适的方式使用从数字交互捕获的数据。例如,如图1b所示,安全系统可以处理所捕获的数据并填充一个或多个数据库(例如,图1b中所示的一个或多个说明性数据库28)。另外或替代地,安全系统可以填充适用于高效访问的一个或多个数据源。例如,安全系统可将在合适的数据结构(例如,图2b中所示的说明性数据结构220)中维护当前交互数据42。作为一个示例,安全系统可以跟踪在流程40中的不同点处观察到的不同网络地址(例如,经由第一网络地址登录和改变账单地址,经由第二网络地址查看第一产品和第二产品,以及经由第三网络地址将第二产品添加到购物车并结账)。作为另一个例子,安全系统可以跟踪在数字交互中使用的不同信用卡号(例如,不同的信用卡在结账期间连续输入)。数据结构可以以任何合适的方式(例如,使用图2c中所示的说明性过程230)以及由安全系统的任何合适的组件(例如,说明性前端系统22和/或说明性数据服务系统30)来维护。

在一些实施例中,除了当前交互数据42之外或者代替当前交互数据42,安全系统可以维护历史数据44。在一些实施例中,历史数据44可以包括在一个或多个先前数字交互期间观察到的用户活动的日志条目。另外地或替代地,历史数据44可以包括分别与一个或多个锚值相关联的一个或多个简档(例如,与特定设备标识符相关联的简档、与特定网络地址相关联的简档等)。然而,应该理解,本公开的各方面不限于使用任何特定类型的历史数据,或者根本不限于任何历史数据。此外,所使用的任何历史数据可以以任何适当的方式存储。

在一些实施例中,除了当前交互数据42和/或历史数据44之外或者代替当前交互数据42和/或历史数据44,安全系统可以维护群体数据46。例如,安全系统可以按用户代理、地理位置、产品sku等实时更新例如网站业务细分(breakdown)之类的统计数据。作为一个示例,安全系统可以使用散列取模方法来将所有已知的浏览器类型划分为一定数量的桶(例如,10个桶、100个桶等)。对于每个桶,安全系统可以计算落入该桶内的总统网站业务的百分比。作为另一个例子,安全系统可以使用散列取模方法将所有已知产品sku划分成一定数量的桶(例如,10个桶、100个桶)并计算相应的业务百分比。另外地或替代地,安全系统可以计算桶的组合(例如,一桶浏览器类型,一桶产品sku等的组合)的相应业务百分比。

在一些实施例中,安全系统可以持续执行异常检测处理并且可以连续地创建新的模糊简档和/或更新现有的模糊简档。例如,安全系统可以将来自当前时间段(例如,今天的晚上9点至10点)的某个统计量(例如,报告chrome作为浏览器类型的数字交互的计数)与来自过去时间段(例如,昨天、一周前、一个月前、一年前等晚上9点至10点)的相同统计量进行比较。如果统计量的当前值显著偏离统计量的过去值(例如,超过选定的阈值量),则可以报告异常,并且相应的属性(例如,浏览器类型)和属性值(例如,chrome)可以被存储在模糊简档中。

在一些实施例中,安全系统可以呈现当前交互数据42、历史数据44和/或群体数据46的任何一个或多个方面(例如,经由图1b中所示的说明性后端用户接口34)。例如,安全系统可以使用堆积区域图来呈现网站业务的细分(例如,利用实际业务测量或总业务的百分比)。

图1c还示出说明性流程40中的时间测量的示例。在一些实施例中,安全系统可以接收在整个流程40中捕获的数据,并且所接收的数据可以包括用于用户活动的日志条目,例如登录到网站,改变账单地址,查看第一产品的产品详情页面,查看第二产品的产品详情页面,将第二产品添加到购物车,结账等。日志条目可以包括时间戳,其可以由安全性系统使用来确定数字交互中两点间经过的时间量。例如,安全系统可以使用适当的时间戳来确定在查看第二产品和将第二产品添加到购物车之间经过多长时间,在将第二产品添加到购物车到结账之间经过多长时间,在查看第二产品到结账之间经过多长时间,等等。

发明人已经认识并理解,某些定时模式可能指示非法数字交互。例如,经销商可以使用机器人多次购买正在销售的产品,从而规避零售网站施加的数量限制(例如,每个顾客一个)。这样的机器人可以被编程为快速执行订单,以最大化在促销期间完成的订单总数。由此产生的定时模式可能与通过网站浏览并且在作出购买决定之前花时间阅读产品详情的人类客户的定时模式明显不同。因此,例如产品查看和结账之间延迟的定时模式可能是数字交互中进行监视的有用属性。

应该意识到,本公开的各方面不限于对在线购买的分析,因为可以使用本文描述的一种或多种技术来分析其他类型的数字交互,包括但不限于开新的账户,查看电子邮件,转账等。此外,应该理解的是,本公开的各方面不限于监视任何特定定时属性或根本不限于任何定时属性。在一些实施例中,除了定时属性之外或者替代定时属性,可以监视其他属性,例如从数字交互中观察到的各种锚类型。

图2a示出根据一些实施例的用于记录来自数字交互的观察的说明性数据结构200。例如,数据结构200可以由安全系统(例如,图1a中所示的说明性安全系统14)使用以记录已经在特定上下文中观察到的相同类型的不同锚值。然而,这不是必需的,因为在一些实施例中,代替锚值或除了锚值之外,数据结构200可以用于记录其他不同值。

在一些实施例中,数据结构200可以用于存储已经在数字交互中看到的相同类型的多达n个不同的锚值(例如,n个不同的信用卡号)。例如,在一些实施例中,数据结构200可以包括具有特定大小n的阵列205。一旦阵列已经被填充,就可以使用合适的方法来确定是丢弃新观察到的信用卡号,还是用新观察到的信用卡号替换一个所存储的信用卡号。以这种方式,无论接收到的原始数据量如何,响应于查询,可以仅分析有界数量的数据。

在一些实施例中,可以选择数量n的不同值来提供足够的信息而不使用过量的存储空间。例如,如果精确值对于检测异常是有用的,则安全系统可以存储更多不同的值(例如8-16),并且如果精确值不太重要,则可以存储更少的不同值(例如2-4)。在一些实施例中,n对于网络地址可以是8-16,对于信用卡号可以是4-8,对于用户代理可以是2-4。安全系统可以使用网络地址来确定是否存在多个网络地址被观察的正当理由(例如,用户旅行并沿途连接到一系列接入点),而安全系统可只查找已观察到多个用户代理的简单指示。

应该意识到,本公开的各方面不限于使用阵列来存储不同的值。也可以使用其他数据结构,例如链表、树等。

发明人已经认识并理解,除了n个不同的观察值之外,可能期望在数据结构200中存储附加信息。例如,可能需要存储总体上已观察到多少不同值以及这些值如何分布的指示。因此,在一些实施例中,可能的值可以被划分成多个m个桶,并且除了n个不同的观察值之外或者代替n个不同的观察值,可以存储长度为m的位串210。位串210中的每个位可以对应于相应的桶,并且可以被初始化为0。无论何时观察到桶中的值,与该桶相对应的位可以被设置为1。

可能的值可以以任何合适的方式划分成桶。例如,在一些实施例中,可以将散列函数应用于可能的值,并且可以应用模操作(具有模数m)以将产生的散列划分为m个桶。可以选择模数m以实现精度和效率之间的期望平衡。例如,更大数量的桶可以提供更高的分辨率(例如,更少的可能值被集总在一起并且变得难以区分),但是位串210可能占用更多的存储空间,并且在计算上更新和/或访问位串210可能更复杂。

应该意识到,本公开的各方面不限于使用散列取模来将可能值划分成桶,因为其他方法也可能是合适的。例如,在一些实施例中,可以使用基于布隆(bloom)过滤器的一种或多种技术。

图2b示出根据一些实施例的用于记录来自数字交互的观察的说明性数据结构220。例如,数据结构220可以被安全系统(例如,图1a中所示的说明性安全系统14)使用以记录已经在特定上下文中观察到的不同锚值。然而,这不是必需的,因为在一些实施例中,替代锚值或除了锚值之外,数据结构220可以用于记录其他不同值。

在图2b所示的例子中,数据结构220可以由会话标识符和流程标识符来索引。会话标识符可以是网络服务器为web会话分配的标识符。流程标识符可以标识可以包括一系列活动的流程(例如,图1c所示的说明性流程40)。安全系统可以使用会话标识符和流程标识符来将检测到的活动与数字交互进行匹配。然而,应该理解,本公开的各方面不限于使用会话标识符和流程标识符来标识数字交互。

在一些实施例中,数据结构220可以包括多个组件,例如图2b中所示的组件222、224、226和228。组件222、224、226和228中的每一个可以与图2a中示出的说明性数据结构200类似。例如,组件222可以存储从数字交互观察到的高达一定数量的不同网络地址,组件224可以存储从数字交互观察到的高达一定数量的不同用户代理,组件226可以存储从数字交互中观察到的高达一定数量的不同信用卡号等等。

在一些实施例中,数据结构220可以包括相对小数目(例如,10、20、30等)的组件,例如222、224、226和228。以这种方式,相对少量的数据可以被存储用于每个正在进行的数字交互,同时仍允许安全系统进行有效的相同性分析。

在一些实施例中,组件228可以存储索引列表的列表,其中每个索引列表可以对应于发生在数字交互中的活动。例如,参照图1c中所示的说明性流程40,索引的第一列表可对应于登录,索引的第二列表可对应于改变账单地址,索引的第三列表可对应于查看第一产品,索引的第四列表可对应于查看第二产品,索引的第五列表可以对应于将第二产品添加到购物车,并且索引的第六列表可以对应于结账。

在一些实施例中,每个索引列表可以指示从相应活动观察到的锚值。例如,列表[1,3,2,...]可以指示存储在组件222中的第一网络地址,存储在组件224中的第三用户代理,存储在组件226中的第二信用卡等。这可以提供从每个活动观察到的锚值的紧凑表示。

在一些实施例中,如果存储在组件中的锚值被另一锚值替换,则可更新包括被替换的锚值的一个或多个索引列表。例如,如果存储在组件222中的第一网络地址被另一个网络地址替换,则列表[1,3,2,...]可以更新为[φ,3,2,...],其中φ是任何合适的默认值(例如,n+1,其中n是组件222的容量)。

在一些实施例中,安全系统可以使用索引列表的列表来确定锚值被观察到的频率。例如,安全系统可以对在其中索引1出现在第一位置的列表数量进行计数。这可以指示已经观察到存储在组件222中的第一网络地址的次数。

应该理解的是,图2b中所示以及如上所述的组件222、224、226和228仅出于说明的目的,因为本公开的各方面不限于存储关于当前数字交互的任何特定信息或存储表示所存储的信息的任何特定方式。例如,除了图2a所示的说明性数据结构200之外或者作为其替代,可以使用其他类型的组件数据结构。

图2c示出了根据一些实施例的用于记录来自数字交互的观察的说明性过程230。例如,过程230可以由安全系统(例如,图1a中所示的说明性安全系统14)执行以记录已经在特定的上下文(例如,在某种数字交互中)中观察到的相同类型的不同值(例如,n个不同的信用卡号)。不同的值可以记录在诸如图2a所示的说明性数据结构200之类的数据结构中。

在动作231处,安全系统可以在特定上下文中识别锚值x。例如,在一些实施例中,可以从某个数字交互中观察锚值x。在一些实施例中,安全系统可以访问数字交互的记录,并且可以从记录中识别与锚值x的类型t相关联的数据结构。例如,如果锚值x是信用卡号,则安全系统可以从数字交互的记录中识别用于存储从数字交互观察到的信用卡号的数据结构。

在动作232处,安全系统可以识别锚值x所属的桶b。例如,在一些实施例中,可以执行散列取模操作以将锚值x映射到桶b,如上面结合图2a所述。

在动作233处,安全系统可以存储与数字交互有关来自桶b的至少一个锚值已经被观察到的指示。例如,安全系统可以对在动作231识别的数据结构进行操作。参照图2a所示的示例,安全系统可在说明性位串210中识别与在动作232处识别的桶b对应的位置并将1写入该位置。

在动作234处,安全系统可以确定锚值x是否已经与上下文有关被存储。例如,安全系统可以检查锚值x是否已经被存储在在动作231处识别的数据结构中。参照图2a所示的示例,安全系统可以在说明性阵列205中查找锚值x。该查找可以以任何合适的方式执行。例如,如果阵列205被排序,则安全系统可以执行二分搜索以确定锚值x是否已经存储在阵列205中。

如果在动作234处确定锚值x已经被存储,则过程230可以结束。尽管未示出,但是在一些实施例中,安全系统可以在结束过程230之前增加用于锚值x的一个或多个计数器。

如果在动作234处确定锚值x尚未被存储,则安全系统可以前进到动作235以确定是否要存储锚值x。参考图2a所示的示例,在一些实施例中,如果阵列205尚未满,则安全系统可以存储锚值x。如果阵列205已满,则安全系统可以确定是否用锚值x替换存储的锚值中的一个。

作为一个例子,安全系统可以在阵列205中存储从数字交互中观察到的类型t的前n个不同的锚值,并且可以丢弃类型t的每个随后观察到的锚值。作为另一个例子,安全系统可以用新观察到的锚值替换最旧的存储的锚值,以便阵列205存储数字交互中观察到的类型t的最后n个不同值。作为另一个例子,安全系统可以在阵列205中存储类型t的n个锚值的适当组合,例如在数字交互的开始附近观察到的一个或多个锚值,最近从数字交互中观察到的一个或多个锚值,从数字交互中最频繁观察到的一个或多个锚值(例如,基于存储用于锚值的各个计数器,或者诸如图2b中示出的说明性部件228的索引列表),和/或一个或多个更多其他感兴趣的锚值(例如之前涉及信用卡循环攻击的一个或多个信用卡号)。

图3示出了根据一些实施例的可以由安全系统监视的说明性属性。在该示例中,安全系统(例如,图1b中所示的说明性安全系统14)监视多个数字交互,诸如数字交互301,302,303等。这些数字交互可以经由相同的网站来发生。然而,这不是必需的,因为这里描述的一种或多种技术可以用于分析在多个网站上发生的数字交互。

在图3所示的例子中,安全系统监视不同类型的属性。例如,安全系统可以为每个数字交互记录一个或多个锚值,例如网络地址(属性311)、电子邮件地址(属性312)、账户标识符(属性313)等等。

安全系统可以以任何合适的方式从数字交互中识别锚值。作为一个例子,数字交互可以包括尝试登录,并且可以提交电子邮件地址以识别与该电子邮件地址相关联的账户。然而,这不是必需的,因为在一些实施例中可以提交单独的账户标识符并且可以识别用于该账户的在记录上的电子邮件地址。作为另一个例子,数字交互可以包括在线购买。可能会提交电话号码以安排交付,并且可能会提交信用卡号以进行计费。然而,这不是必需的,因为在一些实施例中,可以从进行在线购买的账户的记录中识别电话号码和/或信用卡号。作为另一个例子,安全系统可以检查与数字交互有关而接收到的数据分组,并从数据分组中提取诸如源网络地址和源设备标识符之类的信息。

应该理解的是,上述示例仅仅是说明性的,因为本公开的各方面不限于使用任何特定的锚类型,或者用于识别锚值的任何特定方法。锚类型的示例包括但不限于以下。

-用户信息

o账户标识符

o真实姓名,社保号码,驾驶证号码,护照号码等

o电子邮件地址

·用户名,用户注册国家,用户注册日期等

·电子邮件域名,dns,服务器状态/类型/可用性/能力/软件等,网络详细信息,域名注册商和相关详细信息(例如域名注册人所在国家,域名注册人的联系信息等),域名年龄,域名注册的国家等

o电话号码

·订户号码,国家前缀,号码国家,区域代码,区域代码或号码位置的州/省/教区/等,号码是否被激活,号码是否被转发,计费类型(例如额外费率),所有权详细信息(例如,个人、公司以及关于电子邮件、域名、网络地址等的相关联的详细信息),硬件变更等

o位置

·gps坐标,大陆,国家,地区,州,省,教区,城市,时区,指定市场区域,城市统计区域,邮政编码,街道名称,街道编号,公寓号码,地址类型(例如账单、运送、家庭等)等等

o支付

·信用卡号、支付卡号、借记卡号、银行卡号、卡类型、主账号(pan)、发行者识别号码(iin)、iin详细信息(例如名称、地址等)、签发日期、到期日期等的明文或散列

-设备信息

o品牌,型号,操作系统,用户代理,已安装组件,渲染构件,浏览器能力,已安装软件,可用功能,可用外部硬件(例如显示器、键盘、网络和可用的相关数据)等

o设备标识符,cookie/html存储,其他基于设备的存储,安全密码存储(例如ios密钥链)等

o设备指纹(例如,来自网络和环境特征)

-网络信息

o网络地址(例如,ip地址,子地址等),网络标识符,网络接入标识符,移动台设备身份(imei),媒体访问控制地址(mac),订户身份模块(sim)等等

oip路由类型(例如固定连接,aol,pop,superpop,卫星,缓存代理,国际代理,区域代理,移动网关等),代理类型(例如匿名,混淆,高匿/隐藏,透明,http,服务提供商,socks/sockshttp,web等),连接类型(例如匿名化,vpn,tor等),网速,网络运营商,自治系统号码(asn),运营商,网络地址的注册组织,组织naics代码,组织isic代码,如果组织是托管设施等。

回到图3所示,除了一个或多个锚类型之外或者代替一个或多个锚类型,安全系统可以监视一个或多个交易属性。安全系统可以以任何合适的方式从数字交互识别交易属性值。作为一个示例,数字交互可以包括购买交易,并且安全系统可以识别与购买交易相关的信息,诸如对于正在购买的产品的sku(属性321)、购物车中结账时的物品计数(属性322)、正在购买的物品的平均价值(属性323)等。

替代地或附加地,安全系统可以监视一个或多个定时属性,例如从产品查看到结账的时间(属性331),从添加产品到购物车到结账的时间(属性332)等。结合图2讨论了用于识别定时属性值的示例技术。

应该理解的是,仅仅出于说明的目的提供图3所示以及在上面讨论的属性,因为本公开的各方面不限于使用任何特定属性或属性组合。例如,在一些实施例中,不是购买交易或除购买交易之外,数字交互可以包括资金转移。资金转移的交易属性的例子包括但不限于转账金额、收款机构名称、收款人账号等。

图4b示出了根据一些实施例的用于检测异常的说明性过程400。例如,过程400可以由安全系统(例如,图1b中所示的说明性安全系统14)执行以监视在特定网站处发生的数字交互。安全系统可以将目前观察到的情况与先前在同一网站观察到的情况进行比较,以确定是否存在任何异常。

在动作405处,安全系统可识别属性的多个值。如结合图3所讨论的,安全系统可以监视任何合适的属性,诸如锚类型(例如,网络地址、电子邮件地址、账户标识符等)、交易属性(例如,产品sku、购物车中的物品数量、购买物品平均价值等)、定时属性(例如,从产品查看到结账的时间,从添加产品到购物车到结账的时间等)等等。

在一些实施例中,安全系统可以从相应的数字交互中识别属性的每个值。例如,安全系统可以监视在当前时间段(例如,30分钟,1小时,90分钟,2小时等)内发生的数字交互,并且可以从每个数字交互中识别属性的值。然而,应该认识到,本公开的各方面不限于监视在某个时间段内发生的每个数字交互。例如,在一些实施例中,可以对数字交互进行采样(例如,随机地),并且可以从采样的数字交互中识别属性值。

发明人已经认识并理解,维护关于个体属性值的统计数据可能不切实际。例如,可能有数十亿个可能的网络地址。为每个可能的网络地址维护一个计数器以跟踪有多少数字交互正在报告特定的网络地址可能不切实际。相应地,在一些实施例中,属性的可能值可以被划分成多个桶。安全系统可以为每个属性值桶维护一个计数器,而不是为每个属性值维护一个计数器。例如,计数器可跟踪与来自网络地址桶b的任何网络地址的数字交互的数量,而不是与特定网络地址y的数字交互的数量。因此,多个计数器(例如桶b中的每个属性值的单独的计数器)可以用单个计数器(例如,针对桶b中的所有属性值的聚合计数器)替换。

以这种方式,通过选择适当数量的桶可以实现精度和效率之间的期望平衡。例如,更大数量的桶可以提供更高的分辨率,但是更多的计数器可能要被维护和更新,而更少数量的桶可以减少存储需求并且加快检索和更新,但是可能丢失更多信息。

回到图4的例子,安全系统可以在动作410处将在动作405识别的属性值划分成多个桶。在一些实施例中,每个桶可以是多重集(multiset)。例如,如果两个不同的数字交互报告相同的网络地址,则该网络地址可能在对应的存储桶中出现两次。

在动作415处,安全系统可以确定落入特定桶内的值的计数。在一些实施例中,可以为多个桶中的每个桶确定计数。然而,这不是必需的,因为在一些实施例中,安全系统可能只跟踪一个或多个感兴趣的桶。

可以使用各种技术将属性值划分成桶。作为一个例子,安全系统可以将数字属性值(例如,时间测量)划分成多个范围。作为另一个例子,安全系统可以使用散列取模技术来将数值和/或非数值属性值划分成桶。也可以使用其他技术,因为本公开的各方面不限于用于将属性值划分成桶的任何特定技术。

图5示出根据一些实施例的用于将多个数字属性值划分成多个范围的说明性技术。比如,图5所示的示例技术可以被安全系统用来将图3所示的说明性属性331的值(从产品查看到结账的时间)划分成多个桶。

在图5所示的例子中,多个桶包括分别对应于三个时间测量范围的三个桶。例如,桶581可对应于0和10秒之间的范围,桶582可对应于10和30秒之间的范围,并且桶583可对应于大于30秒的范围。

在一些实施例中,可以基于来自群体数据的观察来选择用于将数值测量划分成桶的阈值。例如,发明人已经认识并理解,在合法的数字交互中从产品查看到结账的时间很少少于10秒,并且因此桶581的高计数可能是异常的良好指标。在一些实施例中,可以基于群体平均值和群体标准差来限定桶。例如,可能存在对于处于平均值的一个标准差内的值的第一桶,存在对于距平均值一个和两个标准差之间的值的第二桶,存在对于距平均值两个和三个标准差之间的值的第三桶,以及存在对于距平均值超过三个标准差的值的第四桶。然而,应该理解的是,本公开的方面不限于使用群体平均值和群体标准差来限定桶。例如,在一些实施例中,可基于来自已知欺诈者的观察来限定桶,和/或可基于来自已知合法用户的观察来限定桶。

在一些实施例中,安全系统可以从多个数字交互中识别属性331的多个值。例如,安全系统可以从每个数字交互中识别在查看产品的产品详情页面和结账(例如,结合图1c和图3讨论)之间所逝去的时间量。在图5所示的例子中,监视九个数字交互,并且获得属性331的九个值(从产品查看到结账的时间)。应该理解,本公开的各方面不限于监视任何特定数量的数字交互。例如,在一些实施例中,可以监视在特定时间段内发生的一些或全部数字交互,并且数字交互的数量可以根据一个或多个相关网站处的业务量而波动。

在图5所示的例子中,基于相应的范围将这九个值划分成桶581-583,得到桶581中的四个值(即,10秒,1秒,2秒和2秒),桶582中的三个值(即,25秒,15秒和30秒)以及桶583中的两个值(即,45秒和90秒)。以这种方式,由安全系统收集的数字数据可以被量化以减少特定属性的可能值的数量,例如,从数千或更多的可能值(3600秒,假定时间被记录长达一小时)减少到三个可能的值(三个范围)。这可以使安全系统更高效地分析收集到的数据。然而,应该认识到,本公开的各方面不限于使用任何特定的量化技术,或根本不限于使用任何量化技术。

图7a示出了根据一些实施例的表示多个桶之间的数字属性值的分布的说明性直方图700。例如,直方图700可以表示将多个时间属性值划分为多个范围的结果,如结合图4的动作415所讨论。时间属性值可以是图3所示的说明性属性331(从产品查看到结账的时间)的值。

在图7a的例子中,直方图700包括多个条,其中每个条可以对应于一个桶,并且每个桶可以对应于时间属性值的范围。每个条的高度可以表示落入相应桶中的值的计数。例如,第二桶(1到5分钟之间)的计数可能高于第一桶(0到1分钟之间)的计数,而第三桶(5到15分钟之间)的计数可能是最高,这表明产品查看和结账之间的延迟时间通常在5到15分钟之间。

在一些实施例中,可以选择m个桶以提供适当的分辨率以分析属性的测量值,同时管理存储需求。例如,更多的桶可以提供更高的分辨率,但是可能要存储更多的计数器。而且,桶可以对应于均匀长度或可变长度的范围。例如,在一些实施例中,可以在属性值倾向于聚类的情况下使用较小的范围(例如,在15分钟以下的较小范围),和/或可以在属性值倾向于稀疏分布的情况下使用较大的范围(例如,15分钟以上的较大范围)。作为示例,如果桶具有太多值(例如,高于选定的阈值数量),则桶可以被划分成两个或更多个更小的桶。作为另一个示例,如果桶具有太少的值(例如,低于选定的阈值数),则桶可以与一个或多个相邻桶合并。以这种方式,可以使关于属性值的分布的有用信息可用,而不存储太多的计数器。

图6示出根据一些实施例的用于将数值和/或非数值属性值划分成桶的说明性散列取模技术。比如,图6所示的示例性技术可以由安全系统使用以将图3中所示的说明性属性311(ip地址)的值划分成多个桶。

在一些实施例中,散列取模技术可以涉及对输入值进行散列并且对产生的散列值执行模操作。在图6中示出的例子中,监视九个数字交互,并获得属性311(ip地址)的九个值。这九个ip地址可以被散列操作以分别产生九个散列值。通过从每个散列值提取两个最低有效数字可以得到以下值:93,93,41,41,9a,9a,9a,9a,9a。该提取过程可以等同于对散列值执行模操作(即,模256)。

在一些实施例中,模操作的每个余数可以对应于一桶属性值。例如,在图6所示的例子中,余数93、41和9a分别对应于桶681-683。结果,在桶681和桶682中的每个中可以有两个属性值,在桶683中可以有五个属性值。

图7b示出了根据一些实施例的表示多个桶之间的属性值分布的说明性直方图720。例如,直方图720可以表示将多个属性值划分成多个桶的结果,如结合图4的动作415所讨论。属性值可以是图3所示的说明性属性311(ip地址)的值。如结合图6所讨论的,每个属性值可以被转换为散列值,并且可以应用模操作来将每个散列值映射到余数。

在图7b的例子中,直方图720包括多个条,其中每个条可以对应于一个桶,并且每个桶可以对应于模操作的余数。每个条的高度可以表示落入相应桶中的值的计数。例如,第三桶(余数“02”)的计数高于第一桶(余数“00”)的计数和第二桶(余数“01”)的计数,表明经常观察到散列取模为“02”的一个或多个ip地址。

在一些实施例中,可以选择模操作的模数m(其确定存在多少桶)以提供适当的分辨率以分析属性的测量的值,同时管理存储需求。例如,更多的桶可以提供更高的分辨率,但是可能要存储更多的计数器。而且,在一些实施例中,桶可以被进一步划分和/或合并。作为一个例子,如果桶具有太多值(例如,高于所选择的阈值数量),则桶可以被划分成更小的桶。例如,对于以“00”结尾的散列值的桶可以被划分成用于分别以“000”,“100”,...,“f00”结尾的散列值的16个桶或者划分成两个桶,第一个桶用于以“000”,“100”,...,或“700”结尾的散列值,第二个桶用于以散列值“800”,“900”,...,或“f00”结尾的散列值。作为另一个例子,如果桶也具有很少的值(例如,低于所选择的阈值数量),可以将桶与一个或多个其他桶合并。以这种方式,可以使关于属性值的分布的有用信息可用,而不存储太多的计数器。

回到图4的例子,安全系统可以在动作420处将在动作415中确定的计数与历史信息进行比较。在一些实施例中,历史信息可以包括同一桶的预期计数,并且安全系统可以将在动作415中确定的计数与预期计数进行比较。

可以对任何数量的一个或多个桶执行动作415处的确定和动作420处的比较。例如,在一些实施例中,可以将在动作415处获得的直方图(例如,图7b中所示的说明性直方图720)与从历史信息获得的预期直方图进行比较。

图8a示出了根据一些实施例的表示多个桶之间的属性值分布的说明性预期直方图820。期望直方图820可以以与图7b的说明性直方图720类似的方式来计算,除了用于计算预期直方图820的属性值可以从多个过去的数字交互中获得,例如来自没有对于一个或多个相关网站的已知攻击(或者没有已知的大规模攻击)的过去时间段的数字交互。因此,预期直方图820可以表示可接受的模式。

图8b示出了根据一些实施例的图7b的说明性直方图720与图8a的说明性预期直方图820之间的比较。图9示出了根据一些实施例的说明性时间段902和904。例如,用于计算图7b的说明性直方图720的属性值可以从在时间段902期间发生的数字交互中获得,而用于计算图8a的说明性预期直方图820的属性值可以从在时间段902中发生的数字交互中获得。在一些实施例中,安全系统可以滚动(rolling)方式执行异常检测处理。每当进行异常检测处理时,时间段902可以接近当前时间,而时间段904可以在过去。

在一些实施例中,时间段902和904可以具有相同的长度(例如,30分钟,1小时,90分钟,2小时等)和/或在一天中的同一时间,以便在直方图720和预期直方图820之间的比较可能更有意义。在一些实施例中,可以使用不同的预期直方图进行多重比较,例如从一小时前,两小时前等起的相同长度的时间段和/或从一天前,一周前,一个月前,一年前等起的相同时间段的预期直方图。例如,如果在直方图720和预期直方图(例如,一天前)之间检测到显著偏差,则安全系统可以将直方图720与时间上更向前(例如,一周前,一个月前,一年前等)的预期直方图进行比较。这可以允许安全系统考虑周期性模式(例如,在星期六,圣诞节之前等的较高业务量)。

回到图4的例子,安全系统可以在动作425处确定是否存在与所讨论的属性(例如,从产品查看到结账的时间、ip地址等)相关联的任何异常。例如,参照图8a,直方图720中的第三个条(余数“02”)可能超过预期直方图820中的第三个条一个显著的量(例如,大于选定的阈值量)。因此,安全系统可以推断来自散列取模为“02”的ip地址的可能攻击。安全系统可以将属性(例如,ip地址)和显现异常(例如,余数“02”)的特定桶存储在模糊简档中。如结合图14所讨论的,可以针对模糊简档分析到来的数字交互,并且可以对匹配数字交互(例如,涉及散列取模为“02”的ip地址的数字交互)强加一个或多个安全措施。例如,可以部署一个或多个安全探测器来调查匹配的数字交互。

发明人已经认识并理解,结合图4所讨论的说明性技术可以提供异常检测的灵活性。例如,通过仅使用在该网站上发生的数字交互,可以为网站定制预期直方图820。此外,预期的直方图可能会随着时间而变化。例如,在任何给定的一天,安全系统可以使用之前的一天(或一周前,一个月前,一年前等)的数字交互来计算预期的直方图。以这种方式,预期的直方图可以遵循网站上的趋势并保持最新。

发明人已经认识并理解,结合图4所讨论的说明性技术可以有助于检测未知的异常。例如,来自少数ip地址的业务意外增加可能表示来自攻击者控制的计算机资源的协同攻击。作为另一个例子,从网站订购的产品sku中的意外峰值可能是潜在定价错误并且经销商针对该特定产品sku订购大量数量的指示。仅仅寻找已知异常模式的安全系统可能无法检测到这种紧急异常。

虽然实现的细节的显示在图4-9中并且如上文所述,应当理解的是,本公开的各方面不限于这些细节。例如,在一些实施例中,安全系统可以计算桶的归一化计数,其可以是单个桶的计数与所有桶之间的总计数之间的比率。除了或者代替将计数与结合图8b所描述的预期计数进行比较之外,归一化计数可以与预期归一化计数进行比较。

发明人已经认识到并理解可以有利地使用归一化来减少假阳性。例如,在传统假日购物季节期间或在广告销售特价期间,购物网站访问和结账活动可能会增加。这种增加可能会导致多个桶中绝对计数的增加。比较单个桶的当前绝对计数和预期绝对计数(例如,一周前观察的该桶的绝对计数)可以显示当前绝对计数超过预期绝对计数多于阈值量,其可能会导致异常的假阳性识别。相比之下,尽管活动全面增加,但目前归一化计数和预期归一化计数之间的比较仍然可靠。

图10示出了根据一些实施例的说明性归一化直方图1000。在该示例中,直方图1000中的每个条对应于一个桶,并且条的高度对应于通过将存储桶的绝对计数除以来自所有桶的计数之和而获得的归一化计数。例如,第一桶可占所有数字交互的10%,第二桶占15%,第三桶占30%,第四桶占15%等。

在一些实施例中,替代具有绝对计数的直方图或者除了具有绝对计数的直方图之外,归一化的直方图可以在图4的说明性过程400的动作415-420处使用。例如,假日购物季节期间的销售活动增加,一周或一个月前桶中的绝对计数可能显著增加,但归一化计数可能保持大致相同。另一方面,如果通过源自少量ip地址的数字交互发生攻击,则一个或多个恶意ip地址被映射到(例如,通过散列取模)的桶可以解释所有数字交互的百分比增加。

发明人已经认识并理解,考察属性的直方图随着时间的推移如何演变可能是有益的。例如,预期对于该时区的白天的某个时区可能会出现更多的数字交互,并且与该模式的偏差可能表示出现异常。因此,在一些实施例中,可以构建直方图阵列,其中每个直方图可以对应于单独的时间窗口。

图11示出了根据一些实施例的随时间推移的直方图的说明性阵列1100。在这个例子中,阵列1100包括24个直方图,每个直方图对应于一小时窗口。例如,可能存在当前时间的直方图、一小时前的直方图、两小时前的直方图等。这些直方图可能显示相同属性(例如ip地址)的统计数据。

在图11所示的例子中,存在属性的四个桶。例如,属性可以是ip地址,并且可以基于与ip地址相关联的时区将ip地址映射到四个桶中的一个桶。例如,桶1120,1140,1160和1180可分别对应于东部、中部、山区和太平洋。

说明性阵列1100在可以是东部时区的早晨时间的小时标记-18、-19和-20处显示桶1120中的峰值活动水平。说明性阵列1100还在小时标记-16、-17和-19处显示桶1160中的峰值活动水平,这可能是山区时区的早晨时间。这些可能被认为是正常模式。虽然没有显示,但夜间活动的峰值可能指示异常。

虽然在图11的例子中使用了特定的时间分辨率(即24个一小时窗口)。应该理解的是,本公开的各方面不限于任何特定的时间分辨率。可以额外地或另外地使用一个或多个其他时间分辨率,例如12个五分钟窗口,七个一天窗口,14个一天窗口,四个一周窗口等。此外,本公开的各方面是不限于使用直方图阵列。

发明人已经认识到并理解与攻击相关的数字交互可能在多个属性中表现出异常。因此,在一些实施例中,可以利用多个属性来生成简档以增加异常检测的准确性和/或效率。例如,可以监视多个属性,并且可以针对每个属性执行图4的说明性过程400以确定该属性是否是异常的(例如,通过构建直方图或如结合图11所讨论的直方图的阵列)。以这种方式,可以在多个维度上执行风险评估,这可以提高准确性。

在一些实施例中,可以选择一个或多个属性,使得在一个或多个属性中的任何属性中检测到的异常可以高度指示攻击。然而,发明人已经认识到并理解,尽管某些属性中的异常可能高度指示攻击,但这种异常可能很少发生,使得耗费时间和资源(例如,存储、处理器周期等)来监视这些属性可能不值得。因此,在一些实施例中,只有在已知的攻击中(例如,高于选定的阈值百分比的攻击中)频繁观察到该属性中的异常时才可以选择该属性。

本发明人已经进一步认识和理解到,一个属性中的异常可能与另一个属性中的异常相关。例如,时区和语言之间可能存在很强的相关性,因此如果相应的语言值已知是异常的,则对异常时区值的观察可能不会提供大量附加信息,反之亦然。因此,在一些实施例中,可以将多个属性选择为成对独立。

图12示出了根据一些实施例的具有多个异常属性的说明性简档1200。在此示例中,说明性简档至少包含三个属性,从产品查看到结账的时间,电子邮件域名,以及产品sku。可以分别针对这些属性构建三个说明性直方图1220、1240和1260。例如,可以使用结合图4-7b描述的一种或多种技术,基于最近在相关网站的数字交互来构建直方图1220、1240和1260中的每一个。

在图12的例子中,直方图1220、1240和1260分别与三个预期直方图进行比较。在一些实施例中,可基于历史数据计算预期直方图。作为一个例子,预期直方图中的每个条可以被计算为在一段时间内的移动平均值。作为另一个例子,预期的直方图可以是从过去一段时间内发生的数字交互中计算出的直方图,例如,如结合图8a-9所讨论的。

在图12的例子中,每个直方图1220、1240和1260具有异常值。例如,用于直方图1220的第三桶可以显示大大高于相应预期直方图中的预期计数1226(例如,高于阈值量以上)的计数1223,用于直方图1240的第四桶可以显示大大高于相应预期直方图中的预期计数1248(例如,高于阈值量以上)的计数1244,并且直方图1260的最后一个桶显示大大高于相应预期直方图中的预期计数1272(例如,高于阈值量以上)的计数1266。在一些实施例中,可以使用不同的阈值来确定不同属性的异常,因为一些属性可能具有倾向于随着时间的推移而广泛波动的计数,而其他属性可能具有倾向于保持相对稳定的计数。

尽管在图12中示出了属性的特定组合并且以上所述,应该理解的是,本公开的方面不限于此。任何合适的一个或多个属性可以在模糊简档中用于异常检测。

发明人已经认识并理解,当从数字交互收集信息时,并非所有收集的信息都可用于异常检测。例如,如果某个特定操作系统具有在攻击中被利用某个漏洞,并且该漏洞存在于所有版本的操作系统中,则如果涉及该操作系统的所有数字交互一起被分析,则可能会出现更强烈的异常模式,而与版本号无关。相比之下,如果数字交互按版本号分层,则每个版本号可能只会适度地偏离相应的预期模式,这可能会使攻击更难以检测。

因此,在一些实施例中,可以对来自数字交互的观察执行熵减少操作,以去除可能与评估与数字交互相关联的风险级别无关的信息。以这种方式,可以处理更少的信息,这可以减少存储要求和/或改善安全系统的响应时间。

图13示出了根据一些实施例的用于检测异常的说明性过程1300。如同图4的说明性过程400一样,过程1300可以由安全系统(例如,图1b中所示的说明性安全系统14)执行以监视在特定网站处发生的数字交互。安全系统可以将目前观察到的情况与先前在同一网站观察到的情况进行比较,以确定是否存在任何异常。

在动作1305,安全系统可以记录与属性有关的多个观察。如结合图3所讨论的,安全系统可以监视任何合适的属性,例如锚类型(例如,网络地址、电子邮件地址、账户标识符等)、交易属性(例如,产品sku、购物车中的物品数量、购买物品的平均价值等)、定时属性(例如,从产品查看到结账的时间,从添加产品到购物车到结账的时间等)等等。

在一些实施例中,安全系统可以记录来自相应数字交互的每个观察。代替将观察划分成多个桶,安全系统可以在动作1308处对每个观察执行熵降低操作,从而导出多个属性值。然后将多个属性值划分成桶,例如,如结合图4的动作410所讨论。过程1300的其余部分可以如结合图4所描述的那样继续。

作为熵减少的一个例子,可以如下记录与用户代理有关的两个观察:

-mozilla/5.0(macintosh;intelmacosx10_11_4)applewebkit/537.36(khtml,如gecko)chrome/52.0.2743.116safari/537.36

-mozilla/5.0(macintosh;intelmacosx10_11_6)applewebkit/537.36(khtml,如gecko)chrome/52.0.2743.116safari/537.36

发明人已经认识并理解,操作系统macosx可能经常与攻击相关联,而与版本号(例如,10_11_6对10_11_4)无关。如果直接进行散列取模,上述字符串可能会落入两个不同的桶中。结果,涉及上述字符串的业务量(例如,每小时1000个数字交互)的增加可以在两个桶之间分割,其中每个桶可以显示较小的增加(例如,每小时约500个数字交互),并且安全系统可能没有足够的信心来标示异常。

因此,在一些实施例中,安全系统可以在图13的说明性过程1300的动作1308处从上述字符串剥离操作系统版本号。此外,或者替代地,mozilla版本号“5.0”可能会缩减到“5”,applewebkit版本号“537.36”可能会缩减为“537”,chrome版本号“52.0.2743.116”可能会缩减为“52”,并且safari版本号“537.36”可能会缩减为“537”。结果,上述两个字符串可能会缩减到一个共同的属性值:

-mozilla5macintoshintelmacosx10applewebkit537khtmllikegeckochrome52safari537

以这种方式,涉及两个原始字符串的数字交互可以被聚合成一个桶,这可以强调异常并促进检测。

在一些实施例中,可以递增地执行熵降低。例如,安全系统可能会首先剥除操作版本号。如果没有明显的异常情况出现,安全系统可能会剥除applewebkit版本号。这可能会持续下去,直到出现一些明显的异常情况,或者所有版本号已被剥除。

作为熵降低的另一个例子,关于显示大小的观察可记录如下:

-1024x768,1440x900

可能有两组显示器尺寸,因为用于数字交互的计算机可能有两个显示器。在一些实施例中,安全系统可以以某种适当顺序(例如,从低到高或从高到低)对显示尺寸进行排序,这可能导致以下内容:

-768,900,1024,1440

发明人已经认识到并理解排序可以允许进行部分匹配。然而,应该理解,本公开的各方面不限于对显示尺寸进行排序。

在一些实施例中,安全系统可以例如通过将显示尺寸除以100然后舍入(例如,使用向下取整(floor)或向上取整(ceiling)函数)来减小显示尺寸。这可能会导致以下结果:

-8,9,10,14

因此,显示尺寸的小差异可能会被删除。由于窗口大小的变化,可能会出现这种差异。例如,任务栏的高度可能会改变,或者任务栏仅在有些时候存在。这种变化对于异常检测可能被认为是不重要的。

虽然发明人已经认识并理解熵减少的各种优点,但是应该认识到,本公开的各方面不限于任何特定的熵降低技术,或者根本不限于使用熵降低技术。

图14示出根据一些实施例的用于将数字交互与模糊简档匹配的说明性过程1400。例如,过程1400可以由安全系统(例如,图1b中所示的说明性安全系统14)执行以确定数字交互是否可能是攻击的一部分。

在图14所示的例子中,建立模糊简档(例如,使用图4所示的说明性过程400)来检测非法经销商。例如,简档可以存储一个或多个异常的属性。另外或者替代地,对于每个异常属性,该简档可以存储异常的属性值和/或该属性值偏离预期的程度的指示。

在一些实施例中,异常属性可以是产品sku,并且异常属性可以是特定散列取模桶(例如,图12中所示的说明性直方图1260中的最后一个桶)。简档可以存储针对该桶观察的计数(例如,计数1266)偏离预期计数(例如,计数1272)的程度的指示。作为一个例子,简档可以存储观察的计数超过预期计数的百分比。作为另一个例子,简档可以存储观察的计数超过预期计数的量。作为另一个例子,简档可以存储观察的计数和预期计数之间的距离的指示。例如,预期计数可以是特定桶在一段时间内的平均计数,并且预期间隔可以基于标准差来限定(例如,偏离平均计数的一个标准差,偏离的两个标准差,偏离两个标准差,等等)。

回到图14,安全系统可以在动作1405处从模糊简档识别多个属性。在一些实施例中,可以分析与零售商的网上商店的数字交互以区分可能的经销商与为其自己使用而购买商品的零售顾客。用于此类分析的经销商简档可能包含诸如以下的属性。

-产品sku

-购买者的电子邮件域名

-浏览器类型

-web会话交互时间

在动作1410处,安全系统可以选择异常属性(例如,产品sku)并识别异常的一个或多个值(例如,具有异常高计数的一个或多个散列取模桶)。在动作1415处,安全系统可以确定正在分析的数字交互是否关于异常属性而与模糊简档匹配。例如,安全系统可以识别在数字交互中正被购买的产品sku的散列取模桶,并且确定该散列取模桶是否在存储在产品sku属性的该简档中的一个或多个异常散列取模桶之中。如果存在匹配,则安全系统可能会这样记录。

在动作1420处,安全系统可以确定是否存在要处理的另一个异常属性。如果是,则安全系统可以返回到动作1410。否则,安全系统可以继续动作1425以计算罚分。罚分可以用任何合适的方式计算。在一些实施例中,根据数字交互关于其与该简档相匹配的异常属性的计数与异常属性的总计数之间的比率来确定罚分。用于计算罚分的说明性代码如下所示。

另外或替代地,可以基于匹配桶的观察的计数偏离该桶的预期计数的程度来确定匹配属性的属性罚分。然后可以基于一个或多个属性罚分来计算总罚分(例如,作为加权和)。

在此示例中,使用经销商简档计算的罚分可能表示经销商参与数字交互的可能性。这种罚分可以以任何合适的方式使用。例如,网络零售商可以使用罚分来决定是否发起一个或多个动作,例如取消可疑经销商已经下的订单,暂停可疑经销商的账户,和/或阻止由与可疑经销商账户相关联的实体创建新账户。

应该理解的是上面结合图14描述的经销商简档仅为了说明的目的而提供。本公开的各方面不限于监视任何特定属性或属性的组合以识别经销商,或根本不限于经销商简档的使用。在各种实施例中,除了经销商活动之外或代替经销商活动,可监视任何适当的属性以检测任何类型的异常。

在一些实施例中,可以使用任何合适的方法将一个或多个过去的数字交互识别为攻击的一部分。每个这样的数字交互可以与锚值(例如,ip地址、名称、账户id、电子邮件地址、设备id、设备指纹、用户id、散列的信用卡号等)相关联,并且锚值可以反过来与行为简档相关联。因此,一个或多个行为简档可以被识别为与攻击相关联并且可以被用来建立模糊简档。

在一些实施例中,模糊简档可以包括一个或多个属性的任何合适的组合,该一个或多个属性尽管不需要但可以与构建模糊简档的行为简档的一个或多个属性一致。例如,模糊简档可以存储属性的值的范围或极限,其中范围或极限可以基于存储在行为简档中的属性的值来确定。

图15示出了根据一些实施例的说明性模糊简档1500。在这个例子中,在已知的恶意数字交互中观察到三种单独的行为a,b和c。例如,可以在20%的已知恶意数字交互中观察到行为a,b和c中的每一个(但是应该理解,以不同频率观察到的行为也可以一起分析)。

发明人已经认识并理解,尽管行为a,b和c中的单独的每一个可能是展现该行为的数字交互作用是否是攻击的一部分的不佳指标,但是行为a,b和c的某种组合可能会提供更可靠的指标。例如,如果数字交互同时表现出行为a和b,则数字交互是攻击的一部分的可能性高(例如80%),而如果数字交互表现出行为b和c,则数字交互是攻击的一部分的可能性低(例如40%)。因此,如果数字交互表现出行为b,则数字交互也表现出行为a可以大大增加数字交互是攻击的一部分的可能性,而数字交互也表现出行为c可能将该可能性增加较小程度。应该理解的是,在图1的例子中提供了具体的百分比,仅出于说明的目的,因为其他百分比也是可能的。

图16示出了根据一些实施例的说明性模糊简档1600。在该示例中,模糊简档1600包括六个单独的行为a,b,c,x,y和z,其中行为a,b和c各自包括观察到的历史模式,并且行为x,y和z各自包括在当前数字交互期间观察到的行为。如果数字交互与表现出历史模式a和b两者的锚值(例如,ip地址、账户id等)相关联,则数字交互是攻击的一部分的可能性高(例如,80%)。如以上结合图13所讨论的,这样的可能性可以基于也与表现出历史模式a和b两者的锚值相关联的恶意数字交互的百分比来确定。

如果数字交互与表现出历史模式c的锚值(例如,ip地址、账户id等)相关联,并且如果在当前数字交互期间观察到行为x和y两者,则可能存在数字交互是攻击的一部分的更高的可能性(例如98%)。另一方面,如果在当前数字交互期间仅观察到行为y和z,则数字交互是攻击的一部分的可能性可能较低(例如75%)。

在一些实施例中,可以针对模糊简档检查在新的数字交互中观察到的一个或多个行为,并且可以计算指示新的数字交互是与模糊简档相关联的攻击的一部分的可能性的分数。以这种方式,与新的数字交互相关联的锚值可以被链接到与模糊简档相关联已知恶意锚值。

发明人已经认识并理解,使用模糊简档来链接锚值可能是有利的。例如,与其他类型的特征(如设备特征)相比,模糊简档可以捕获攻击者可能更难以进行欺骗的行为特征。而且,在一些实施例中,可以在多个网站和/或应用程序上使用模糊简档。例如,当针对特定网站或应用程序发生攻击时,可以基于该攻击创建模糊简档(例如,以识别链接的锚值),并且模糊简档可以用于检测对不同网站或应用程序的类似攻击。然而,应该认识到,本公开的各方面不限于模糊简档的使用,因为这里描述的每种技术可以单独使用,或者与本文描述的任何一种或多种其他技术组合使用。

一些零售商使用库存量单位(sku)或其他类型的标识符来识别出售的产品和/或服务。这可以允许按产品/服务分析销售数据,例如,识别历史购买趋势。在一些实施例中,提供用于识别意外销售模式的技术。尽管在本文描述的一些示例中使用了sku,但是应该认识到,本公开的各方面不限于使用sku,因为还可以使用产品和/或服务的其他类型的标识符。

发明人已经认识到并理解sku有时可能在零售商的库存管理软件中被错误地定价。这可能是软件故障或错误或人为错误的结果。举一个例子,通常售价1200.00美元的产品可能会被错误地定价为120.00美元,这可能导致该产品的购买数量急剧增加。在例如电子商务之类的自动化零售环境中,零售商可能无意中允许交易完成并在亏损的情况下运送货物。可能导致异常销售数据的其他问题的示例包括但不限于:消费者利用非预期的优惠券代码交互,消费者违反销售政策(例如,限制以折扣价格每个顾客一个物品),以及商业经销商尝试利用仅限消费者定价的优势。

因此,在一些实施例中,提供了用于检测意外销售模式并通知零售商以便可以纠正任何潜在问题的技术。例如,安全系统可以被编程为监视购买活动(例如,每sku或sku组)并在观察到与预期基线有显著偏差时发出警报。安全系统可以使用用于检测意外的销售模式的任何合适的技术,包括但不限于使用如本文所述的模糊简档。

发明人已经认识并理解,一些系统仅分析历史销售数据(例如,前一个月或一年的销售模式)。因此,零售商可能无法发现例如如上所述的问题,直至造成损害(例如,货物装运和交易关闭)。因此,在一些实施例中,提供了用于实时分析销售数据和提醒零售商的技术(例如,在向消费者发送确认之前,当还在处理支付时,在货物被运送之前,在消费者接收货物之前,在交易被标记为关闭之前,等等)。

在一些实施例中,可以响应于警报来实现一个或多个自动化对策。例如,零售商可以自动冻结正在进行的销售交易,和/或从网站上移除sku,直到进行调查。另外或替代地,可以向零售商做出一个或多个推荐(例如,基于利润/损失计算),以便零售商可以根据预计的财务影响决定允许或阻止某些活动。

在一些实施例中,可以收集与销售活动有关的数据并将其存储在数据库中。然后可以从存储的数据导出一个或多个度量。可针对特定sku或sku组计算的度量的示例包括但不限于包括该sku或sku组(例如,与一个网站或一组网站的所有交易相比)的交易的比例,单个买方在单个交易中或一定时间段内购买的该sku或sku组的物品的平均数量等。

在一些实施例中,可以将从当前销售活动导出的一个或多个度量与历史数据进行比较。例如,在网站上运行的javascript代码可以监视一个或多个销售活动,并将一个或多个当前度量与历史数据进行比较。然而,应该理解的是,本公开的各方面不限于使用javascript,因为可以使用以任何合适的语言编写的任何合适的客户端侧和/或服务器侧程序来实现任何一个或多个这里描述的功能。

在一些实施例中,如果一个或多个当前度量表示与一个或多个历史观察到的基线的显著偏差,则可以发出警报。一个或多个度量可以以任何合适的方式导出。例如,在一些实施例中,度量可以涉及通过网站或一组网站进行的所有交易,或者可以特定于某个锚值,例如某个ip地址或某个用户账户。另外或替代地,度量可以是每sku或sku组。

作为非限制性示例,电子产品零售商可以以1200.00美元的价格销售特定型号的电视机。历史销售数据可能指示以下一项或多项:

-全体网站的一小百分数的(例如1%的)交易包括这种特定的电视机型号;

-包括这种型号的电视机的大百分数的(例如99%的)交易仅包括一台电视机;

-平均而言,零售商每月销售中等数量(例如30台)该型号的电视机;

-包括这种型号电视机在内的交易的平均价值是1600.00美元(或接近此型号电视机价格的某其他价值);

-在一个或多个特定时间段(例如黑色星期五或节礼日或前后)此型号的电视机销量达到尖峰;

-在夏季月份这种型号电视机销量下降;

-等等。

在一些实施例中,可以提供被编程为使用历史数据(例如,上面指出的一个或多个观察)作为基线来智能地检测显著偏差的系统。例如,参考上述电视机例子,如果零售商的库存管理系统错误地将1200.00美元型号的电视机定价为120.00美元,则可以观察到以下一项或多项:

-包括该特定型号电视机在内的全体网站的交易比例急剧增加(例如从1%增至4%);

-包括这种型号电视机的交易突然开始包括多台电视机;

-零售商在过去24小时内销售的电视机数量大于零售商通常在一个月内销售的数量;

-包括这种型号电视机的交易的平均价值大幅下降;

-等等。

在一些实施例中,警报可以基于例如如上所述的观察来触发。作为一个例子,一组指定的观察中的任一个都可以触发警报。作为另一个例子,来自指定的一组观察的阈值数量的观察(例如,两个,三个等)可以触发警报。作为又一个例子,观察的一个或多个特定组合可以触发警报。

在一些实施例中,当警报发出时,可以实时通知零售商。以这种方式,在对零售商的业务造成重大损害之前,零售商可以能够调查和纠正导致异常销售活动的一个或多个错误。

虽然以上描述了与错误定价物品相关的示例,但应该理解的是,本文描述的技术也可以用于其他情况。例如,本文描述的技术中的一个或多个技术可以用于检测销售价格的滥用,为招揽新客户的削本特价买卖,与某些优惠券代码有关的编程错误,经销商买空库存等等。这些和/或其他异常情况可能会从交易群体中检测到。

在一些实施例中,在线行为评分系统可以计算锚值的风险评分,其中锚值可以与诸如人类用户或机器人的实体相关联。风险分数可以指示关联实体是恶意的(例如,作为攻击的一部分)的感知可能性。可以使用一种或多种技术的任何适当组合来计算风险评分,包括但不限于:

-分析一个或多个维度(例如ip、存储在cookie中的uid、设备指纹等)上的业务量。可以将观察与可以从一个或多个合法样本导出的基线进行比较。

-分析历史访问模式。例如,系统可以检测新用户id和设备关联性(例如,从新购买的移动电话登录的用户)。系统可以观察从新设备接收到与用户id相关联的请求的速率,并且可以将新观察到的速率与从先前设备接收到与用户id相关联的请求的速率进行比较。另外或替代地,系统可观察是否在一天的不同时间以类似的方式分发请求(例如,在一天中的某个时间是否接收到更多或更少的请求)。

-检查来源的声誉,例如,使用蜜罐技术(honeypot)、ip黑名单和/或tor列表。

-使用一次性使用令牌来检测旧通信的重放。

-更改表单以检测gui重放或屏幕宏代理,例如,通过添加或删除字段,更改字段的x/y坐标等。

发明人已经认识到并理解复杂的攻击者可能能够检测何时部署了上述技术中的一些,并且相应地作出反应以避免表现为可疑。因此,在一些实施例中,提供用于以对被监视的实体透明的方式监视在线行为的技术。

在一些实施例中,可动态部署一个或多个安全探测器以获取关于实体的信息。例如,可以只有当安全系统确定有足够的价值这样做时(例如,使用对用户行为的理解)才部署安全探测器。举例来说,当与实体相关的怀疑级别足够高以有正当理由进行调查时(例如,实体的最近活动表示与该实体过去观察到的活动模式的显著偏离时),可以部署安全探测器。发明人已经认识到并理解,通过降低用于监视的安全探测器的部署率,攻击者可能更难以检测到监视和/或发现监视是如何进行的。结果,攻击者可能无法有效地逃避监视。

图17示出了根据一些实施例的用于动态安全探测器部署的说明性过程1700。例如,过程1700可以由安全系统(例如,图1b中所示的说明性安全系统14)执行以确定是否以及何时部署一个或多个安全探测器。

在动作1705处,安全系统可以接收关于数字交互的数据。例如,如结合图1b所讨论的,安全系统可以接收包括从数字交互记录的数据的日志文件。安全系统可以处理所接收的数据并将显著信息存储到适当的数据结构中,例如图2b所示的说明性数据结构220。所存储的信息可以在动作1710处被用于确定数字交互是否可疑。

可以使用任何合适的技术来确定数字交互是否可疑。例如,图14中所示的说明性过程1400可以被用于确定数字交互是否匹配存储异常属性的模糊简档。如果产生的罚分低于选定的阈值,则安全系统可以继续到动作1715以执行标准操作。否则,安全系统可以继续到动作1720以部署安全探测器,并且可以在动作1725处分析安全探测器从数字交互收集的数据,以确定是否进一步的动作是适当的。

罚分阈值可以以任何合适的方式来选择。例如,发明人已经认识到并理解,虽然可能希望从数字交互中收集更多数据,但安全系统可能具有有限的资源,例如网络带宽和处理能力。因此,为了节约资源,应该明智地部署安全探测器。此外,发明人已经认识到并理解,探测器的频繁部署可能允许攻击者研究探测器并学习如何逃避检测。相应地,在一些实施例中,可以选择罚分阈值以提供期望的折衷。

应该意识到,本公开的各方面不限于使用模糊简档来确定是否以及何时部署安全探测器。另外地或替代地,与从数字交互中观察到的锚值相关联的简档可以用于确定数字交互是否与从其观察到锚值的先前数字交互充分相似。如果确定数字交互与从其观察到锚值的先前数字交互不充分相似,则可以部署一个或多个安全探测器以从数字交互收集附加信息。

在一些实施例中,安全系统可以被配置为在一个或多个维度上分割业务,包括但不限于ip地址、xffip地址、c类ip地址、输入签名、账户id、设备id、用户代理等等。例如,每个数字交互可以与一个或多个锚值相关联,其中每个锚值可以对应于进行分割的维度。这可以允许安全系统创建分段列表。作为一个例子,可以创建一个分段列表,其包含所有将chrome报告为用户代理的业务。另外地或替代地,可以创建一个分段列表,其中包括将chrome版本36.0.1985.125报告为用户代理的所有业务。以这种方式,可以以任何合适的粒度创建分段列表。作为另一个例子,分段列表可以包括所有将macosx10.9.2报告为操作系统的业务。另外地或替代地,可以创建一个分段列表,其包括所有将chrome版本36.0.1985.125报告为用户代理并且将macosx10.9.2报告为操作系统的业务。以这种方式,可以利用一个或多个锚值的任何适当组合来创建分段列表。

在一些实施例中,可以针对分段列表收集并存储一个或多个度量。例如,分段列表(例如,与特定ip地址或ip地址块相关联的所有业务)可以与分段标识符相关联,并且针对该分段列表收集的一个或多个度量可以与分段标识符相关联地存储。可以收集的度量的示例包括但不限于平均风险分数、最小风险分数、最大风险分数、对于某个时间窗口(例如,最后5分钟、10分钟、15分钟、30分钟、45分钟、1小时、2小时、3小时、6小时、12小时、24小时,1天、2天、3天、7天、2周等)的访问次数、地理数据等。

在一些实施例中,安全系统可以使用存储用于分段列表的一个或多个度量来确定是否应该部署安全探测器。例如,当一个或多个度量超过相应的阈值时可以部署安全性探测器。安全系统可以基于多个不同因素来选择一个或多个探测器,例如哪个或哪些一个或多个度量已经超过对应的阈值,该一个或多个度量已经超过对应的阈值多少,和/或哪个分段列表有牵连。

度量的阈值可以以任何合适的方式确定。例如,在一些实施例中,一个或多个人类分析者可以检查历史数据(例如,一般群体数据,与证实与攻击相关联的业务相关的数据,与未被识别为与攻击相关联的业务有关的数据,等等),并且可以基于历史数据选择阈值(例如,以实现假阳性错误和假阴性错误之间的期望折衷)。另外地或替代地,下面结合阈值型传感器描述的一种或多种技术可以用于自动选择阈值。

发明人已经认识并理解一些在线行为评分系统使用客户端侧检查来收集信息。在一些情况下,在许多交互期间在客户端中启用这样的检查,这可能使攻击者清楚了解在线行为评分系统如何工作(例如,收集什么信息,执行什么测试等)。结果,攻击者可能能够适应和逃避检测。相应地,在一些实施例中,提供了用于模糊客户端侧功能的技术。单独使用或与动态探测器部署(可能会将部署的探测器的数量减少为例如成千上万的交互中的一个)结合使用,客户端侧功能模糊可能会降低恶意实体检测监视和/或发现监视是如何进行的可能性。例如,客户端侧功能模糊可能会使恶意实体难以在一致的环境中测试探测器的行为。

图18示出了根据一些实施例的用于更新一个或多个分段列表的说明性循环1800。在该示例中,一个或多个处理器(handler)可以被编程为从分段列表中读取(例如,通过读取与分段列表相关联的一个或多个度量)并且确定是否应该和/或如何部署探测器。处理器的示例包括但不限于被编程为处理初始化请求并返回html代码的初始化处理器,和/或被编程为响应ajax请求的ajax(异步javascript和xml)处理器。另外地或替代地,可以编程一个或多个处理器(例如,编程为计算风险分数的分数处理器)以写入分段列表(例如,通过更新与分段列表相关联的一个或多个度量,诸如平均、最小和/或最大风险分数)。然而,本公开的各方面不限于使用处理器,因为其他类型的程序也可以用于实现本文描述的任何功能。

在一些实施例中,对分段列表的写入可以触发从分段列表的一个或多个读取。例如,每当评分处理器更新风险评分度量时,循环可以开始并且初始化处理器和/或ajax处理器可以读取受更新影响的一个或多个分段列表。以这种方式,无论何时发生影响度量的新事件,都可以做出关于是否部署一个或多个探测器的新判定。然而,本公开的各方面不限于这样的循环的实现,因为在一些实施例中,可以周期性地读取分段列表,而不管来自新事件的观察如何。

在一些实施例中,探测器可以仅部署到一个或多个选定的交互,而不是分段列表中的所有交互。例如,探测器可以仅部署到分段列表中的一个或多个可疑成员(例如,一个或多个对于其的测量处于或高于特定警报等级的成员)。一旦从探测器接收到结果,结果可以与成员和/或分段列表相关联地存储,并且探测器可以不再被发送。以这种方式,探测器可以仅部署有限次数,这可能使攻击者难以检测探测器正在收集什么信息,甚至是探测器已被部署的事实。然而,应该认识到,本公开的方面不限于探测器的这种针对性的部署,如在一些实施例中,探测器可以被部署到每个交互,或者一个或多个探测器可以以针对性的方式部署,而一个或更多的其他探测器可以部署到每个交互。

在一些实施例中,探测器可以使用已经存在于网页上的标记(markup)(例如图像标签)来执行一个或多个功能。例如,需要用户代理执行计算动作的任何标记都可以用作探测器。另外或替代地,探测器可以包括对服务器的附加标记、javascript和/或ajax调用。下面描述探测器的一些非限制性示例。

-isrealjavascript

o执行功能的一个或多个javascript语句可以包含在网页中,其中执行该功能的结果将被发送回服务器。如果未收到结果或收到结果但结果不正确,则可能确定客户端未运行真正的javascript引擎。

-isrunningheadlessbrowser

o可以对微件(widget)进行编程以请求图形卡信息、视口信息和/或窗口信息(例如,window.innerheight,document.body.clientwidth等)。另外,或者替代地,微件可以被编程为观察表单内的鼠标移动。如果一个或多个结果丢失或异常,可能确定客户端正在运行无头浏览器。

-iscookieenabled

o可以在用户的浏览器中设置一个或多个具有选定名称和值的cookie,其中一个或多个值将被发送回服务器。如果没有收到一个或多个值,则可以确定浏览器不允许cookie。

-isuaspoofing

o可以包含一个或多个针对支持的浏览器类型和/或版本以某种可识别的方式运行的javascript语句。如果没有看到期望的异常行为,则可以确定用户代理被欺骗。

-isdeviceidspoofing

o发明人已经认识并理解设备id可以是某些元素的动态组合(例如,涉及浏览器和/或硬件特性)。用于导出设备id的公式可以在探测期间被改变(例如,增加/减少长度,和/或添加/省略一个或多个元素)。如果新导出的设备id不符合预期,则可以确定该设备id被欺骗。

-isreadingids

o在数字交互过程中,一个或多个值可能会被修改一次或多次。例如,一个或多个系统表单id可以在作为html递送之前修改,并且在关联的javascript代码加载之后再次修改。取决于攻击者获得一个或多个id的哪个版本,安全系统可以在交易周期中推断攻击者正在读取一个或多个id。

-isfabricatinginputbehavior

o微件的软件代码可以随机修改,以便为键和/或鼠标事件使用不同的符号。如果一个或多个符号不匹配,则可以确定输入数据已经被伪造。

-isreferencingsystemjs

o一个或多个系统javascript功能可能被复制和隐藏,并且一个或多个警报可能会被添加到一个或多个原始系统函数中。如果触发了警报,则可以确定第三方正在调用系统功能。

-isreplayingguimouseevents

o可以改变ajax响应以包括文档对象模型(dom)操纵指令来操纵gui字段或对象。作为一个示例,dom操纵指令可以将gui字段(例如,诸如提交按钮之类的必需字段)移动到gui中的不同位置,并且将不可见但全功能的字段(例如,另一个提交按钮)放置在原来的位置。如果使用不可见字段提交表单,则可以确定gui事件是重放或宏的结果。作为另一个例子,gui字段可以被移动,但是在原始位置可能没有替换字段。如果在原始位置发生“点击”事件,则可以确定gui事件是重放或宏的结果。作为又一示例,dom操纵指令可以用相同类型的第二gui字段(例如,“submit1”按钮)替换第一gui字段(例如,“提交”按钮)。合法完成表单的人类用户可以点击可见的第二gui字段。使用重播脚本完成表单的机器人可能会改为“点击”不可见的第一gui字段。

-isreplayingguikeyevents

o与isreplayingguimouseevents类似,此探测器可以隐藏文本输入字段,并在原始位置放置一个不同名称的字段。如果不可见字段接收到关键事件,则可以确定该事件是重放。

-isreplayingrecordedajaxcalls

o此探测器可能会更改ajax调用的端点地址。如果旧地址用于ajax调用,则可以确定ajax调用是重放。

-isassumingajaxbehavior

o这个探测器可能会指示客户端进行多个ajax调用和/或一个或多个延迟的ajax调用。如果观察到意外的ajax行为模式,则可以确定攻击者正在伪造ajax行为模式。

虽然以上讨论了几种探测器的例子,但应该理解的是,本公开的方面不限于使用任何一种探测器或探测器的组合,或根本不限于使用任何探测器。例如,在一些实施例中,可以部署探测器并且可以将探测器的一个或多个结果(例如,与分段标识符相关联和/或与关联于分段标识符的一个或多个度量一起)记入日志。这样的结果可以用于确定是否部署后续探测器。另外或替代地,可以使用这样的结果来促进对将来的数字交互进行评分和/或分类。

在一个示例中,可以在短时间窗口内多次观察到相同形式的输入模式,这可能代表异常高的速率。此外,可以观察到在显示可疑输入模式的数字交互的全部或大部分中涉及同一用户代理。这可能表明潜在的高容量自动攻击,并可能导致部署一个或多个探测器以获取有关潜在自动化方法的更多信息。

在一些实施例中,可以部署多个安全探测器,其中每个探测器可以被设计为发现不同的信息。例如,由探测器收集的信息可以被安全系统用来通知关于接着要部署哪一个或多个其他探测器的决定。以这种方式,安全系统可能能够深入理解网络业务(例如网站和/或应用业务)。例如,安全系统可能能够以有助于识别恶意业务的方式对业务进行分类,精确地限定正在观察什么类型的攻击,和/或发现一些可疑行为实际上是合法的。这些结果可能不仅表明某些业务是恶意的可能性,还表示恶意表明的可能的类型。因此,这样的结果可能比仅仅数字分数更有意义。例如,如果多个探测结果表明数字交互是合法的,则可以确定数字交互初始被识别为可疑可能是假阳性识别。

图19示出了根据一些实施例的用于动态部署多个安全探测器的说明性过程1900。如同图17的说明性过程1700一样,过程1900可以由安全系统(例如,图1b中所示的说明性安全系统14)执行以确定是否以及何时部署一个或多个安全探测器。

过程1900的动作1905、1910、1915和1920可以分别类似于过程1700的动作1705、1710、1715和1720。在动作1925处,安全系统可以分析由在动作1720处部署的第一类型探测器(例如探测器1)收集的数据,以确定进一步部署到数字交互的探测器的类型。例如,如果探测器1的结果是阳性的(例如,识别出可疑模式),则可以在动作1930处部署第二类型的探测器(例如,探测器2)以进一步调查数字交互。在动作1940处,安全系统可以分析由探测器2收集的数据以确定什么(如果有的话)动作可能是适当的。

如果相反,在动作1925,探测器1的结果是阴性的(例如,未识别出可疑模式),则可以在动作1935处部署第三类型的探测器(例如,探测器3)以进一步调查数字交互。在动作1945处,安全系统可以分析由探测器3收集的数据以确定什么(如果有的话)动作可能是适当的。

作为示例,可以部署第一探测器来验证客户端是否运行javascript。此探测器可能包含javascript片段,并且可以仅部署在一个或少量可疑交互中,以使攻击者更难以检测探测器。如果第一探测器的结果表明客户正在运行javascript,则安全系统可以确定攻击者可能正在使用某种类型的gui宏,并且可以发送后续探测器以确认该假设(例如,通过改变表单的布局)。如果第一探测器的结果表明客户端没有运行javascript,则安全系统可以确定攻击者可能正在使用某种类型的cli脚本,并且可以发送后续探测器以进一步发现用于欺骗表单输入的一个或多个脚本能力和/或方法。这种决策模式可能会重复,直到收集到关于潜在攻击的所有需要的信息。

应该意识到,本公开的各方面不限于使用上述说明性决策过程。例如,图20示出根据一些实施例的可由安全系统用来确定是否部署探测器和/或将部署哪一个或多个探测器的决策树的示例。

在一些实施例中,一些或全部javascript代码可能在被发送到客户端之前被进行模糊。例如,可以使用一种或多种模糊技术来隐藏一个或多个探测器的逻辑。这样的技术的例子包括但不限于符号重命名和/或重新排序,代码最小化,逻辑混洗和无意义逻辑的伪造(例如,探测器不需要按预期起作用的额外决策和控制语句)。本发明人已经认识并理解,可以应用这些和/或其他技术中的一个或多个,使得尽管包含一个或多个探测器,代码的总量(例如,就语句的数量和/或字符的数量来说)并未显著增加,这可以降低攻击者发现探测器的可能性。然而,应该认识到,本公开的各方面不限于使用任何探测器模糊技术。

一些安全系统使用阈值型传感器来触发动作。例如,可以设置传感器来监视实体的一个或多个属性,并在属性值高于或低于预期阈值时发出警报。类似地,可以使用预期的范围,并且当属性的值落在期望的范围之外时可以发出警报。阈值或范围可由一位或多位数据科学家手动确定,例如通过分析历史数据集以识别一组可接受的值并基于可接受的值设置阈值或范围。

发明人已经认识并理解用于调谐传感器的上述方法的一些缺点。例如:

-上述方法假定历史数据集已经存在或将被收集。根据数字交互的量,可能需要一个月或更长的时间来收集适当样本量的数据集。

-在某些情况下,可能会对数据集执行重要的处理和建模,这可能需要一周以上的时间。

-分析历史数据集可能需要大量的人参与。

相应地,在一些实施例中,提供了一种安全系统,其被编程为监视一个或多个数字交互并且基于从数字交互收集的数据来调谐传感器。这种监视和调谐可以在有或没有人参与的情况下执行。在一些实施例中,可以实时执行监视和调谐,这可以允许安全系统在怀疑攻击后立即对攻击做出反应,而不是等待数据在数周内被累积和分析。以这种方式,当攻击仍在进行时,可以采取一个或多个动作来停止攻击和/或控制损害。然而,应该认识到,实时调谐不是必需的,因为数据可以备选地或附加地在攻击之后被累积和分析。

在一些实施例中,安全系统可以被配置为使用一个或多个传感器来收集来自一个或多个数字交互的数据。系统可以分析所收集的数据以识别预期行为的基线,然后使用所识别的基线来调谐一个或多个传感器,从而提供反馈回路。例如,在一些实施例中,系统可以随着时间累积由一个或多个传感器收集的数据,并使用所累积的数据来构建基线行为的模型。

在一些实施例中,由一个或多个传感器收集的数据可以被分割。发明人已经认识并理解分割可以允许安全系统更高效地处理大量数据。例如,安全系统可以基于某些共享特征将观察到的实体和/或数字交互分组为桶。作为一个示例,基于对实体或数字交互检测到的打字速度,每个实体或数字交互可以与几个桶中的一个相关联。可以以任何合适的方式选择桶。例如,当需要更细粒度的区别时,可以使用更多的桶。在一个示例中,实体或数字交互可以基于打字速度与四个不同桶中的一个关联:每分钟0-30个单词,每分钟31-60个单词,每分钟61-90个单词,每分钟90+个单词。其他配置的桶也是可能的,因为本公开的方面不限于使用任何特定的配置。而且,应该理解,可以对任何类型的测量执行分割,包括但不限于打字速度、地理位置、用户代理和/或设备id。

在一些实施例中,由一个或多个传感器收集的数据可被量化以减少特定属性的可能值的数量,这可允许安全系统更有效地分析数据。在一些实施例中,可以使用散列取模处理来执行量化,散列取模处理可以涉及对输入值进行散列并且对得到散列值执行模操作。然而,应该认识到,本公开的各方面不限于使用散列取模,因为其他量化方法也可能是合适的。

在一些实施例中,可以使用散列技术,其在每次给定相同输入值时产生相同的散列值,并且散列值可以使得难以单独从散列值重建输入。这种散列函数可以允许比较属性值而不暴露实际数据。例如,安全系统可以散列信用卡号以产生如下的字母数字字符串:

12kay8xoow0881pwbm81kjcuyp0xhg

如果将来再次散列,同一个信用卡号可能产生相同的散列值。此外,可以选择散列函数,使得没有两个输入被映射到相同的散列值,或者这样的对的数量小。结果,产生相同散列值的两个不同信用卡号的可能性可能较低,并且安全系统可以通过简单地计算新提交的信用卡号的散列值并将计算出的散列值与先前提交的信用卡号的存储散列值进行比较来验证新提交的信用卡号是否与之前提交的信用卡号相同,而不必存储先前提交的信用卡号。

发明人已经认识并理解,可以使用散列函数来将输入数据(包括非数值输入数据)转换成数值,同时保留输入数据的分布。例如,输出散列值的分布可能接近输入数据的分布。

在一些实施例中,可以将模操作(例如,modm,其中m是大数)应用于通过散列或以其他方式转换输入值而得到的数值。这可以减少可能的输出值的数量(例如,如果模操作是modm,则为m)。有些关于输入数据分布的信息可能会丢失,因为在模操作下多个输入值可能映射到相同的数字。然而,发明人已经认识到并理解可以保留足够的信息用于检测异常。

在一些实施例中,散列取模过程可以应用于分析网络地址。地址可以是物理地址和/或逻辑地址,因为本公开的方面不限于使用散列取模来分析任何特定类型的输入数据。发明人已经认识并理解某些网络地址很长。例如,互联网协议版本4(ipv4)地址可以包括32位,而互联网协议版本6(ipv6)地址可以包括128位(例如,八组四位十六进制数字)。本发明人已经认识并理解,将这些地址相互比较(例如,将当前观察到的地址与先前观察到的一组地址进行比较)可能需要大量的时间和/或处理能力。因此,减少要比较的每个数据段的长度同时保留包含在数据中的显著信息可能是有益的。

在一个说明性示例中,可以观察到以下ip地址。

22.231.113.64

194.66.82.11

这些地址可能被散列以分别产生以下值。

9678a5be1599cb7e9ea7174aceb6dc93

6afd70b94d389a30cb34fb7f884e9941

在一些实施例中,不是将输入ip地址彼此比较,或者将散列值彼此互比较,安全系统可以仅比较散列值的部分。例如,安全系统可以从每个散列值提取一个或多个数字,例如一个或多个最低有效数字(例如,一个,两个,三个,四个,五个,六个,七个,八个,九个,十个等等),并比较提取的数字。在上面的例子中,可以从每个散列值中提取两个最低有效位,分别得到值93和41。将93与41比较可能更高效,而将22.231.113.64与194.66.82.11则相反。

一个或多个最低有效数字的提取可以等同于模操作。例如,提取一个最低有效十六进制数字可以等同于mod16,提取两个最低有效十六进制数字可以等同于mod256,等等。然而,应当理解的是,本公开的各方面不限于使用基数16的数字,因为代替基数16或除基数16之外可以使用作为一个或多个其他数字系统(例如,基数2,基数8,基数10,基数64等)。

发明人已经认识并理解,如果提取的两个输入ip地址的数字不同,则安全系统可以以100%置信度推断两个输入ip地址不同。因此,散列取模可以提供一种高效的方式来确认两个输入ip地址是不同的。本发明人进一步认识到并理解,如果两个输入ip地址的提取数字相同,则安全系统可以以某种置信度推断两个输入ip地址相同。

在一些实施例中,可以通过提取和比较更多数字来增加两个输入ip地址相同的置信度水平。例如,响应于确定两个输入ip地址的提取数字相同,可以从每个输入ip地址提取两个更多数字并进行比较。这可以重复,直到达到适当的停止条件,例如,如果新提取的数字不同,或者提取了一些阈值数量的数字。可以选择阈值数量以提供两个输入ip地址相同的期望置信水平。以这种方式,只有当已经完成的处理不产生确定的答案时,才可以执行提取和比较更多数字的附加处理。这可以提高效率。然而,应该认识到,本公开的各方面不限于以两位增量提取和比较数字,因为在一些实施例中,提取和比较可以以一位增量、三位增量、四位增量等等或者以一些不均匀的方式来执行。此外,在一些实施例中,可以一次提取并比较所有数字,而不进行增量处理。

发明人已经认识到并理解观察到的ip地址可能集中在某些点周围。例如,一个ip地址集合可能会共享某个前缀。下面显示了群集地址的一个示例:

1.22.231.113.64

1.22.231.113.15

1.22.231.113.80

1.22.231.113.80

1.22.231.113.52

发明人已经进一步认识到并理解,通过散列ip地址,观察结果可以在数字线上更均匀地散布。例如,以下三个地址可能散列后散布,即使它们共享十一位数字中的九个。

1.22.231.113.64

1.22.231.113.15

1.22.231.113.52

另一方面,以下两个地址可以被散列为相同的值,因为它们是相同的,并且散列值可以与上述三个地址的散列值分隔开。

1.22.231.113.80

1.22.231.113.80

在一些实施例中,可以将ip地址散列到更大的空间中,例如以更均匀地散布地址,和/或减少冲突的可能性。例如,32位ipv4地址可以被散列成192位的值,对于128位的ipv6地址也是如此。然而,应该意识到,本公开的各方面不限于使用192位散列值。此外,可以使用任何合适的散列函数,包括但不限于md5、md6、sha-1、sha-2、sha-3等。

在一些实施例中,散列取模可用于分析除ip地址之外或代替ip地址的任何合适类型的输入数据。发明人已经认识并理解,散列取模可以提供具有可变精度的可变分辨率,这可以允许管理存储需求和/或效率。例如,在一些实施例中,较高分辨率(例如,提取和比较更多数字)可以提供关于观察到的行为的更多确定性,但是甚至较低的分辨率可以提供足够的信息来标记观察到的行为。例如,即使采用10位的相对较低的分辨率(并且因此210=1024个可能的输出值),安全系统也能够以合理的确定性水平区分用户是否正在输入相同的密码10次,或者尝试10个不同的密码,因为10个随机选择的密码在散列取模之后都具有相同的最后10个位的可能性可能足够低。

尽管上面描述了用于将任何类型的输入数据建模为数字数据集的各种技术,但应该理解,这样的示例仅出于说明的目的而提供,并且其他实现方式也是可能的。例如,虽然可有利地使用散列函数来匿名化输入数据,但是替代地或另外地,可以使用一个或多个其他函数(例如,具有数字输出值的一对一函数)来转换输入数据。此外,在一些实施例中,可以在输入上直接执行模操作,而不首先对输入进行散列(例如,在输入已经是数值的情况下)。然而,应该意识到,本公开的各方面不限于使用模操作。代替模操作或除了模操作以外,可以使用一种或多种用于将数值分成桶的其他技术。

在一些实施例中,安全系统可以创建反馈回路以获得对历史趋势的更深入的了解。例如,系统可以基于当前的群体数据和/或历史数据,针对预期行为和/或异常行为来调整基线(例如,预期和/或异常值的阈值)。因此,反馈回路可以允许系统通过分析历史数据来“教导”自己什么是异常。

作为一个例子,系统可以根据历史数据确定特定用户代理与欺诈风险较高相关联,并且用户代理仅构成总业务的很小百分比(例如1%)。如果系统检测到实时数据流中涉及该用户代理的业务百分比急剧增加,则系统可以确定正在发生大规模欺诈攻击。系统可以根据系统随着时间的推移所观察到的内容而不断更新涉及用户代理的预期业务百分比。这可以帮助避免假阳性(例如,由于用户代理在合法数字交互中变得更普遍而导致)和/或假阴性(例如,由于用户代理在合法数字交互中变得不太常见而导致)。

作为另一个例子,系统可以根据历史数据确定绝大多数合法的数字交互具有在每分钟30和80个词之间的记录的打字速度。如果系统检测到大量当前的数字交互具有异常高的打字速度,则系统可以确定正在发生大规模欺诈攻击。系统可以根据系统随着时间的推移观察到的内容而不断更新打字速度的预期范围。例如,在任何给定的时间点,预期的范围可以被确定为以平均值(例如,均值,中值或模式)为中心的范围,并且正好足够大以捕获所有观察的特定百分比(例如,95%,98%,99%等)。也可以使用用于确定预期范围的其他技术,因为本公开的各方面不限于任何特定的实现方式。

应该意识到,历史基线可能会因任何数量的合法原因而改变。例如,发布新的浏览器版本可能会改变用户代理的分布。同样,站点群体统计或用户名/密码要求的改变可能会改变平均打字速度。通过不断分析传入的观察结果,系统可以重新绘制历史基线以反映任何“新常态”。以这种方式,系统可以自动适应自己,并且比人类分析者更加准确和快速。

图21示意性地示出了可以在其上实现本公开的任何方面的说明性计算机5000。在图21所示的实施例中,计算机5000包括具有一个或多个处理器的处理单元5001以及可以包括例如易失性和/或非易失性存储器的非暂时性计算机可读存储介质5002。存储器5002可存储一个或多个指令以编程处理单元5001来执行本文所述的任何功能。除了系统存储器5002之外,计算机5000还可以包括其他类型的非暂时性计算机可读介质,诸如存储装置5005(例如,一个或多个磁盘驱动器)。存储装置5005还可以存储可以被加载到存储器5002中的一个或多个应用程序和/或应用程序使用的外部组件(例如,软件库)。

计算机5000可以具有一个或多个输入设备和/或输出设备,诸如图22中所示的设备5006和5007。除了别的以外,这些设备还可用于呈现用户界面。可用于提供用户界面的输出设备的示例包括用于视觉呈现输出的打印机或显示屏或和用于可听呈现输出的扬声器或其他声音生成设备。可用于用户界面的输入设备的示例包括键盘和指向设备,诸如鼠标、触摸板和数字化平板。作为另一个例子,输入设备5007可以包括用于捕获音频信号的麦克风,并且输出设备5006可以包括用于可视化渲染的显示屏,和/或用于可听地渲染识别文本的扬声器。

如图21所示,计算机5000还可以包括一个或多个网络接口(例如,网络接口5010)以实现经由各种网络(例如,网络5020)的通信。网络的例子包括局域网或广域网,例如企业网络或因特网。这样的网络可以基于任何合适的技术并且可以根据任何合适的协议来操作,并且可以包括无线网络、有线网络或光纤网络。

已经如此描述了至少一个实施例的几个方面,应该理解,本领域技术人员将容易想到各种变化、修改和改进。这样的改变、修改和改进意图在本公开的精神和范围内。因此,前面的描述和附图仅作为示例。

本公开的上述实施例可以以多种方式中的任何一种来实现。例如,实施例可以使用硬件、软件或其组合来实现。当以软件实现时,软件代码可以在任何合适的处理器或处理器集合上执行,不管是在单个计算机中提供还是分布在多个计算机中。

而且,这里概述的各种方法或过程可被编码为能够在采用各种操作系统或平台中的任何一个的一个或多个处理器上执行的软件。此外,可以使用多种合适的编程语言和/或编程或脚本工具中的任何一种编写这样的软件,并且还可以编译为在框架或虚拟机上执行的可执行机器语言代码或中间代码。

在这方面,本文公开的概念可以体现为非暂时性计算机可读介质(或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、压缩盘、光盘、磁带、闪速存储器、现场可编程门阵列或其他半导体装置中的电路配置或其他非暂时的有形计算机存储介质),其编码有一个或多个程序,所述程序在一个或多个计算机或其他处理器上执行时执行实现以上讨论的本公开的各种实施例的方法。一个计算机可读介质或多个计算机可读介质可以是可移动的,使得其上存储的一个或多个程序可以被加载到一个或多个不同的计算机或其他处理器上,以实现如上所述的本公开的各个方面。

术语“程序”或“软件”在本文中用于指代可用于对计算机或其他处理器进行编程以实现如上所述的本公开的各个方面的任何类型的计算机代码或计算机可执行指令集。此外,应该认识到,根据该实施例的一个方面,当被执行时执行本公开的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块化方式分布在多个用于实现本公开的各个方面的不同计算机或处理器中。

计算机可执行指令可以有许多形式,例如由一个或多个计算机或其他设备执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以根据需要在各种实施例中组合或分配。

而且,数据结构可以以任何合适的形式存储在计算机可读介质中。为了简化说明,可以示出数据结构具有通过数据结构中的位置相关的字段。这种关系同样可以通过为字段的存储分配在字段之间传达的关系的计算机可读介质中的位置来实现。然而,可以使用任何合适的机制来建立数据结构的字段中的信息之间的关系,包括通过使用指针、标签或建立数据元素之间关系的其他机制。

本公开的各种特征和方面可以单独使用,以两种或更多种的任何组合或者在前面描述的实施例中未具体讨论的各种布置中使用,因此其应用不限于在前面的描述中阐述或者在附图中示出的组件的细节和布置。例如,一个实施例中描述的方面可以以任何方式与其他实施例中描述的方面组合。

而且,这里公开的概念可以体现为已经提供了示例的方法。作为该方法的一部分执行的动作可以以任何合适的方式排序。因此,可以构造其中以不同于所示的顺序执行动作的实施例,其可以包括同时执行一些动作,即使在说明性实施例中示出为顺序动作。

在权利要求中使用诸如“第一”、“第二”,“第三”等序数词来修饰权利要求要素本身并不意味着一个权利要求要素相对于另一权利要求要素的任何优先级、优先权或顺序或其中执行方法的动作的时间顺序,而仅用作标签以将具有特定名称的一个权利要求要素与具有相同名称的另一权利要求要素区分开(但是使用序数词)从而区分权利要求要素。

而且,这里使用的措辞和术语是为了描述的目的,而不应该被认为是限制性的。“包括”,“包含”,“具有”,“含有”,“涉及”及其变化形式的使用意在涵盖其后列出的项目及其等同物以及附加项目。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1