CN113396411A - 用于增强的主机分类的系统和方法 - Google Patents

用于增强的主机分类的系统和方法 Download PDF

Info

Publication number
CN113396411A
CN113396411A CN202080012373.4A CN202080012373A CN113396411A CN 113396411 A CN113396411 A CN 113396411A CN 202080012373 A CN202080012373 A CN 202080012373A CN 113396411 A CN113396411 A CN 113396411A
Authority
CN
China
Prior art keywords
client device
runtime
host
operated
additional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080012373.4A
Other languages
English (en)
Inventor
C·雷韦特
D·菲希特
M·P·艾布拉姆斯
A·图皮尔
R·S·拉瓦尔卡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN113396411A publication Critical patent/CN113396411A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/144Detection or countermeasures against botnets

Abstract

本公开的某些方面和特征涉及用于实时自动地对主机进行分类的系统和方法。例如,将主机分类为机器人并且随后减轻或阻止来自被分类为机器人的主机的流量在实时数据交换系统中可能是有利的。在实时数据交换系统中,当目标主机访问网页时,数据可以在服务器和目标主机之间被实时交换。禁止服务器和由机器人脚本操作的主机之间的数据通信可以减少欺诈活动。在一些实现中,可以至少部分地基于从主机接收的请求中包括的数据来将主机自动分类为各种组。

Description

