ADC

配置机器人配置文件设置

您可以在机器人配置文件中配置以下设置:

  • 配置机器人速率限制技术

  • 配置机器人日志表达

  • 配置机器人陷阱技术

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

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

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

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

配置机器人速率限制技术

机器人速率限制技术使您能够根据用户的地理位置、客户端 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. 操作-选择以下选项之一:
      1. 无-允许请求。
      2. 删除-删除请求。
      3. 重定向-将请求重定向到指定的 URL。
      4. 重置-阻止请求并重置连接。
      5. 以状态响应请求过多-当传入的请求量很高时,以错误消息进行响应。
    9. 日志-选择存储日志条目。
    10. 日志消息-日志的简要描述。
    11. 评论-关于机器人类别的简要描述。
  6. 单击确定
  7. 单击更新
  8. 单击 Done(完成)。

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

配置机器人日志表达

如果客户端被识别为机器人,则 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. 单击确定然完成

机器人检测客户端 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. 单击创建关闭

配置机器人陷阱技术

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.  1.  在 **配置陷阱插入 URL** 部分中,单击 **添加**。  1.  在“**配置 NetScaler 机器人管理配置文件机器人陷阱绑定**”页面中,设置以下参数。
    
    1.  URL. Type the URL that you want to confirm as the bot trap insertion URL.
    1.  Enabled. Enable or disable bot trap insertion URL.
    1.  Comment. A brief description about the trap insertion URL.
    1. Click **OK**
    
  6. 单击“更新完成”。

配置机器人陷阱 URL 设置

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

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

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

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

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

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

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

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

  1. 当用户与移动应用程序交互时,机器人移动 SDK 会记录设备的行为。
  2. 客户端向 NetScaler 设备发送请求。
  3. 发送响应时,设备会插入包含会话详细信息和参数的机器人会话 cookie,以收集客户端参数。
  4. 当移动应用收到响应时,与移动应用集成的 NetScaler bot 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 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 - Drop the traffic.
      3. Redirect - Redirects the traffic to an 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(完成)。

配置设备指纹

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

为了检测机器人并缓解 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. 基于键盘和鼠标的机器人检测 部分中,设置以下参数:
    1. 启用检测。选中该复选框可检测基于机器人的键盘和鼠标动态行为。
    2. 事件发布身体限制。浏览器发送的要由 NetScaler 设备处理的键盘和鼠标动态数据的大小。
  4. 单击确定

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

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

当传入请求被标识为机器人时,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

注意:

系统会进一步评估被确定为良好机器人的请求是否存在欺骗行为。缺少 PTR 记录或 RDNS 错误的客户端 IP 地址被视为欺骗请求。

使用 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. 单击创建