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 profile 命令或 add an appfw profile 命令来配置 JSON 命令注入设置。 您可以启用阻止、日志和统计信息操作。您还必须设置要在有效负载中检测的命令注入类型,例如关键字和字符串字符。

在命令提示符下,键入:

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

注意:

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

示例:

set appfw profile profile1 -JSONCMDInjectionAction block -JSONCMDInjectionType CmdSplChar

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

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

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

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

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

如果您的应用程序要求您绕过对有效负载中的特定 ELEMENT 或 ATTRIBUTE 的 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. 单击 “ 确定”

配置 JSON 命令注入检查设置

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

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

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

在命令提示符下,键入:

stat appfw profile profile1

Appfw 配置文件流量统计 速率(/秒) 总数
请求 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 命令行注入 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 部分