Citrix ADC

SQL注入检查

许多web应用程序都有使用SQL与关系数据库服务器通信的web表单。恶意代码或黑客可以使用不安全的web表单向web服务器发送SQL命令。Web应用防火墙HTML SQL注入检查提供了特殊的防御措施,防止未经授权的SQL代码注入可能破坏安全性。如果Web应用防火墙在用户请求中检测到未经授权的SQL代码,它会转换请求,使SQL代码变为非活动状态,或者阻止请求。Web应用防火墙在三个位置检查注入SQL代码的请求负载:1)POST正文,2)报头和3)cookie。要检查注入SQL代码请求中的查询部分,请为特定的内容类型配置应用程序防火墙配置文件设置' InspectQueryContentTypes '。

默认的关键字和特殊字符集提供了通常用于发起SQL攻击的已知关键字和特殊字符。您可以添加新的模式,也可以编辑默认设置以自定义SQL检查检查。Web应用防火墙为实现SQL注入保护提供了各种操作选项。除了日志统计数据而且学习动作,Web应用程序防火墙配置文件也提供选项转换SQL特殊字符使攻击变得无害

除了操作之外,还有几个参数可以配置用于SQL注入处理。你可以检查SQL通配符.您可以更改SQL注入类型并选择以下4个选项之一(SQLKeywordSQLSplCharSQLSplCharANDKeywordSQLSplCharORKeyword),以指示在处理负载时如何计算SQL关键字和SQL特殊字符。的SQL注释处理参数提供了一个选项,可以指定在SQL注入检测期间需要检查或免除的注释类型。

您可以部署松弛来避免误报。Web App Firewall学习引擎可以提供配置放松规则的建议。

以下选项可用于为应用程序配置优化的SQL注入保护:

只有当输入匹配SQL注入类型规范时才会触发block动作。例如,如果SQLSplCharANDKeyword如果将SQL注入类型配置为SQL注入类型,则即使在输入中检测到SQL特殊字符,也不会阻止请求。如果将SQL注入类型设置为任意一种,则该请求将被阻止SQLSplChar,或SQLSplCharORKeyword

日志-如果启用日志功能,SQL注入检查将生成日志消息,指示所采取的操作。如果块操作被禁用,则为检测到SQL违规的每个输入字段生成一条单独的日志消息。但是,当请求被阻塞时,只生成一条消息。类似地,为转换操作为每个请求生成一条日志消息,即使在多个字段中转换SQL特殊字符也是如此。您可以监视日志,以确定对合法请求的响应是否被阻止。日志消息数量的大量增加可能表明有人试图发起攻击。

统计数据-如果启用,stats功能将收集有关违规和日志的统计信息。统计计数器的意外激增可能表明您的应用程序受到了攻击。如果合法的请求被阻止,您可能必须重新查看配置,看看是否需要配置新的放松规则或修改现有的规则。

学习-如果你不确定哪些SQL松弛规则可能最适合你的应用程序,你可以使用learn特性根据学习到的数据生成建议。Web应用防火墙学习引擎监视流量,并根据观察到的值提供SQL学习建议。为了在不影响性能的情况下获得最佳效益,您可能希望在短时间内启用学习选项,以获得规则的代表性示例,然后部署规则并禁用学习。

