ADC
感谢您提供反馈

这篇文章已经过机器翻译.放弃

针对 HTML 有效负载的基于命令注入语法的保护

NetScaler Web App Firewall 使用模式匹配方法来检测 HTML 有效负载中的命令注入攻击。该方法使用一组预定义的关键字和(或)特殊字符来检测攻击并将其标记为违规。尽管这种方法是有效的,但它可能导致许多误报,从而导致增加一个或多个放松规则。尤其是在HTTP请求中使用诸如“Exit”之类的常用词时。我们可以通过对 HTML 有效负载实施基于命令注入语法的保护检查来减少误报。

在模式匹配方法中,如果 HTTP 请求中存在预定义的关键字和(或)特殊字符,则会识别命令注入攻击。在这种情况下,该语句不必是有效的命令注入语句。但是在基于语法的方法中,只有在命令注入语句中存在关键字或特殊字符时,才会检测到命令注入攻击。因此,减少了假阳性情景。

基于命令注入语法的保护使用场景

考虑一句话:“冲向出口!”存在于 HTTP 请求中。尽管该语句不是有效的命令注入语句,但由于关键字“exit”,pattern-match 方法会将请求检测为命令注入攻击。但是在基于命令注入语法的方法中,该语句不会被检测为违规攻击,因为关键字不存在于有效的命令注入语句中。

使用 CLI 配置基于命令注入语法的保护参数

要实现基于命令注入语法的检测,必须在 Web App Firewall 配置文件中配置“CMDInjectionGrammar”参数。默认情况下,该参数处于禁用状态。支持除学习之外的所有现有命令注入操作。升级后创建的任何新配置文件都支持命令注入语法。新配置文件继续使用默认类型为“特殊字符或关键字”,并且必须显式启用命令注入语法。

在命令提示符下,键入:

add appfw profile <profile-name> –CMDInjectionAction <action-name> -CMDInjectionGrammar ON/OFF

示例:

add appfw profile profile1 –CMDInjectionAction Block –CMDInjectionGrammar ON

使用 CLI 配置命令注入模式匹配保护和基于语法的保护

如果您同时启用了基于语法和模式匹配的方法,则设备将首先执行基于语法的检测。如果在操作类型设置为“block”的情况下检测到命令注入,则请求将被阻止(不使用模式匹配验证检测)。

在命令提示符下,键入:

add appfw profile <profile-name> –CMDInjectionAction <action-name> -CMDInjectionGrammar ON –CMDInjectionType <Any action other than ‘None’: CMDSplCharANDKeyword/ CMDSplCharORKeyword/ CMDSplChar/ CMDKeyword>

示例:

add appfw profile p1 –CMDInjectionAction block – CMDInjectionGrammar ON –CMDInjectionType CMDSplChar

使用 CLI 仅使用基于语法的保护配置命令注入检查

在命令提示符下,键入:

add appfw profile <profile-name> –CMDInjectionAction <action-name> -CMDInjectionGrammar ON –CMDInjectionType None

示例:

add appfw profile p1 –CMDInjectionAction block – CMDInjectionGrammar ON –CMDInjectionType None

使用 CLI 为基于命令注入语法的保护绑定放宽规则

如果您的应用程序要求您绕过针对 HTML 负载中特定“元素”或“属性”的命令注入检查,则必须配置放宽规则。

注意:

仅当设备使用命令注入语法执行检测时,才会评估将 ValueType 作为“关键字”的放宽规则。

命令注入检查放宽规则具有以下语法。在命令提示符下,键入:

bind appfw profile <name> -CMDInjection <String> [isRegex(REGEX| NOTREGE)] <formActionURL> [-location <location>] [-valueType (Keywor|SpecialString|Wildchar) [<valueExpression>][-isValueRegex (REGEX | NOTREGEX) ]]

示例:

bind appfw profile p1 -cmdinjection abc http://10.10.10.10/ bind appfw profile p1 –cmdinjection 'abc[0-9]+' http://10.10.10.10/ -isregex regEX bind appfw profile p1 –cmdinjection 'name' http://10.10.10.10/ -valueType Keyword 'exi[a-z]+' -isvalueRegex regEX

使用 GUI 配置基于命令注入语法的保护

完成以下步骤以配置基于语法的 HTML 命令注入检测。

  1. 导航到安全 > NetScaler Web App Firewall 配置文件 > 配置文件

  2. 选择配置文件,然后单击 编辑

  3. 转到“高级设置”部分,然后单击“安全检查”。

  4. 选中“HTML 命令注入”复选框,然后单击“操作设置”

  5. 选中使用 CMD 语法检查复选框。

  6. 从“检查请求包含”中选择“”。

  7. 单击“ 确定”

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。