这篇文章已经过机器翻译.放弃
针对 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 命令注入检测。
-
导航到安全 > NetScaler Web App Firewall 配置文件 > 配置文件。
-
选择配置文件,然后单击 编辑。
-
转到“高级设置”部分,然后单击“安全检查”。
-
选中“HTML 命令注入”复选框,然后单击“操作设置”。
-
选中使用 CMD 语法检查复选框。
-
从“检查请求包含”中选择“无”。
-
单击“ 确定”。