转换SQL特殊字符Web应用防火墙将单引号(')、反斜杠()和分号(;)三个字符作为SQL安全检查处理的特殊字符。SQL转换特性修改HTML请求中的SQL注入代码,以确保请求是无害的。然后将修改后的HTML请求发送到服务器。所有缺省转换规则都在/netscaler/default_custom_settings.xml文件中指定。

transform操作通过对请求进行以下更改来使SQL代码处于非活动状态:

  • 单引号(')改为双引号(")。
  • 反斜杠()到双反斜杠()。
  • 分号(;)被完全删除。

这三个字符(特殊字符串)是向SQL服务器发出命令所必需的。除非SQL命令以特殊字符串开头,否则大多数SQL服务器都会忽略该命令。因此,Web应用程序防火墙在启用转换时执行的更改可以防止攻击者注入活动SQL。完成这些更改后,请求可以安全地转发到受保护的网站。当受保护网站上的web表单可以合法地包含SQL特殊字符串,但web表单不依赖特殊字符串来正确操作时,您可以禁用阻止并启用转换,以防止阻止合法的web表单数据,而不会减少web应用程序防火墙为受保护网站提供的保护。

转换操作独立于SQL注入类型设置。如果启用了转换,并且SQL注入类型指定为SQL关键字,则即使请求不包含任何关键字,也会转换SQL特殊字符。

提示

您通常启用转换或阻塞,但不能同时启用两者。如果块操作已启用,则它优先于转换操作。如果启用了阻塞,启用转换是多余的。

检查SQL通配符通配符可以用来扩大SQL (SQL- select)语句的选择范围。可以使用这些通配符就像而且不喜欢运算符将一个值与相似值进行比较。百分比(%)和下划线(_)字符经常用作通配符。百分号类似于MS-DOS中使用的星号(*)通配符,用于匹配字段中的零、一个或多个字符。下划线类似于MS-DOS中的问号(?)通配符。它匹配表达式中的单个数字或字符。

例如,您可以使用以下查询执行字符串搜索,以查找名称包含D字符的所有客户。

SELECT * from customer WHERE name: %D%

下面的示例将运算符组合在一起,以查找第二和第三个位置为0的任何工资值。

SELECT * from customer WHERE薪资为“_00%”

不同的DBMS供应商通过添加额外的操作符扩展了通配符。Citrix Web App Firewall可以防止通过注入这些通配符发起的攻击。5个默认通配符是%(%),下划线(_),插入号(^),开始括号([)和结束括号(])。这种保护同时适用于HTML和XML概要文件。

属性中指定的文本的列表*默认签名

  • < wildchar类型=“文字”> % < / wildchar >
  • < wildchar类型=“文字”> _ < / wildchar >
  • < wildchar类型=“文字”> ^ < / wildchar >
  • < wildchar type = "文字“> < / wildchar >
  • < wildchar type = "文字“> < / wildchar >

攻击中的通配符可以是PCRE,如[^A-F]。Web应用防火墙也支持PCRE通配符,但上面的文字通配符字符足以阻止大多数攻击。

注意:

SQL通配符检查与SQL特殊字符检查不同。必须谨慎使用此选项,以避免误报。

检查请求是否包含SQL注入类型- Web应用防火墙提供了4个选项来实现SQL注入检查所需的严格程度,基于应用程序的个人需求。根据注入类型规范检查请求,以检测SQL违规。SQL注入类型的4个选项是:

  • SQL特殊字符和关键字- SQL关键字和SQL特殊字符必须同时出现在输入中才能触发SQL违规。这个限制最少的设置也是默认设置。
  • SQL特殊字符-输入中必须至少有一个特殊字符才能触发SQL冲突。
  • SQL关键字-输入中必须至少有一个指定的SQL关键字才能触发SQL违规。未经充分考虑,请不要选择此选项。为了避免误报,请确保输入中没有任何关键字是预期的。
  • SQL特殊字符或关键字—输入中必须有关键字或特殊字符串,才会触发安全检查违例。

提示:

如果将Web应用程序防火墙配置为检查包含SQL特殊字符的输入,则Web应用程序防火墙将跳过不包含任何特殊字符的Web表单字段。由于大多数SQL服务器不处理前面没有特殊字符的SQL命令,启用此选项可以显著减少Web应用防火墙的负载,并加快处理速度,而不会将受保护的网站置于风险之中。

SQL注释处理-默认情况下,Web应用防火墙检查注入SQL命令的所有SQL注释。然而,许多SQL服务器忽略注释中的任何内容,即使前面有SQL特殊字符。为了更快地处理,如果您的SQL服务器忽略注释,您可以配置Web应用防火墙在检查注入SQL的请求时跳过注释。SQL注释处理选项是:

  • ANSI-跳过ansi格式的SQL注释,这些注释通常用于基于unix的SQL数据库。例如:
    • -(两个连字符)-这是一个以两个连字符开头,以一行结束的注释。

    • {} -花括号(花括号括住注释。{在注释前面,}在注释后面。大括号可以分隔单行或多行注释,但注释不能嵌套)

    • /* */: C风格注释(不允许嵌套注释)。请注意/*!<以斜杠开头,后面跟着星号和感叹号的注释不是注释> */

    • MySQL服务器支持c风格注释的一些变体。这些允许你编写包含MySQL扩展的代码,但仍然是可移植的,通过使用以下形式的注释:/ * !mysql特定代码*/

    • .Mysql注释:这是一个以#字符开头的注释。

  • 嵌套的-跳过嵌套SQL注释,这通常被Microsoft SQL Server使用。例如;-(两个连字符),和/ * * /(允许嵌套注释)
  • ANSI /嵌套跳过同时遵循ANSI和嵌套SQL注释标准的注释。只匹配ANSI标准或只匹配嵌套标准的注释仍然会检查注入的SQL。
  • 检查所有注释-检查整个请求是否注入SQL,不跳过任何内容。这是默认设置。

提示

通常,您不能选择嵌套或ANSI/嵌套选项,除非您的后端数据库运行在Microsoft SQL Server上。大多数其他类型的SQL server软件不识别嵌套注释。如果在指向另一种类型的SQL服务器的请求中出现嵌套注释,它们可能表明试图破坏该服务器上的安全性。

检查请求头如果除了检查表单字段中的输入,还想检查HTML SQL注入攻击的请求头,则启用此选项。如果使用图形化界面,可以在高级设置->配置文件设置窗格的Web应用程序防火墙配置文件。

注意:

如果启用“检查请求”标头标志,则可能必须为用户代理头。SQL关键字的存在就像和SQL特殊字符分号()可能会触发假阳性并阻止包含此报头的请求。警告

如果同时启用请求头检查和转换,则头中发现的任何SQL特殊字符也将被转换。Accept、Accept- charset、Accept- encoding、Accept- language、Expect和User-Agent头通常包含分号(;)。同时启用请求报头检查和转换可能会导致错误。

InspectQueryContentTypes—如果您想检查特定内容类型的SQL注入攻击的请求查询部分,则配置此选项。使用图形化界面时,可在高级设置->配置文件设置应用程序防火墙配置文件的窗格。

SQL细粒度松弛

Web应用防火墙为您提供了一个选项,可以从SQL注入检查中免除特定的表单字段、报头或Cookie。通过配置SQL注入检查的放松规则,可以完全绕过对其中一个或多个字段的检查。

Web应用防火墙允许您通过微调放松规则来实现更严格的安全性。应用程序可能需要允许特定模式的灵活性,但是配置松弛规则以绕过安全检查可能会使应用程序容易受到攻击,因为目标字段不受任何SQL攻击模式的检查。SQL细粒度松弛提供了允许特定模式并阻止其余模式的选项。例如,Web应用防火墙目前有超过100个SQL关键字的默认集。由于黑客可以在SQL注入攻击中使用这些关键字,Web应用防火墙将它们标记为潜在威胁。您可以放松一个或多个被认为对特定位置安全的关键字。其余潜在危险的SQL关键字仍将检查目标位置,并继续触发安全检查违规。你现在有了更严格的控制。

弛豫中使用的命令有可选参数值类型而且值表达式.您可以指定值表达式是正则表达式还是文字字符串。值类型可以留空,也可以选择一个选项关键字SpecialStringWildChar

警告:

正则表达式功能强大。特别是如果您不完全熟悉pcre格式的正则表达式,请仔细检查您编写的任何正则表达式。确保它们准确地定义了您想要添加的URL作为异常,而不是其他URL。不小心使用通配符,特别是使用点星号(.*)元字符或通配符组合,可能会导致您不想要的结果,例如阻止访问您不打算阻止的web内容,或者允许HTML SQL注入检查本应阻止的攻击。

注意事项:

  • Value expression是可选参数。字段名可能没有任何值表达式。
  • 一个字段名可以绑定到多个值表达式。
  • 值表达式必须指定值类型。SQL值类型可以是:1)Keyword, 2) SpecialString或3)WildChar。
  • 每个字段名/URL组合可以有多个松弛规则。