用于增强的主机分类的系统和方法
对相关申请的交叉引用
本申请要求2019年1月11日提交的题为“SYSTEMS AND METHODS FOR ENHANCEDHOST CLASSIFICATION(用于增强的主机分类的系统和方法)”的第16/246,137号美国专利申请的优先权,该美国专利申请的内容通过引用整体并入本文。
技术领域
本公开一般涉及用于对网络环境中的主机进行分类的系统和方法。更特别地,本公开涉及用于实时自动检测由机器人脚本操作的主机以高效管理数据交换系统中的内容分发的系统和方法。
背景技术
基于云的网络可以促进大量主机(例如,计算设备、机器、服务器、机器人脚本、用户、服务、系统、数据库等)的通信交换。此外,基于云的网络通常为离开基于云的网络的互联网流量使用单个出口点。例如,基于云的网络内的主机可以共享互联网协议(IP)地址以与基于云的网络外部的服务器进行通信。从外部服务器的角度来看,从基于云的网络内的不同主机接收到的多个通信可以看起来好像它们是从单个主机发送的一样。
在一些情况下,机器人脚本可以被配置为模仿人类操作的主机以用于执行欺诈活动的目的。然而,当多个主机共享相同的IP地址时,检测哪些主机由人类操作并且哪些主机由机器人脚本操作在技术上是具有挑战性的。例如,将需要区分多个主机,然后将需要单独评估每个唯一主机的服务器交互以确定主机是否由机器人脚本操作。当机器人脚本操作的主机的子集共享相同的IP地址时,通常采取的方法是即使由人类用户操作的主机也共享该相同的IP地址,也阻止来自该IP地址的所有主机。某些技术已被用于区分主机(例如,设备指纹分析),然而,这些技术通常会导致分类冲突,其中两个不同的主机被分类为相同的主机。此外,当主机共享IP地址时,区分唯一主机在技术上是困难的,因为IP地址通常用于区分主机。除了技术挑战之外,在数据交换系统中,机器人检测应该实时发生。然而,由于难以利用现有元数据来协助机器人检测,因此实时自动检测机器人脚本通常是不准确的。
发明内容
本公开的某些方面和特征涉及用于实时自动地对主机进行分类的系统和方法。例如,将主机分类为机器人并且随后减轻或阻止来自被分类为机器人的主机的流量在实时数据交换系统中可以是有利的。在实时数据交换系统中,当目标主机访问网页时,数据(例如,内容数据,诸如广告)可以在服务器和目标主机之间被实时交换。禁止服务器和由机器人脚本操作的主机之间的数据通信可以减少欺诈活动。在一些实现中,可以至少部分地基于从主机接收的请求中包括的数据来将主机自动分类为各种组。
为了说明并且仅作为非限制性示例,主机可以使用相同的基于云的网络来与多个其他主机共享IP地址。一些主机可能由机器人脚本操作,并且其他主机可能由人类用户操作。然而,当通信从外部服务器处的多个主机接收时,来自所有主机的通信可能看起来来自单个主机,因为这些主机共享相同的IP地址。根据本公开的某些实施例,来自多个主机的通信可以被自动且准确地分类为各种组,例如,由人类用户操作的主机的第一组和由机器人脚本操作的主机的第二组。对于检测到由机器人脚本操作的主机,数据通信可以被阻止或减轻以防止欺诈活动。
在一些实现中,主机分类系统可以在实时数据交换系统中实现。实时数据交换系统可以是控制服务器和访问特定网页的目标主机之间的内容分发的需求方平台的程序化数据流。例如,实时数据交换系统可以通过从目标主机接收访问特定网页的请求、识别可在特定网页中显示的一个或多个内容对象、从数据库检索该一个或多个内容对象,并将该一个或多个内容对象发送至目标主机来管理内容分发,以便当特定网页被加载到特定主机的屏幕上时,该特定网页显示该一个或多个内容对象。然而,在目标主机由机器人操作的情况下,减轻或阻止到目标主机的内容分发是有利的。因此,在一些实现中,主机分类系统可以被配置为(在数据流中)位于实时数据交换系统和目标主机之间。主机分类系统最初可以从主机接收访问网页的请求。在一些实现中,请求可以包括数据字符串。作为非限制性示例,数据字符串可以是或包括超文本传输协议(HTTP)查询字符串,该HTTP查询字符串包括与主机相关联的一个或多个请求参数(例如,特性)、包括在从主机发送到web服务器以请求访问网页的网络分组报头中的数据或任何其他合适的数据。与主机相关联的请求参数的非限制性示例可以包括自上次设备重启以来的时间戳或运行时间、IP地址、用户代理、浏览器版本、屏幕大小和其他合适的特性。当从目标主机接收请求时,主机分类系统可以自动评估数据字符串以检测目标主机是由机器人脚本还是人类用户操作。在一些实现中,评估数据字符串可以包括访问用于确定目标主机是由机器人脚本还是人类用户操作的一个或多个规则。在一些实现中,规则可以包括在满足条件时表明目标主机被检测为由机器人脚本操作的条件。作为非限制性示例,规则可以包括可执行代码,该可执行代码在被执行时通过评估目标主机的运行时间(例如,其可以作为数据被包括在数据字符串中)来评估自目标主机上次被重新启动以来已经过去了多长时间。例如,如果运行时间小于两秒(例如,自目标主机上次被重新启动以来的运行时间为1秒),则规则可表明目标主机由机器人脚本操作(因为在发送对网页的请求之前有1秒的运行时间对于人类用户是不可能的)。作为另一个非限制性示例,规则可以包括可执行代码,该可执行代码在被执行时评估与目标主机相关联的元数据以识别在过去五分钟内目标主机已经请求访问多少网页。如果在过去五分钟内目标主机访问的网页数量高于时间阈值(例如,超过10,000个网页),则规则可表明目标主机被检测为由机器人操作。
至少部分地基于对照一个或多个规则来评估数据字符串的结果,主机分类系统可以对目标主机进行分类。在一些实现中,如果目标主机被分类为由机器人脚本操作,则主机分类系统可以自动向实时数据交换系统发送信号。信号可以包括数据,该数据在实时数据交换系统处被接收到时使得或指示实时数据交换系统禁止、防止或阻止一个或多个内容对象到目标主机的内容分发。在此情况下,当网页被加载到目标主机上时,一个或多个内容对象将不会出现在网页上。相反,如果一个或多个规则表明目标主机被检测为由人类用户操作,则主机分类系统可以向实时数据交换系统发送信号。然而,在此情况下,信号包括数据,该数据使得或指示实时数据交换系统继续将一个或多个内容对象发送到目标主机,以便当网页被加载到目标主机上时,一个或多个内容对象被包括在网页中。
应当理解,本公开限于访问网页。任何其他数据源或网络位置可以在来自目标主机的请求中被访问。例如,目标主机可以请求运行在目标主机上的本地应用的接口页面。实时数据交换系统可以管理可在本地应用内的接口页面上显示的一个或多个内容对象的内容分发。
在一些实现中,实时数据交换系统和目标主机之间的交互可以被记录在例如日志记录中。日志记录可以包括各种数据,例如与访问一个或多个网页的先前请求相关联的数据字符串。主机分类系统可以识别被检测为由机器人脚本操作的一个或多个主机。例如,主机分类系统可以识别其中主机被检测为具有1秒的运行时间的实例,这将表明主机是由机器人操作的,因为人类用户无法在1秒内启动计算机并加载网页。然后主机分类系统可以使用一种或多种机器学习技术和/或人工智能技术来评估收集到的与被检测为机器人的主机相关联的日志记录,以识别各种日志记录的运行时间值之间的模式。机器学习技术可以包括例如一种或多种机器学习算法,诸如多标签分类器的整体(例如,监督或无监督学习)、人工神经网络(包括反向传播、玻尔兹曼机等)、贝叶斯统计(例如,贝叶斯网络或知识库)、逻辑模型树、支持向量机、信息模糊网络、隐马尔可夫模型、层次聚类(无监督)、自组织图、聚类技术和其他合适的机器学习技术(监督、半监督或无监督)。检测到的运行时间的模式可用于定义主机分类系统在未来主机分类中使用的新规则。作为非限制性示例,检测到的模式可以是与IP地址相关联的模式。模式可以是与相同的IP地址相关联的10个主机的运行时间总是彼此精确间隔一秒。换句话说,对于每个请求的网页,与IP地址相关联的10个主机的运行时间被同时接收并且包括精确间隔一秒的运行时间(例如,主机#1具有1秒的运行时间,主机#2具有两秒的运行时间,主机#3具有三秒的运行时间,等等)。即使运行时间彼此不同(这暗示主机是唯一用户),但主机分类系统仍然可以将这10个主机检测为是由机器人脚本操作,因为10个人类用户同时访问相同的网页并且他们每个人都间隔一秒钟重新启动他或她的设备是不太可能的。因此,该新的运行时间模式可用于检测实时数据交换系统处的机器人流量的未来实例。
某些实施例涉及一个或多个计算机的系统,该一个或多个计算机可以被配置为通过在系统上安装软件、固件、硬件或它们的组合来执行特定操作或动作,这些软件、固件、硬件或它们的组合在操作中使得系统执行动作。一个或多个计算机程序可以被配置为通过包括当由数据处理装置执行时使装置执行动作的指令来执行特定操作或动作。一个一般方面包括一种计算机实现的方法,包括:接收检索存储在服务器处的网页数据的请求,该网页数据对应于被配置为显示一个或多个内容对象(例如,广告)的网页,该请求对应于包括一个或多个请求参数的数据字符串(例如,数据字符串可以是包括请求参数(诸如设备运行时间、用户代理、浏览器版本、IP地址、屏幕大小等)的http字符串),该一个或多个请求参数的每个请求参数表征客户端设备,并且该一个或多个请求参数至少包括客户端设备的运行时间;提取包括在请求的数据字符串中的一个或多个请求参数;访问用于检测客户端设备是由机器人脚本还是人类操作的一个或多个规则,该一个或多个规则中的每个规则包括在满足时表明客户端设备由机器人脚本操作的条件;访问与客户端设备相关联的元数据,该元数据表示客户端设备和服务器之间的一个或多个先前交互。计算机实现的方法还包括自动确定是否将特定内容对象发送到客户端设备,该自动确定基于评估使用客户端设备的运行时间的一个或多个规则、一个或多个请求参数和/或与客户端设备相关联的元数据的结果。计算机实现的方法还包括响应于确定将特定内容对象发送到客户端设备来发送特定内容对象,特定内容对象的发送表明客户端设备被检测为由人类操作。此方面的其他实施例包括各自被配置为执行方法的动作的记录在一个或多个计算机存储设备上的对应计算机系统、装置和计算机程序。
一个一般方面包括一种系统,包括:一个或多个数据处理器;以及包含指令的非暂时性计算机可读存储介质,该指令当在一个或多个数据处理器上执行时,使一个或多个数据处理器执行操作包括。系统还包括接收检索存储在服务器处的网页数据的请求,该网页数据对应于被配置为显示一个或多个内容对象的网页,该请求对应于包括一个或多个请求参数的数据字符串,该一个或多个请求参数中的每个请求参数表征客户端设备,并且该一个或多个请求参数至少包括客户端设备的运行时间。系统还包括提取包括在请求的数据字符串中的一个或多个请求参数。系统还包括访问用于检测客户端设备是由机器人脚本还是人类操作的一个或多个规则,该一个或多个规则中的每个规则包括在满足时表明客户端设备由机器人脚本操作的条件。系统还包括访问与客户端设备相关联的元数据,该元数据表示客户端设备和服务器之间的一个或多个先前交互。系统还包括自动确定是否将特定内容对象发送到客户端设备,该自动确定基于评估使用客户端设备的运行时间的一个或多个规则、一个或多个请求参数和/或与客户端设备相关联的元数据的结果。系统还包括响应于确定将特定内容对象发送到客户端设备来发送特定内容对象,特定内容对象的发送表明客户端设备被检测为由人类操作。此方面的其他实施例包括各自被配置为执行方法的动作的记录在一个或多个计算机存储设备上的对应计算机系统、装置和计算机程序。
一个一般方面包括一种有形地体现在非暂时性机器可读存储介质中的计算机程序产品,包括被配置为使数据处理装置执行操作的指令,这些操作包括:接收检索存储在服务器处的网页数据的请求,该网页数据对应于被配置为显示一个或多个内容对象的网页,该请求对应于包括一个或多个请求参数的数据字符串,该一个或多个请求参数中的每个请求参数表征客户端设备,并且该一个或多个请求参数至少包括客户端设备的运行时间;提取包括在请求的数据字符串中的一个或多个请求参数;访问用于检测客户端设备是由机器人脚本还是人类操作的一个或多个规则,该一个或多个规则中的每个规则包括在满足时表明客户端设备由机器人脚本操作的条件;访问与客户端设备相关联的元数据,该元数据表示客户端设备和服务器之间的一个或多个先前交互。计算机程序产品还包括自动确定是否将特定内容对象发送到客户端设备,该自动确定基于评估使用客户端设备的运行时间的一个或多个规则、一个或多个请求参数和/或与客户端设备相关联的元数据的结果。计算机程序产品还包括响应于确定将特定内容对象发送到客户端设备来发送特定内容对象,特定内容对象的发送表明客户端设备被检测为由人类操作。此方面的其他实施例包括各自被配置为执行方法的动作的记录在一个或多个计算机存储设备上的对应计算机系统、装置和计算机程序。
有利地,在多个主机从共享IP地址与服务器通信的情况下,本公开的某些实施例可用于(例如,通过评估每个主机的运行时间,这可以是用于区分主机的可靠指标)识别多个主机中的哪些主机是唯一的。此外,可以评估唯一主机及其与实时数据交换系统的对应交互以确定每个主机是否由机器人操作。对于被检测为由机器人操作的主机,实时数据交换系统可以结合机器人用户访问网页的请求,自动阻止到所检测到的机器人用户的内容分发。附加地,在多个主机共享IP地址,但那些主机中的仅一些主机由机器人脚本操作(例如,其余主机由人类用户操作)的情况下,与检测机器人的技术方案有关的某些实施例是非常有利的。在一些实现中,运行时间(例如,自上次设备重启以来的时间量)可以被评估,连同与主机相关联的附加元数据和一个或多个规则,以检测机器人用户并防止他们对内容的访问。
附图说明
本说明书参考以下附图,其中在不同附图中相同的附图标记旨在示出相同或类似的组件。
图1是示出了根据本公开的实施例的用于设备分类的示例网络环境的框图。
图2是示出了根据本公开的实施例的用于设备分类的另一示例网络环境的框图。
图3是示出了根据本公开的实施例的用于设备分类的又一示例网络环境的框图。
图4是示出了根据本公开的实施例的用于设备分类的示例过程的流程图。
图5是示出了用于实现实施例之一的分布式系统的简化图。
图6是示出了系统环境的一个或多个组件的简化框图。
图7示出了一个示例性计算机系统,其中可以实现本发明的各种实施例。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以提供对本发明的实施例的透彻理解。然而,将明显的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。
典型的主机分类(例如,设备指纹识别(fingerprinting))可能导致分类冲突,其中两个不同的主机被错误地分类为单个主机。根据增强的主机分类的某些实施例,可以通过分析主机发送的网络分组报头中可用的数据来评估服务器和主机之间的交互。例如,包括在(例如,访问网页的请求的)网络分组报头中的数据可以包括表示自设备上次被重启以来设备(例如,作为主机的设备,诸如用户设备、计算机、服务器等)已经运行了多长时间的运行时间(例如,时间值或受信任的第三方(TTP)时间戳)。当评估共享相同IP地址的多个主机时,每个主机的运行时间可以是区分唯一主机的可靠指标。此外,还可以评估主机的运行时间以确定主机是否为机器人。例如,如果主机正在请求访问网页,但是从主机接收到的网络分组报头和/或HTTP查询字符串表明主机的运行时间为一秒,则主机可以被准确地分类为由机器人操作,因为人类用户无法在一秒钟内重启计算机并加载网页。
在本文中描述的实施例的一些实现中,可以评估一组主机的运行时间以识别主机的哪个子集被检测为由机器人脚本操作,以及主机的哪个子集被检测为由人类用户操作。此外,在一些实现中,可以在实时数据交换系统(例如,需求方平台或广告交易平台(adexchange)的实时投标程序化流)和目标主机(例如,请求访问网页或应用接口的主机)之间的数据流中提供主机分类系统。实时数据交换系统可以响应于目标主机访问网页或应用的请求来将一个或多个内容对象(例如,广告)发送到目标主机。
通过禁止到被检测为模仿人类用户的机器人脚本的主机的内容分发,可以防止欺诈活动。在一些实施方式中,主机分类系统可以评估从目标主机接收到的网络分组报头中的可用数据以指示实时数据交换系统是否将一个或多个内容对象发送到目标主机。如果主机分类系统将目标主机分类为由机器人脚本操作,则主机分类系统可以有利地禁止实时数据交换系统在网页被加载到目标主机上时实时地将一个或多个内容对象发送到目标主机。由于主机分类系统评估从目标主机接收到的网络分组报头中的可用数据(例如,运行时间),因此主机分类系统可以做出关于目标主机是否应接收一个或多个内容对象的实时决策。
在一些实施方式中,主机分类系统可以从访问一个或多个网页的目标主机接收一个或多个信号。当主机是接收可在网页上显示的一个或多个内容对象的决策的目标时,主机可被称为目标主机。一个或多个信号可以包括访问特定网页的请求。请求可以由从目标主机发送的一个或多个网络分组报头(例如,HTTP流)表示。此外,一个或多个网络分组报头可以包括受信任的第三方(TTP)时间戳,其表明主机被重启的最近时间。本公开的某些实施例可以评估TTP时间戳(本文中也被称为运行时间,其是当前时间与表示自上次重启以来的时间量的TTP时间戳之间的差)以帮助识别相同的IP地址后面的唯一主机(例如,机器、计算机设备、服务器等)。在没有TTP时间戳的情况下,通常多个主机可以看起来像单个主机,因为多个主机共享相同的IP地址。
在一些情况下,不同机器用来访问互联网的相同IP地址有时可以是代理服务,这是一种故意混淆网站Web流量来源的服务。在一些情况下,相同的IP地址可能被机构内的所有计算机(诸如大学或图书馆的网络)使用。在其他情况下,若干主机(诸如笔记本电脑和智能电视)可以使用相同的家庭IP地址访问互联网。然而,可以评估TTP时间戳以跟踪来自在相同IP地址后面访问互联网的不同主机的信号。
在一些情况下,如果一组主机在相同的IP地址后面,则该组主机的第一子集可能由人类用户操作,并且该组主机的第二子集可由机器人脚本操作。在这些情况下,如果IP地址与机器人流量相关联(并且因此被列入黑名单),则与IP地址相关联的所有主机通常都被阻止,从而导致人类用户被阻止访问内容。替代地,如果IP地址未被阻止,则与该IP地址关联的所有主机都由实时数据交换系统分发内容,从而通过向机器人提供内容而导致欺诈活动。因此,仅IP地址不足以减轻或防止机器人流量。然而,根据本公开的某些实施例,可以评估从主机接收的网络分组报头中的可用数据(例如,包括在HTTP流中的运行时间值)以使得主机分类系统能够做出关于是否将内容对象发送到给定的目标主机的实时决策。例如,如果给定目标主机的运行时间值低于一定的时间阈值,则该目标主机可被检测为由机器人脚本操作,并且因此被阻止接收一个或多个内容对象。作为非限制性示例,主机分类系统可以位于广告交易程序的投标流中以代表广告商做出关于是否为目标网页访问者购买广告的实时决策。有利地,本发明的某些实施例可以区分主机并基于每个主机向与相同IP地址相关联的每个主机提供内容,而不是为与机器人流量相关联的IP地址后面的所有主机阻止内容,也不是向与机器人流量相关联的IP地址后面的所有主机提供内容以便到达人类用户。
在一些实施方式中,主机分类系统可以访问与主机相关联的元数据。可以为访问一个或多个网页的各种主机收集元数据。例如,当主机访问网页时,网页(以及网页的潜在附属物)可以收集与主机相关联的元数据。例如,元数据可以被收集在日志记录中,并且日志记录可以包含可从主机与网页的交互中检测到的任何数据。可以被收集的元数据的非限制性示例包括网页被访问的次数、访问网页的每个实例的时间戳、先前被访问的网页、访问先前的网页的次数、访问网页的每个实例的网络分组报头中包括的数据、访问网页的每个实例的运行时间、与每个主机交互相关联的IP地址以及任何其他合适的数据。
因此,即使网络代理修改包括在来自主机的网络分组报头中的运行时间以故意混淆主机的真实运行时间,这些修改也可以被主机分类系统检测到。作为非限制性示例,如果主机分类系统检测到为特定主机收集的元数据表明该特定主机在5分钟窗口内访问了1000个网页,并且如果对网页的每次访问与相同的运行时间相关联,则主机分类系统可以确定IP地址与网络代理相关联,并且网络代理修改网络分组报头以故意混淆实时数据交换系统。
在一些实施方式中,主机分类系统可以评估从IP地址接收的网络分组报头以确定IP地址是否展示出运行时间连续性。例如,在给定时间A,主机分类系统可以评估在时间窗口期间从IP地址123接收到的各种网络分组报头的运行时间,并确定IP地址123与10个唯一主机相关联(例如,由于在时间窗口内有10个唯一的运行时间)。作为又一示例,如果在给定的稍后时间B,主机分类系统再次评估在不同时间窗口期间从IP地址123接收到的各个网络分组报头的运行时间,但确定IP地址123与10,000个唯一主机相关联(例如,由于有10,000个唯一的运行时间),则主机分类系统可以确定IP地址123很可能是混淆机器人流量的网络代理。在此示例中,在时间A检测到的10个唯一主机与在时间B检测到的10,000个唯一主机不一致,因此,IP地址可以被检测为与机器人流量相关联。
主机分类系统可以为访问网页的每个目标主机生成分数。此外,主机分类系统可以评估分数以确定是否向目标主机发送内容对象。可以为与相同的IP地址相关联的每个主机独立地计算分数。在一些实施方式中,可以至少部分地基于IP地址、目标主机的运行时间和/或其组合来生成分数。IP地址结合目标的运行时间可以对应于目标主机的指纹。在一些实施方式中,分数可以表示主机可能是由人类用户操作的程度。为客户端设备生成分数(例如,人类用户分数)可以包括评估使用客户端设备的运行时间的一个或多个规则、一个或多个请求参数和/或与客户端设备相关联的元数据。此外,人类用户分数可以表示客户端设备被检测为由人类操作的程度。除了其他数据之外,可以评估人类用户分数以确定是否向客户端设备发送特定内容对象。作为非限制性示例,分数可以被生成为换算值,使得表明主机有可能由人类操作的元数据越多,分数越高,而表明主机有可能由人类操作的元数据越少,分数越低(反之亦然,使得分数越低,用户有可能是人类的可能性越高)。
应当理解,本公开不限于实时机器人检测。在一些实施方式中,离线学习者可以评估从针对每个IP地址的目标主机收集的数据,以识别与针对给定IP地址被分类为机器人的主机相关联的模式。作为非限制性示例,与被分类为机器人的主机相关联的模式可以包括主机使用IP地址每分钟加载一次网页,连续10天每分钟加载一次,主机在一秒内同时访问12个网站,或主机在短时间(例如,一到五秒)内加载英语、土耳其语和日语的网页。上述示例模式将与由机器人脚本操作的主机相关联,因为人类用户无法使用这些模式浏览互联网。每次交互的运行时间可用于区分主机,以便消除机器人分类中的假阴性和假阳性。
在一些实施方式中,可以定义一个或多个规则来检测机器人。规则由表明条件的数据表示。在一些实施方式中,规则的条件可用于评估与目标主机相关联的元数据。如果元数据满足条件,则规则可以表明目标主机由机器人脚本(或人类用户)操作。作为非限制性示例,可以定义规则来评估目标主机在时间窗口(例如,滚动的五分钟窗口)内访问的网页数量以及每个网页请求的运行时间。例如,如果与目标主机相关联的元数据表明访问的网页数量大(例如,表明主机很可能由机器人脚本操作,因为访问的网页数量大,诸如五分钟窗口内25个网页),但如果每个请求的运行时间都在时间阈值以上(例如,表明主机很可能由人类操作,因为主机的运行时间长),则主机分类系统可以将主机分类为由人类操作。此外,如果滚动时间窗口内访问的网页数量少(例如,表明主机很可能由人类操作),但如果每个请求的运行时间低于时间阈值(例如,表明主机很可能由机器人脚本操作,因为在某些情况下,除非机器人正在操作主机,否则非常短的运行时间是不可能的),则主机分类系统可以将主机分类为由机器人脚本操作。应当理解,以上规则和对应条件是示例性的,因此本公开不限于此。可以定义运行时间和访问的网页的时间阈值的任意组合,以检测由机器人和/或人类操作的主机。
在一些实施方式中,主机分类系统可以识别表示被检测为正在由机器人脚本操作的主机的示例的一组主机。主机分类系统然后可以使用例如一种或多种机器学习技术来评估与所识别的一组主机相关联的特性。作为非限制性示例,主机分类系统可以识别在过去五分钟窗口内100个主机各自已经请求访问10,000或更多个网页。由于在短时间内访问的网页数量极其大(例如,访问的10,000个网页可能超过与检测机器人相关联的阈值),因此主机分类系统可以确定该100个主机由机器人脚本操作。此外,主机分类系统可以检索与该组100个主机相关联的元数据。然后,主机分类系统可以使用一种或多种机器学习技术评估与该100个主机相关联的元数据。在一些实施方式中,用于上下文模型的机器学习算法或技术可以包括多标签分类器的整体(例如,有监督学习)、人工神经网络(包括反向传播、玻尔兹曼机等)、贝叶斯统计(例如,贝叶斯网络或知识库)、逻辑模型树、支持向量机、信息模糊网络、隐马尔可夫模型、层次聚类(无监督)、自组织图、聚类技术和其他合适的机器学习技术(监督、半监督或无监督学习)。例如,主机分类系统可以执行一个或多个机器学习算法(例如,诸如聚类技术)来针对在五分钟窗口内访问的10,000个网页中的每一个网页评估网络分组报头中包括的运行时间以识别由机器人操作的主机的运行时间中的模式。例如,包括在来自某个组的机器人的网页请求中的运行时间可以在时间上以恒定增量间隔开,例如间隔开5秒。主机分类系统然后可以定义评估该组主机的运行时间的规则,并且如果主机分类系统检测到一组主机对应于各自彼此间隔5秒的运行时间,则主机分类系统可以确定该组主机很可能由机器人操作。
作为非限制性示例,如果检测到10个或更多个网页在一秒内从相同的IP地址被访问,则可以确定这些网页请求的来源是机器人。然而,有利地,根据本公开的某些实施例,主机分类系统可以通过评估与10个请求相关联的运行时间来避免检测到的机器人的假阳性。例如,可能操作设备的10个或更多个不同人类用户在一秒钟内从配置有一个出口点的基于云的网络(例如,离开单个出口点的所有流量将共享相同的IP地址)请求10个或更多个网页。在有数千名员工的组织中,可能有10个或更多个员工同时访问相同的网页。在此示例中,与相同的IP地址相关联的10个或更多个网页请求实际上并非来自机器人。主机分类系统可以通过评估包括在10个或更多个网页请求中的每一个的网络分组报头中的运行时间来避免这种假阳性。例如,如果主机分类系统检测到运行时间的多样化(例如,所有10个运行时间彼此不同,并且在10个运行时间之间没有可检测的模式),则主机分类系统可以确定该10个或更多个网页是由人类用户操作的主机发送的,从而避免检测到机器人的假阳性。相反,如果主机分类系统检测到该10个或更多个网页中的每一个的运行时间完全相同,则主机分类系统可以确定该10个或更多个网页请求的来源是由机器人脚本操作的主机。
在一些实施方式中,表示访问网页的每个请求的网络分组报头中的可用数据可以被记录在日志中。记录访问网页的请求可以使得发出请求的主机和/或所请求的网页的一个或多个特性被记录。可以被记录在日志消息中的特性的非限制性示例包括请求的IP地址、用户代理、网页被访问多久、设备运行时间、屏幕大小、主机是否正在使用物理监视器、和其他合适的特性。
在一些实施方式中,元数据可以与主机相关联。例如,可以随时间从主机收集元数据并将元数据存储在主机分类系统可访问的一个或多个数据库中。主机的元数据的示例可以包括从一个或多个web服务器或应用服务器与主机之间的交互收集的数据(例如,来自从特定主机接收的所有网页的网络分组报头可用的数据(诸如运行时间)可以被存储为元数据)、主机的浏览历史、浏览会话的特性(例如,主机在每个网页上停留多久、哪些内容对象(诸如广告)被主机查看和/或选择)和其他合适的元数据。
在一些实施方式中,主机分类系统可以随时间检测相同的机器人,即使主机已经被重启。例如,主机分类系统可以在新检测到的机器人(其由于最近的设备重启而具有较短的运行时间)和先前检测到的机器人之间创建链接,以便表明两个检测到的机器人是相同的机器人。每个主机可以与随时间从主机与web服务器或应用服务器的交互(例如,主机的网页请求)收集的某些元数据相关联。元数据可以包括主机的某些特性,诸如主机的IP地址、主机先前访问的网页、主机的网页请求的运行时间、用户代理以及其他合适的元数据。主机分类系统可以评估检测到的机器人(例如,在一段时间内被检测)并(例如,使用相似的分数或置信阈值)识别具有相似元数据的两个或多个检测到的机器人,即使两个检测到的机器人与不同的运行时间相关联。如果一个机器人的元数据对应于另一个机器人的元数据,但如果两个机器人的运行时间不同,则机器人可能已经重启。在一些实施方式中,为了执行检测到的机器人之间的链接,主机分类系统可以对使用特定IP地址的主机的运行时间执行一种或多种聚类技术。聚类可以导致识别唯一的运行时间,然后唯一的运行时间与唯一的设备相关联。
应当理解,检测新重置的主机(例如,检测具有短运行时间(诸如两秒)的主机)允许主机分类系统确定是否将先前与该主机相关联的元数据(例如,从与已知主机的先前交互收集的元数据)与新收集的关于主机的元数据(例如,在与主机的当前浏览会话期间收集的元数据)进行链接。将先前与主机相关联的元数据与新收集的关于主机的元数据进行链接表明主机连续性。例如,每当主机分类系统检测到具有短运行时间(例如,四秒)的主机时,主机分类可以确定是否使用最近收集的关于主机的元数据来评估关于主机的现有的元数据以将检测到的主机与一个或多个已知主机(例如,被检测为由人类操作的主机)进行链接,或者是否将检测到的主机归类为机器人。有利地,具有低运行时间值的主机的检测可以使主机分类系统确定短运行时间是否是由于人类用户进行的合理设备重置,或是否将主机分类为机器人。如果主机分类系统确定评估低运行时间是否是由于人类用户进行的合理重置,则主机分类系统可以将先前与主机相关联的标识元数据与当前或最近在当前浏览会话期间收集的关于主机的元数据进行链接起来,以便主机不会被分类为机器人,而是主机被链接到先前已知由人类用户操作的主机。
应当理解,主机的检测可以包括生成唯一标识符(例如,设备指纹)以唯一地表示主机。为主机生成唯一标识符可以包括提取嵌入在从主机接收的一个或多个网络分组中的一个或多个时间戳。嵌入在一个或多个网络数据包中的时间戳可由主机分类系统评估以推断主机的“设备运行时间”(在本文中也被称为“运行时间”)。例如,“设备运行时间”可以表示自主机上次重启以来已经经过的时间量。在一些示例中,至少部分使用(一个或多个)嵌入的时间戳潜在生成的唯一标识符可以被存储在单独网站域中的第一方cookie中。有利地,主机的“设备运行时间”可用于单独识别共享相同IP地址的多个主机(例如,由于网络中重启主机的自然随机性)。此外,“设备运行时间”可用于第一方cookie高速缓存以生成唯一标识符,尽管主机断电事件将重置“设备运行时间”,并且否则将导致唯一标识符的重置。某些元数据(例如,IP地址、浏览器版本、运行时间等)可以基于与主机的交互而被生成或提取。在一些实施方式中,处理多个元数据输入以生成唯一标识符可能涉及双重散列技术,该技术结合了1)可以唯一识别与不同元数据相关联的主机的加密散列,以及2)可以有意导致输入的匹配/相似标识符的局部敏感散列,其中少量元数据是不同的(诸如由重启主机引起的“设备运行时间”重置)。当两台主机具有唯一的加密散列值,但具有相同的局部敏感散列时,可能会执行第二步来判断这两个唯一的加密散列值是否表示相同的主机,诸如经历了输入元数据的更改的单个主机。作为非限制性示例,如果仅“设备运行时间”发生了变化,则新的运行时间应小于自主机被web服务器或主机分类系统上次检测到以来的时间。如果与原始运行时间匹配的主机被web服务器或主机分类系统再次检测到,则主机分类系统可以推断出较小的运行时间表示新的主机,并且具有原始运行时间的主机实际上并未被重启。当主机访问新网络时,类似的技术可用于匹配具有IP地址更改的主机,因为主机经常有规律地登录到相同的网络(例如,工作、家庭等)。最后,将这些散列持久化到主机分类系统可访问的第一方域内的存储装置使主机分类系统能够存储元数据并跨元数据更改结合标识符,即使元数据更改对于以上匹配技术来说太显著。例如,“别名”表可以被本地存储在主机内,以及在主机分类系统内。在一些实施方式中,存储在主机侧存储装置中的数据可以被加密,以便主机分类系统可以访问存储的元数据,并且可以使主机分类能够安全地为单独的主机生成唯一标识符,尽管与主机相关联的元数据发生了变化,如上所述。
图1示出了用于检测由机器人脚本操作的主机以实时管理内容分发的示例网络环境100。在一些实施方式中,网络环境100可以包括用户设备110、web服务器120、主机分类系统130和数据交换平台150。虽然用户设备110被示为移动电话,但应当理解,用户设备110可以是访问web服务器120的任何主机。用户设备110可以由人类或被配置为模仿人类用户的机器人脚本来操作。此外,用户设备110可以(通过一个或多个有线或无线网络)发送访问存储在web服务器120处的网页的请求。例如,用户可能正在用户设备110上操作移动浏览器,并且用户可以将网页地址输入到移动浏览器中,从而使得请求被发送到web服务器120。与网页地址相关联的网页可以包括任何内容,包括但不限于一个或多个内容对象(例如,广告)。在一些实施方式中,内容对象可以被存储在独立于web服务器120的数据源处(例如,在第三方数据源或服务器处)。内容对象web服务器120可以是托管用户设备110请求的网页的服务器。应当理解,本公开不限于请求访问网页。例如,可以使用托管本地或web应用的应用服务器来代替web服务器120。在此示例中,对于请求访问由应用服务器托管的应用的主机,将发生机器人检测。
主机分类系统130可以包括被配置为执行可执行代码的一个或多个服务器或处理器。主机分类系统130还可包括存储器以存储数据,诸如可执行代码、包括在可执行代码中的执行的功能的结果、从其他数据源检索的数据等。可执行代码在被执行时可执行本文描述的任何方法、算法、功能、过程或技术(例如,图4中描述的过程400)。在一些实施方式中,主机分类系统130可以实时确定数据交换平台150是否应该向访问特定网页的主机发送内容对象。
当用户设备110请求访问web服务器120时,web服务器120可以将从用户设备110接收的网络分组报头中继或转发到主机分类系统130以确定用户设备110有可能由人类用户还是机器人脚本操作。继而,主机分类系统130可以至少部分地基于网络分组报头中的可用数据(例如,用户设备110的运行时间和IP地址)来评估用户设备110是由人类还是机器人脚本操作。例如,主机分类系统130可以将从用户设备110接收的网络分组报头中包括的运行时间与阈值进行比较以确定运行时间是否表示实际值。例如,一秒钟的运行时间不太可能存在于来自人类操作的主机的网络分组报头中,因为不可能在一秒钟内重启计算机并使用网页加载浏览器。在一些实施方式中,主机分类系统130可以访问内部或外部数据源140(其可以是任意数量的数据源)以检索与用户设备110相关联的元数据。元数据(如本文更详细地描述的)可以表示用户设备110和web服务器120之间的先前交互。例如,元数据可以包括来自从用户设备110发送到web服务器120的先前网页请求的网络分组报头中的可用数据。此外,元数据可包括可用于识别用户设备110的一项或多项识别信息(例如,IP地址、运行时间、设备特性、cookie数据等)。主机分类系统130可以评估与用户设备相关联的元数据和/或从用户设备110接收的网络分组报头中可用的数据以确定用户设备是由人类操作还是机器人操作。例如,主机分类系统可以确定包括在来自用户设备110的网络分组报头中的运行时间值是否低于阈值(例如,一秒的短阈值)。如果运行时间值低于阈值,则主机分类系统130可以确定用户设备110很可能由机器人脚本操作,而如果用户设备110高于不同的阈值(例如,15分钟的长阈值),则主机分类系统130可以确定用户设备110很可能由人类操作。当主机分类系统130确定用户设备110由机器人脚本操作时,则主机分类系统130可以向数据交换平台150发送信号,该信号使数据交换平台150禁止向web服务器120发送一个或多个内容对象。然而,当主机分类系统130确定用户设备由人类操作时,则主机分类系统130可以向数据交换平台150发送信号,该信号使数据交换平台150向web服务器120发送一个或多个内容对象,以便当网页加载到用户设备110上时,网页将包括该一个或多个内容对象。
数据交换平台150可以包括被配置为执行可执行代码的一个或多个服务器或处理器。数据交换平台150还可包括存储器以存储数据,诸如可执行代码、包括在可执行代码中的执行的功能的结果、从其他数据源检索的数据等。可执行代码在被执行时可执行本文描述的方法、算法、功能、过程或技术中的任何方法、算法、功能、过程或技术或其任何部分。在一些实施方式中,每当主机请求访问由web服务器120托管的网页时,数据交换平台150可以将一个或多个内容对象发送到web服务器120。数据交换平台150可以从内容对象数据源160中检索一个或多个内容对象。然而,由于内容对象旨在用于人类用户操作的主机,因此主机分类系统130可以指示数据交换平台150禁止将内容对象发送到被检测为由机器人脚本操作的主机。
图2示出了用于检测由机器人脚本操作的主机以实时管理内容分发的示例网络环境200。主机分类系统130可以检测到用户设备110正在请求访问(例如,由web服务器120托管的)网页。例如,信号220可以向主机分类系统130通知用户设备110正在请求访问网页。此外,在一些实施方式中,信号220可以包括与用户设备110相关联的元数据。在一些实施方式中,信号220可以包括用户设备110的标识符,该标识符可以用于查询存储与用户设备110相关联的元数据的一个或多个数据库。例如,信号220可以包括在从用户设备110发送到托管所请求的网页的web服务器的一个或多个网络分组报头中的可用数据。类似地,主机分类系统130可以检测到主机210正在请求访问网页。例如,信号230可以通知主机分类系统130主机210正在请求访问网页。此外,在一些实施方式中,信号230可以包括与主机210相关联的元数据。在一些实施方式中,信号230可以包括可以用于查询存储与主机210相关联的元数据的一个或多个数据库的主机210的标识符。例如,信号230可以包括在从主机210发送到托管所请求的网页的web服务器的一个或多个网络分组报头中的可用数据。
主机分类系统130可以评估包括在信号220中的元数据以确定用户设备110是否有可能由机器人脚本操作。例如,主机分类系统130可以评估运行时间(例如,表明用户设备110最后被重启的时间的时间戳)以确定用户设备110是否由机器人脚本操作。作为非限制性示例,如果来自用户设备110的一个或多个网络分组报头中包括的运行时间表明用户设备110在一秒前被上一次重启,则主机分类系统130可以确定用户设备110很可能由机器人脚本操作。在此示例中,主机分类系统130可以(例如,从内部或外部数据源140)检索用于检测机器人的一个或多个规则并将运行时间与一个或多个规则进行比较。例如,规则可以包括表示对于人类用户来说太快而无法完成的时间的阈值时间(诸如一秒的阈值运行时间)的条件。换句话说,对于人类用户来说,在重启的一秒的时间戳内重启主机(例如,用户设备110)并开始在浏览器上加载网页将太快而无法完成。因此,主机分类系统130可以检测到具有低于一秒的设备的主机可以由机器人脚本操作。
在一些实施方式中,主机分类240可以是在评估与用户设备110和主机210相关联的一个或多个网络分组报头和/或元数据之后由主机分类系统130输出的数据。主机分类240可以被发送到数据交换平台150作为机器人检测结果的通知。例如,主机分类240可以包括表示主机210被检测为机器人或用户设备110被检测为由人类操作的数据。在一些实施方式中,主机分类240可以是具有指令的信号以启用或禁止将内容对象发送到正在请求访问网页的主机。例如,如果主机分类系统130检测到主机210正在由机器人脚本操作,则主机分类240可以是发送到数据交换平台150的信号,使得该信号包括禁止将内容对象发送到主机210的指令(与主机210的访问网页的请求相关联)。因此,当主机210加载网页时,网页将不包括表示一个或多个内容对象的数据。
图3是示出了根据本公开的实施例的用于对主机进行分类的网络环境300的框图。网络环境300可以包括web服务器120、主机分类系统130和数据交换平台150。数据交换平台可以通过一个或多个网络与web服务器120和/或主机分类系统130通信。当主机与web服务器120通信以请求访问网页时,web服务器120与数据交换平台150通信以请求在网页上显示一个或多个内容对象。作为非限制性示例,web服务器120可以从数据交换平台150请求一个或多个广告,使得web服务器120可以使一个或多个广告显示在被加载到主机浏览器上的网页上。广告商可以针对广告显示在网页上的每个实例被收取费用,因此,防止广告显示在机器人访问的网页上是有利的。内容对象310可以是可在网页上呈现的数据(例如,图像数据、视频数据和/或音频数据),诸如广告。
在一些实施方式中,主机分类系统130位于web服务器120和数据交换平台150之间的通信流中。主机分类系统130可以至少部分地基于包括在从主机接收的网络分组报头中的一个或多个请求参数(例如,特性或数据项)来检测主机是否由机器人操作。主机分类系统130可以指示数据交换平台150启用或禁止将内容对象发送到主机以用于在网页上显示。
如图3的示例中所示,用户设备110可以请求访问由web服务器120托管的网页。用户设备110可以向web服务器120发送请求访问网页的一个或多个网络分组报头。当从用户设备110接收到一个或多个网络分组报头时,web服务器120可以将一个或多个网络分组报头发送或中继到主机分类系统130以用于机器人检测。来自用户设备110的一个或多个网络分组报头可以包括与用户设备110相关联的数据和/或来自用户设备110的请求。例如,一个或多个网络分组报头可以包括但不限于用户设备110的运行时间(例如,表示用户设备110被重启时的最近时间的时间戳)、在用户设备110上运行的操作系统、连接到用户设备110的屏幕大小、浏览器版本、IP地址以及其他合适的示例。类似地,主机210可以请求访问由web服务器120托管的网页。web服务器120还可以将一个或多个网络分组报头从主机210发送或中继到主机分类系统130以用于机器人检测。
主机分类系统130可以评估来自用户设备110的网络分组报头以确定数据交换平台150是否应该将内容对象310发送到web服务器120以在用户设备110请求的网页上显示。例如,主机分类系统130可以确定在来自用户设备110的网络分组报头中的可用数据表明用户设备110很可能由人类用户操作。在此示例中,一个或多个网络分组报头可以包括用户设备110的运行时间。主机分类系统130可以将一个或多个规则应用于来自用户设备110的网络分组报头中的可用数据以确定用户设备110很可能由人类操作。例如,规则可以包括用于与用户设备110的运行时间进行比较的阈值时间。主机的运行时间超过阈值时间可以表明主机由人类操作的可能性(例如,因为运行时间足够长)。因此,在结果320处,主机分类可以(基于网络分组报头实时地)确定用户设备110很可能由人类操作。因此,当网页被加载到用户设备110的浏览器上时,数据交换平台150可以将内容对象310发送到web服务器120以便显示在网页上。
类似地,主机分类系统130可以评估来自主机210的网络分组报头以确定数据交换平台150是否应该将内容对象310发送到web服务器120以在主机210请求的网页上显示。例如,主机分类系统130可以确定来自主机210的网络分组报头中的可用数据表明主机210很可能由机器人脚本操作。在此示例中,一个或多个网络分组报头可以包括主机210的运行时间。主机分类系统130可以将一个或多个规则应用于来自主机210的网络分组报头中的可用数据以确定主机210很可能由机器人脚本操作。例如,类似于上面的示例,规则可以包括用于与主机210的运行时间进行比较的阈值时间。主机的运行时间低于阈值时间可以表明主机由机器人脚本操作的可能性(例如,因为运行时间太短而不切实际,诸如一秒钟阈值)。因此,在结果330处,数据交换平台150可以禁止内容对象310被发送到web服务器120。因此,当网页被加载到主机210的浏览器上时,网页将不显示内容对象310。本公开不限于对主机的运行时间值的评估,因此,应当理解,任何数据都可以用于由主机分类系统130执行的机器人检测。
图4是示出了用于实时检测机器人的过程的流程图。过程400可以由主机(例如,用户设备110)、web服务器(例如,web服务器120)、主机分类系统(例如,主机分类系统130)以及数据交换平台(例如,数据交换平台150)中的任一个完全执行或至少部分地由主机(例如,用户设备110)、web服务器(例如,web服务器120)、主机分类系统(例如,主机分类系统130)以及数据交换平台(例如,数据交换平台150)中的任一个执行。此外,过程400可以被执行以基于网络分组报头中的可用数据来实时检测由机器人操作的主机(例如,无需在主机的浏览器上下载任何代码(诸如JavaScript)以生成用于机器人检测的信号)。过程400可用于生成由数据交换平台用于确定是否将一个或多个内容对象发送到主机以用于在网页上显示的机器人检测结果。
过程400开始于框410,其中从主机接收网页请求。网页请求可以是运行在主机上的浏览器生成的请求。例如,响应于在浏览器处接收到对应于网页地址的输入,浏览器可以生成被发送到对应web服务器的网页请求。在框420处,可以从网页请求中的可用数据中提取一个或多个请求参数。请求参数的非限制性示例可以包括数据字符串(例如,HTTP查询字符串)中的数据元素、包括在一个或多个网络分组报头中的主机特性,诸如IP地址、设备运行时间、设备类型(例如,移动或桌面)、用户代理和任何其他合适的数据。在框430处,可以访问一个或多个规则以用于检测机器人。例如,规则可以包括一旦被满足就表明主机是由机器人操作的条件。根据实施例,满足条件还可以表明主机是由人类操作的。在框440处,可以访问与主机相关联的元数据。例如,表示主机和一个或多个web服务器之间的先前记录的交互的元数据可以被存储在数据库处并且随后在主机分类或机器人检测期间被检索。
在框450处,主机分类系统可以评估一个或多个网络分组报头中的可用数据、访问的规则和/或检索到的元数据以确定主机是否有可能由机器人脚本操作。如果主机分类系统确定主机很可能是机器人,则过程400进行到框470,其中数据交换平台禁止将内容对象发送到主机或web服务器。相反,如果主机分类系统确定主机很可能由人类操作,则过程400进行到框460,其中数据交换平台将内容对象发送到主机或web服务器,以便当网页被加载到主机上时,网页将包含内容对象。应当理解,根据本文描述的某些实施例,过程400的一个或多个步骤可以被选择性地执行和/或图4中的步骤的顺序可以被重新安排,同时仍然执行机器人检测。
图5描绘了用于实现实施例之一的分布式系统500的简化图。在图示的实施例中,分布式系统500包括一个或多个客户端计算设备502、504、506和508,它们被配置为通过(一个或多个)网络510执行和操作客户端应用,诸如web浏览器、专有客户端(例如,OracleForms)等。服务器512可以经由网络510与远程客户端计算设备502、504、506和508通信地耦合。
在各种实施例中,服务器512可以适于运行由系统的一个或多个组件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务或在软件即服务(SaaS)模型下被提供给客户端计算设备502、504、506和/或508的用户。操作客户端计算设备502、504、506和/或508的用户继而可以利用一个或多个客户端应用与服务器512交互以利用由这些组件提供的服务。
在图中描绘的配置中,系统500的软件组件518、520和522被示为在服务器512上实现。在其他实施例中,系统500的一个或多个组件和/或由这些组件提供的服务也可以由客户端计算设备502、504、506和/或508中的一个或多个来实现。操作客户端计算设备的用户然后可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以在硬件、固件、软件或其组合中实现。应当理解,可以不同于分布式系统500的各种不同的系统配置是可能的。因此,图中所示的实施例是用于实现实施例系统的分布式系统的一个示例并且不旨在进行限制。
客户端计算设备502、504、506和/或508可以是便携式手持设备(例如,
Figure BDA0003193876760000251
蜂窝电话、
Figure BDA0003193876760000252
计算平板电脑、个人数字助理(PDA))或可穿戴设备(例如,Google
Figure BDA0003193876760000253
头戴式显示器),其运行诸如Microsoft Windows
Figure BDA0003193876760000261
之类的软件,和/或多种移动操作系统(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等)并启用了互联网、电子邮件、短消息服务(SMS)、
Figure BDA0003193876760000262
或其他通信协议。客户端计算设备可以是通用个人计算机,包括例如运行各种版本的Microsoft
Figure BDA0003193876760000263
Apple
Figure BDA0003193876760000264
和/或Linux操作系统的个人计算机和/或笔记本计算机。客户端计算设备可以是运行多种商用
Figure BDA0003193876760000265
或类UNIX操作系统中的任何一种的工作站计算机,包括但不限于多种GNU/Linux操作系统,诸如例如Google Chrome OS。可替代地或附加地,客户端计算设备502、504、506和508可以是任何其他电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有
Figure BDA0003193876760000266
姿势输入设备的Microsoft Xbox游戏机)和/或能够通过(一个或多个)网络510进行通信的个人消息设备。
尽管示例性分布式系统500被示为具有四个客户端计算设备,但是任意数量的客户端计算设备可以被支持。其他设备(诸如具有传感器的设备等)可以与服务器512交互。
分布式系统500中的(一个或多个)网络510可以是本领域技术人员熟悉的可以支持使用多种商用协议中的任一种的数据通信的任何类型的网络,这些商用协议包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络架构)、IPX(互联网分组交换)、AppleTalk等。仅举例来说,(一个或多个)网络510可以是局域网(LAN),诸如基于以太网、令牌环和/或类似物的局域网。(一个或多个)网络510可以是广域网和因特网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网络(PSTN)、红外网络、无线网络(例如,在电气和电子学会(IEEE)802.11协议套件中的任何协议、
Figure BDA0003193876760000267
和/或任何其他无线协议下操作的网络);和/或这些网络和/或其他网络的任何组合。
服务器512可包括一个或多个通用计算机、专用服务器计算机(举例来说,包括PC(个人计算机)服务器、
Figure BDA0003193876760000271
服务器、中型服务器、大型计算机、机架式服务器等)、服务器场、服务器集群或任何其他适当的布置和/或组合。在各种实施例中,服务器512可以适于运行在前述公开中描述的一个或多个服务或软件应用。例如,服务器512可以对应于根据本公开的实施例的用于执行上述处理的服务器。
服务器512可以运行操作系统,包括上面讨论的操作系统中的任一个,以及任何商业上可用的服务器操作系统。服务器512还可以运行多种附加服务器应用和/或中间层应用中的任一个,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、
Figure BDA0003193876760000272
服务器、数据库服务器等。示例性数据库服务器包括但不限于可从Oracle、Microsoft、Sybase、IBM(国际商业机器)等商业上可获得的数据库服务器。
在一些实现中,服务器512可以包括一个或多个应用以分析和整合从客户端计算设备502、504、506和508的用户接收的数据馈送和/或事件更新。例如,数据馈送和/或事件更新可包括但不限于
Figure BDA0003193876760000273
馈送、
Figure BDA0003193876760000274
更新或从一个或多个第三方信息源和连续数据流接收的实时更新,该一个或多个第三方信息源和连续数据流可包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监控和流量管理应用)、点击流分析工具、汽车交通监控等相关的实时事件。服务器512还可以包括一个或多个应用以经由客户端计算设备502、504、506和508的一个或多个显示设备来显示数据馈送和/或实时事件。
分布式系统500还可以包括一个或多个数据库514和516。数据库514和516可以驻留在多种位置。举例来说,数据库514和516中的一个或多个可以驻留在服务器512本地(和/或驻留在服务器512中)的非暂时性存储介质上。替代地,数据库514和516可以远离服务器512并且经由基于网络的或专用的连接来与服务器512通信。在一组实施例中,数据库514和516可以驻留在存储区域网络(SAN)中。类似地,用于执行归于服务器512的功能的任何必要文件可以视情况被本地存储在服务器512上和/或远程存储。在一组实施例中,数据库514和516可以包括关系数据库,诸如由Oracle提供的数据库,其适于响应于SQL格式的命令来存储、更新和检索数据。
图6是根据本公开的实施例的系统环境600的一个或多个组件的简化框图,通过该系统环境600由实施例系统的一个或多个组件提供的服务可以被提供为云服务。在所示实施例中,系统环境600包括一个或多个客户端计算设备604、606和608,用户可以使用该一个或多个客户端计算设备604、606和608与提供云服务的云基础设施系统602交互。客户端计算设备可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,OracleForms)或某个其他应用,客户端计算设备的用户可以使用该客户端应用与云基础设施系统602交互以使用云基础设施系统602提供的服务。
应当理解,图中所描绘的云基础设施系统602可以具有不同于所描绘的那些组件的其他组件。此外,图中所示的实施例仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其他实施例中,云基础设施系统602可以具有比图中所示的更多或更少的组件,可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。
客户端计算设备604、606和608可以是与上面针对502、504、506和508描述的设备类似的设备。
尽管示例性系统环境600被示为具有三个客户端计算设备,但是任意数量的客户端计算设备可以被支持。其他设备(诸如具有传感器的设备等)可以与云基础设施系统602交互。
(一个或多个)网络610可以促进客户端604、606和608与云基础设施系统602之间的数据通信和交换。每个网络可以是本领域技术人员熟悉的可以支持使用多种商用协议中的任一种的数据通信的任何类型的网络,包括上面针对(一个或多个)网络510描述的商用协议。
云基础设施系统602可以包括一个或多个计算机和/或服务器,该一个或多个计算机和/或服务器可以包括上面针对服务器512描述的计算机和/或服务器。
在某些实施例中,云基础设施系统提供的服务可以包括按需对云基础设施系统的用户可用的大量服务,诸如在线数据存储和备份解决方案、基于web的电子邮件服务、托管办公室套件和文档协作服务、数据库处理、受管理的技术支持服务等。云基础设施系统提供的服务可以动态缩放以满足其用户的需求。由云基础设施系统提供的服务的具体实例化在本文中被称为“服务实例”。通常,从云服务提供商的系统经由通信网络(诸如互联网)对用户可用的任何服务都被称为“云服务”。通常,在公共云环境中,组成云服务提供商系统的服务器和系统不同于客户自己的现场(on-premises)服务器和系统。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网之类的通信网络按需订购和使用应用。
在一些示例中,计算机网络云基础设施中的服务可以包括对存储装置、托管的数据库、托管的web服务器、软件应用的受保护计算机网络访问,或由云供应商提供给用户的其他服务,或如本领域以其他方式所已知的。例如,服务可以包括通过互联网对云上的远程存储装置进行受密码保护的访问。作为另一示例,服务可以包括基于web服务的托管的关系数据库和供网络开发者专用的脚本语言中间件引擎。作为另一示例,服务可以包括对托管在云供应商网站上的电子邮件软件应用的访问。
在某些实施例中,云基础设施系统602可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式分发给客户的一套应用、中间件和数据库服务产品。这样的云基础设施系统的示例是本受让人提供的Oracle公共云。
在各种实施例中,云基础设施系统602可以适于自动供应、管理和跟踪客户对云基础设施系统602提供的服务的订阅。云基础设施系统602可以经由不同的部署模型提供云服务。例如,可以在公共云模型下提供服务,在公共云模型中云基础设施系统602由销售云服务的组织拥有(例如,由Oracle拥有)并且服务对一般公众或不同行业企业可用。作为另一示例,可以在私有云模型下提供服务,在私有云模型中云基础设施系统602仅为单个组织操作并且可以为组织内的一个或多个实体提供服务。还可以在社区云模型下提供云服务,在社区云模型中云基础设施系统602和由云基础设施系统602提供的服务由相关社区中的若干组织共享。还可以在混合云模型下提供云服务,混合云模型是两个或多个不同模型的组合。
在一些实施例中,云基础设施系统802提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别或包括混合服务的其他服务类别下提供的一个或多个服务。客户可以经由订阅订单订购由云基础设施系统602提供的一个或多个服务。云基础设施系统602然后执行处理以提供客户的订阅订单中的服务。
在一些实施例中,云基础设施系统602提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由SaaS平台提供。SaaS平台可以被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和交付一套按需应用的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获得应用服务,而不需要客户购买单独的许可和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供销售业绩管理、企业集成和灵活性的解决方案的服务。
在一些实施例中,平台服务可以由云基础设施系统经由PaaS平台提供。PaaS平台可以被配置为提供属于PaaS类别的云服务。平台服务的示例可以包括但不限于使组织(诸如Oracle)能够在共享、公共架构上整合现有应用的服务,以及构建利用平台提供的共享服务的新应用的能力。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获得云基础设施系统提供的PaaS服务,而不需要客户购买单独的许可和支持。平台服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)及其他。
通过利用PaaS平台提供的服务,客户可以采用云基础设施系统支持的编程语言和工具,并且还可以控制部署的服务。在一些实施例中,云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle Fusion中间件服务)和Java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,该共享服务部署模型使组织能够汇集数据库资源并以数据库云的形式向客户提供数据库即服务。在云基础设施系统中,中间件云服务可以为客户提供平台以开发和部署各种云应用,并且Java云服务可以为客户提供平台以部署Java应用。
各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务促进利用SaaS平台和PaaS平台提供的服务的客户对底层计算资源(诸如存储装置、网络和其他基础计算资源)的管理和控制。
在某些实施例中,云基础设施系统602还可以包括基础设施资源630,用于提供用于向云基础设施系统的客户提供各种服务的资源。在一个实施例中,基础设施资源630可以包括硬件的预集成和优化的组合(诸如服务器、存储装置和网络资源),以执行由PaaS平台和SaaS平台提供的服务。
在一些实施例中,云基础设施系统602中的资源可以由多个用户共享并且按需求动态地重新分配。附加地,资源可以被分配给不同时区的用户。例如,云基础设施系统630可以使第一时区中的第一组用户能够在指定的小时数内利用云基础设施系统的资源,然后使得相同的资源能够重新分配给位于不同时区中的另一组用户,从而最大化对资源的利用。
在某些实施例中,可以提供由云基础设施系统602的不同组件或模块以及由云基础设施系统602提供的服务共享的多个内部共享服务632。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业存储库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些实施例中,云基础设施系统602可以提供对云基础设施系统中的云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统602接收的客户的订阅的能力等。
在一个实施例中,如图中所描绘的,云管理功能可以由一个或多个模块(诸如订单管理模块620、订单编排模块622、订单供应模块624、订单管理和监控模块626、和身份管理模块628)提供。这些模块可以包括一个或多个计算机和/或服务器或使用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其他适当的布置和/或组合。
在示例性操作634中,使用诸如客户端设备604、606或608之类的客户端设备的客户可以通过请求由云基础设施系统602提供的一个或多个服务并下订单订阅由云基础设施系统602提供的一个或多个服务来与云基础设施系统602交互。在某些实施例中,客户可以访问云用户界面(UI)(云UI 612、云UI 614和/或云UI 616),并经由这些UI下订阅订单。响应于客户下订单而由云基础设施系统602接收的订单信息可以包括识别客户的信息和客户打算订阅的由云基础设施系统602提供的一个或多个服务。
在客户已经下订单之后,订单信息经由云UI 612、614和/或616被接收。
在操作636处,订单被存储在订单数据库618中。订单数据库618可以是由云基础设施系统618操作并结合其他系统元件操作的若干数据库之一。
在操作638处,订单信息被转发到订单管理模块620。在一些情况下,订单管理模块620可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单,并且在验证后,预订订单。
在操作640处,关于订单的信息被传送到订单编排模块622。订单编排模块622可以利用订单信息来编排针对客户下的订单的服务和资源的供应。在一些情况下,订单编排模块622可以编排资源的供应以使用订单供应模块624的服务来支持订阅的服务。
在某些实施例中,订单编排模块622使得能够管理与每个订单相关联的过程并应用逻辑来确定订单是否应该继续供应。在操作642处,在接收到对新订阅的订单时,订单编排模块622向订单供应模块624发送请求以分配资源并配置满足订阅订单所需的那些资源。订单供应模块624使得能够为客户订购的服务分配资源。订单供应模块624在由云基础设施系统600提供的云服务与用于供应用于提供所请求的服务的资源的物理实现层之间提供抽象级别。订单编排模块622因此可以与诸如服务和资源实际是被即时供应还是预先供应并且仅在请求时才被分配/指派之类的实现细节隔离。
在操作644处,一旦服务和资源被供应,所提供的服务的通知就可以由云基础设施系统602的订单供应模块624发送到客户设备604、606和/或608上的客户。
在操作646处,客户的订阅订单可以由订单管理和监控模块626管理和跟踪。在一些情况下,订单管理和监控模块626可以被配置为收集订阅订单中的服务的使用统计信息,诸如使用的存储量、传输的数据量、用户数量以及系统运行时间和系统停机时间的量。
在某些实施例中,云基础设施系统600可以包括身份管理模块628。身份管理模块628可以被配置为提供身份服务,诸如云基础设施系统600中的访问管理和授权服务。在一些实施例中,身份管理模块628可以控制关于希望利用云基础设施系统602提供的服务的客户的信息。这样的信息可以包括认证这样的客户的身份的信息和描述那些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块628还可以包括对关于每个客户的描述信息以及关于可以如何以及由谁访问和修改该描述信息的管理。
图7示出了其中可以实现本发明的各种实施例的示例性计算机系统700。系统700可用于实现上述任何计算机系统。如图所示,计算机系统700包括处理单元704,其经由总线子系统702与多个外围子系统通信。这些外围子系统可以包括处理加速单元706、I/O子系统708、存储子系统718和通信子系统724。存储子系统718包括有形计算机可读存储介质722和系统存储器710。
总线子系统702提供了用于让计算机系统700的各种组件和子系统按预期彼此通信的机制。尽管总线子系统702被示意性地示为单个总线,但是总线子系统的替代实施例可以利用多个总线。总线子系统702可以是若干类型的总线结构中的任何一种,包括使用多种总线架构中的任何一种的存储器总线或存储器控制器、外围总线和本地总线。例如,这样的架构可包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线和可以被实现为按照IEEE P1386.1标准制造的夹层总线的外围组件互连(PCI)总线。
可以被实现为一个或多个集成电路(例如,传统微处理器或微控制器)的处理单元704控制计算机系统700的操作。一个或多个处理器可以被包括在处理单元704中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元704可以被实现为一个或多个独立处理单元732和/或734,其中每个处理单元中包括单核或多核处理器。在其他实施例中,处理单元704还可以被实现为通过将两个双核处理器集成到单个芯片中而形成的四核处理单元。
在各种实施例中,处理单元704可以响应于程序代码执行多种程序并且可以维护多个并发执行的程序或进程。在任何给定时间,要被执行的一些或全部程序代码可以驻留在(一个或多个)处理器704和/或存储子系统718中。通过合适的编程,(一个或多个)处理器704可以提供上述各种功能。计算机系统700可附加地包括处理加速单元706,其可包括数字信号处理器(DSP)、专用处理器等。
I/O子系统708可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可包括键盘、诸如鼠标或轨迹球之类的指点设备、并入显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风和其他类型的输入设备。用户接口输入设备可以包括例如运动感测和/或姿势识别设备,诸如使用户能够通过使用姿势和口头命令的自然用户接口来控制输入设备(诸如Microsoft
Figure BDA0003193876760000351
360游戏控制器)并与输入设备交互的Microsoft
Figure BDA0003193876760000352
运动传感器。用户接口输入设备还可以包括眼睛姿势识别设备,诸如Google
Figure BDA0003193876760000353
眨眼检测器,其检测来自用户的眼睛活动(例如,拍照和/或进行菜单选择时的“眨眼”),并将眼睛姿势转换为到输入设备(例如,Google
Figure BDA0003193876760000354
)的输入。附加地,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,
Figure BDA0003193876760000355
导航器)进行交互的语音识别感测设备。
用户接口输入设备还可以包括但不限于三维(3D)鼠标、操纵杆或指点杆、游戏手柄和图形输入板,以及音频/视觉设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条码读取器3D扫描仪、3D打印机、激光测距仪和眼睛注视跟踪设备。附加地,用户接口输入设备可以包括例如医学成像输入设备,诸如计算机断层扫描、磁共振成像、位置发射断层扫描、医学超声设备。用户接口输入设备还可以包括例如音频输入设备,诸如MIDI键盘、数字乐器等。
用户接口输出设备可包括显示子系统、指示灯或诸如音频输出设备之类的非视觉显示器等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏等。通常,术语“输出设备”的使用旨在包括用于将信息从计算机系统700输出到用户或其他计算机的所有可能类型的设备和机制。例如,用户接口输出设备可以包括但不限于以视觉方式传送文本、图形和音频/视频信息的多种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
计算机系统700可以包括存储子系统718,该存储子系统718包括被示为当前位于系统存储器710内的软件元素。系统存储器710可以存储在处理单元704上可加载和可执行的程序指令,以及在这些程序的执行期间生成的数据。
根据计算机系统700的配置和类型,系统存储器710可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存等)。RAM通常包含可由处理单元704立即访问和/或当前正由处理单元704操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器710可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实施方式中,包含有助于(诸如在启动期间)在计算机系统700内的元件之间传输信息的基本例程的基本输入/输出系统(BIOS)通常可以被存储在ROM中。举例来说,而非限制,系统存储器710还示出了可以包括客户端应用、Web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序712,程序数据714和操作系统716。举例来说,操作系统716可以包括各种版本的Microsoft
Figure BDA0003193876760000361
Apple
Figure BDA0003193876760000362
和/或Linux操作系统、多种商用
Figure BDA0003193876760000363
或类UNIX操作系统(包括但不限于多种GNU/Linux操作系统、Google
Figure BDA0003193876760000364
OS等)和/或移动操作系统,诸如iOS、
Figure BDA0003193876760000365
Phone、
Figure BDA0003193876760000366
OS、
Figure BDA0003193876760000367
10OS和
Figure BDA0003193876760000368
OS操作系统。
存储子系统718还可以提供用于存储提供一些实施例的功能的基本编程和数据构造的有形计算机可读存储介质。当由处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统718中。这些软件模块或指令可以由处理单元704执行。存储子系统718还可以提供用于存储根据本发明使用的数据的存储库。
存储子系统700还可以包括可以进一步被连接到计算机可读存储介质722的计算机可读存储介质读取器720。计算机可读存储介质722与系统存储器710一起,并且可选地与系统存储器710组合,可以全面地表示远程、本地、固定和/或可移动存储设备以及用于临时和/或更永久地包含、存储、发送和检索计算机可读信息的存储介质。
包含代码或代码的部分的计算机可读存储介质722还可以包括本领域已知或使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或发送信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电子可擦除可编程ROM(EEPROM)、闪存或其他存储技术、CD-ROM、数字通用磁盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备或其他有形的计算机可读介质。这也可以包括诸如数据信号、数据发送之类的无形的计算机可读介质或可以用于发送所需信息并且可以由计算系统700访问的任何其他介质。
例如,计算机可读存储介质722可以包括从不可移动的非易失性磁介质读取或向不可移动的非易失性磁介质写入的硬盘驱动器、从可移动的非易失性磁盘读取或向可移动的非易失性磁盘写入的磁盘驱动器、以及从可移动的非易失性光盘(诸如CD ROM、DVD和
Figure BDA0003193876760000371
Figure BDA0003193876760000372
光盘)或其他光学介质读取或向可移动的非易失性光盘或其他光学介质写入的光盘驱动器。计算机可读存储介质722可以包括但不限于
Figure BDA0003193876760000373
驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质722还可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存、企业闪存驱动器、固态ROM的SSD等)、基于易失性存储器的SSD(诸如基于固态RAM、动态RAM、静态RAM、DRAM的SSD)、磁阻RAM(MRAM)SSD以及使用DRAM和基于闪存的SSD的组合的混合SSD。盘驱动器及其相关联的计算机可读介质可以为计算机系统700提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
通信子系统724提供到其他计算机系统和网络的接口。通信子系统724用作用于从计算机系统700接收数据以及向其他系统发送数据的接口。例如,通信子系统924可以使计算机系统700能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统724可以包括用于(例如,使用蜂窝电话技术、诸如3G、4G或EDGE(全球演进的增强数据速率)之类的高级数据网络技术、WiFi(IEEE1202.11系列标准,或其他移动通信技术,或其任何组合)访问无线语音和/或数据网络的射频(RF)收发器组件、全球定位系统(GPS)接收器组件和/或其他组件。在一些实施例中,除了无线接口之外或替代无线接口,通信子系统724可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统724还可以代表可以使用计算机系统700的一个或多个用户接收结构化和/或非结构化数据馈送726、事件流728、事件更新730等形式的输入通信。
举例来说,通信子系统724可以被配置为从社交网络和/或其他通信服务的用户实时接收数据馈送726,诸如
Figure BDA0003193876760000381
馈送、
Figure BDA0003193876760000382
更新、诸如丰富站点摘要(RSS)馈送之类的网络馈送和/或来自一个或多个第三方信息源的实时更新。
附加地,通信子系统724还可以被配置为接收连续数据流形式的数据,该数据可以包括实时事件的事件流728和/或事件更新730,其本质上可以是连续的或无界的而没有明确的结束。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监控和流量管理应用)、点击流分析工具、汽车交通监控等。
通信子系统724还可以被配置为将结构化和/或非结构化数据馈送726、事件流728、事件更新730等输出到一个或多个数据库,该一个或多个数据库可以与耦合到计算机系统700的一个或多个流传输数据源计算机通信。
计算机系统700可以是各种类型中的一种,包括手持便携式设备(例如,
Figure BDA0003193876760000391
蜂窝电话、
Figure BDA0003193876760000392
计算平板、PDA)、可穿戴设备(例如,Google
Figure BDA0003193876760000393
头戴式显示器)、PC、工作站、大型机、信息亭、服务器机架或任何其他数据处理系统。
由于计算机和网络的不断变化的性质,图中描绘的计算机系统700的描述仅旨在作为具体示例。具有比图中描绘的系统更多或更少组件的许多其他配置是可能的。例如,还可以使用定制硬件和/或可以在硬件、固件、软件(包括小程序)或组合中实现特定元素。此外,可以采用到诸如网络输入/输出设备之类的其他计算设备的连接。基于本文提供的公开和教导,本领域的普通技术人员将理解实现各种实施例的其他方式和/或方法。
在上述说明书中,参照本发明的具体实施例描述了本发明的方面,但是本领域技术人员将认识到本发明不限于此。上述发明的各种特征和方面可以单独或联合使用。此外,可以在超出本文描述的那些环境和应用的任何数量的环境和应用中利用实施例,而不脱离本说明书的更广泛的精神和范围。因此,说明书和附图被认为是说明性的而不是限制性的。

