使用深度学习进行WEB机器人事务的自动学习及检测的制作方法

文档序号:29305598发布日期:2022-03-19 16:36阅读:130来源:国知局
使用深度学习进行WEB机器人事务的自动学习及检测的制作方法
使用深度学习进行web机器人事务的自动学习及检测
1.背景
技术领域
2.本技术总体涉及保护网站和移动应用(app)免受脚本或机器人的自动攻击。
3.相关技术的简要描述
4.分布式计算机系统在现有技术中是众所周知的。一种这样的分布式计算机系统是由服务提供商操作和管理的“内容分发网络”(cdn)或“覆盖网络”。服务提供商通常为使用服务提供商的共享基础设施的第三方(客户)提供内容分发服务。这种类型的分布式系统通常是指通过一个网络或更多个网络链接的、连同被设计为促进各种服务(诸如内容分发、web应用加速或外包源站点基础设施的其他支持)的软件、系统、协议和技术的自主计算机的集合。cdn服务提供商通常通过数字资产(诸如网站)提供服务分发,这些数字资产在客户门户中被提供并且然后被部署到网络。数字资产通常绑定到允许服务提供商对流量计费并向其客户收费的一个或更多个边缘配置。
5.还已知提供检测在web和移动应用上的恶意机器人事务的技术。这些技术通过分析从客户端设备接收到的属性来工作,例如,使用基于javascript的方法在客户端上收集数据以对客户端进行指纹识别并收集遥测数据以评估用户行为以及将机器人与人类区分开来。典型属性包括客户端设备网络、硬件、浏览器和软件属性。此外,这些技术还可以分析人类交互事件(例如,鼠标、击键时间、加速度计和陀螺仪数据、触摸活动等)以检查人类活动与机器人的活动。
6.尽管上述机器人检测和缓解(mitigation)技术提供了显着优势,但机器人脚本编写者因为试图避开检测所以不断调整和改进他们的攻击脚本。解决此问题的一种潜在方法涉及潜在地应用深度学习技术。深度学习(也称为深度结构化学习或分层学习)是基于人工神经网络的更广泛的机器学习方法家族的一部分。学习可以是有监督的、半监督的或无监督的。
7.然而,在机器人检测领域应用典型的深度学习存在重大挑战。特别是,深度学习通常假设(用于学习过程的)类是静态的。例如,考虑一个神经网络分类器,该分类器被构建用于区分例如猫与狗的图像。只要用于训练的图像能够表示猫狗的世界(universe)(并且在训练期间应用的标签准确),则经过训练的模型就可以很好地工作。相反,在机器人检测系统中,目标是尝试构建一个分类器来区分人类和机器人。尽管系统可以收集足够的人类样本进行训练,但对于机器人样本来说却不能这么做。这是因为构成机器人样本的东西不是静态的。因此,如果攻击者在第一天创建了一个机器人脚本,并且一个网络被构建以对机器人与人类进行分类,那么机器人编写者可以简单地更改这个脚本,在这种情况下,之前训练的分类器不再起作用。换句话说,对预先收集的人类和机器人数据进行的用以创建神经网络的任何训练只会导致网络能够检测到训练该网络的特定机器人类别。
8.因此,仍然需要提供可以利用深度学习但克服这些限制的增强型机器人检测技术。
9.简要概述
10.本公开描述了一种机器人检测系统,该机器人检测系统利用深度学习来促进机器人检测和缓解,并且即使在攻击者更改攻击脚本时也能工作。本文的方法提供了一种系统,该系统可以快速且自动(无需人工干预)对新的、更新的或修改的攻击向量进行重新训练。
11.上述内容已经概述了主题的一些比较相关的特征。这些特征应被解释为仅仅是说明性的。通过以不同的方式应用所公开的主题或通过修改将要描述的主题可以获得许多其它有益的结果。
12.附图简述
13.为了更全面理解主题及其优点,现在结合附图参考下面的描述,其中:
14.图1是示出配置为内容分发网络(cdn)的已知分布式计算机系统的框图;
15.图2是表示性的cdn边缘机器配置;以及
16.图3是请求终端用户客户端、边缘服务器和源服务器之间的代表性活动tls会话;
17.图4是一种技术,通过该技术使用基于脚本的技术从请求客户端收集指纹和其他行为数据(behavioral data);
18.图5描绘了接收机器人事务和人类事务两者的网站;
19.图6描绘了本公开的基本架构,以提供使用深度学习进行web机器人事务的自动学习和检测;
20.图7描绘了本公开的深度学习技术;
21.图8描绘了生成神经网络模型的自动学习级;以及
22.图9描绘了使用神经网络模型来区分机器人/人类流量的机器人匹配/过滤级。
23.详细描述
24.在如图1中所示的已知系统中,分布式计算机系统100被配置为内容分发网络(cdn),并被假定具有在因特网上分布的一组机器102a-n。通常,大多数机器是位于因特网边缘附近(即位于终端用户接入网络处或邻近终端用户接入网络)的服务器。网络操作指挥中心(nocc)104管理在系统中的各种机器的操作。诸如网站106的第三方站点将内容的分发(例如,html、嵌入式页面对象、流媒体、软件下载等)转移到分布式计算机系统100,并且特别是转移到“边缘”服务器。通常情况下,内容提供商通过(例如,由dns cname)将给定的内容提供商域或子域别名为由服务提供商的权威域名服务所管理的域来转移他们的内容分发。需要内容的终端用户被引导到分布式计算机系统以更可靠和高效地获得该内容。尽管未详细示出,但是分布式计算机系统还可以包括其他基础设施,诸如分布式数据收集系统108,其收集来自边缘服务器的使用情况和其他数据,集合跨越一个区域或一组区域的数据并将该数据传到其他后端系统110、112、114和116,以便于监测、记录、警报、计费、管理和其他操作和管理功能。分布式网络代理118监测网络以及服务器负载,并向dns查询处理机构115提供网络、流量和负载数据,dns查询处理机构115被授权针对由cdn管理的内容域。分布式数据传输机构120可以用于向边缘服务器发布控制信息(例如,用于管理内容、促进负载平衡等的元数据)。
25.如图2所示,给定机器200包括运行支持一个或更多个应用206a-n的操作系统内核(例如,linux或变体)204的商用硬件(例如,intel pentium处理器)202。为了促进内容分发服务,例如,给定的机器通常运行一组应用,例如,http代理207(有时称为“全局主机”进
程)、名称服务器208、本地监测过程210、分布式数据收集过程212等。
26.cdn边缘服务器被配置为优选使用利用配置系统被分配到边缘服务器的配置文件,优选在特定域、特定客户的基础上,提供一个或更多个扩展的内容分发特征。给定的配置文件优选地是基于xml的,并且包括促进一个或更多个高级内容处理特征的一组内容处理规则和指令。配置文件可以经由数据传输机构传递到cdn边缘服务器。美国专利第7,111,057号示出了用于传递和管理边缘服务器内容控制信息的有用的基础设施,并且这个和其他边缘服务器控制信息可以由cdn服务提供商本身提供,或者(经由外联网等)由操作源服务器的内容提供商客户提供。
27.cdn可以以在美国公布第20040093419号中描述的方式在客户端浏览器、边缘服务器和客户源服务器之间提供安全的内容分发。如本文所述,安全的内容分发一方面在客户端和边缘服务器过程之间执行基于ssl的链接以及另一方面在边缘服务器过程和源服务器过程之间执行基于ssl的链接。这使得ssl保护的网页和/或其部件能够经由边缘服务器传递。
28.作为覆盖层,cdn资源可用于促进在企业数据中心(其可能是私有管理的)和第三方软件即服务(saas)提供商之间的广域网(wan)加速服务。
29.在典型的操作中,内容提供商识别其期望由cdn服务的内容提供商域或子域。cdn服务提供商(例如,通过规范名称或cname)将内容提供商域与边缘网络(cdn)主机名相关联,并且cdn提供商然后将该边缘网络主机名提供给内容提供商。当对内容提供商域或子域的dns查询在内容提供商的域名服务器处被接收时,那些服务器通过返回边缘网络主机名进行响应。边缘网络主机名指向cdn,并且然后通过cdn名称服务解析该边缘网络主机名。为此,cdn名称服务返回一个或更多个ip地址。然后,请求的客户端浏览器向与ip地址相关联的边缘服务器进行内容请求(例如,经由http或https)。请求包括含原始内容提供商域或子域的主机头。在接收到具有主机头的请求时,边缘服务器检查其配置文件以确定所请求的内容域或子域是否实际上正由cdn处理。如果是这样,边缘服务器根据配置中的指定应用其关于该域或子域的内容处理规则和指令。这些内容处理规则和指令可位于基于xml的“元数据”配置文件内。
30.因此,且如本文所用,“边缘服务器”指的是cdn(覆盖网络)边缘机器。对于给定的客户,cdn服务提供商可以允许源自客户端(例如,终端客户浏览器或移动app)的tcp连接并且连接到代表客户的边缘机器上,该客户在分配给客户的虚拟ip地址(vip)上,或在允许发现目标客户的一般vip上。出于本公开的目的,假设该边缘机器没有客户的私钥或客户的证书。
31.如图3所示,在典型的交互场景中,终端用户客户端浏览器或移动app300通过覆盖网络边缘机器服务器实例304(有时称为“边缘服务器”)的中介与客户源服务器(或“源”)302相关联。术语“源”或“边缘”不旨在进行限制。
32.作为进一步的背景,http请求预计会带有特定头(header),例如主机头,其可以指示正在寻址哪个web服务器;或user-agent,其标识什么类型的系统(浏览器、设备)正在进行请求,以便托管内容的web服务器可以以与请求它的系统相适应的内容进行响应。不同的浏览器(edge、firefox、safari、chrome、opera)发送或多或少相同的一组头,但发送头的顺序因从一个浏览器到下一个浏览器或http协议版本而异。发送的头还取决于(post与get)
的方法和类型(xhr请求与text/html请求)。http头的顺序和协议版本构成了头指纹。
33.已知如何通过评估请求头签名并查找通常在机器人中看到的异常来执行客户端请求异常检测。如果总异常分数达到预定义的阈值,则将触发操作规则。这些规则中的一些规则旨在评估来自声称是firefox、chrome、opera、safari、internet explorer或microsoft edge的客户端的请求的头顺序。
34.使用这种检测技术可以相对容易地检测到基本的机器人和僵尸网络。这些比较简单的机器人通常会暴露自己,因为头签名中有足够的异常,或者它们的行为不是典型的普通用户。也就是说,对于隐藏在代理后面、以低速率发送请求或者可能在其头签名中几乎没有异常的高度分布式僵尸网络,系统可能会产生误报。为了检测这些有时在无头浏览器上运行(例如,casperjs、phantomjs、selenium、nodejs)的比较复杂的僵尸网络,可以使用更高级的检测技术。javascript注入技术在业界广泛使用,以帮助检测这些比较高级的僵尸网络。特别是,在头签名中显示很少异常并且行为“像普通用户”的机器人实际上可能不完全支持javascript。对于完全支持javascript的机器人,期望注入有助于收集客户端特定特征(指纹)的代码,在评估时有助于检测客户端特定特征。
35.使用通过javascript(js)收集的信息进行机器人检测可能如下进行。在步骤(1)中,在相关页面(text/html)的边缘动态注入js。在步骤(2)中,客户端加载js,执行js,并且异步发送收集到的数据。在步骤(3)中,边缘服务器拦截并评估js指纹,寻找来自自动化系统(脚本或机器人等)时通常会看到的特定异常。在步骤(4)中,每个异常都被赋予一个分数,且如果指纹总异常分数超过特定阈值,则将客户端分类为机器人。指纹评估的结果记录在会话cookie中,并与每个后续请求一起进行评估。
36.因此,并且如图4所示,基于javascript的技术从客户端收集轻量级指纹和其他行为数据。数据被异步收集并被发送到机器人检测引擎。在受保护的请求(例如tls保护的post登录)上,边缘服务器从机器人检测引擎获得客户端分类并将其应用于边缘。
37.可以使用多个方法来检测使用指纹的机器人,包括但不限于异常检测、动态速率限制和黑名单。
38.异常检测基于以下原理:好的浏览器(诸如chrome、firefox、safari等)对于每个浏览器版本都有一些给定指纹的有效组合。“已知”或“正确”组合是先验学习的。这可以通过分析先前的人类流量并构建有效组合表(用户代理和相关指纹可能性)来完成。然后通过检查用户代理的存在和“已知/正确”表中的给定指纹来捕获将其用户代理伪装成知名浏览器之一的机器人脚本。
39.动态速率限制基于以下原理:系统保持跟踪接收到的指纹且然后对给定指纹进行速率限制。可以通过这种方式阻止机器人攻击,因为给定的指纹将迅速超过允许的速率阈值。
40.黑名单基于以下原理:恶意机器人工具的指纹可以被收集并存储在数据库/文件(也称为黑名单文件)中。当指纹是此黑名单文件的一部分时,它将被阻止。
41.上述技术可以用其他信号调制以产生更高的准确度。
42.总而言之,如上所述的浏览器验证过程使用javascript技术从客户端收集信息,以帮助识别正在与边缘服务器交互的客户端机器的类型以及浏览器的配置。这种技术通常被称为“指纹”。该过程不会收集任何可以识别机器用户的信息。收集的数据(也称为指纹)
优选被发送到数据收集平台并保存给定的时间段。优选地,指纹用于使提供商能够研究和定义帮助机器人检测引擎检测比较高级的机器人的新启发(heuristic)。这些启发优选地被实例化为检测规则并成为指纹评估规则集的一部分。优选地,指纹过程在一个会话中只执行一次。随着额外的相关指纹信息被收集和分析,指纹评估规则集可能会发展,从而允许系统检测更多的机器人。优选地,被识别为机器人的客户端通过他们的会话cookie来被跟踪。会话cookie对给定网站是唯一的,并且不能用于关联给定机器人在其他网站上的活动,但是系统可以提供在使用机器人检测服务的多个客户中跟踪僵尸网络活动的能力。来自这些机器人的活动优选被跟踪和报告。然后,此活动的日志将生成机器人活动和机器人分析报告,客户可以通过安全门户查看这些报告。
43.以下词汇表定义了迄今为止描述的表示性架构中的各种术语:
44.指纹:由运行在客户端上的javascript或sdk收集的数据(数据集);指纹通常包含机器和web浏览器的一个或更多个特征,诸如屏幕尺寸、浏览器版本、支持的字体、安装的浏览器插件;
45.遥测数据(telemetry):记录用户行为的数据,诸如(但不限于)鼠标移动、陀螺仪数据、击键、触摸屏交互;
46.传感器数据:客户端机器发送的指纹和遥测数据的集合;
47.机器人检测服务:评估传感器数据的计算基础设施(机器、设备、电器、软件、数据库、数据等);
48.机器人检测服务集群:一组服务器,例如,运行机器人检测引擎,并评估给定客户的传感器数据;
49.机器人检测服务api:接收传感器数据并允许边缘服务器检索威胁分数的应用编程接口(api);
50.威胁分数:由机器人检测服务基于传感器数据的评估返回的客户端分类(机器人或人类);
51.自动发布:json格式的post请求,其由客户端侧的机器人检测服务javascript生成并携带传感器数据;
52.用户行为分析:从客户端收集指纹和遥测数据以评估用户行为以将其分类为人类或机器人的过程;
53.凭证滥用:一种web攻击,其通常包括针对各种网站重放已知的有效凭证(用户名+密码)列表以试图接管该帐户;
54.礼品卡滥用(gift card abuse):一种web攻击,其包括通过暴力攻击猜测与礼品卡相关的pin码;
55.拾取者信誉(scraper reputation):ip地址(ip)在客户端信誉“拾取者”类别中的信誉;
56.基本页面:一个主html页面,它承载页面的主要结构、内容的代码,并且通常引用其他对象,诸如javascript、样式表、图像;和
57.受保护的资源/端点/api:要保护的web资源/url。
58.使用深度学习进行web机器人事务的自动学习以及检测
59.以上述为背景,现在描述本公开的技术。
60.图5中描绘了代表性的操作环境。在此环境中,网站500从机器人504以及人类506两者接收事务流502。本公开的技术旨在检测和阻止机器人事务。为此,并参考图6,根据本公开,客户端数据收集器组件600耦合到服务器端机器人检测器组件602。客户端数据收集器组件600优选地以上述方式实现,即,使用基于脚本的方法,该方法收集网络数据(诸如,tcp、http、tls、ssl信息)、浏览器信息(例如,诸如浏览器用户代理(ua)、浏览器宽度、高度、字体、使用的插件等)和用户交互事件(例如,鼠标活动、击键时间和活动、触摸活动等)。对于每个人类和机器人事务,客户端数据与事务一起发送。机器人检测服务实现了机器人检测器,优选作为深度学习集群。如将要描述的,机器人检测器组件实现了一种自动对于新机器人数据进行训练并将其与人类数据区分开来的技术。即使攻击者更改了攻击脚本,这种技术也能发挥作用。
61.为此,并且如图7所示,机器人检测器700包括自动学习级702和机器人匹配器/过滤器级704。自动学习级702进行操作以检测攻击,并自动训练神经网络,该神经网络随后用于区分在传入流中的机器人事务和人类事务。神经网络被发送到机器人匹配器/过滤器,它通过创建的神经网络运行每个事务。下面更详细地描述这些级中的每一个。
62.图8描绘了优选实施例中的自动学习级800。
63.在优选操作中,在步骤802,传入事务(其可以包括人类事务和/或机器人事务)首先被缓冲。这些是在网站收到的事务。在这个示例中,“t”个这样的事务被缓冲,并且其中t可以是任何方便的值(例如,1000、10,000等),大到足以促进神经网络的训练。如图所示,这些事务被称为“当前事务”。并行地,且在步骤804,从数据存储装置中提取数量t个预先存储的先前验证的人类事务。特别地,这些事务是那些(例如,通过离线分析)已经被验证为人类的事务。这些事务已被验证为“人类”的特定方式不一定是对本公开的限制。这些事务在本文中称为“gt人类事务”,其中“gt”代表基本事实。在步骤806,规一化t个当前事务,并且在步骤808,规一化gt人类事务。进行这种归一化是为了便于神经网络训练。特别地,归一化优选采用每个事务中的传入数据元素,并在必要时将它们在数字上转换/缩放到更小的范围内。例如,在当前事务的情况下,如果数据项包括鼠标移动坐标(通常在0-1920的屏幕尺寸范围内),则可以通过将每个坐标除以1920来进行归一化,从而将值转换为浮点数。在步骤810,归一化的t个当前事务被标记;在步骤812,归一化的gt人类事务被标记。
64.在一个实施例中,并且如将看到的,自动学习的最终目标是创建一个神经网络,该神经网络返回对于人类事务的给定分数(例如,0),以及对于机器人事务的另一个给定分数(例如,1)。应该理解的是,如果工作流程与选择一致,则此处的这些分数(“0”和“1”)可以彼此互换。因此,并且在所描述的实施例中,并且对于事务组“gt人类事务”,在步骤812,将标签“0”(相当于确定“人类”)赋予所有这些事务。因为这些事务是人工预先验证为人类的(如前所述),所以实际上这是所有这些事务的正确标签。另一方面,并且对于事务组“当前事务”,在步骤810,将标签“1”(机器人)赋予该组中的所有事务。可以理解,这个(标签=1)是一个不真实(artificial)标签,因为该组中的至少一些(如果不是全部)事务可能来自人类。然而,此时,系统不知道当前事务中哪些实际上是人类的事务,哪些是机器人的事务,但是在步骤810仍然应用了这个不真实标签。
65.步骤802和804、步骤806和808、以及步骤810和812可以同时进行,也可以异步进行。
66.下一步骤814是用通过上述操作提供的数据和标签来训练神经网络。优选地,并且如将要描述的,该训练通过一组训练迭代与数据修剪操作相关联地完成。商业或其他可用的神经网络训练方法可用于特定迭代。特定的网络大小、层数、激活函数(activation functions)的数量等优选地根据以下内容来选择:事务数据中存在的元素/特征的数量以及其他系统考虑因素(诸如训练时间、计算效率等)。出于训练目的,优选地,在神经网络训练期间实施合适的成本/损失函数(例如,二进制交叉熵、均方误差等)。优选地,训练过程试图最小化每个训练样本的损失/误差。在训练迭代结束时,“当前事务”组桶(bucket)中的真实机器人样本往往具有较低的损失/成本,因为可以将数据与“gt人类事务”桶中的样本区分开来。相比之下,当前事务组桶中的人类样本往往具有比较高的损失/成本,因为无法将数据与“gt人类事务”桶中的样本区分开来。实际上,如果当前事务组桶中有大量人类样本,则gt人类事务桶中的样本往往具有比较高的成本。
67.如果机器人攻击的设计方式是如下方式:真正的机器人样本沿着一个变体组建模(例如,“少量人类样本”),则它们往往仍然具有低损失/成本,因为在gt组流量中“少量人类样本”同样会占很小的百分比,而在当前的事务流量中,该百分比会高得多。
68.在训练迭代之后,在步骤816,系统检查攻击模型是否收敛,这意味着,在监督训练期间,模型中的权重集已经开始找到(收敛于)值,该值被需要以产生正确(训练)回复。优选地,这是通过检查所有事务的训练分数和损失来完成的。在一个非限制性实施例中,如果训练分数大于事务的给定值(例如,》0.5),这表明机器人;但是,如果训练分数小于给定值(例如,《0.5),则表明事务涉及人类。在不脱离本文的技术的情况下,也可以实现其他阈值。对于模型收敛性,系统优选测试当前事务桶中给定的大部分事务(例如,由可配置的诸如99%的百分比阈值或某个合适的高阈值定义)是否被评分为机器人;类似地,系统测试gt人类事务的模型收敛性,即,是否绝大多数“gt人类事务”被评分为人类。对于模型的第一次迭代,如果流量被确定为包括人类和机器人流量的混合,则损失函数(例如,对于当前事务桶中的人类样本)将趋于比较高,且分数会偏离期望的结果。在此示例中,模型尚未收敛。另一方面,如果当前事务组中的流量纯粹是机器人,那么在这种情况下,神经网络模型将会收敛。
69.然而,如果模型没有收敛,则例程在步骤818继续到修剪步骤。特别地,优选地,修剪步骤包括移除符合标准的样本,即,当前事务桶中具有较高损失/成本的人类样本(如所指出的,这意味着无法将数据与gt人类事务桶区分开来)。在修剪步骤中,损失/误差高于阈值的样本将从当前事务桶中移除。通过移除此类样本,系统有效地从当前事务桶中过滤掉人类样本。在一个变体实施例中,并且代替基于损失/误差的修剪,该步骤可以评估事务分数,因为较低的分数表示人类样本(并且因此可以移除那些样本)。作为进一步的选择,并且在攻击者对攻击进行建模以使“当前事务”组中的真正机器人样本往往具有低损失/成本的情况下,步骤818的操作可以剪除一些具有非常高分数的gt样本。这是一个可选步骤,并且可以有助于模型收敛。
70.一旦数据已经被修剪,自动学习例程在步骤820继续以测试当前事务桶中是否还剩有足够的样本。如果修剪导致大部分样本被移除,这表明当前事务桶中缺少机器人样本(缺少机器人攻击);在这种情况下,例程只是优选带有“无攻击”标志地简单地退出。然而,如果在修剪之后,当前事务桶中的样本数量高于阈值,则系统返回到步骤814以迭代到下一个训练步骤。如果流程返回到步骤814,则自动学习例程重复训练过程。在下一次迭代中,并
且在这个示例场景中,因为一些人类样本已从当前事务桶中被移除,所以通常训练过程将有更高的机会实现前面描述的收敛。然后重复该过程,直到获得模型收敛(并且例程以经过训练的nn退出),或者已剪除太多样本(并且例程以“无攻击”标志退出)。这完成了处理。
71.图9描绘了机器人匹配器/过滤器级。优选地,该级处理接收到的事务,归一化每个事务中的数据,并使用从自动学习级(图8)训练的神经网络对每个事务执行推理(评分)。分数高于某个给定阈值(例如,0.5或其他合适的阈值)的事务被标记为机器人。当自动学习级检测到“无攻击”标志时,图9中描绘的过程被跳过。
72.数据收集技术(用于支持神经网络模型构建)包括但不限于主动和被动数据收集、数据流量监测、数据包检查、基于应用层、基于操作系统内核等。
73.这里的神经网络可以执行带内学习或带外学习。在一个非限制性实施例中,keras(一种高级api)用于在tensorflow中构建和训练模型。为了更快的运行时间,优选网络规模相对较小。例如,一个代表性的网络可以包括四(4)个层,其中第一层有40个神经元,第二层有10个神经元,第三层有5个神经元,以及一(1)个输出神经元。初始层的激活函数是relu(整流线性单元);输出层也可以使用这个函数。在一种实现方式中(对于网络流量),输入是鼠标数据,例如,给定数量的鼠标事件,每个事件由x坐标、y坐标和时间戳定义。因此,例如,如果有10个鼠标事件,则模型使用30个输入信号,优选按照前面所述对每个信号进行归一化。对于移动流量,输入可能是设备运动,例如,x方向的加速度、y方向的加速度、z方向的加速度以及旋转alpha加速度。当然,以上示例只是具有代表性的数据集和模型结构。
74.该系统通常包括一个机器人缓解子系统,该子系统被配置为一旦识别出攻击就采取给定的动作。给定动作的性质和范围可以变化,并且优选地是可配置的,例如,通过安全策略。在一个实施例中,使用工具以自动化方式实施给定动作,该工具由确定被监测的网站正遭受机器人攻击而触发。在该示例中,缓解子系统可以操作以转移/过滤攻击流量、触发警报或其他通知、提供速率或其他控制以尝试补救情况等。
75.其他实现技术
76.更一般地,本文描述的技术是使用一起促进或提供上述描述的功能的一组一个或更多个计算相关实体(系统、机器、过程、程序、库、功能等)来提供的。在典型的实现方式中,在其上执行软件的代表性机器包括提供给定系统或子系统的功能的商用硬件、操作系统、应用运行时环境以及一组应用或过程和相关联的数据。如所描述的,功能可以在独立的机器中或跨一组分布式的机器实现。该功能可以作为服务提供,例如作为saas解决方案。
77.本文中的技术可以在诸如在图1-图2中不同地描绘的计算平台中实现,但是也可以使用其他实施方式。计算平台的一个或更多个功能可以方便地在基于云的架构中实现。众所周知,云计算是一种服务分发模型,用于实现对可配置计算资源(例如网络、网络带宽、服务器、处理、存储器、存储装置、应用、虚拟机和服务)的共享池的按需网络访问,这些资源可以通过最少的管理工作或与服务提供商的交互来快速调配和释放。可以全部或部分利用的可用服务模型包括:软件即服务(saas)(提供商在云基础设施上运行的应用);平台即服务(paas)(客户将可能使用提供商工具创建的应用部署到云基础设施上);基础设施即服务(iaas)(客户提供自己的处理、存储装置、网络和其他计算资源,并且可以部署和运行操作系统和应用)。
78.该平台可以包括位于同一位置的硬件和软件资源或物理上、逻辑上、虚拟上和/或
地理上不同的资源。用于执行到达和来自平台服务的通信的通信网络可以是基于分组的、非基于分组的、以及安全的或非安全的或者它们的某种组合。
79.更一般地,本文描述的技术是使用一起促进或提供上述描述的功能的一组一个或更多个计算相关实体(系统、机器、过程、程序、库、功能等)来提供的。在典型的实现方式中,在其上执行软件的代表性机器包括提供给定系统或子系统的功能的商用硬件、操作系统、应用运行时环境以及一组应用或过程和相关联的数据。如所描述的,功能可以在独立的机器中或跨一组分布式的机器实现。
80.每个上述过程、模块或子模块优选地在计算机软件中实现为在一个或更多个处理器中可执行的一组程序指令,作为专用机器。
81.本文提供的主题的代表性机器可以是运行linux或linux变体操作系统和一个或更多个应用以执行所描述的功能的基于intel pentium的计算机。上述过程中的一个或更多个被实现为计算机程序,即,作为一组计算机指令,用于执行所描述的功能。
82.虽然上面描述了由本公开的主题的某些实施例执行的操作的特定顺序,但是应当理解,这种顺序是示例性的,而替代实施例可以以不同的顺序执行操作,组合某些操作,重叠某些操作等。本说明书中对给定实施例的参考指示所描述的实施例可包括特定特征、结构或特性,但是每个实施例可以不必包括该特定特征、结构或特性。
83.虽然已经在方法或过程的上下文中描述了所公开的主题,但主题还涉及用于执行本文操作的装置。该装置可以是为所需目的而专门构造的特定机器,或者其可以包括由存储在计算机中的计算机程序以其他方式选择性地激活或重新配置的计算机。这样的计算机程序可以被存储在计算机可读存储介质中,诸如但不限于,包括光盘、cd-rom以及磁光盘的任何类型的盘、只读存储器(rom)、随机存取寄存器(ram)、磁性或光学卡或者适于存储电子指令且各自耦合至计算机系统总线的任意类型的介质。
84.计算平台的给定实现方式是在运行诸如linux之类的操作系统的硬件平台上执行的软件。实现本文中的技术的机器包括硬件处理器和保存由处理器执行以执行上述方法的计算机程序指令的非瞬态计算机存储器。
85.对于可以实现连接的客户端侧或服务器侧的计算实体的类型没有限制。任何计算实体(系统、机器、设备、程序、过程、实用程序等)可以充当客户端或服务器。
86.虽然已经分别描述了系统的给定部件,但是普通技术工作者将认识到,一些功能可以在给定的指令、程序序列、代码部分等中组合或共享。本文中所描述的任何应用或功能可通过提供与另一应用挂钩,通过促进机制作为插件(plug-in)的使用,通过链路到机制等作为本机代码来实现。
87.平台功能可以位于同一位置,或者各种部件/组件可以分开并可能(通过分布式网络)在一个或更多个位置作为不同的功能运行。
88.在一个实施例中,本文中的机器人检测技术由服务提供商实施“作为服务”,例如,内容分发网络(cdn)服务提供商代表参与的内容提供商客户将cdn操作为一个覆盖网络(共享计算基础设施)。特定cdn客户操作网站或web应用,内容提供商期望保护网站或web应用免受攻击。通常,神经网络模型是基于每个网站构建的,但这不是限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1