通过命令行配置SQL注入检查

使用命令行配置SQL注入动作和其他参数:

在命令行界面中,可以使用设置appfw配置文件命令或添加appfw配置文件命令配置SQL注入保护。您可以启用阻塞、学习、日志、统计操作,并指定是否要转换SQL注入攻击字符串中使用的特殊字符以禁用攻击。选择要在有效负载中检测的SQL攻击模式类型(关键字、通配符、特殊字符串),并指出是否希望Web应用程序防火墙也检查请求头是否违反SQL注入。使用取消设置appfw配置文件命令将已配置的设置恢复为默认值。下面的每个命令只设置一个参数,但是你可以在一个命令中包含多个参数:

  • 设置应用防火墙配置文件"页面底部提供的参数说明"
  • -SQLInjectionAction (([block] [learn] [log] [stats]) | [none])
  • 设置应用防火墙配置文件"页面底部提供的参数说明"
  • -SQLInjectionTransformSpecialChars (**ON** | OFF)
  • 设置应用防火墙配置文件"页面底部提供的参数说明"
  • <名称> - * * SQLInjectionCheckSQLWildChars * * (* * * * | * * * *)
  • 设置应用防火墙配置文件"页面底部提供的参数说明"
  • * * <名称> - * * SQLInjectionType * * ((* * SQLKeyword * *) |【* * SQLSplChar * *】|【* * SQLSplCharANDKeyword * *】|【* * SQLSplCharORKeyword * *))
  • 设置应用防火墙配置文件"页面底部提供的参数说明"
  • <名称> - * * SQLInjectionParseComments * * ((* * checkall * *) | (* * ansi |嵌套* *)| (* * ansinested * *))
  • **设置应用防火墙配置文件"页面底部提供的参数说明"
  • -CheckRequestHeaders (ON | OFF)页面下方提供参数说明。
  • - CheckRequestQueryNonHtml (ON | OFF)页面下方提供参数说明。