Claims (20)

1.一种计算机实现的方法,包括:
接收检索存储在服务器处的网页数据的请求,所述网页数据对应于被配置为显示一个或多个内容对象的网页,所述请求对应于包括一个或多个请求参数的数据字符串,所述一个或多个请求参数中的每个请求参数表征客户端设备,并且所述一个或多个请求参数至少包括所述客户端设备的运行时间;
提取包括在所述请求的所述数据字符串中的所述一个或多个请求参数;
访问用于检测所述客户端设备是由机器人脚本还是人类操作的一个或多个规则,所述一个或多个规则中的每个规则包括在满足时表明所述客户端设备由机器人脚本操作的条件;
访问与所述客户端设备相关联的元数据,所述元数据表示所述客户端设备和所述服务器之间的一个或多个先前交互;
自动确定是否将特定内容对象发送到所述客户端设备,所述自动确定基于评估使用所述客户端设备的所述运行时间的所述一个或多个规则、所述一个或多个请求参数和/或与所述客户端设备相关联的所述元数据的结果;以及
响应于确定将所述特定内容对象发送到所述客户端设备,发送所述特定内容对象,所述特定内容对象的所述发送表明所述客户端设备被检测为由人类操作。
2.如权利要求1所述的计算机实现的方法,其中所述一个或多个规则中的规则对照定义的时间阈值评估所述客户端设备的所述运行时间,其中当所述客户端设备的所述运行时间低于所述定义的时间阈值时,所述客户端设备被检测为由机器人脚本操作,并且其中当所述客户端设备的所述运行时间等于或大于所述定义的时间阈值时,所述客户端设备被检测为由人类操作。
3.如权利要求2所述的计算机实现的方法,还包括:
当所述客户端设备被检测为由机器人脚本操作时,确定禁止将所述特定内容对象发送到所述客户端设备;以及
当所述客户端设备被检测为由人类操作时,确定将所述特定内容对象发送到所述客户端设备。
4.如权利要求1所述的计算机实现的方法,还包括:
确定所述客户端设备的所述运行时间低于时间阈值,其中低于所述时间阈值的运行时间与由机器人脚本操作的客户端设备相关联,并且其中高于所述时间阈值的运行时间与由人类用户操作的客户端设备相关联;
评估与所述客户端设备相关联的所述元数据,其中所述评估包括:
识别检索所述网页数据的先前请求,其中所述先前请求是先前从所述客户端设备接收的;
识别与所述客户端设备相关联的先前运行时间,其中所述先前运行时间被包括在对应于所述先前请求的先前数据字符串中;以及
确定与所述客户端设备相关联的所述先前运行时间等于或大于所述时间阈值;以及
尽管所述客户端设备的所述运行时间低于所述时间阈值,仍然确定将所述特定内容对象发送到所述客户端设备,确定发送所述特定内容对象至少部分基于评估与所述客户端设备相关联的所述元数据的结果。
5.如权利要求1所述的计算机实现的方法,还包括:
识别检索所述网页数据的多个附加请求,所述多个附加请求中的每个附加请求与附加客户端设备的运行时间相关联;
对所述多个附加请求执行一种或多种聚类技术,所述一种或多种聚类技术的执行识别与所述多个附加请求相关联的唯一运行时间的数量;以及
确定唯一运行时间的所述数量对应于发送所述多个附加请求的唯一客户端设备的数量。
6.如权利要求1所述的计算机实现的方法,还包括:
识别检索所述网页数据的一组附加请求,所述一组附加请求中的每个附加请求与附加客户端设备的附加运行时间相关联;
识别所述一组附加请求的子集,附加请求的所述子集中的每个附加请求对应于低于时间阈值的附加运行时间,所述附加运行时间低于所述时间阈值表明对应的附加客户端设备被检测为由机器人脚本操作;
使用一种或多种机器学习技术评估附加请求的所述子集,附加请求的所述子集的所述评估导致检测到与机器人脚本相关联的附加客户端设备的运行时间所关联的一种或多种模式;以及
自动生成附加规则以包括在用于检测由机器人脚本操作的客户端设备的所述一个或多个规则中。
7.如权利要求1所述的计算机实现的方法,还包括:
为所述客户端设备生成人类用户分数,所述人类用户分数至少部分地基于评估使用所述客户端设备的所述运行时间的所述一个或多个规则、所述一个或多个请求参数和/或与所述客户端设备相关联的所述元数据的所述结果,所述人类用户分数表示客户端设备被检测为由人类操作的程度;以及
至少部分地基于所生成的人类用户分数来确定是否将所述特定内容对象发送到所述客户端设备。
8.一种系统,包括:
一个或多个数据处理器;以及
包含指令的非暂时性计算机可读存储介质,当在所述一个或多个数据处理器上执行时,所述指令使所述一个或多个数据处理器执行操作,所述操作包括:
接收检索存储在服务器处的网页数据的请求,所述网页数据对应于被配置为显示一个或多个内容对象的网页,所述请求对应于包括一个或多个请求参数的数据字符串,所述一个或多个请求参数中的每个请求参数表征客户端设备,并且所述一个或多个请求参数至少包括所述客户端设备的运行时间;
提取包括在所述请求的所述数据字符串中的所述一个或多个请求参数;
访问用于检测所述客户端设备是由机器人脚本还是人类操作的一个或多个规则,所述一个或多个规则中的每个规则包括在满足时表明所述客户端设备由机器人脚本操作的条件;
访问与所述客户端设备相关联的元数据,所述元数据表示所述客户端设备和所述服务器之间的一个或多个先前交互;
自动确定是否将特定内容对象发送到所述客户端设备,所述自动确定基于评估使用所述客户端设备的所述运行时间的所述一个或多个规则、所述一个或多个请求参数和/或与所述客户端设备相关联的所述元数据的结果;以及
响应于确定将所述特定内容对象发送到所述客户端设备,发送所述特定内容对象,所述特定内容对象的所述发送表明所述客户端设备被检测为由人类操作。
9.如权利要求8所述的系统,其中所述一个或多个规则中的规则对照定义的时间阈值评估所述客户端设备的所述运行时间,其中当所述客户端设备的所述运行时间低于所述定义的时间阈值时,所述客户端设备被检测为由机器人脚本操作,并且其中当所述客户端设备的所述运行时间等于或大于所述定义的时间阈值时,所述客户端设备被检测为由人类操作。
10.如权利要求9所述的系统,还包括:
当所述客户端设备被检测为由机器人脚本操作时,确定禁止将所述特定内容对象发送到所述客户端设备;以及
当所述客户端设备被检测为由人类操作时,确定将所述特定内容对象发送到所述客户端设备。
11.如权利要求8所述的系统,其中所述操作还包括:
确定所述客户端设备的所述运行时间低于时间阈值,其中低于所述时间阈值的运行时间与由机器人脚本操作的客户端设备相关联,并且其中高于所述时间阈值的运行时间与由人类用户操作的客户端设备相关联;
评估与所述客户端设备相关联的所述元数据,其中所述评估包括:
识别检索所述网页数据的先前请求,其中所述先前请求是先前从所述客户端设备接收的;
识别与所述客户端设备相关联的先前运行时间,其中所述先前运行时间被包括在对应于所述先前请求的先前数据字符串中;以及
确定与所述客户端设备相关联的所述先前运行时间等于或大于所述时间阈值;以及
尽管所述客户端设备的所述运行时间低于所述时间阈值,仍然确定将所述特定内容对象发送到所述客户端设备,确定发送所述特定内容对象至少部分基于评估与所述客户端设备相关联的所述元数据的结果。
12.如权利要求8所述的系统,其中所述操作还包括:
识别检索所述网页数据的多个附加请求,所述多个附加请求中的每个附加请求与附加客户端设备的运行时间相关联;
对所述多个附加请求执行一种或多种聚类技术,所述一种或多种聚类技术的执行识别与所述多个附加请求相关联的唯一运行时间的数量;以及
确定唯一运行时间的所述数量对应于发送所述多个附加请求的唯一客户端设备的数量。
13.如权利要求8所述的系统,其中所述操作还包括:
识别检索所述网页数据的一组附加请求,所述一组附加请求中的每个附加请求与附加客户端设备的附加运行时间相关联;
识别所述一组附加请求的子集,附加请求的所述子集中的每个附加请求对应于低于时间阈值的附加运行时间,所述附加运行时间低于所述时间阈值表明对应的附加客户端设备被检测为由机器人脚本操作;
使用一种或多种机器学习技术评估附加请求的所述子集,附加请求的所述子集的评估导致检测到与机器人脚本相关联的附加客户端设备的运行时间所关联的一种或多种模式;以及
自动生成附加规则以包括在用于检测由机器人脚本操作的客户端设备的所述一个或多个规则中。
14.如权利要求8所述的系统,其中所述操作还包括:
为所述客户端设备生成人类用户分数,所述人类用户分数至少部分地基于评估使用所述客户端设备的所述运行时间的所述一个或多个规则、所述一个或多个请求参数和/或与所述客户端设备相关联的所述元数据的所述结果,所述人类用户分数表示客户端设备被检测为由人类操作的程度;以及
至少部分地基于所生成的人类用户分数来确定是否将所述特定内容对象发送到所述客户端设备。
15.一种有形地体现在非暂时性机器可读存储介质中的计算机程序产品,包括被配置为使数据处理装置执行操作的指令,所述操作包括:
接收检索存储在服务器处的网页数据的请求,所述网页数据对应于被配置为显示一个或多个内容对象的网页,所述请求对应于包括一个或多个请求参数的数据字符串,所述一个或多个请求参数中的每个请求参数表征客户端设备,并且所述一个或多个请求参数至少包括所述客户端设备的运行时间;
提取包括在所述请求的所述数据字符串中的所述一个或多个请求参数;
访问用于检测所述客户端设备是由机器人脚本还是人类操作的一个或多个规则,所述一个或多个规则中的每个规则包括在满足时表明所述客户端设备由机器人脚本操作的条件;
访问与所述客户端设备相关联的元数据,所述元数据表示所述客户端设备和所述服务器之间的一个或多个先前交互;
自动确定是否将特定内容对象发送到所述客户端设备,所述自动确定基于评估使用所述客户端设备的所述运行时间的所述一个或多个规则、所述一个或多个请求参数和/或与所述客户端设备相关联的所述元数据的结果;以及
响应于确定将所述特定内容对象发送到所述客户端设备,发送所述特定内容对象,所述特定内容对象的所述发送表明所述客户端设备被检测为由人类操作。
16.如权利要求15所述的计算机程序产品,其中所述一个或多个规则中的规则对照定义的时间阈值评估所述客户端设备的所述运行时间,其中当所述客户端设备的所述运行时间低于所述定义的时间阈值时,所述客户端设备被检测为由机器人脚本操作,并且其中当所述客户端设备的所述运行时间等于或大于所述定义的时间阈值时,所述客户端设备被检测为由人类操作。
17.如权利要求16所述的计算机程序产品,其中所述操作还包括:
当所述客户端设备被检测为由机器人脚本操作时,确定禁止将所述特定内容对象发送到所述客户端设备;以及
当所述客户端设备被检测为人类操作时,确定将所述特定内容对象发送到所述客户端设备。
18.如权利要求15所述的计算机程序产品,其中所述操作还包括:
确定所述客户端设备的所述运行时间低于时间阈值,其中低于所述时间阈值的运行时间与由机器人脚本操作的客户端设备相关联,并且其中高于所述时间阈值的运行时间与由人类用户操作的客户端设备相关联;
评估与所述客户端设备相关联的所述元数据,其中所述评估包括:
识别检索所述网页数据的先前请求,其中所述先前请求是先前从所述客户端设备接收的;
识别与所述客户端设备相关联的先前运行时间,其中所述先前运行时间被包括在对应于所述先前请求的先前数据字符串中;以及
确定与所述客户端设备相关联的所述先前运行时间等于或大于所述时间阈值;以及
尽管所述客户端设备的所述运行时间低于所述时间阈值,仍然确定将所述特定内容对象发送到所述客户端设备,确定发送所述特定内容对象至少部分基于评估与所述客户端设备相关联的所述元数据的结果。
19.如权利要求15所述的计算机程序产品,其中所述操作还包括:
识别检索所述网页数据的多个附加请求,所述多个附加请求中的每个附加请求与附加客户端设备的运行时间相关联;
对所述多个附加请求执行一种或多种聚类技术,所述一种或多种聚类技术的执行识别与所述多个附加请求相关联的唯一运行时间的数量;以及
确定唯一运行时间的所述数量对应于发送所述多个附加请求的唯一客户端设备的数量。
20.如权利要求15所述的计算机程序产品,其中所述操作还包括:
识别检索所述网页数据的一组附加请求,所述一组附加请求中的每个附加请求与附加客户端设备的附加运行时间相关联;
识别所述一组附加请求的子集,附加请求的所述子集中的每个附加请求对应于低于时间阈值的附加运行时间,所述附加运行时间低于所述时间阈值表明对应的附加客户端设备被检测为由机器人脚本操作;
使用一种或多种机器学习技术评估附加请求的所述子集,评估附加请求的所述子集导致检测到与机器人脚本相关联的附加客户端设备的运行时间所关联的一种或多种模式;以及
自动生成附加规则以包括在用于检测由机器人脚本操作的客户端设备的所述一个或多个规则中。
CN202080012373.4A 2019-01-11 2020-01-10 用于增强的主机分类的系统和方法 Pending CN113396411A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/246,137 2019-01-11
US16/246,137 US11245719B2 (en) 2019-01-11 2019-01-11 Systems and methods for enhanced host classification
PCT/US2020/013022 WO2020146698A1 (en) 2019-01-11 2020-01-10 Systems and methods for enhanced host classification

