Citrix ADC

HTML 命令注入保护检查

HTML 命令注入检查检查传入通信是否具有破坏系统安全或修改系统的未经授权的命令。如果检测到通信时有任何恶意命令,则设备会阻止请求或执行配置的操作。

Citrix Web App Firewall 配置文件现在通过针对命令注入攻击的新安全检查得到了增强。当命令注入安全检查检查流量并检测到任何恶意命令时,设备会阻止请求或执行配置的操作。

在命令注入攻击中,攻击者旨在在 Citrix ADC 操作系统上运行未经授权的命令。为此,攻击者使用易受攻击的应用程序注入操作系统命令。如果应用程序将任何不安全的数据(表单、Cookie 或标头)传递给系统外壳,Citrix ADC 设备容易受到注入攻击。

命令注入保护的工作原理

  1. 对于传入请求,WAF 会检查关键字或特殊字符的流量。如果传入请求没有与任何被拒绝的关键字或特殊字符匹配的模式,则允许该请求。否则,将根据配置的操作阻止、删除或重定向请求。

  2. 如果您希望从列表中排除关键字或特殊字符,则可以应用放松规则,在特定条件下绕过安全检查。
  3. 您可以启用日志记录以生成日志消息。您可以监视日志以确定对合法请求的响应是否被阻止。日志消息数量的大幅增加可能表明尝试发起攻击。
  4. 您还可以启用统计功能,以收集有关违规和日志的统计数据。统计数据计数器出现意外激增可能表明您的应用程序受到攻击。如果合法请求被阻止,您可能需要重新访问配置,以查看是否必须配置新的放松规则或修改现有的放松规则。

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

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

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

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

使用 CLI 配置命令注入检查

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

在命令提示窗口中,键入:

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

注意:

默认情况下,命令注入操作设置为“无”。此外,默认命令注入类型设置为CmdSplCharANDKeyWord

示例:

set appfw profile profile1 -cmdInjectionAction block -CMDInjectionType CmdSplChar

其中,可用的命令注入操作包括:

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

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

  • CMD 飞行器。检查特殊字符
  • 关键词。检查命令注入关键字
  • CMD 启动关键字。检查特殊字符和命令注入。仅当两者都存在时才有关键字和块。
  • CMD 样板关键字。检查特殊字符和命令注入关键字和阻止(如果找到任何一个)。

为命令注入保护检查配置松弛规则

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

命令注入检查松弛规则具有以下语法:

bind appfw profile <profile name> –cmdInjection <string> <URL> -isregex <REGEX/NOTREGEX>

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

bind appfw profile sample -CMDInjection hdr "http://10.10.10.10/" -location heaDER -valueType Keyword '[a-z]+grep' -isvalueRegex REGEX

因此,注入免除命令注入检查允许包含“grep”变体的头 ‘hdr’。

bind appfw profile sample -CMDInjection ck_login "http://10.10.10.10/" -location cookie -valueType Keyword 'pkg[a-z]+' -isvalueRegex REGEX

使用 Citrix ADC GUI 配置命令注入检查

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

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

选择命令注入检查选项

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

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

配置命令注入检查设置

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

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 XSS 日志 0 0
HTML XSS 转换日志 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
HTML 命令注入日志 0 0
XML 格式日志 0 0
XML 拒绝服务 (XDoS) 日志 0 0
XML 消息验证日志 0 0
WSI 日志 0 0
XML SQL 注入日志 0 0
XML XSS 日志 0 0
XML 附件日志 0 0
SOAP 故障日志 0 0
XML 通用日志 0 0
日志消息总数 0 0
服务器错误响应统计速率 (/s) 总数  
HTTP 客户端错误 (4xx 重复) 0 0
HTTP 服务器错误 (5xx 重复) 0 0

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

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

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

HTML 命令注入流量统计

命令注入流量统计 GUI 部分

HTML 命令注入违规统计信息

命令注入流量统计 GUI 部分