使用命令接口配置SQL注入松弛规则

使用bind或unbind命令添加或删除绑定,配置如下:

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

  • unbind appfw profile -SQLInjection [-location ] [-valueTyp(关键字|SpecialString|Wildchar) []]

注意:

通过查看视图签名对象,可以从默认签名文件内容中找到SQL关键字列表,该对象具有SQL关键字列表和SQL特殊字符。

通过GUI配置SQL注入安全检查

在GUI中,您可以在与应用程序关联的配置文件的窗格中配置SQL注入安全检查。

使用GUI配置或修改SQL注入检查

  1. 导航到应用防火墙>配置文件,选中目标配置文件,单击编辑
  2. 高级设置窗格中,单击安全检查

安全检查表显示所有安全检查的当前配置动作设置。您有2个配置选项:

a.如果要启用或禁用HTML SQL注入的阻断、日志、统计和学习动作,可以选中或取消表格中的复选框,单击好吧,然后按保存并关闭关闭安全检查窗格。

b.如果需要配置更多安全检查选项,请双击“HTML SQL注入”或选中该行,单击动作设置,显示以下选项:

Transform SQL特殊字符转换请求中的SQL特殊字符。

检查SQL通配符-将有效载荷中的SQL通配符视为攻击模式。

检查请求包含-Type要检查的SQL注入(SQLKeyword、SQLSplChar、SQLSplCharANDKeyword或SQLSplCharORKeyword)。

SQL注释处理-Type注释(检查所有注释,ANSI, Nested, or ANSI/Nested)来检查。

更改上述任何设置后,单击好吧,保存更改并返回Security Checks表。您可以根据需要继续配置其他安全检查。点击好吧以保存在“安全检查”部分中所做的所有更改,然后单击保存并关闭,关闭“安全检查”窗格。

使用GUI配置SQL注入松弛规则

  • 导航到应用防火墙>配置文件,选中目标配置文件,单击编辑
  • 高级设置窗格中,单击放松规则
  • 在“松弛规则”表中,双击SQL注入项,或选中该项并单击编辑
  • HTML SQL注入放松规则对话框,执行添加编辑删除启用,或禁用放松规则的操作。

请注意

添加新规则时,值表达式字段不显示,除非您选择关键字SpecialStringWildChar选项中的值类型字段。

使用可视化工具管理SQL注入松弛规则

