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-->

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

注意:

您可以在 /netscaler/default_signatures.xml 文件中找到关键字和模式列表。

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

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

在命令提示符下,键入:

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

注意:

默认情况下,命令注入操作设置为“阻止”、“记录”和“统计”。此外,默认命令注入类型设置为CmdSplCharANDKeyWord。升级后,现有的 Web App Firewall 配置文件将操作设置为“”。

示例:

set appfw profile profile1 -JSONCMDInjectionAction block -JSONCMDInjectionType CmdSplChar

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

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

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

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

为 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 配置文件 页面上,转到 高级设置 部分,然后单击 安全检查
  4. 在“安全检查”部分中,选择“JSON 命令注入”,然后单击“操作 设置”。
  5. JSON 命令注入设置 页面中,设置以下参数

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

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

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 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 部分