Citrix ADC

基于SQL语法的HTML和JSON有效负载保护

Citrix Web App Firewall使用模式匹配方法检测SQL注入攻击HTTP而且JSON有效载荷。该方法使用一组预定义的关键字和(或)特殊字符来检测攻击并将其标记为违规。尽管这种方法是有效的,但它可能会导致许多误报,从而增加一个或多个放松规则。特别是在HTTP或JSON请求中使用“Select”和“From”等常用单词时。我们可以通过实现SQL语法保护检查来减少误报超文本标记语言而且JSON有效载荷。

在现有的模式匹配方法中,如果HTTP请求中出现预定义的关键字和或特殊字符,则会识别SQL注入攻击。在这种情况下,语句不必是有效的SQL语句。但在基于语法的方法中,只有在SQL语句中出现关键字或特殊字符或SQL语句的一部分时才会检测到SQL注入攻击,从而减少了误报情况。

基于SQL语法的保护使用场景

考虑HTTP请求中出现的语句,“选择我的票,让我们在联合车站见面”。尽管该语句不是有效的SQL语句,但现有的模式匹配方法将该请求检测为SQL注入攻击,因为该语句使用了“Select”、“and”和“Union”等关键字。但是,在SQL语法方法的情况下,该语句不会被检测为违反攻击,因为关键字不在有效SQL语句中,或者不是有效SQL语句的一部分。

也可以配置基于语法的方法来检测SQL注入攻击JSON有效载荷。为了添加松弛规则,您可以重用现有的松弛规则。细粒度松弛规则也适用于SQL语法,适用于具有“valueType”“关键字”的规则。在JSONSQL语法,现有的基于url的方法可以重用。

该任务指导管理员通过CLI配置基于SQL语法的保护

要实现基于SQL语法的检测,你必须在Web应用防火墙配置文件中配置“SQLInjectionGrammar”参数。缺省情况下,该参数为关闭状态。除了学习之外,所有现有的SQL注入操作都被支持。升级后创建的任何新配置文件都支持SQL注入语法,并且它仍然具有默认类型“特殊字符或关键字”,并且必须显式启用。

在命令提示符下,输入:

添加appfw profile  -SQLInjectionAction  -SQLInjectionGrammar ON/OFF 

例子:

添加appfw profile profile1 -SQLInjectionAction Block -SQLInjectionGrammar ON

该任务指导管理员通过CLI配置SQL模式匹配保护和语法保护

如果同时启用了基于语法的方法和模式匹配方法,那么设备将首先执行基于语法的检测,如果存在操作类型设置为block的SQL注入检测,则阻塞请求(不使用模式匹配验证检测)。

在命令提示符下,输入:

add appfw profile  -SQLInjectionAction  -SQLInjectionGrammar ON -SQLInjectionType <除' None '以外的任何动作:SQLSplCharANDKeyword/ SQLSplCharORKeyword/ SQLSplChar/ SQLKeyword> 

例子:

添加appfw profile p1 - sqlinjectionaction block - SQLInjectionGrammar ON - sqlinjectiontype SQLSplChar

通过CLI配置SQL注入检查,只支持语法保护

在命令提示符下,输入:

add appfw profile  -SQLInjectionAction  -SQLInjectionGrammar ON -SQLInjectionType None 

例子:

add appfw profile p1 - sqlinjectionaction block - SQLInjectionGrammar ON - sqlinjectiontype无

该任务指导管理员通过CLI绑定基于SQL语法的保护放松规则

如果应用程序要求您绕过SQL如果在有效载荷中检查特定的“ELEMENT”或“ATTRIBUTE”,则必须配置松弛规则。

注意:

具有valueType“关键字”的松弛规则仅在设备使用执行检测时才计算SQL语法。

SQL命令注入检查放松规则的语法如下。在命令提示符下,输入:

bind appfw profile  -SQLInjection  [isRegex(REGEX| NOTREGE)]  [-location ] [-valueType (Keywor|SpecialString|Wildchar) [][-isValueRegex (REGEX| NOTREGEX)]] 

例子:

绑定appfw profile p1 -sqlinjection ABC http://10.10.10.10/绑定appfw profile p1 -sqlinjection 'abc[0-9]+' http://10.10.10.10/ -isregex regEX绑定appfw profile p1 -sqlinjection 'name' http://10.10.10.10/ -valueType关键字'selec[a-z]+' -isvalueRegex regEX