对于所有放宽规则的统一视图,可以突出显示SQL注入行,单击视觉型的人.用于部署松弛的可视化工具为您提供了这样的选项添加新规则还是编辑一个现存的。你也可以启用禁用通过选择一个节点并单击松弛可视化器中相应的按钮来生成一组规则。

使用GUI查看或定制注入模式

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

默认SQL模式在默认签名文件中指定。如果您没有将任何签名对象绑定到配置文件,则配置文件将在默认签名对象中指定的默认注入模式用于命令注入安全检查处理。在默认签名对象中指定的规则和模式是只读的。您不能编辑或修改它们。如果要修改或更改这些模式,请复制默认sSignatures对象以创建自定义签名对象。在新的自定义签名对象中修改命令注入模式,并在您的配置文件中使用该签名对象,该配置文件正在处理您希望使用这些自定义模式的流量。

有关更多信息,请参见签名

使用GUI查看默认的注入模式:

  1. 导航到应用防火墙>签名中,选择*默认签名,并单击编辑

查看默认的注入模式

  1. 点击管理CMD/SQL/XSS模式.的管理SQL/跨站点脚本路径下表显示了与CMD/SQL/XS注入相关的模式:

查看默认的注入模式

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

使用学习特性和SQL注入检查

使能学习动作后,Web应用防火墙学习引擎将监控流量,学习触发的违规行为。您可以定期检查这些学习到的规则。经过适当的考虑后,您可以将学习到的规则部署为SQL注入松弛规则。

SQL注入学习增强Citrix ADC软件11.0版本引入了Web应用防火墙学习增强功能。为了部署细粒度的SQL注入松弛,Web应用防火墙提供了细粒度的SQL注入学习。学习引擎对观察到的Value Type(关键字,SpecialString, Wildchar)和输入字段中观察到的相应Value表达式提出建议。除了检查被阻止的请求以确定当前规则是否限制太大,需要放松之外,您还可以检查学习引擎生成的规则,以确定哪些值类型和值表达式触发了违规,需要在放松规则中解决。

重要的

Web应用防火墙的学习引擎只能区分名称的前128个字节。如果一个表单有多个字段,其名称与前128个字节匹配,学习引擎可能无法区分它们。类似地,部署的放松规则可能会无意中放松SQL注入检查中的所有此类字段。

请注意要绕过User-Agent头的SQL签入,使用以下松弛规则:

绑定appfw profile your_profile_name -SQLInjection User-Agent " .*" -location头

通过命令行界面查看或使用学习到的数据

在命令提示符下,键入以下命令之一:

  • show appfw learningdata SQLInjection
  • rm appfw learningdata -SQLInjection [] [ ]
  • export appfw learningdata SQLInjection

通过GUI查看或使用学习到的数据

  1. 导航到应用防火墙>配置文件,选中目标配置文件,单击编辑

  2. 高级设置窗格中,单击学习规则.您可以选择SQL注入并双击它来访问已学习的规则。您可以部署学习到的规则,或者在将规则部署为放松规则之前编辑规则。若要丢弃规则,可以选中该规则并单击跳过按钮。一次只能编辑一条规则,但可以选择部署或跳过多个规则。

属性,可以显示已学习松弛的摘要视图SQL注入表中的条目,然后单击视觉型的人对所有已学习到的违规行为进行汇总。可视化工具使得管理学习到的规则变得很容易。它在一个屏幕上展示了数据的全面视图,并便于一键对一组规则执行操作。可视化工具的最大优点是它推荐正则表达式来合并多个规则。您可以根据分隔符和操作URL选择这些规则的子集。通过从下拉列表中选择数字,您可以在可视化工具中显示25、50或75条规则。学习规则的可视化工具提供了编辑规则并将其部署为松弛项的选项。或者你可以跳过这些规则来忽略它们。

日志特性与SQL注入检查结合使用

当日志操作被启用时,HTML SQL注入安全检查违规行为将被记录在审计日志中APPFW_SQL违规。Web应用防火墙同时支持Native和CEF日志格式。您也可以将日志发送到远端syslog服务器。

使用命令行访问日志消息

切换到外壳和尾部的ns。登录/var/log/文件夹访问与SQL注入违规相关的日志消息:

>壳

# tail -f /var/log/ns.log | grep APPFW_SQL .log

