ADC

机器人检测

NetScaler 机器人管理系统使用各种技术来检测传入的机器人流量。这些技术用作检测规则来检测机器人类型。技巧如下:

注意:

机器人管理最多支持 32 个配置实体用于阻止列表、允许列表和速率限制技术。

机器人允许列表 - 可作为允许列表绕过的 IP 地址(IPv4 和 IPv6)、子网(IPv4 和 IPv6)和策略表达式的自定义列表。

机器人阻止列表 - 必须阻止访问 Web 应用程序的 IP 地址(IPv4 和 IPv6)、子网(IPv4 和 IPv6)和策略表达式的自定义列表。

IP 信誉 - 此规则检测传入的机器人流量是否来自恶意 IP 地址。

设备指纹 - 此规则检测传入的机器人流量在传入的请求标头中是否包含设备指纹 ID,以及传入的客户端机器人流量的浏览器属性。

限制:

  1. 必须在客户端浏览器中启用 JavaScript。
  2. 不适用于 XML 响应。

机器人日志表达式 - 检测技术使您能够捕获其他信息作为日志消息。数据可以是请求 URL 的用户的姓名、源 IP 地址以及用户发送请求的源端口或表达式生成的数据。

速率限制 -此规则限制来自同一个客户端的多个请求。

机器人陷阱 - 通过在客户端响应中发布陷阱 URL 来检测和阻止自动机器人。如果客户端是人类用户,则该 URL 将显示为不可见且无法访问。该检测技术可有效阻止来自自动机器人的攻击。

TPS -如果最大请求数和请求增加百分比超过配置的时间间隔,则以机器人身份检测传入流量。

CAPTCHA -此规则使用验证码来缓解机器人攻击。CAPTCHA 是一种挑战响应验证,用于确定传入的流量是来自人类用户还是自动机器人。该验证有助于阻止导致 Web 应用程序安全违规的自动机器人。您可以在 IP 信誉和设备指纹检测技术中将 CAPTCHA 配置为机器人操作。

现在,让我们看看如何配置每种技术来检测和管理机器人流量。

如何将设备升级到基于 NetScaler CLI 的机器人管理配置

如果要从旧版本(NetScaler 版本 13.0 版本版本 58.32 或更早版本)升级设备,则必须首先仅将现有的机器人管理配置手动转换为基于 NetScaler CLI 的机器人管理配置一次。完成以下步骤手动转换机器人管理配置。

  1. 升级到最新版本后,使用以下命令连接到升级工具“upgrade_bot_config.py”

    在命令提示符下,键入:

    shell "/var/python/bin/python /netscaler/upgrade_bot_config.py > /var/bot_upgrade_commands.txt"

  2. 使用以下命令运行配置。

    在命令提示符下,键入:

    batch -f /var/bot_upgrade_commands.txt

  3. 保存升级后的配置。

save ns config

配置 NetScaler 基于 CLI 的机器人管理

机器人管理配置使您能够将一种或多种机器人检测技术绑定到特定的机器人配置文件。 要配置基于 NetScaler 的自动程序管理,必须完成以下步骤:

  1. 启用机器人管理
  2. 导入机器人签名
  3. 添加机器人资料
  4. 绑定机器人资料
  5. 添加机器人策略
  6. 绑定机器人策略
  7. 配置机器人设置

注意:

如果要从旧版本升级设备,则必须首先手动转换现有的机器人管理配置。有关更多信息,请参阅 如何升级到基于 NetScaler CLI 的机器人管理配置 部分。

启用机器人管理

在开始之前,请确保在设备上启用了机器人管理功能。如果您有新的 NetScaler 或 VPX,则必须在配置该功能之前启用该功能。如果要将 NetScaler 设备从早期版本升级到当前版本,则必须先启用该功能,然后再对其进行配置。在命令提示符下,键入:

enable ns feature Bot

导入机器人签名

您可以导入默认的签名机器人文件并将其绑定到机器人配置文件。在命令提示符下,键入:

import bot signature [<src>] <name> [-comment <string>] [-overwrite]

其中:

src -本地路径名或 URL(协议、主机、路径和文件名)。最大长度:2047。 > 注意: > > 如果要导入的对象位于需要客户端证书验证才能访问的 HTTPS 服务器上,则导入失败。

name -机器人签名文件对象的名称。这是一个强制性的参数。最大长度:31。

comment -有关签名文件对象的描述。最大长度:255。

overwrite -覆盖现有文件的操作。 > 注意: > > 使用 overwrite 选项更新签名文件中的内容。或者,使用 update bot signature <name> 命令更新 NetScaler 设备上的签名文件。

示例

import bot signature http://www.example.com/signature.json signaturefile -comment commentsforbot –overwrite

注意:

您可以使用覆盖选项更新签名文件中的内容。此外,您可以使用 update bot signature <name> 命令更新 NetScaler 设备中的签名文件。

添加机器人资料

机器人配置文件是用于在设备上配置机器人管理的配置文件设置的集合。您可以配置设置以执行机器人检测。

在命令提示符下,键入:

add bot profile <name> [-signature <string>] [-errorURL <string>] [-trapURL <string>] [-whiteList ( ON | OFF )] [-blackList ( ON | OFF )] [-rateLimit ( ON | OFF )] [-deviceFingerprint ( ON | OFF )] [-deviceFingerprintAction ( none | log | drop | redirect | reset | mitigation )] [-ipReputation ( ON | OFF )] [-trap ( ON | OFF )]

示例:

add bot profile profile1 -signature signature -errorURL http://www.example.com/error.html -trapURL /trap.html -whitelist ON -blacklist ON -ratelimit ON -deviceFingerprint ON -deviceFingerprintAction drop -ipReputation ON -trap ON

绑定机器人资料

创建机器人配置文件后,必须将机器人检测机制绑定到配置文件。

在命令提示符下,键入:

bind bot profile <name> | (-ipReputation [-category <ipReputationCategory>] [-enabled ( ON | OFF )] [-action ( none | log | drop | redirect | reset | mitigation )] [-logMessage <string>]

示例:

以下示例用于将 IP 信誉检测技术绑定到特定的机器人配置文件。

bind bot profile profile5 -ipReputation -category BOTNET -enabled ON -action drop -logMessage message

添加机器人策略

您必须添加用于评估机器人流量的机器人策略。

在命令提示符下,键入:

add bot policy <name> -rule <expression> -profileName <string> [-undefAction <string>] [-comment <string>] [-logAction <string>]

其中,

Name-机器人策略的名称。必须以字母、数字或下划线字符 (_) 开头,并且必须只包含字母、数字和连字符 (-)、句点 (.) 井号 (#)、空格 ( )、at (@)、等号 (=)、冒号 (:) 和下划线字符。添加机器人策略后可以更改。

Rule-策略用来确定是否对指定请求应用机器人配置文件的表达式。这是一个强制性的参数。最大长度:1499

profileName-如果请求与该机器人策略相匹配,则要应用的机器人配置文件的名称。这是一个强制性的参数。最大长度:127

undefAction-策略评估结果未定义时要执行的操作 (UNDEF)。UNDEF 事件表示存在内部错误情况。最大长度:127

Comment- 有关此机器人策略的描述。最大长度:255

logAction -用于与该策略匹配的请求的日志操作的名称。最大长度:127

示例:

add bot policy pol1 –rule "HTTP.REQ.HEADER(\"header\").CONTAINS(\"custom\")" - profileName profile1 -undefAction drop –comment commentforbotpolicy –logAction log1

全局绑定机器人策略

在命令提示符下,键入:

bind bot global -policyName <string> -priority <positive_integer> [-gotoPriorityExpression <expression>][-type ( REQ_OVERRIDE | REQ_DEFAULT )] [-invoke (-labelType ( vserver | policylabel ) -labelName <string>) ]

示例:

bind bot global –policyName pol1 –priority 100 –gotoPriorityExpression NEXT -type REQ_OVERRIDE

将机器人策略绑定到虚拟服务器

在命令提示符下,键入:

bind lb vserver <name>@ ((<serviceName>@ [-weight <positive_integer>] ) | <serviceGroupName>@ | (-policyName <string>@ [-priority <positive_integer>] [-gotoPriorityExpression <expression>]

示例:

bind lb vserver lb-server1 –policyName pol1 –priority 100 –gotoPriorityExpression NEXT -type REQ_OVERRIDE

配置机器人设置

如有必要,您可以自定义默认设置。 在命令提示符下,键入:

set bot settings [-defaultProfile <string>] [-javaScriptName <string>] [-sessionTimeout <positive_integer>] [-sessionCookieName <string>] [-dfpRequestLimit <positive_integer>] [-signatureAutoUpdate ( ON | OFF )] [-signatureUrl <URL>] [-proxyServer <ip_addr|ipv6_addr|*>] [-proxyPort <port|*>]
<!--NeedCopy-->

其中,

defaultProfile -连接与任何策略不匹配时使用的配置文件。默认设置为 “ “,这会将不匹配的连接发送回 NetScaler,而无需尝试对其进行进一步筛选。最大长度:31

javaScriptName -僵尸网络功能在响应中使用的 JavaScript 的名称。必须以字母或数字开头,并且可以由 1 到 31 个字母、数字以及连字符 (-) 和下划线 (_) 符号组成。以下要求仅适用于 NetScaler CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的 Cookie 名称”或“我的 Cookie 名称”)。最大长度:31

sessionTimeout -会话超时(以秒为单位),之后用户会话终止。

Minimum value -1,最大值:65535

sessionCookieName -僵尸网络功能使用它进行跟踪的 SessionCookie 的名称。必须以字母或数字开头,并且可以由 1 到 31 个字母、数字以及连字符 (-) 和下划线 (_) 符号组成。以下要求仅适用于 NetScaler CLI:如果名称包含一个或多个空格,请将名称用双引号或单引号括起来(例如,“我的 Cookie 名称”或“我的 Cookie 名称”)。最大长度:31

dfpRequestLimit -如果启用了设备指纹,则允许在没有机器人会话 cookie 的情况下允许的请求数量。最小值:1,最大值:4294967295

signatureAutoUpdate -用于启用/禁用机器人自动更新签名的标志。可能的值:ON、OFF。 默认值:OFF

signatureUrl -用于从服务器下载机器人签名映射文件的 URL。默认值:https://nsbotsignatures.s3.amazonaws.com/BotSignatureMapping.json。最大长度:2047

proxyServer - 用于从 AWS 获取更新的签名的代理服务器 IP。

proxyPort - 代理服务器端口,用于从 AWS 获取更新的签名。默认值:8080

proxyUsername -用于向代理服务器进行身份验证以下载签名更新的用户名。

proxyPassword — 用于向代理服务器进行身份验证以下载签名更新的密码。

示例:

set bot settings –defaultProfile profile1 –javaScriptName json.js –sessionTimeout 1000 –sessionCookieName session -proxyServer 10.102.30.112 -proxyPort 3128 -proxyUsername defaultuser -proxyPassword defaultPassword

使用 NetScaler GUI 配置机器人管理

您可以通过首先在设备上启用该功能来配置 NetScaler 机器人管理。启用后,您可以创建机器人策略来评估作为机器人的传入流量,然后将流量发送到机器人配置文件。然后,创建一个机器人配置文件,然后将配置文件绑定到机器人签名。或者,您还可以克隆默认的机器人签名文件,然后使用签名文件来配置检测技术。创建签名文件后,您可以将其导入机器人配置文件。

机器人管理页

  1. 启用机器人管理功能
  2. 配置机器人管理设置
  3. 克隆 NetScaler 机器人的默认签名
  4. 导入 NetScaler 机器人签名
  5. 配置机器人签名设置
  6. 创建机器人资料
  7. 创建机器人策略

启用机器人管理功能

完成以下步骤以启用机器人管理:

  1. 在导航窗格上,展开“系统”,然后单击“设置”>“配置高级功能”。
  2. 在“配置高级功能”页面上,选中 NetScaler 机器人管理复选框。
  3. 单击确定

为设备指纹技术配置机器人管理设置

完成以下步骤以配置设备指纹技术:

  1. 导航到安全 > NetScaler 机器人管理
  2. 在详细信息窗格的设置下,单击更改 NetScaler 机器人管理设置
  3. 配置 NetScaler 机器人管理设置中,设置以下参数。

    1. 默认配置文件。选择机器人配置文件。
    2. JavaScript 名称。机器人管理在响应客户端时使用的 JavaScript 文件的名称。
    3. 会话超时。超时(以秒为单位),在此之后终止用户会话。
    4. 会话 Cookie。机器人管理系统用于跟踪的会话 cookie 的名称。
    5. 设备指纹请求限制。如果启用了设备指纹,则在不使用机器人会话 cookie 的情况下允许的请求数。
    6. 代理服务器-上载最新签名的代理服务器 IP 地址。
    7. 代理端口 — 上载最新签名的计算机的端口号。
    8. 代理用户名-用于验证代理服务器的用户名
    9. 代理密码-用于验证代理服务器的密码。

      注意:

      如果配置了“代理服务器”和“代理端口”字段,则会启用代理用户名和代理密码字段。

  4. 单击确定

克隆机器人签名文件

完成以下步骤以克隆机器人签名文件:

  1. 导航到安全性 > NetScaler 机器人管理签名
  2. NetScaler 机器人管理签名页面中,选择默认的机器人签名记录,然后单击“克隆”。
  3. 克隆机器人签 名页面中,输入名称并编辑签名数据。
  4. 单击创建

导入机器人签名文件

如果您有自己的签名文件,则可以将其导入为文件、文本或 URL。执行以下步骤导入机器人签名文件:

  1. 导航到安全性 > NetScaler 机器人管理签名
  2. NetScaler 机器人管理签名页面上,将文件导入为 URL、文件或文本。
  3. 单击继续
  4. 在“导入 NetScaler 机器人管理签名”页面上,设置以下参数。
    1. 名称-机器人签名文件的名称。
    2. 注释-关于导入文件的简要描述。
    3. 覆盖-选中允许在文件更新期间覆盖数据的复选框。
    4. 签名数据-修改签名参数
  5. 单击 Done(完成)。

使用 NetScaler GUI 配置机器人允许列表

此检测技术使您能够绕过配置允许列出的 URL 的 URL。完成以下步骤以配置允许列表 URL:

  1. 导航到安全 > NetScaler 机器人管理配置文件
  2. NetScaler 机器人管理配置文件页面上,选择一个文件并单击“编辑”。
  3. NetScaler 机器人管理配置文件 页面上,转到“签名设置”部分,然后单击“白名单”。
  4. 在“白名单”部分中,设置以下参数:
    1. 已启用。选中该复选框可在检测过程中验证允许列表 URL。
    2. 配置类型。配置允许列表 URL。机器人检测期间会绕过该 URL。单击“添加”将 URL 添加到机器人允许列表中。
    3. 配置 NetScaler 机器人管理配置文件白名单绑定页面中,设置以下参数:
      1. 类型。URL 类型可以是 IPv4 地址、子网 IP 地址或与策略表达式匹配的 IP 地址。
      2. 已启用。选中复选框以验证 URL。
      3. 值。URL 地址。
      4. 日志。选中该复选框以存储日志条目。
      5. 日志消息。日志的简要说明。
      6. 评论。关于允许列表 URL 的简要说明。
      7. 单击确定

    配置机器人允许列表

  5. 单击更新
  6. 单击 Done(完成)。

使用 NetScaler GUI 配置机器人阻止列表

使用此检测技术,您可以删除配置为阻止列出的 URL。完成以下步骤以配置阻止列表 URL。

  1. 导航到安全 > NetScaler 机器人管理配置文件
  2. NetScaler 机器人管理配置文件页面上,选择签名文件并单击“编辑”。
  3. NetScaler 机器人管理配置文件页面上,转到“签名设置”部分,然后单击“名单”。
  4. 黑名单 部分中,设置以下参数:

    1. 已启用。选中该复选框可在检测过程中验证阻止列表 URL。
    2. 配置类型。将 URL 配置为机器人阻止列表检测过程的一部分。这些 URL 在机器人检测期间会被丢弃。单击“添加”将 URL 添加到机器人屏蔽列表中
    3. 配置 NetScaler 机器人管理配置文件黑名单绑定页面中,设置以下参数。

      1. 类型。URL 类型可以是 IPv4 地址、子网 IP 地址或 IP 地址。
      2. 已启用。选中复选框以验证 URL。
      3. 值。URL 地址。
      4. 日志。选中该复选框以存储日志条目。
      5. 日志消息。登录的简要说明。
      6. 评论。关于阻止列表 URL 的简要说明。
      7. 单击确定

    配置机器人阻止列表

  5. 单击更新
  6. 单击 Done(完成)。

使用 NetScaler GUI 配置 IP 信誉

IP 信誉机器人技术使用 Webroot 的 IP 信誉数据库和云服务提供商数据库来验证客户端请求是恶意 IP 地址还是公有云 IP 地址。作为机器人类别的一部分,然后将一个机器人操作与其关联。完成以下步骤以配置 Webroot IP 信誉和云服务提供商数据库类别。

  1. 导航到 安全 > NetScaler 机器人管理配置文件
  2. NetScaler 机器人管理配置文件页面上,选择一个配置文件,然后单击编辑
  3. NetScaler 机器人管理配置文件页面上,转到“配置文件设置”部分,然后单击 IP 信誉
  4. IP 信誉 部分,设置以下参数:
    1. 已启用。选中该复选框可在检测过程中验证传入的机器人流量。
    2. 配置类别。您可以使用 IP 信誉技术处理不同类别下的传入机器人流量。根据配置的类别,您可以删除或重定向机器人流量。单击 添加 以配置恶意机器人类别。
    3. 配置 NetScaler 机器人管理配置文件 IP 信誉绑定页面中,设置以下参数:

      1. Category(类别)。选择 Webroot IP 信誉机器人类别,将客户端请求验证为恶意 IP 地址。

        1. IP_BASED - 此类别检查客户端 IP 地址(IPv4 和 IPv6)是否为恶意地址。
        2. BOTNET - 此类别包括僵尸网络 C&C 频道,以及由机器人主服务器控制的受感染的僵尸计算机。
        3. SPAM_SOURCES - 此类别包括通过代理发送垃圾邮件、异常 SMTP 活动和论坛垃圾邮件活动。
        4. SCANNERS - 此类别包括所有侦测,例如探测器、主机扫描、域扫描和密码暴力破解攻击。
        5. DOS - 此类别包括 DOS、DDOS、异常同步泛洪和异常流量检测。
        6. REPUTATION - 此类别拒绝来自当前已知感染了恶意软件的 IP 地址(IPv4 和 IPv6)的访问。此类别还包括 Webroot 信誉指数平均得分较低的 IP 地址。启用此类别将阻止从已识别为联系恶意软件分发点的来源访问。
        7. PHISHING - 此类别包括托管钓鱼网站和其他类型的欺诈活动的IP地址(IPv4和IPv6),例如广告单击欺诈或游戏欺诈。
        8. PROXY - 此类别包括提供代理服务的 IP 地址(IPv4 和 IPv6)。
        9. NETWORK - 提供代理和匿名服务的IP,包括洋葱路由器又名 TOR 或暗网。
        10. MOBILE_THREATS - 此类别使用对移动设备有害的地址列表检查客户端 IP 地址(IPv4 和 IPv6)。
      2. Category(类别)。选择 Webroot 公有云服务提供商类别以验证客户端请求是公有云 IP 地址。

        1. AWS - 此类别使用来自 AWS 的公有云地址列表来检查客户端 IP 地址。
        2. GCP - 此类别使用来自 Google Cloud Platform 的公有云地址列表来检查客户端 IP 地址。
        3. AZURE - 此类别使用 Azure 中的公有云地址列表检查客户端地址。
        4. ORACLE - 此类别将客户端 IP 地址与来自 Oracle 的公有云地址列表一起检查
        5. IBM - 此类别将客户端 IP 地址与 IBM 的公有云地址列表一起检查。
        6. SALESFORCE - 此类别使用 Salesforce 的公有云地址列表来检查客户端 IP 地址。

        Webroot IP 信誉机器人类别的可能值:IP、BOTNETS、SPAM_SOURCES、SCANNERS、DOS、REPUTATION、PHISHING、PROXY、NETWORK、MOBILE_THREATS。

        Webroot 公有云服务提供商类别的可能值:AWS、GCP、AZURE、ORACLE、IBM、SALESFORCE。

      3. 已启用。选中该复选框以验证 IP 信誉签名检测。
      4. 机器人操作。根据配置的类别,您不能分配任何操作、删除、重定向或缓解措施。
      5. 日志。选中该复选框以存储日志条目。
      6. 日志消息。日志的简要说明。
      7. 评论。关于机器人类别的简要说明。
  5. 单击确定
  6. 单击更新
  7. 单击 Done(完成)。

    配置 IP 信誉

注意

如果您禁用 IP 信誉,请确保停止其下载。完成以下步骤以停止 IP 信誉下载:

  1. 导航到 安全 > NetScaler 机器人管理 > 更改 NetScaler 机器人管理设置
  2. 默认非侵入性配置文件 更改为 BOT_BYPASS

配置机器人速率限制技术

机器人速率限制技术使您能够根据用户的地理位置、客户端 IP 地址、会话、cookie 或配置的资源 (URL) 在特定时间范围内限制机器人流量。 通过配置机器人速率限制技术,您可以确保以下几点:

  • 阻止恶意机器人活动。
  • 减轻 Web 服务器的流量压力。

使用 NetScaler CLI 配置机器人速率限制

在命令提示符下,键入:

bind bot profile <name>... -ratelimit  -type <type> Geolocation -countryCode <countryName> -rate  <positive_integer> -timeSlice <positive_integer> [-action <action> ...] [-limitType ( BURSTY | SMOOTH )] [-condition <expression>] [-enabled ( ON | OFF )]
<!--NeedCopy-->

其中,

*SOURCE_IP -基于客户端 IP 地址的速率限制。

*SESSION -基于配置的cookie名称进行速率限制。

*URL -基于配置的URL的速率限制。

*GEOLOCATION -根据配置的国家名称限制速率。

Possible values - SESSION、SOURCE_IP、URL、GEOLOCATION

示例:

 bind bot profile geo_prof -ratelimit -type Geolocation -countryCode IN -rate 100 -timeSlice 1000 -limitType SMOOTH -condition HTTP.REQ.HEADER("User-Agent").contains("anroid") -action log,drop -enabled on
<!--NeedCopy-->

使用 NetScaler GUI 配置机器人速率限制

完成以下步骤以配置机器人速率限制检测技术:

  1. 导航到安全 > NetScaler 机器人管理配置文件
  2. NetScaler 机器人管理配置文件页面中,选择一个配置文件,然后单击编辑
  3. NetScaler 机器人管理配置文件页面中,转到“配置文件设置”部分,然后单击“速率限制”。
  4. 速率限制 部分中,设置以下参数:

    1. 已启用。选中该复选框可在检测过程中验证传入的机器人流量。
    2. 单击“添加”以配置速率限制绑定。
  5. 在“配置 NetScaler 机器人管理速率限制”页面中,设置以下参数。

    1. 类型-基于以下参数限制机器人流量的速率:

      1. 地理位置-基于用户地理位置的速率限制。
      2. Source_IP - 根据客户端 IP 地址限制流量。
      3. 会话-根据会话或 Cookie 名称限制机器人流量的速率。
      4. URL-根据配置的 URL 限制机器人流量的速率。
    2. 国家/地区 - 选择一个地理位置作为国家或地区。
    3. 速率限制类型-根据以下类型限制流量类型。
      • 突发 - 转发在设定的阈值和指定时间段内的所有请求。
      • 顺滑 - 在指定的时间段内均匀转发请求。
    4. 速率限制连接-允许您为一个条件创建多个规则。
    5. 已启用-选中复选框以验证传入的机器人流量。
    6. 请求阈值-特定时间范围内允许的最大请求数。
    7. 周期-以毫秒为单位的时间范围。
    8. 操作-为所选类别选择机器人操作。
    9. 日志-选中该复选框以存储日志条目。
    10. 日志消息-日志的简要描述。
    11. 评论-关于机器人类别的简要描述。
  6. 单击确定
  7. 单击更新
  8. 单击 Done(完成)。

基于地理位置的机器人速率限制技术

使用 NetScaler GUI 配置设备指纹技术

此检测技术向客户端发送 Java 脚本质询并提取设备信息。根据设备信息,该技术会丢弃或绕过机器人流量。按照步骤配置检测技术。

  1. 导航到安全 > NetScaler 机器人管理配置文件
  2. NetScaler 机器人管理配置文件页面上,选择签名文件并单击“编辑”。
  3. NetScaler 机器人管理配置文件页面上,转到“签名设置”部分,然后单击“设备指纹”。 在设备指纹部分中,设置以下参数:

    1. Enabled - Select to enable the rule.
    2. Configuration - Select one of the following options:
      1. None - Allows the traffic.
      2. Drop - Drops the traffic.
      3. Redirect - Redirects the traffic to error URL.
      4. Mitigation, or CAPTCHA - Validates and allows the traffic.

        Note:

        During session replay attacks using the device fingerprint cookies, requests are dropped even if the device fingerprint configuration is set to Mitigation.

  4. 单击更新
  5. 单击 Done(完成)。

配置设备指纹

为移动 (Android) 应用程序配置设备指纹技术

设备指纹技术通过在对客户端的 HTML 响应中插入 JavaScript 脚本来检测作为机器人的传入流量。浏览器调用 JavaScript 脚本时,它会收集浏览器和客户端属性并向设备发送请求。检查属性以确定流量是机器人还是人类。

该检测技术进一步扩展为在移动(Android)平台上检测机器人。与 Web 应用程序不同,在移动(Android)流量中,基于 JavaScript 脚本的机器人检测不适用。为了检测移动网络中的机器人,该技术使用了与客户端的移动应用程序集成的机器人移动 SDK。SDK 拦截移动流量、收集设备详细信息并将数据发送到设备。在设备方面,检测技术会检查数据并确定连接是来自机器人还是人类。

移动应用程序的设备指纹技术的工作原理

以下步骤说明了机器人检测工作流程,以检测来自移动设备的请求是来自人还是机器人。

  1. 当用户与移动应用程序交互时,机器人移动 SDK 会记录设备的行为。
  2. 客户端向 NetScaler 设备发送请求。
  3. 发送响应时,设备会插入包含会话详细信息和参数的机器人会话 cookie,以收集客户端参数。
  4. 当移动应用程序收到响应时,与移动应用程序集成的 NetScaler 机器人 SDK 会验证响应,检索记录的设备指纹参数,然后将其发送到设备。
  5. 设备端的设备指纹检测技术会验证设备详细信息,并更新机器人会话 cookie(如果它是否为可疑机器人)。
  6. 当 Cookie 过期或设备指纹保护更愿意定期验证和收集设备参数时,整个过程或挑战都会重复进行。

必备条件

要开始使用适用于移动应用程序的 NetScaler 设备指纹检测技术,必须在移动应用程序中下载并安装机器人移动 SDK。

使用 CLI 为移动 (Android) 应用程序配置指纹检测技术

在命令提示符下,键入:

set bot profile <profile name> -deviceFingerprintMobile ( NONE | Android )

示例:

set bot profile profile 1 –deviceFingerprintMobile Android

使用 GUI 为移动 (Android) 应用程序配置设备指纹检测技术

  1. 导航到安全 > NetScaler 机器人管理配置文件
  2. NetScaler 机器人管理配置文件页面上,选择一个文件并单击“编辑”。
  3. NetScaler 机器人管理配置文件页面上,单击“配置文件设置”下的“设备指纹”。
  4. 配置机器人移动设备 SDK 部分中,选择移动客户端类型。
  5. 单击“更新完成”。

移动应用程序的机器人管理设备指纹检测

配置机器人日志表达

如果客户端被识别为机器人,则 NetScaler 机器人管理使您能够捕获其他信息作为日志消息。数据可以是请求 URL 的用户的姓名、源 IP 地址以及用户发送请求的源端口或表达式生成的数据。要执行自定义日志记录,必须在机器人管理配置文件中配置日志表达式。

使用 CLI 在机器人配置文件中绑定日志表达式

在命令提示符下,键入:

bind bot profile <name> (-logExpression -name <string> -expression <expression> [-enabled ( ON | OFF )]) -comment <string>
<!--NeedCopy-->

示例:

bind bot profile profile1 –logExpression exp1 –expression HTTP.REQ.URL –enabled ON -comment "testing log expression"

使用 GUI 将日志表达式绑定到机器人配置文件

  1. 导航到安全 > NetScaler 机器人管理 > 配置文件
  2. NetScaler 机器人管理配置文件页面上,从“配置文件设置”部分选择“机器人日志表达式”。
  3. 在 **机器人日志表达式设置** 部分中,单击 添加
  4. 配置 NetScaler 机器人管理配置文件机器人日志表达式绑定页面中,设置以下参数。
    1. 日志表达式名称。日志表达式的名称。
    2. 表达式。输入日志表达式。
    3. 已启用。启用或禁用日志表达式绑定。
    4. 评论。关于机器人日志表达式绑定的简要说明。
  5. 单击确定然完成

配置机器人陷阱技术

NetScaler 机器人陷阱技术随机或定期在服务器响应中插入陷阱 URL。您还可以创建陷阱 URL 列表并为其添加 URL。如果客户端是人类用户,则该 URL 显示为不可见且无法访问。但是,如果客户端是自动机器人,则可以访问该 URL,并且在访问时,攻击者将被归类为机器人,并且该机器人的任何后续请求都将被阻止。陷阱技术可以有效阻止来自机器人的攻击。

陷阱 URL 是长度可配置的字母数字 URL,它是按可配置的间隔自动生成的。此外,该技术还允许您为访问量最高的网站或经常访问的网站配置陷阱插入 URL。通过这样做,您可以强制为与陷阱插入 URL 匹配的请求插入机器人陷阱 URL。

注意:

尽管机器人陷阱 URL 是自动生成的,但 NetScaler 机器人管理仍然允许您在机器人配置文件中配置自定义陷阱 URL。这样做是为 了增强机器人检测技术,使攻击者更难访问陷阱 URL。

要完成机器人陷阱配置,您必须完成以下步骤。

  1. 启用机器人陷阱 URL
  2. 在机器人资料中配置机器人陷阱 URL
  3. 将机器人陷阱插入 URL 绑定到机器人配置文件
  4. 在机器人设置中配置机器人陷阱 URL 长度和间隔

启用机器人陷阱 URL 保护

在开始之前,必须确保在设备上启用了机器人陷阱 URL 保护。在命令提示符下,键入:

enable ns feature Bot

在机器人资料中配置机器人陷阱 URL

您可以配置机器人陷阱 URL 并在机器人配置文件中指定陷阱操作。
在命令提示符下,键入:

add bot profile <name> -trapURL <string> -trap ( ON | OFF ) -trapAction <trapAction>

其中,

  • trapURL 是机器人防护用作陷阱 URL 的 URL。最大长度:127

  • trap 是启用机器人陷阱检测。可能的值:ON、OFF。默认值:OFF

  • trapAction 是基于机器人检测而采取的操作。可能的值:NONE、LOG、DROP、REDIRECT、RESET、MITIGATION。默认值:NONE

示例:

add bot profile profile1 -trapURL www.bottrap1.com trap ON -trapAction RESET

将机器人陷阱插入 URL 绑定到机器人配置文件

您可以配置机器人陷阱插入 URL 并将其绑定到机器人配置文件。 在命令提示符下,键入:

bind bot profile <profile_name> trapInsertionURL –url <url> -enabled ON|OFF -comment <comment>

其中,

URL - 插入机器人陷阱 URL 的请求 URL 正则表达式模式。最大长度:127

示例:

bind bot profile profile1 trapInsertionURL –url www.example.com –enabled ON –comment insert a trap URL randomly

在机器人设置中配置机器人陷阱 URL 长度和间隔

您可以配置机器人陷阱 URL 长度,也可以设置自动生成机器人陷阱 URL 的间隔。 在命令提示符下,键入:

set bot settings -trapURLAutoGenerate ( ON | OFF ) –trapURLInterval <positive_integer> -trapURLLength <positive_integer>

其中,

  • trapURLInterval 是机器人陷阱 URL 更新后的时间(以秒为单位)。默认值:3600,最小值:300,最大值:86400

  • trapURLLength。自动生成的机器人陷阱 URL 的长度。默认值:32,最小值:10,最大值:255

示例:

set bot settings -trapURLAutoGenerate ON –trapURLInterval 300 -trapURLLength 60

使用 GUI 配置机器人陷阱 URL

  1. 导航到安全 > NetScaler 机器人管理 > 配置文件
  2. NetScaler 机器人管理配置文件 页面中,单击“编辑”以配置机器人陷阱 URL 技术。
  3. 在“创建 NetScaler 机器人管理配置文件”页面中,在“常规”部分输入机器人陷阱 URL。
  4. NetScaler 机器人管理配置文件页面中,从“配置文件设置”中单击“机器人陷阱”。
  5. 机器人陷阱部分中,设置以下参数。

    1. 已启用。选中复选框以启用机器人陷阱检测
    2. 说明。关于 URL 的简要说明。
    3. 在配置操作部分中,设置以下参数。
    1.  Action. Action to be taken for bot detected by bot trap access.
    1.  Log. Enable or disable logging for bot trap binding.
    
  6. 配置陷阱插入 URL 部分中,单击 添加
  7. 在“配置 NetScaler 机器人管理配置文件机器人陷阱绑定”页面中,设置以下参数。

    1. 陷阱 URL。键入要确认作为机器人陷阱插入 URL 的 URL。
    2. 已启用。启用或禁用机器人陷阱插入 URL。
    3. 评论。关于陷阱插入 URL 的简要说明。
  8. 单击“更新完成”。

配置机器人陷阱 URL 设置

要配置机器人陷阱 URL 设置,请完成以下步骤:

  1. 导航到安全性 > NetScaler 机器人管理
  2. 在详细信息窗格的“设置”下,单击“更改 NetScaler 机器人管理设置”。
  3. 配置 NetScaler 机器人管理设置中,设置以下参数。

    1. 陷阱 URL 间隔。机器人陷阱 URL 更新之后的时间(以秒为单位)。
    2. 陷阱 URL 长度。自动生成的机器人陷阱 URL 的长度。
  4. 单击 确定完成

机器人检测客户端 IP 策略表达式

NetScaler 机器人管理现在允许您配置高级策略表达式,从 HTTP 请求标头、HTTP 请求正文、HTTP 请求 URL 或使用高级策略表达式提取客户端 IP 地址。机器人检测机制(例如 TPS、机器人陷阱或速率限制)使用提取的值来检测传入的请求是否为机器人。

注意:

如果您尚未配置客户端 IP 表达式,则默认或现有源客户端 IP 地址将用于机器人检测。如果配置了表达式,则评估结果将提供可用于机器人检测的客户端 IP 地址。

如果传入请求是通过代理服务器发出并且标头中存在客户端 IP 地址,则可以配置并使用客户端 IP 表达式来提取实际的客户端 IP 地址。通过添加此配置,设备可以使用机器人检测机制为软件客户端和服务器提供更高的安全性。

使用 CLI 在机器人配置文件中配置客户端 IP 策略表达式

在命令提示符下,键入:

add bot profile <name> [-clientIPExpression <expression>]
<!--NeedCopy-->

示例:

add bot profile profile1 –clientIPExpression 'HTTP.REQ.HEADER("X-Forwarded-For") ALT CLIENT.IP.SRC.TYPECAST_TEXT_T'

add bot profile profile1 –clientIPExpression 'HTTP.REQ.HEADER("X-Forwarded-For") ALT CLIENT.IPv6.SRC.TYPECAST_TEXT_T'

使用 GUI 在机器人配置文件中配置客户端 IP 策略表达式

  1. 导航到安全 > NetScaler 机器人管理 > 配置文件
  2. 在详细信息窗格中,单击“添加”。
  3. 在“创建 NetScaler 机器人管理配置文件”页面中,设置客户端 IP 表达式。
  4. 单击创建关闭

    使用机器人配置文件中的策略表达式进行客户端 IP 地址

为 IP 信誉和设备指纹检测配置 CAPTCHA

CAPTCHA 是一个首字母缩写词,代表“完全自动化的公共图灵测试,将计算机和人类区分开来”。CAPTCHA 旨在测试传入流量是来自人类用户还是自动机器人。CAPTCHA 有助于阻止导致 Web 应用程序安全违规的自动机器人。在 NetScaler 中,CAPTCHA 使用质询-响应模块来识别传入的流量是否来自人类用户而不是自动机器人。

配置机器人静态签名

此检测技术使您能够从浏览器详细信息中识别用户代理信息。根据用户代理信息,该机器人被标识为坏机器人或好机器人,然后您将机器人操作分配给它。

执行以下步骤来配置静态签名技术:

  1. 在导航窗格上,展开“安全”>“NetScaler 机器人管理”“签名”。
  2. NetScaler 机器人管理签名页面上,选择签名文件并单击“编辑”。
  3. NetScaler 机器人管理签名页面上,转到“签名设置”部分,然后单击“机器人签名”。
  4. 机器人签名 部分中,设置以下参数:
    1. 配置 静态签名。本节有机器人静态签名记录的列表。您可以选择一条记录,然后单击 编辑 以为其分配机器人操作。
    2. 单击确定
  5. 单击 更新签名
  6. 单击 Done(完成)。

机器人静态签名

机器人静态签名描述

NetScaler 机器人管理可保护您的 Web 应用程序免受机器人。机器人静态签名有助于根据传入请求中的用户代理等请求参数识别好机器人和坏机器人。
文件中的签名列表非常庞大,还会添加新的规则,并定期删除陈旧的规则。作为管理员,您可能希望在某个类别下搜索特定签名或签名列表。为了轻松过滤签名,机器人签名页面提供了增强的搜索功能。使用搜索功能,您可以查找签名规则并根据一个或多个签名参数(如操作、签名 ID、开发人员和签名名称)配置其属性。

操作-选择您希望为特定签名规则类别配置的机器人操作。以下是可用的操作类型:

  • 启用所选-启用所有选定的签名规则。
  • 禁用选定的-禁用所有选定的签名规则。
  • 删除选定内容-对所有选定的签名规则选择“删除”操作。
  • 重定向选定项-将“重定向”操作应用于所有选定的签名规则。
  • 重置选定项-将“重置”操作应用于所有选定的签名规则。
  • 记录选定内容-将“日志”操作应用于所有选定的签名规则。
  • 移除删除选定内容-取消对所有选定签名规则的删除操作。
  • 移除选定重定向-取消对所有选定签名规则的重定向操作。
  • 移除重置选定内容-取消对所有选定签名规则的重置操作。
  • 移除选定日志-取消对所有选定签名规则的日志操作。

类别-选择一个类别以相应地筛选签名规则。以下是可用于对签名规则进行排序的类别列表。

  • 操作-根据机器人操作进行排序。
  • 类别-根据机器人类别进行排序。
  • 开发者-根据主办公司发布商进行排序。
  • 已启用-根据启用的签名规则进行排序。
  • ID-根据签名规则 ID 进行排序。
  • 日志-根据启用了日志记录的签名规则进行排序。
  • 名称-根据签名规则名称进行排序。
  • 类型-根据签名类型进行排序。
  • 版本-根据签名规则版本进行排序。

使用 NetScaler GUI 根据操作和类别类型搜索机器人静态签名规则

  1. 导航到安全性 > NetScaler 机器人管理 > 签名
  2. 在详细信息页面中,单击 添加
  3. NetScaler 机器人管理签名页面中,单击“静态签名”部分中的编辑。
  4. 配置静态签名 部分,从下拉列表中选择签名操作。
  5. 使用搜索功能选择一个类别并相应地筛选规则。
  6. 单击更新

使用 NetScaler GUI 编辑机器人静态签名规则属性

  1. 导航到安全性 > NetScaler 机器人管理 > 签名
  2. 在详细信息页面中,单击 添加
  3. NetScaler 机器人管理签名页面中,单击“静态签名”部分中的编辑。
  4. 配置静态签名 部分,从下拉列表中选择一个操作。
  5. 使用搜索功能选择一个类别并相应地筛选规则。
  6. 从静态签名列表中,选择一个签名以修改其属性。
  7. 单击确定进行确认。

CAPTCHA 在 NetScaler 机器人管理中的工作原理

在 NetScaler 机器人管理中,CAPTCHA 验证配置为在评估机器人策略后运行的策略操作。CAPTCHA 操作仅适用于 IP 信誉和设备指纹检测技术。以下是了解 CAPTCHA 如何工作的步骤:

  1. 如果在 IP 信誉或设备指纹机器人检测期间观察到安全违规,ADC 设备将发送 CAPTCHA 质询。
  2. 客户端发送 CAPTCHA 响应。
  3. 设备会验证 CAPTCHA 响应,如果验证码有效,则允许该请求并将其转发到后端服务器。
  4. 如果 CATCHA 响应无效,设备将发送新的 CAPTCHA 质询,直到达到最大尝试次数。
  5. 如果即使在最大尝试次数之后,CAPTCHA 响应仍然无效,则设备会丢弃或将请求重定向到配置的错误 URL。
  6. 如果您已配置日志操作,则设备会将请求详细信息存储在 ns.log 文件中。

使用 NetScaler GUI 配置 CAPTCHA 设置

机器人管理 CAPTCHA 操作仅支持 IP 信誉和设备指纹检测技术。完成以下步骤以配置 CAPTCHA 设置。

  1. 导航到安全 > NetScaler 机器人管理和配置文件
  2. NetScaler 机器人管理配置文件页面上,选择一个配置文件,然后单击编辑
  3. NetScaler 机器人管理配置文件页面上,转到“配置文件设置”部分,然后单击“CAPTCHA”。
  4. CAPTCHA 设置 部分中,单击 添加以将 CAPTCHA 设置配置 到配置文件:
  5. 在“配置 NetScaler 机器人管理 CAPTCHA”页面中,设置以下参数。
    1. URL。在 IP 信誉和设备指纹检测技术期间应用 CAPTCHA 操作的机器人 URL。

    2. 已启用。设置此选项可启用 CAPTCHA 支持。
    3. 宽限时间。直到收到当前有效的验证码响应后没有发送新的 CAPTCHA 质询为止。
    4. 等待时间。ADC 设备等到客户端发送 CAPTCHA 响应所花费的时间。
    5. 静音期间。发送错误 CAPTCHA 响应的客户端必须等到允许下一次尝试之前的持续时间。在此静音期间,ADC 设备不允许任何请求。射程:60—900 秒,建议:300 秒
    6. 请求长度限制。向客户端发送 CAPTCHA 质询的请求的长度。如果长度大于阈值,则会丢弃请求。默认值为 10—3000 字节。
    7. 重试尝试次数。允许客户端重试解决 CAPTCHA 挑战的次数。射程:1—10,推荐:5。
    8. 如果客户端未通过 CAPTCHA 验证,则不会采取任何操作/丢弃/重定向操作。
    9. 日志。设置此选项可在响应 CAPTCHA 失败时存储来自客户端的请求信息。数据存储在 ns.log 文件中。
    10. 评论。关于 CAPTCHA 配置的简要说明。
  6. 单击 确定完成
  7. 导航到“安全”>“NetScaler 机器人管理”“签名”。
  8. NetScaler 机器人管理签名页面上,选择签名文件并单击“编辑”。
  9. NetScaler 机器人管理签名页面上,转到“签名设置”部分,然后单击“机器人签名”。
  10. 机器人签名 部分中,设置以下参数:

  11. 配置 静态签名。选择一个机器人静态签名记录,然后单击编辑为其分配机器人操作。
  12. 单击确定
  13. 单击 更新签名
  14. 单击 Done(完成)。

自动更新机器人签名

机器人静态签名技术使用签名查找表,其中包含好的机器人和坏机器人的列表。机器人根据用户代理字符串和域名进行分类。如果传入机器人流量中的用户代理字符串和域名与查找表中的值匹配,则会应用配置的机器人操作。 机器人签名更新托管在 AWS 云上,签名查找表与 AWS 数据库通信以进行签名更新。自动签名更新计划程序每 1 小时运行一次,以检查 AWS 数据库 并更新 NetScaler 设备中的签名表。

要配置的签名自动更新 URL 是, https://nsbotsignatures.s3.amazonaws.com/BotSignatureMapping.json

注意:

您还可以配置代理服务器,并通过代理定期将签名从 AWS 云更新到设备。对于代理配置,您必须在机器人设置中设置代理 IP 地址和端口地址。

机器人签名自动更新如何工作

下图显示了如何从 AWS 云中检索机器人签名、在 NetScaler 上更新以及如何在 NetScaler 控制台上查看机器人签名以获取签名更新摘要。

计算机人签名自动更新

机器人签名自动更新调度程序执行以下操作:

  1. 从 AWS URI 检索映射文件。
  2. 使用 ADC 设备中的现有签名检查映射文件中的最新签名。
  3. 从 AWS 下载新签名并验证签名的完整性。
  4. 使用机器人签名文件中的新签名更新现有的机器人签名。
  5. 生成 SNMP 警报并将签名更新摘要发送到 NetScaler 控制台。

配置机器人签名自动更新

要配置机器人签名自动更新,请完成以下步骤:

启用机器人签名自动更新

您必须在 ADC 设备的机器人设置中启用自动更新选项。 在命令提示符下,键入:

set bot settings –signatureAutoUpdate ON

配置代理服务器设置(可选)

如果要通过代理服务器访问 AWS 签名数据库,则必须配置代理服务器和端口。 set bot settings –proxyserver –proxyport

示例:

set bot settings –proxy server 1.1.1.1 –proxyport 1356

使用 NetScaler GUI 配置机器人签名自动更新

要配置机器人签名自动更新,请完成以下步骤:

  1. 导航到安全性 > NetScaler 机器人管理
  2. 在详细信息窗格的“设置”下,单击“更改 NetScaler 机器人管理设置”。
  3. 在“配置 NetScaler 机器人管理设置”中,选中“自动更新签名”复选框。
  4. 单击“确定”关闭

创建机器人管理档案

机器人配置文件是用于检测机器人类型的机器人管理设置的集合。在配置文件中,您可以确定 Web App Firewall 如何将其每个过滤器(或检查)应用于网站的机器人流量以及来自这些过滤器的响应。

完成以下步骤来配置机器人配置文件:

  1. 导航到安全 > NetScaler 机器人管理 > 配置文件
  2. 在详细信息窗格中,单击“添加”。
  3. 在“创建 NetScaler 机器人管理配置文件”页面中,设置以下参数。

    1. 名称。机器人配置文件名称。
    2. 签名。机器人签名文件的名称。
    3. 错误的 URL。用于重定向的 URL。
    4. 评论。关于配置文件的简要说明。
  4. 单击创建关闭

创建机器人策略

机器人策略控制进入机器人管理系统的流量,还控制发送到审核日志服务器的机器人日志。按照过程配置机器人策略。

  1. 导航到安全性 > NetScaler 机器人管理 > 机器人策略
  2. 在详细信息窗格中,单击“添加”。
  3. 创建 NetScaler 机器人管理策略页面中,设置以下参数。
    1. 名称。机器人策略的名称。
    2. 表达式。直接在文本区域中键入策略表达式或规则。
    3. 机器人配置文件。机器人配置文件以应用机器人策略。
    4. 未定义的操作。选择您希望分配的操作。
    5. 评论。有关该策略的简要说明。
    6. 记录操作。审核记录机器人流量的日志消息操作。有关审核日志操作的更多信息,请参阅审核日志记录主题。
  4. 单击创建关闭

每秒机器人交易量 (TPS)

如果每秒请求数 (RPS) 和 RPS 的增加百分比超过配置的阈值,则每秒事务数 (TPS) 机器人技术将传入流量检测为自动程序。该检测技术可保护您的 Web 应用程序免受可能导致 Web 抓取活动、暴力强制登录和其他恶意攻击的自动漫程序的侵害。

注意:

只有在配置了两个参数并且两个值都超过阈值限制时,机器人技术才会将传入流量检测为机器人。 让我们考虑一种情况,在这种情况下,设备会收到来自特定 URL 的许多请求,并且您希望 NetScaler 机器人管理部门检测是否存在机器人攻击。TPS 检测技术会检查 1 秒内来自 URL 的请求数(配置值)以及 30 分钟内收到的请求数的增加百分比(配置值)。如果这些值超过阈值限制,则流量将被视为机器人,设备将运行配置的操作。

配置机器人每秒事务数 (TPS) 技术

要配置 TPS,必须完成以下步骤:

  1. 启用机器人 TPS
  2. 将 TPS 设置绑定到机器人管理配置文件

将 TPS 设置绑定到机器人管理配置文件

启用机器人 TPS 功能后,必须将 TPS 设置绑定到机器人管理配置文件。

在命令提示符下,键入:

bind bot profile <name>… (-tps [-type ( SourceIP | GeoLocation | RequestURL | Host )] [-threshold <positive_integer>] [-percentage <positive_integer>] [-action ( none | log | drop | redirect | reset | mitigation )] [-logMessage <string>])

示例:

bind bot profile profile1 -tps -type RequestURL -threshold 1 -percentage 100000 -action drop -logMessage log

启用每秒机器人交易 (TPS)

在开始之前,必须确保在设备上启用了机器人 TPS 功能。在命令提示符下,键入:

set bot profile profile1 –enableTPS ON

使用 NetScaler GUI 配置每秒机器人事务 (TPS)

完成以下步骤以配置每秒机器人事务数:

  1. 导航到安全 > NetScaler 机器人管理 > 配置文件
  2. NetScaler 机器人管理配置文件页面中,选择一个配置文件,然后单击编辑
  3. 在“创建 NetScaler 机器人管理配置文件”页面中,单击“签名设置”部分下的 TPS
  4. TPS 部分中,启用该功能,然后单击 添加
  5. 配置 NetScaler 机器人管理配置文件 TPS 绑定页面中,设置以下参数。

    1. 类型-选择以下任一类型:

      SOURCE_IP — 基于客户端 IP 地址的 TPS。

      GEOLOCATION — 基于客户的地理位置的 TPS。

      HOST - 基于转发到特定后端服务器 IP 地址的客户端请求的 TPS。

      URL — 基于来自特定 URL 的客户端请求的 TPS。

    2. 固定阈值-在 1 秒的时间间隔内,TPS 输入类型允许的最大请求数。

    3. 百分比阈值-来自 TPS 输入类型的请求在 30 分钟时间间隔内增加的最大百分比。

    4. 操作-对被 TPS 绑定检测到的机器人采取的操作。

    5. 日志-启用或禁用 TPS 绑定的日志记录。

    6. 日志消息。TPS 绑定检测到的要记录的机器人的消息。最大长度:255。

    7. 注释-关于 TPS 配置的简要描述。最大长度:255

  6. 单击 确定 ,然后单击 关闭

基于鼠标和键盘动态学的机器人检测

为了检测机器人并缓解 Web 抓取异常情况,NetScaler 机器人管理使用了基于鼠标和键盘行为的增强型机器人检测技术。与需要直接人工互动的传统机器人技术(例如,CAPTCHA 验证)不同,增强的技术被动监视鼠标和键盘动态。然后,NetScaler 设备收集实时用户数据并分析人与机器人之间的行为。

与现有机器人检测机制相比,使用鼠标和键盘动态进行被动机器人检测具有以下优点

  • 在整个用户会话期间提供持续监视,并消除单个检查点。
  • 不需要人工互动,对用户来说是透明的。

使用鼠标和键盘动态学检测机器人的工作

使用键盘和鼠标动态学的机器人检测技术由两个组件组成:网页记录器和机器人探测器。网页记录器是一种 JavaScript,用于记录用户在网页上执行任务(例如,填写注册表格)时的键盘和鼠标移动情况。然后,记录器将数据批量发送到 NetScaler 设备。然后,设备将数据存储为 KM 记录,并将其发送到 NetScaler 控制台服务器上的机器人检测器,后者分析用户是人类还是机器人。

以下步骤解释了组件之间的交互方式:

  1. NetScaler 管理员通过 ADM 样书、CLI 或 NITRO 或任何其他方法配置策略表达式。
  2. 当管理员在设备上启用该功能时,URL 将在机器人配置文件中设置。
  3. 当客户端发送请求时,NetScaler 设备将跟踪会话和会话中的所有请求。
  4. 如果请求与机器人配置文件中配置的表达式匹配,则设备会在响应中插入 JavaScript(网页记录器)。
  5. 然后,JavaScript 收集所有键盘、鼠标活动,并以 POST URL(瞬态)发送 KM 数据。
  6. NetScaler 设备存储数据并在会话结束时将其发送到 NetScaler 控制台服务器。一旦设备收到 POST 请求的完整数据,该数据就会发送到 ADM 服务器。
  7. NetScaler 控制台服务分析数据,根据分析,结果可在 NetScaler 控制台服务 GUI 上找到。

JavaScript 记录器记录以下鼠标和键盘移动:

  • 键盘事件 — 所有活动
  • 鼠标事件-鼠标移动、向上鼠标、鼠标向下
  • 剪贴板事件-粘贴
  • 自定义事件-自动填充、自动填充取消
  • 每个事件的时间戳

使用鼠标和键盘动态设置机器人检测

NetScaler 机器人管理配置包括启用或禁用基于键盘和鼠标的检测功能,以及在机器人配置文件中配置 JavaScript URL。 完成以下步骤以使用鼠标和键盘动态配置机器人检测:

  1. 启用基于键盘和鼠标的检测
  2. 配置表达式以决定何时可以在 HTTP 响应中注入 JavaScript

启用基于键盘鼠标的机器人检测

在开始配置之前,请确保已在设备上启用了基于键盘和鼠标的机器人检测功能。

在命令提示符下,键入:

add bot profile <name> -KMDetection ( ON | OFF )
<!--NeedCopy-->

示例:

add bot profile profile1 –KMDetection ON

为 JavaScript 插入配置机器人表达式

配置机器人表达式以评估流量并插入 JavaScript。只有在表达式被评估为 true 时,才会插入 JavaScript。

在命令提示符下,键入:

bind bot profile <name> -KMDetectionExpr -name <string> -expression <expression> -enabled ( ON | OFF ) –comment <string>
<!--NeedCopy-->

示例:

bind bot profile profile1 -KMDetectionExpr -name test -expression http.req.url.startswith("/testsite") -enabled ON

为基于键盘鼠标的机器人检测配置 HTTP 响应中插入的 JavaScript 文件名

为了收集用户操作详细信息,设备会在 HTTP 响应中发送 JavaScript 文件名。JavaScript 文件收集 KM 记录中的所有数据并将其发送到设备。

在命令提示符下,键入:

set bot profile profile1 – KMJavaScriptName <string>
<!--NeedCopy-->

示例:

set bot profile profile1 –KMJavaScriptName script1

配置行为生物识别尺寸

您可以配置可作为 KM 记录发送到设备并由 ADM 服务器处理的鼠标和键盘行为数据的最大大小。

在命令提示符下,键入:

set bot profile profile1 -KMEventsPostBodyLimit <positive_integer>
<!--NeedCopy-->

示例:

set bot profile profile1 – KMEventsPostBodyLimit 25

在您将 NetScaler 设备配置为配置 JavaScript 并收集键盘和鼠标行为生物识别信息后,该设备会将数据发送到 NetScaler 控制台服务器。有关 NetScaler 控制台服务器如何通过行为生物识别技术检测机器人的详细信息,请参阅机器人违规主题。

使用 GUI 配置键盘和鼠标机器人表达式设置

  1. 导航到安全 > NetScaler 机器人管理和配置文件
  2. NetScaler 机器人管理配置文件页面上,选择一个配置文件,然后单击编辑
  3. NetScaler 机器人管理配置文件页面上,单击“编辑”图标。
  4. 基本设置中,在基于键盘和鼠标的机器人检测部分下,设置以下参数:
    1. 启用检测。选中该复选框可检测基于机器人的键盘和鼠标动态行为。
    2. 事件发布身体限制。浏览器发送的要由 NetScaler 设备处理的键盘和鼠标动态数据的大小。
  5. 单击确定

  6. NetScaler 机器人管理配置文件页面上,转到配置文件设置部分,然后单击基于键盘和鼠标的机器人表达式设置
  7. 基于键盘和鼠标的机器人表达式设置 部分中,单击 添加
  8. 配置 NetScaler 机器人管理配置文件机器人键盘和鼠标表达式绑定页面中,设置以下参数:
    1. 表达式名称。用于检测键盘和鼠标动态的机器人策略表达式的名称。
    2. 表达式。机器人策略表达式。
    3. 已启用。选中该复选框可启用键盘和机器人键盘和鼠标表达式绑定。
    4. 评论。关于机器人策略表达式及其与机器人配置文件的绑定的简要描述。
    5. 单击“确定”关闭
  9. 基于键盘和鼠标的机器人表达式设置 部分中,单击 更新

机器人流量的详细日志记录

当传入请求被标识为机器人时,NetScaler 设备会记录更多 HTTP 标头详细信息以进行监视和故障排除。机器人详细日志记录功能类似于 Web App Firewall 模块中的详细日志记录功能。

考虑来自客户端的传入流量。如果客户端被识别为机器人,NetScaler 设备将使用详细的日志记录功能来记录完整的 HTTP 标头信息,例如域地址、URL、用户代理标头、cookie 标头。然后将日志详细信息发送到 ADM 服务器,用于监视目的并对其进行故障排除。详细日志消息未存储在“ns.log”文件中。

使用 CLI 配置机器人详细日志记录

要将详细的 HTTP 标头信息捕获为日志,您可以在机器人配置文件中配置详细日志记录参数。在命令提示符下,键入:

set bot profile <name> [-verboseLogLevel ( NONE | HTTP_FULL_HEADER ) ]
<!--NeedCopy-->

示例:

set bot profile p1 –verboseLogLevel HTTP_FULL_HEADER

使用 NetScaler GUI 配置机器人详细日志记录

按照步骤在机器人配置文件中配置详细日志级别。

  1. 在导航窗格上,导航到“安全”>“NetScaler 机器人管理”。
  2. NetScaler 机器人管理配置文件页面中,单击“添加”。
  3. 在“创建 NetScaler 机器人管理配置文件”页面中,选择详细日志级别作为 HTTP 完整标题
  4. 单击 确定完成

为欺骗机器人请求配置操作

攻击者可能会尝试冒充优秀的机器人并向您的应用程序服务器发送请求。此类机器人使用机器人签名被识别为欺骗机器人。针对欺骗机器人配置以下操作以保护您的应用程序服务器:

  • DROP
  • NONE(无)
  • REDIRECT
  • RESET

使用 CLI 为欺骗机器人请求配置操作

运行以下命令为欺骗机器人请求配置操作:

set bot profile <bot-profile-name> -spoofedReqAction <action> LOG
<!--NeedCopy-->

示例

set bot profile bot_profile -spoofedReqAction DROP LOG
<!--NeedCopy-->

在此示例中,来自欺骗机器人的请求被删除并记录在 NetScaler 设备中。

提示

要记录来自欺骗机器人的事件,请在命令中指定 LOG

使用 GUI 为欺骗机器人请求配置操作

按照以下步骤为欺骗机器人请求配置操作:

  1. 导航到安全性 > NetScaler 机器人管理

  2. NetScaler 机器人管理配置文件页面中,单击“添加”。

  3. 从“欺骗请求操作”列表中选择一项操作

  4. 选择“记录欺骗请求”。

    此操作会记录来自欺骗机器人的事件。

  5. 单击创建

NetScaler 机器人管理删除的请求标头

许多与缓存相关的请求标头都会被删除,以查看会话上下文中的每个请求。同样,如果请求包含允许网络服务器发送压缩响应的编码标头,则机器人管理层会删除此标头,以便机器人管理层检查未压缩的服务器响应中的内容以插入 JavaScript。

机器人管理会删除以下请求标头:

范围-用于从失败或部分文件传输中恢复。

If-Range-允许客户端在缓存中已包含部分对象时检索部分对象(有条件获取)。

If-Modified-Since-如果自此字段中指定的时间起未修改请求的对象,则不会从服务器返回实体。您会得到一个HTTP 304未修改的错误。

If-None-Match-允许以最小的开销高效更新缓存的信息。

接受编码-允许对特定对象(例如 gzip)使用哪些编码方法。