Citrix ADC

JSON 命令注入保护检查

JSON 命令注入检查将检查传入的 JSON 流量是否存在破坏系统安全性或修改系统的未经授权的命令。检查流量时,如果检测到任何恶意命令,设备将阻止请求或执行配置的操作。

在命令注入攻击中,攻击者旨在在 Citrix ADC 操作系统或后端服务器上运行未经授权的命令。为此,攻击者使用易受攻击的应用程序注入操作系统命令。如果设备只是在没有任何安全检查的情况下转发请求,则后端应用程序容易受到注入攻击。因此,配置安全检查非常重要,因此 Citrix ADC 设备可以通过阻止不安全的数据来保护 Web 应用程序。

命令注入保护的工作原理

  1. 对于传入的 JSON 请求,WAF 会检查流量中的关键字或特殊字符。如果 JSON 请求没有与任何被拒绝的关键字或特殊字符匹配的模式,则允许该请求。否则,将根据配置的操作阻止、删除或重定向请求。
  2. 如果您希望从列表中免除关键字或特殊字符,则可以创建放宽规则以在特定条件下绕过安全检查。
  3. 您可以启用日志记录以生成日志消息。您可以监视日志以确定对合法请求的响应是否被阻止。日志消息数量的大幅增加可能表明尝试发起攻击。
  4. 您还可以启用统计功能,以收集有关违规和日志的统计数据。统计数据计数器出现意外激增可能表明您的应用程序受到攻击。如果合法请求被阻止,则可能需要重新访问配置以查看是否必须配置新的放宽规则或修改现有的放宽规则。

用于命令注入检查的关键字和特殊字符被拒绝

为了检测和阻止 JSON 命令注入攻击,设备在默认签名文件中定义了一组模式(关键字和特殊字符)。以下是命令注入检测期间阻止的关键字列表。

<commandinjection>
      <keyword type="LITERAL" builtin="ON">7z</keyword>
      <keyword type="LITERAL" builtin="ON">7za</keyword>
      <keyword type="LITERAL" builtin="ON">7zr</keyword>
…
</commandinjection>

<!--NeedCopy-->

在签名文件中定义的特殊字符包括: | ; & $ > < ' \ ! >> #

使用 CLI 配置 JSON 命令注入检查

在命令行界面中,您可以使用 set appfw 配置文件命令或添加 appfw 配置文件命令来配置 JSON 命令注入设置。 您可以启用阻止、记录和统计操作。还必须设置要在有效负载中检测的命令注入类型,例如关键字和字符串字符。

在命令提示符下,键入:

set appfw profile <profile-name> –cmdInjectionAction <action-name> -CMDInjectionType <CMDInjectionType>]

注意 : 默认情况下,命令注入操作设置为 “块日志统计信息”。此外,默认命令注入类型设置为CmdSplCharANDKeyWord。升级后,现有 Web 应用程序防火墙配置文件的操作设置为 “无”。

示例:

set appfw profile profile1 -JSONCMDInjectionAction block -JSONCMDInjectionType CmdSplChar

其中,可用的 JSON 命令注入操作是:

无-禁用命令注入保护。 日志-记录安全检查的命令注入违规。 Block-阻止违反命令注入安全检查的流量。 统计信息-生成命令注入安全违规的统计信息。

其中,可用的 JSON 命令注入类型是:

Cmd SplChar -检查特殊字符 CmdKeyWord -检查命令注入关键字 CmdSplCharANDKeyWord -这是默认操作。该操作会检查特殊字符和命令注入。仅当两者都存在时才有关键字和块。 CmdSplCharORKeyWord -检查特殊字符和命令注入关键字和阻塞(如果找到其中任何一个)。

为 JSON 命令注入保护检查配置放宽规则

如果应用程序要求您绕过有效负载中特定元素或属性的 JSON 命令注入检查,则可以配置放宽规则。

JSON 命令注入检查放宽规则的语法如下。

bind appfw profile <profile name> –JSONCMDURL <expression> -comment <string> -isAutoDeployed ( AUTODEPLOYED | NOTAUTODEPLOYED ) -state ( ENABLED | DISABLED )

标题中正则表达式的放松规则示例

bind appfw profile abc_json -jsoncmDURL http://1.1.1.1/hello.html

鉴于,以下内容放宽来自 1.1.1.1 上托管的所有 URL 的请求:

bind appfw profile abc_json -jsoncmDURL http://1.1.1.1/*”

要删除放松,请使用 “取消绑定”。

unbind appfw profile abc_json -jsoncmDURL “ http://1.1.1.1/*”

使用 GUI 配置 JSON 命令注入检查