当请求被转换时,HTML SQL注入日志消息的示例

Jun 26 21:08:41  10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|APPFW_SQL|6|src=10.217.253.62 geolocation=Unknown spt=54001 method=GETrequest=http://aaron.stratum8.net/FFC/login.php?login_name\=%27+or&passwd\=and+%3B&drinking_pref\=on&text_area\=select+*+from+%5C+%3B&loginButton\=ClickToLogin&as_sfid\= aaaaaaxjngn5glh - hvhtopiyseiqes7bjfrs5mq0fwp - 3zhdi5ywlrwbyj0cvbmyy - ens2vaaiulkocuri4od4kbxwwsy5s7i3qkdsrvigcymc9bmvbwy2wbncsqcwk52lfe0k %3D&as_fid\=feeec8758b41740eedeeb6b35b85dfd3d5def30c msg=字段中看到的特殊字符cn1=74 cn2=762 cs1=pr_ffc cs2=PPE1 cs3=9ztIlf9p1H7p6Xtzn6NMygTv/QM0002 cs4=ALERT cs5=2015行动=转换< !——NeedCopy >

当post请求被阻塞时,HTML SQL注入日志消息的示例

Jun 26 21:30:34  10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|APPFW_SQL|6|src=10.217.253.62 geolocation=Unknown spt=9459 method=POST request=http://aaron.stratum8.net/FFC/login_post.php msg=SQL关键字check failed for field text_area\="(')" cn1=78 cn2=834 cs1=pr_ffc cs2=PPE1 cs3=eVJMMPtZ2XgylGrHjkx3rZLfBCI0002 cs4=ALERT cs5=2015 act=blocked 

请注意

作为10.5中流更改的一部分。E版本(增强版本)和11.0版本之后,我们现在以块的形式处理输入数据。RegEx模式匹配现在限制为4K连续字符串匹配。通过此更改,与早期版本相比,SQL违规日志消息可能包含不同的信息。输入中的关键字和特殊字符可以用多个字节分隔。现在,我们在处理数据时跟踪SQL关键字和特殊字符串,而不是缓冲整个输入值。除了字段名之外,日志消息现在还包括SQL关键字或SQL特殊字符,或者根据配置的设置同时包含SQL关键字和SQL特殊字符。其余的输入不再包含在日志消息中,示例如下:

例子:

在10.5中,当Web应用防火墙检测到SQL违规时,整个输入字符串可能会包含在日志消息中,如下所示:

SQL关键字检查失败的字段文本=\"select a name from testbed1;(;)\".*<阻止> . txt

在10.5的增强版本中。E支持请求端流和11.0版本之后,我们在日志消息中只记录字段名、关键字和特殊字符(如果适用的话),如下所示:

SQL关键字检查字段失败**text="select(;)"< >阻塞

此更改适用于包含application/x-www-form-urlencoded、multipart/form-data或text/x-gwt-rpc content-types的请求。处理过程中生成的日志消息JSONXML有效载荷不受此更改的影响。

通过GUI访问日志消息

Citrix GUI包括一个有用的工具(Syslog查看器),用于分析日志消息。您有多个选项来访问Syslog查看器:

  • 导航到应用防火墙>配置文件,选择目标配置文件,单击安全检查.突出了SQL注入行,单击日志.当您直接从概要文件的HTML SQL注入检查访问日志时,GUI会过滤掉日志消息,只显示与这些安全检查违规相关的日志。
  • 您也可以通过导航到进入Syslog查看器Citrix ADC>系统>审计.在审计消息部分中,单击Syslog消息链接,显示“Syslog查看器”,显示所有日志消息,包括其他安全检查违规日志。当请求处理期间可能触发多个安全检查违规时,这对于调试很有用。
  • 导航到应用防火墙>政策>审计.在审计消息部分中,单击Syslog消息链接,显示“Syslog查看器”,显示所有日志消息,包括其他安全检查违规日志。

基于HTML的Syslog查看器提供了各种过滤选项,用于仅选择您感兴趣的日志消息。属性的日志消息SQL注入检查,过滤选择APPFW在下拉列表中选择模块.的事件类型列表提供了丰富的选项,以进一步完善您的选择。例如,如果您选择APPFW_SQL复选框,然后单击应用按钮,只记录属于SQL注入在Syslog查看器中会出现安全检查违规情况。