通过CLI配置基于SQL语法的JSON有效负载保护

要对JSON有效负载实现基于SQL语法的检测,必须在Web应用防火墙配置文件中配置“JSONSQLInjectionGrammar”参数。缺省情况下,该参数为关闭状态。除了学习之外,所有现有的SQL注入操作都被支持。升级后创建的任何新配置文件都支持SQL注入语法,并且它的默认类型仍然是“特殊字符或关键字”,您必须显式地启用它。

在命令提示符下,输入:

添加appfw profile  -type JSON -JSONSQLInjectionAction  -JSONSQLInjectionGrammar ON/OFF 

例子:

添加appfw profile profile1 -type JSON -JSONSQLInjectionAction Block -JSONSQLInjectionGrammar ON

该任务指导管理员通过CLI配置SQL模式匹配保护和基于语法的保护

如果同时启用了基于语法的检查和模式匹配检查,那么设备将首先执行基于语法的检测,如果存在操作类型设置为block的SQL注入检测,则阻塞请求(不使用模式匹配验证检测)。

注意:

只有当设备使用SQL语法执行检测时,才计算valueType“关键字”的松弛规则。

在命令提示符下,输入:

add appfw profile  -type JSON -JSONSQLInjectionAction  -JSONSQLInjectionGrammar ON -JSONSQLInjectionType <除' None '以外的任何动作:SQLSplCharANDKeyword/ SQLSplCharORKeyword/ SQLSplChar/ SQLKeyword> 

例子:

添加appfw profile p1 - type JSON - jsonsqlinjectionaction block - JSONSQLInjectionGrammar ON - jsonsqlinjectiontype SQLSplChar

通过CLI配置基于SQL语法的JSON有效负载保护

在命令提示符下,输入:

add appfw profile  -type JSON -JSONSQLInjectionAction  -JSONSQLInjectionGrammar ON -JSONSQLInjectionType None ' \ 

例子:

add appfw profile p1 - type JSON - jsonsqlinjectionaction block - JSONSQLInjectionGrammar ON - jsonsqlinjectiontype无

通过CLI为基于JSON SQL语法的保护绑定基于url的松弛规则

如果应用程序要求您绕过JSON命令注入检查载荷中特定的“ELEMENT”或“ATTRIBUTE”,可以配置松弛规则。的JSON命令注入检查放松规则的语法如下。在命令提示符下,输入:

绑定appfw profile  -JSONCMDURL  -comment  -isAutoDeployed (AUTODEPLOYED | NOTAUTODEPLOYED) -state (ENABLED | DISABLED) 

例子:

绑定appfw profile p1 -sqlinjection ABC http://10.10.10.10/绑定appfw配置文件p1 -sqlinjection 'abc[0-9]+' http:// 10.10.10.10/ -isregex regEX . txt绑定appfw profile p1 -sqlinjection 'name' http://10.10.10.10/ -valueType关键字'selec[a-z]+' -isvalueRegex regEX

通过GUI配置基于SQL语法的保护

完成GUI过程以配置基于语法的HTML SQL注入检测。

  1. 在导航窗格中,导航到安全>配置文件
  2. 配置文件页面,点击添加
  3. Citrix Web App防火墙配置文件页面,点击安全检查高级设置
  4. 安全检查节,转到SQL注入设置。
  5. 单击复选框附近的可执行图标。
  6. 点击动作设置访问HMTL SQL注入设置页面。

    基于SQL语法的GUI配置保护HTML有效负载

  7. 选择使用SQL语法检查复选框。
  8. 点击好吧

使用GUI为JSON有效负载配置基于SQL语法的保护

完成GUI过程,配置基于语法的JSON SQL注入检测。

  1. 在导航窗格中,导航到安全>配置文件
  2. 配置文件页面,点击添加
  3. Citrix Web App防火墙配置文件页面,点击安全检查高级设置
  4. 安全检查节,转到JSON SQL注入设置。
  5. 单击复选框附近的可执行图标。
  6. 点击动作设置访问SQL注入设置页面。
  7. 选择使用SQL语法检查复选框。
  8. 点击好吧

    基于SQL语法的保护JSON有效负载的GUI配置