完成以下步骤以配置 JSON 命令注入检查。

  1. 导航到安全 > Citrix Web App Firewall 和配置文件
  2. 配置文件页面上,选择一个配置文件,然后单击编辑
  3. Citrix Web App Firewall 配置文件页面上,转到“高级设置”部分,然后单击“安全检查”。

访问安全设置上的 JSON 安全检查

  1. 安全检查 部分,选择 JSON 命令注入 ,然后单击 操作 设置。
  2. JSON 命令注入设置 页面中,设置以下参数

    1. 操作。选择要执行 JSON 命令注入安全检查的一个或多个操作。
    2. 检查请求包含。选择命令注入模式以检查传入请求是否具有该模式。
  3. 单击 OK(确定)。

配置 JSON 命令注入检查设置

查看命令注入流量和违规统计信息

Citrix Web App Firewall 统计 信息”页以表格或图形格式显示安全通信和安全违规详细信息。

使用命令界面查看安全统计信息。

在命令提示符下,键入:

stat appfw profile profile1

应用程序配置文件流量统计 速率 (/秒) 总数
请求 0 0
Request Bytes(请求字节数) 0 0
答复 0 0
Response Bytes(响应字节数) 0 0
中止 0 0
重定向 0 0
长期平均响应时间 (毫秒) 0
近期平均响应时间 (毫秒) 0
HTML/XML/JSON 违规统计数据 速率 (/秒) 总数
起始 URL 0 0
拒绝 URL 0 0
引用标题 0 0
缓冲区溢出 0 0
Cookie 一致性 0 0
cookie 劫持 0 0
CSRF 表单标签 0 0
HTML 跨站点脚本 0 0
HTML SQL 注入 0 0
字段格式 0 0
字段一致性 0 0
信用卡 0 0
安全对象 0 0
签名违规 0 0
内容类型 0 0
JSON 拒绝服务 0 0
JSON SQL 注入 0 0
JSON 跨站点脚本 0 0
文件上传类型 0 0
推断内容类型 XML 有效负载 0 0
HTML CMD 注入 0 0
XML 格式 0 0
XML 拒绝服务 (XDoS) 0 0
XML 消息验证 0 0
Web 服务互操作性 0 0
XML SQL 注入 0 0
XML 跨站点脚本 0 0
XML 附件 0 0
SOAP 错误违规 0 0
XML 一般违规 0 0
违规总数 0 0
HTML/XML/JSON 日志统计 速率 (/秒) 总数
启动 URL 日志 0 0
拒绝 URL 日志 0 0
引用标题日志 0 0
缓冲区溢出日志 0 0
Cookie 一致性日志 0 0
Cookie 劫持日志 0 0
来自标签日志的 CSRF 0 0
HTML 跨站脚本日志 0 0
HTML 跨站点脚本转换日志 0 0
HTML SQL 注入日志 0 0
HTML SQL 转换日志 0 0
字段格式日志 0 0
字段一致性日志 0 0
信用卡 0 0
信用卡转换日志 0 0
安全对象日志 0 0
签名日志 0 0
内容类型日志 0 0
JSON 拒绝服务日志 0 0
JSON SQL 注入日志 0 0
JSON 跨站点脚本日志 0 0
文件上载类型日志 0 0
推断内容类型 XML 有效负载 L 0 0
JSON CMD 注入 0 0
HTML 命令注入日志 0 0
XML 格式日志 0 0
XML 拒绝服务 (XDoS) 日志 0 0
XML 消息验证日志 0 0
WSI 日志 0 0
XML SQL 注入日志 0 0
XML 跨站点脚本日志 0 0
XML 附件日志 0 0
SOAP 故障日志 0 0
XML 通用日志 0 0
日志消息总数 0 0
服务器错误响应统计速率 (/s) 总数  
HTTP 客户端错误 (4xx 重复) 0 0
HTTP 服务器错误 (5xx 重复) 0 0
HTML/XML/JSON 日志统计 速率 (/秒) 总数
JSON 命令注入日志 0 0
XML 格式日志 0 0

使用 Citrix ADC GUI 查看 JSON 命令注入统计信息

完成以下步骤以查看命令注入统计信息:

  1. 导航到安全 > Citrix Web App Firewall > 配置文件
  2. 在详细信息窗格中,选择 Web App Firewall 配置文件并单击统计信息
  3. Citrix Web App Firewall 统计 页面显示 JSON 命令注入流量和违规详细信息。
  4. 您可以选择“表格视图”或切换到“图形视图”以表格或图形格式显示数据。

JSON 命令注入流量统计

JSON 命令注入流量统计 GUI 部分

JSON 命令注入违规统计

JSON 命令注入流量统计 GUI 部分