Publications (1)

Publication Number Publication Date
CN113396411A true CN113396411A (zh) 2021-09-14

Family

ID=69591722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080012373.4A Pending CN113396411A (zh) 2019-01-11 2020-01-10 用于增强的主机分类的系统和方法

Country Status (4)

Country Link
US (1) US11245719B2 (zh)
EP (1) EP3908945A1 (zh)
CN (1) CN113396411A (zh)
WO (1) WO2020146698A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11457027B2 (en) * 2019-12-03 2022-09-27 Aetna Inc. Detection of suspicious access attempts based on access signature
US11012492B1 (en) * 2019-12-26 2021-05-18 Palo Alto Networks (Israel Analytics) Ltd. Human activity detection in computing device transmissions
US11461484B2 (en) * 2019-12-30 2022-10-04 Imperva, Inc. Capturing contextual information for data accesses to improve data security
JP7359001B2 (ja) * 2020-01-21 2023-10-11 富士通株式会社 通信時間算出方法および通信時間算出プログラム
US11023607B1 (en) 2020-04-03 2021-06-01 Imperva, Inc. Detecting behavioral anomalies in user-data access logs
US11271830B2 (en) * 2020-06-28 2022-03-08 Salesforce.Com, Inc. Conversational BOTs platform

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523314A (zh) * 2010-12-16 2012-06-27 微软公司 识别高效的目标服务器
CN103415841A (zh) * 2011-02-28 2013-11-27 甲骨文国际公司 监控用户发起的动作并将它们与后端操作相关联的方法和计算机程序
CN106796597A (zh) * 2015-02-11 2017-05-31 最佳收藏有限公司 自动化智能数据抓取和验证
US20180103047A1 (en) * 2010-11-29 2018-04-12 Biocatch Ltd. Detection of computerized bots and automated cyber-attack modules
CN109155748A (zh) * 2016-06-21 2019-01-04 甲骨文国际公司 互联网云托管的自然语言交互式消息传送系统服务器协作

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9325728B1 (en) * 2005-01-27 2016-04-26 Leidos, Inc. Systems and methods for implementing and scoring computer network defense exercises
US8856869B1 (en) * 2009-06-22 2014-10-07 NexWavSec Software Inc. Enforcement of same origin policy for sensitive data
US8478708B1 (en) * 2009-07-30 2013-07-02 Zscaler, Inc. System and method for determining risk posed by a web user
US20130198203A1 (en) 2011-12-22 2013-08-01 John Bates Bot detection using profile-based filtration
US9118689B1 (en) * 2012-04-13 2015-08-25 Zscaler, Inc. Archiving systems and methods for cloud based systems
US9584524B2 (en) 2014-07-03 2017-02-28 Live Nation Entertainment, Inc. Sensor-based human authorization evaluation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180103047A1 (en) * 2010-11-29 2018-04-12 Biocatch Ltd. Detection of computerized bots and automated cyber-attack modules
CN102523314A (zh) * 2010-12-16 2012-06-27 微软公司 识别高效的目标服务器
CN103415841A (zh) * 2011-02-28 2013-11-27 甲骨文国际公司 监控用户发起的动作并将它们与后端操作相关联的方法和计算机程序
CN106796597A (zh) * 2015-02-11 2017-05-31 最佳收藏有限公司 自动化智能数据抓取和验证
CN109155748A (zh) * 2016-06-21 2019-01-04 甲骨文国际公司 互联网云托管的自然语言交互式消息传送系统服务器协作

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZI CHU 等: "bot or human? a behavior-based online bot detection system", LECTURE NOTES IN COMPUTER SCIENCE, 30 November 2018 (2018-11-30), pages 432 - 449, XP047496696, DOI: 10.1007/978-3-030-04834-1_21 *