如果将光标放在特定日志消息的行中,则有多个选项,例如模块事件类型标识符客户端IP等等。出现在日志消息下面。您可以选择这些选项中的任何一个,以突出显示日志消息中的相应信息。

单击部署功能仅在GUI中可用。您不仅可以使用Syslog查看器查看日志,还可以根据Web应用防火墙安全检查违规的日志消息部署HTML SQL注入放松规则。该操作的日志信息必须为CEF日志格式。单击以部署功能仅对由块(或非块)操作生成的日志消息可用。不能为关于转换操作的日志消息部署松弛规则。

如果要从Syslog查看器中部署松弛规则,请选择日志消息。控件的右上角出现复选框Syslog查看器方框。选中复选框,然后从Action列表中选择一个选项来部署放松规则。编辑和部署部署,部署所有可按行动选项。

使用“单击部署”选项部署的SQL注入规则不包括细粒度放宽建议。

在GUI中使用“单击部署”功能

  1. 在“Syslog查看器”中,选择应用防火墙模块选项。
  2. 选择APP_SQL随着事件类型过滤对应的日志消息。
  3. 选中复选框以标识要部署的规则。
  4. 使用行动部署松弛规则的选项下拉列表。
  5. 验证该规则是否出现在相应的松弛规则部分中。

SQL注入违规的统计信息

当启用stats动作时,当Web应用程序防火墙对此安全检查采取任何操作时,SQL注入检查的计数器将增加。收集流量、违规和日志的速率和总计数的统计信息。日志计数器增量的大小可以根据配置的设置而变化。例如,如果阻塞动作被启用,那么对包含3个SQL注入违规的页面的请求将使统计计数器增加1,因为一旦检测到第一个违规,页面就会被阻塞。但是,如果该块被禁用,则处理相同的请求会使违规的统计计数器和日志增加三倍,因为每个违规都会生成一个单独的日志消息。

使用命令行显示SQL注入检查统计信息

在命令提示符下,输入:

Sh appfw stats

要显示特定配置文件的统计信息,使用以下命令:

> stat appfw profile <配置文件名称>

使用GUI方式显示HTML SQL注入统计信息

  1. 导航到系统>安全>应用防火墙
  2. 在右窗格中,访问统计数据链接。
  3. 使用滚动条查看HTML SQL注入违规和日志的统计信息。统计表提供实时数据,每7秒更新一次。

突出了

关于SQL注入检查,请注意以下几点:

  • 内置支持SQL注入保护- Citrix Web App Firewall通过监视SQL关键字和表单参数中的特殊字符的组合来防止SQL注入。所有SQL关键字、特殊字符、通配符和默认转换规则都在/netscaler/default_custom_settings.xml文件中指定。
  • 定制您可以更改默认的关键字、特殊字符、通配符和转换规则,以自定义SQL安全检查检查,以满足应用程序的特定需求。复制缺省签名对象、修改现有签名项或添加新签名项。将此签名对象绑定到概要文件以使用自定义配置。
  • 混合安全模型签名和深度安全保护都使用绑定到配置文件的签名对象中指定的SQL/跨站点脚本模式。如果配置文件没有绑定签名对象,则使用默认签名对象中显示的SQL/跨站点脚本模式。
  • 变换- transform操作需要注意以下几点:
    • 转换操作独立于其他SQL注入操作设置。如果transform被启用,并且block、log、stats和learn都被禁用,则SQL特殊字符将被转换。
    • 当启用SQL Transformation时,在SQL特殊字符以非块模式转换后,将用户请求发送到后端服务器。如果块操作已启用,则它优先于转换操作。如果注入类型指定为SQL特殊字符,并且块被启用,则不管转换操作如何,请求都会被阻塞。
  • 细粒度的放松和学习-微调松弛规则,从安全检查中松弛SQL元素的子集,但检测其余部分。学习引擎根据观察到的数据推荐特定的值类型和值表达式。
  • 单击部署-在syslog查看器中选择一条或多条SQL违规日志消息,并将其部署为松弛规则。