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

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

使用 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. 单击 OK(确定)。

配置命令注入检查设置

使用 GUI 查看或自定义命令注入模式

您可以使用 GUI 查看或自定义 HTML 命令注入模式。

默认的命令注入模式在默认签名文件中指定。如果没有将任何签名对象绑定到配置文件,则配置文件将使用默认签名对象中指定的默认 HTML 命令注入模式进行命令注入安全检查处理。在默认签名对象中指定的规则和模式是只读的。您无法编辑或修改它们。如果要修改或更改这些模式,请复制默认的 ssigNatures 对象以创建用户定义的签名对象。更改新用户定义的签名对象中的命令注入模式,然后在处理要使用这些自定义模式的流量的配置文件中使用此签名对象。

有关详细信息,请参阅 签名

要使用 GUI 查看默认的命令注入模式,请执行以下操作:

  1. 导航到 应用程序防火墙 > 签名,选择 * 默认签名,然后单击 编辑

查看默认的命令注入模式

  1. 单击 管理 CMD/SQL/XSS 模式CMD/SQL/XSS 路径(只读) 表显示了与 CMD/SQL/XSS 注入有关的模式:

查看默认的命令注入模式

  1. 选择一行并单击 管理元素 以显示 Web App Firewall 命令注入检查使用的相应命令注入模式(关键字、特殊字符串、转换规则或通配符)。

使用 GUI 自定义命令注入模式

您可以编辑用户定义的签名对象以自定义 CMD 关键字、特殊字符串和通配符。您可以添加新条目或删除现有条目。您可以修改命令注入特殊字符串的转换规则。

  1. 导航到应用防火墙 > 签名,突出显示目标用户定义的签名,然后单击 添加。单击 管理 CMD/SQL/XSS 模式
  2. 管理 CMD/SQL/XSS 路径 页面中,选择目标 CMD 注入行。
  3. 单击 管理元素添加删除 命令注入元素。

    警告:

    在删除或修改任何默认命令注入元素之前,或者删除 CMD 路径以删除整行之前,必须小心。签名规则和命令注入安全检查依赖于这些元素来检测命令注入攻击以保护您的应用程序。如果在编辑过程中删除了所需的模式,自定义 SQL 模式可能会使应用程序容易受到命令注入攻击。

查看默认的命令注入模式

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

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

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

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

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

HTML 命令注入流量统计

命令注入流量统计 GUI 部分

HTML 命令注入违规统计信息

命令注入流量统计 GUI 部分