Also Published As

Publication number Publication date
US11245719B2 (en) 2022-02-08
WO2020146698A1 (en) 2020-07-16
EP3908945A1 (en) 2021-11-17
US20200228565A1 (en) 2020-07-16

Similar Documents

Publication Publication Date Title
US20210081842A1 (en) Techniques for service execution and monitoring for run-time service composition
US10733079B2 (en) Systems and methods for end-to-end testing of applications using dynamically simulated data
US10310969B2 (en) Systems and methods for test prediction in continuous integration environments
CN110832453B (zh) 使用基于云的系统的应用的分布式版本控制
US9424481B2 (en) Screenshot database for application verification
US11245719B2 (en) Systems and methods for enhanced host classification
CN113940034A (zh) 检测云用户的行为异常
US10192175B2 (en) Navigating interactive visualizations with collaborative filtering
US10614468B2 (en) Event-based score processing
JP6439043B2 (ja) 文脈検索文字列同義語の自動生成
US10732964B2 (en) Systems and methods for updating multi-tier cloud-based application stacks
US11870741B2 (en) Systems and methods for a metadata driven integration of chatbot systems into back-end application services
US9378270B2 (en) Systems and methods for generating natural language insights about sets of data
CN110612545A (zh) 自学习自适应路由系统
US20150244814A1 (en) Adaptive co-browsing
US11201932B2 (en) Systems and methods for securely using cloud services on on-premises data
US9560110B1 (en) Synchronizing shared content served to a third-party service
US20160092245A1 (en) Data rich tooltip for favorite items
US11449773B2 (en) Enhanced similarity detection between data sets with unknown prior features using machine-learning
US11863635B2 (en) Enhanced processing of user profiles using data structures specialized for graphical processing units (GPUs)
US9785543B2 (en) Dual tagging between test and pods
US9706013B2 (en) Mobile runtime conditional sections for surveys
US20230239377A1 (en) System and techniques to autocomplete a new protocol definition
US20230315798A1 (en) Hybrid approach for generating recommendations

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination