Citrix ADC

Web应用防火墙日志

Web应用程序防火墙生成的日志消息对于跟踪配置更改、Web应用程序防火墙策略调用和安全检查违规非常有用。

当启用安全检查或签名的日志操作时,产生的日志消息提供有关Web应用程序防火墙在保护您的网站和应用程序时观察到的请求和响应的信息。最重要的信息是Web应用程序防火墙在观察到违反签名或安全检查时所采取的操作。对于某些安全检查,日志消息可以提供额外的有用信息,例如位置和检测到的触发违规的模式。您可以以非阻塞模式部署安全检查,并监视日志,以确定触发安全违规的事务是否为有效事务(误报)。如果是,您可以删除或重新配置签名或安全检查,部署放松,或采取其他适当的措施来减少误报,然后再启用该签名或安全检查的阻塞。日志中违规消息数量的过度增加可能表明恶意请求激增。这可以提醒您,您的应用程序可能受到攻击,以利用Web应用程序防火墙保护检测和阻止的特定漏洞。

注意:

Citrix Web App Firewall日志记录必须仅与外部SYSLOG服务器一起使用。

Citrix ADC (Native)格式日志

Web应用程序防火墙默认使用Citrix ADC格式日志(也称为本机格式日志)。这些日志与其他Citrix ADC特性生成的日志具有相同的格式。每条日志包含以下字段:

  • 时间戳。发生连接的日期和时间。
  • 严重性。日志级别。
  • 模块。生成日志条目的Citrix ADC模块。
  • 事件类型。事件类型,如签名违规、安全检查违规等。
  • 事件ID。分配给事件的ID。
  • 客户端IP。日志含义被登录用户的IP地址。
  • 事务ID。分配给引起日志的事务的ID。
  • 会话ID。分配给产生日志的用户会话的ID。
  • 消息。日志信息。包含标识触发日志条目的签名或安全检查的信息。

您可以搜索这些字段中的任何一个,或者来自不同字段的信息的任何组合。您的选择只受限于用于查看日志的工具的功能。您可以通过访问Citrix ADC syslog查看器在GUI中观察Web应用程序防火墙日志消息,或者您可以手动连接到Citrix ADC设备并从命令行界面访问日志,或者您可以进入shell并直接从/var/log/文件夹跟踪日志。

使用实例本地格式日志消息

Jun 22 19:14:37  10.217.31.98 06/22/2015:19:14:37 GMT ns 0- ppe -1: default APPFW APPFW_cross-site scripting 60 0:10.217.253.62 616-PPE1 y/3upt2K8ySWWId3Kavbxyni7Rw0000 pr_ffc http://aaron.stratum8.net/FFC/login.php?login_name=abc&passwd= 12345&drinking_pref=on&text_area=%3Cscript%3E%0D%0A&loginButton=ClickToLogin&as_sfid= AAAAAAWEXcNQLlSokNmqaYF6dvfqlChNzSMsdyO9JXOJomm2v BwAMOqZIChv21EcgBc3rexIUcfm0vckKlsgoOeC_BArx1Ic4NLxxkWMtrJe4H7SOfkiv9NL7AG4juPIanTvVo %3D&as_fid=feeec8758b41740eedeeb6b35b85dfd3d5def30c跨站脚本检查字段失败text_area="Bad tag: script"  

CEF (Common Event Format)日志

Web应用防火墙也支持CEF日志。CEF是一个开放的日志管理标准,它提高了来自不同安全和网络设备和应用程序的与安全相关的信息的互操作性。CEF使客户能够使用通用的事件日志格式,以便企业管理系统可以轻松地收集和聚合数据进行分析。日志消息被分解为不同的字段,以便您可以轻松地解析消息并编写脚本来识别重要信息。

分析CEF日志消息

除了日期、时间戳、客户端IP、日志格式、设备、公司、构建版本、模块和安全检查信息外,Web应用程序防火墙CEF日志消息还包括以下详细信息:

  • src -源IP地址
  • SPT源端口号
  • request -请求URL
  • Act—动作(例如阻止,转化)
  • msg -消息(关于观察到的安全检查违规的消息)
  • cn1 -事件ID
  • cn2 - HTTP事务ID
  • Cs1 -概要文件名称
  • cs2 - PPE ID(例如PPE1)
  • cs3 -会话ID
  • cs4 -严重性(例如INFO, ALERT)
  • Cs5 -事件年
  • cs6 -签名违反类别
  • method—方法(例如GET/POST)

例如,考虑以下CEF格式的日志消息,它是在触发Start URL违规时生成的:

Jun 12 23:37:17  10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0 |APPFW|APPFW_STARTURL|6|src=10.217.253.62 spt=47606 method=GET request=http://aaron.stratum8.net/FFC/login.html msg=Disallow非法URL。cn1=1340 cn2=653 cs1=pr_ffc cs2=PPE1 cs3=EsdGd3VD0OaaURLcZnj05Y6DOmE0002 cs4=ALERT cs5=2015 act=blocked 

上面的消息可以分解为不同的组件。请参阅CEP日志组件表格

CEF日志格式的请求检查违规示例:request is not blocked

Jun 13 00:21:28  10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW| APPFW_FIELDCONSISTENCY|6|src=10.217.253.62 spt=761 method=GET request= http://aaron.stratum8.net/FFC/login.php?login_name=abc&passwd= 123456789234&drinking_pref=on&text_area=&loginButton=ClickToLogin&as_sfid = aaaaaawiahzuyoifbbbhymp05mjltwefiy0a7akgmg3jibakmwtk4t7m7lnxogj7gmd3szc8kuj6cr6a 7W5kIWDRHN8PtK1Zc-txHkHNx1WknuG9DzTuM7t1THhluevXu9I4kp8%3D&as_fid=feeec8758b4174 0eedeeb6b35b85dfd3d5def30c msg=字段一致性check failed for field passwd cn1=1401 cn2=707 cs1=pr_ffc cs2=PPE1 cs3=Ycby5IvjL6FoVa6Ah94QFTIUpC80001 cs4=ALERT cs5=2015 act= not blocked 

CEF格式的响应检查违规示例:响应被转换

Jun 13 00:25:31  10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW| APPFW_SAFECOMMERCE|6|src=10.217.253.62 spt=34041 method=GET request= http://aaron.stratum8.net/FFC/CreditCardMind.html msg=Maximum number of potential credit card numbers seen cn1=1470 cn2=708 cs1=pr_ffc cs2=PPE1 cs3=Ycby5IvjL6FoVa6Ah94QFTIUpC80001 cs4=ALERT cs5=2015 act=transformed 

CEF格式的请求端签名违反示例:request is blocked

Jun 13 01:11:09  10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW| APPFW_SIGNATURE_MATCH|6|src=10.217.253.62 spt=61141 method=GET request= http://aaron.stratum8.net/FFC/wwwboard/passwd.txt msg=签名违法规则ID 807: web-cgi /wwwboard/passwd.txt access cn1=140 cn2=841 cs1=pr_ffc cs2=PPE0 cs3=OyTgjbXBqcpBFeENKDlde3OkMQ00001 cs4=ALERT cs5=2015 cs6=web-cgi act=blocked 

在Web应用程序防火墙违规消息中记录地理位置

地理定位(Geolocation)可以识别发出请求的地理位置,可以帮助您配置Web应用防火墙以获得最佳的安全级别。为了绕过依赖于客户端IP地址的速率限制等安全实现,恶意软件或流氓计算机可以在请求中不断更改源IP地址。识别请求来自的特定区域可以帮助确定请求是来自有效用户还是试图发起网络攻击的设备。例如,如果从特定区域接收到大量请求,则很容易确定它们是由用户还是非法机器发送的。对接收到的流量进行地理位置分析对于抵御拒绝服务(DoS)攻击等攻击非常有用。

Web应用程序防火墙为您提供了使用内置Citrix ADC数据库识别与恶意请求发出的IP地址对应的位置的便利。然后,您可以对来自这些位置的请求强制执行更高级别的安全性。Citrix高级策略(PI)表达式为您提供了配置基于位置的策略的灵活性,这些策略可与内置的位置数据库结合使用,以自定义防火墙保护,增强您对特定区域内恶意客户端发起的协同攻击的防御能力。

您可以使用Citrix ADC内置数据库,也可以使用任何其他数据库。如果数据库没有特定客户端IP地址的任何位置信息,CEF日志将地理位置显示为Unknown地理位置。

请注意:地理位置日志使用通用事件格式(CEF)。缺省情况下,CEF logging和GeoLocationLogging是关闭的。必须显式地启用这两个参数。

显示地理位置信息的CEF日志消息示例

June 8 00:21:09  10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0|APPFW| APPFW_STARTURL|6|src=10.217.253.62 geolocation= north american . us .亚利桑那.图森.*。* spt=18655 method=GET request=http://aaron.stratum8.net/FFC/login.html msg=禁止非法URL。cn1=77 cn2=1547 cs1=test_pr_adv cs2=PPE1 cs3=KDynjg1pbFtfhC/nt0rBU1o/Tyg0001 cs4=ALERT cs5=2015 act=not blocking 

日志示例显示geolocation= Unknown

June 9 23:50:53  10.217.31.98 CEF:0|Citrix|NetScaler|NS11.0| APPFW|APPFW_STARTURL|6|src=10.217.30.251 geolocation=Unknown spt=5086 method=GET request=http://aaron.stratum8.net/FFC/login.html msg=Disallow非法URL。cn1=74 cn2=1576 cs1=test_pr_adv cs2=PPE2 cs3=PyR0eOEM4gf6GJiTyauiHByL88E0002 cs4=ALERT cs5=2015 act=not blocking 

使用命令行配置日志操作和其他日志参数

使用命令行配置配置文件安全检查的日志动作

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

  • set appfw profile SecurityCheckAction ([log] | [none])
  • unset appfw profile 安全检查动作

例子

set appfw profile pr_ffc StartURLAction日志

unset appfw profile pr_ffc StartURLAction

使用命令行配置CEF日志记录

缺省情况下,CEF日志记录是禁用的。在命令提示符下,键入以下命令之一以更改或显示当前设置:

  • set appfw settings CEFLogging on
  • 取消appfw设置CEFLogging
  • sh appfw settings | grep CEFLogging . sh

要使用命令行配置信用卡号码的记录

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

  • set appfw profile -doSecureCreditCardLogging ([ON] | [OFF])
  • unset appfw profile -doSecureCreditCardLogging .使用实例

使用命令行配置地理位置日志记录

  1. 使用set命令启用GeoLocationLogging功能。您可以同时启用CEF日志记录。使用unset命令禁用地理位置日志记录功能。show命令显示所有Web应用程序防火墙参数的当前设置,除非您包含grep命令来显示特定参数的设置。

    • set appfw settings GeoLocationLogging ON [CEFLogging ON]
    • 取消appfw的GeoLocationLogging设置
    • sh appfw settings | grep GeoLocationLogging . sh
  2. 指定数据库

    添加locationfile /var/ netscaler_inbuilt_db / citrix_netscaler_inbuilt_geoip_db .csv

    添加locationfile

定制Web应用防火墙日志

默认格式(PI)表达式使您能够灵活地自定义日志中包含的信息。您可以选择在Web App Firewall生成的日志消息中包含想要捕获的特定数据。例如,如果您正在使用AAA-TM身份验证以及Web应用程序防火墙安全检查,并且希望知道触发安全检查违规的访问URL、请求URL的用户名称、源IP地址和用户发送请求的源端口,您可以使用以下命令指定包含所有数据的自定义日志消息:

NetScaler NS12.1: Build 50.0013。nc,日期:2018年8月28日,10:51:08(64位)完成
>添加审计消息action custom1 ALERT 'HTTP.REQ.URL + " " + HTTP.REQ.USER.NAME + " " + CLIENT.IP.SRC + ":" + CLIENT.TCP. url + " "SRCPORT'警告:HTTP.REQ.USER已弃用。请改用AAA.USER。做< !——NeedCopy >
添加appfw profile test_profile完成
add appfw policy appfw_pol true test_profile -logAction custom1 Done 

配置Syslog策略,隔离Web App防火墙日志

Web应用程序防火墙为您提供了一个选项,以隔离和重定向Web应用程序防火墙安全日志消息到不同的日志文件。如果Web应用程序防火墙正在生成大量日志,从而难以查看其他Citrix ADC日志消息,那么这可能是可取的。当您只对查看Web应用程序防火墙日志消息感兴趣而不想查看其他日志消息时,也可以使用此选项。

若要将Web App防火墙日志重定向到不同的日志文件,请配置syslog动作将Web App防火墙日志发送到不同的日志设施。您可以在配置syslog策略时使用此动作,并将其全局绑定,供Web应用防火墙使用。

例子

  1. 进入shell,使用vi等编辑器编辑/etc/syslog.conf文件。添加一个新条目来使用local2。*to send logs to a separate file as shown in the following example:

    local2。\ * /var/log/ns.log.appfw

  2. 重新启动syslog进程。可以使用grep命令识别syslog进程ID (PID),示例如下:

    root@ns\# **ps -A | grep syslog** .

    1063 ? ?Ss 0:03.00 /usr/sbin/syslogd -b 127.0.0.1 -n -v -v -8 -C

    root@ns# **kill -HUP** 1063

  3. 从命令行界面配置syslog动作和策略。将其绑定为全局Web应用防火墙策略。

> add audit syslogAction sysact 1.1.1.1 -logLevel ALL -logFacility LOCAL2

> add audit syslogPolicy syspol1 ns_true sysact1

>绑定appfw global syspol1 100

  1. 所有Web应用防火墙安全检查违规将被重定向到/var/log/ns.log。appfw文件。您可以跟踪此文件以查看在处理正在进行的流量期间触发的Web应用程序防火墙违规。

    root@ns# tail -f ns.log.appfw

警告:如果您已配置syslog策略将日志重定向到不同的日志设施,Web应用程序防火墙日志消息将不再出现在/var/log/ns.log文件中。

查看Web应用防火墙日志

您可以使用syslog查看器查看日志,也可以登录到Citrix ADC设备,打开UNIX shell,并使用您选择的UNIX文本编辑器。

使用命令行访问日志消息

切换到外壳和尾部的ns。/var/log/文件夹中的日志,以访问有关Web应用程序防火墙安全检查违规的日志消息:

  • 壳牌
  • Tail -f /var/log/ns.log

您可以使用vi编辑器或任何Unix文本编辑器或文本搜索工具来查看和过滤特定条目的日志。例如,您可以使用grep命令访问与信用卡违规相关的日志消息:

  • tail -f /var/log/ns.log | grep SAFECOMMERCE .log

通过GUI访问日志消息

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

  • 若要查看配置文件特定安全检查的日志信息,请导航到Web应用防火墙>配置文件,选择目标配置文件,单击“安全检查”。选中安全检查目标行,单击“日志”。当您直接从配置文件所选的安全检查中访问日志时,它会过滤掉日志消息,只显示与所选安全检查的违规相关的日志。Syslog查看器可以显示本地格式以及CEF格式的Web应用防火墙日志。但是,为了让syslog查看器过滤出目标概要文件特定的日志消息,当从概要文件访问日志时,日志必须是CEF日志格式。
  • 您也可以通过导航到进入Syslog查看器Citrix ADC>系统>审计.在“审计消息”区域,单击“Syslog消息”链接,打开“Syslog查看器”,查看所有日志消息,包括所有配置文件的所有Web应用防火墙安全检查违规日志。当请求处理期间可能触发多个安全检查违规时,这对于调试很有用。
  • 导航到Web应用防火墙>政策>审计.在“审计消息”区域,单击“Syslog消息”链接,打开“Syslog查看器”,查看所有日志消息,包括所有配置文件的所有安全检查违规日志。

基于HTML的Syslog查看器提供了以下过滤选项,仅选择您感兴趣的日志消息:

  • 文件-默认选择当前的/var/log/ns.log文件,相应的消息会显示在Syslog查看器中。/var/log目录下的其他日志文件列表以压缩的.gz格式可用。要下载并解压缩存档日志文件,只需从下拉选项中选择日志文件。然后,与选定文件相关的日志消息将显示在syslog查看器中。要刷新显示,单击refresh图标(两个箭头组成的圆圈)。

  • 模块列表框-可以选择需要查看日志的Citrix ADC模块。Web应用防火墙日志可以设置为APPFW。

  • 事件类型列表框-此框包含一组复选框,用于选择感兴趣的事件类型。例如,如果要查看签名违规的日志消息,可以选择APPFW_SIGNATURE_MATCH复选框。类似地,您可以选择一个复选框来启用您感兴趣的特定安全检查。您可以选择多个选项。

  • 严重程度您可以选择一个特定的严重性级别,只显示该严重性级别的日志。如果希望查看所有日志,请将所有复选框保留为空。

    若要访问特定安全检查的Web应用防火墙安全检查违规日志消息,可通过选中进行过滤APPFW在“模块”的下拉选项中。事件类型显示一组丰富的选项,以进一步细化您的选择。例如,如果您选择APPFW_FIELDFORMAT复选框并单击“应用”按钮,则Syslog查看器中只会出现与字段格式安全检查违规相关的日志消息。类似地,如果选择APPFW_SQL而且APPFW_STARTURL复选框并单击应用按钮,则只有与这两个安全检查违规相关的日志消息将出现在syslog查看器中。

如果将光标放在特定日志消息的行中,则有多个选项,例如模块EventTypeEventIDClientIPTransactionID,等等出现在日志消息下面。您可以选择这些选项中的任何一个来突出显示日志中的相应信息。

单击部署:该功能仅在GUI界面中可用。您不仅可以使用Syslog查看器查看日志,还可以根据日志消息部署针对Web应用防火墙安全违规检查的放松规则。该操作的日志信息必须为CEF日志格式。如果可以对某条日志消息部署松弛规则,则该行“Syslog查看器”框的右边缘将出现复选框。选中复选框,然后从Action列表中选择一个选项来部署放松规则。编辑和部署部署,部署所有可作为操作选项。例如,您可以选择要编辑和部署的单个日志消息。您还可以从一个或多个安全检查中选中多个日志消息的复选框,并使用Deploy或Deploy All选项。单击“部署”功能目前支持以下安全检查:

  • StartURL
  • URL缓冲区溢出
  • SQL注入
  • 跨站点脚本编制
  • 场的一致性
  • 饼干的一致性

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

  1. Syslog查看器中,选择APPFW模块选项。
  2. 选择要过滤对应日志信息的安全检查。
  3. 启用复选框以选择规则。
  4. 使用行动部署松弛规则的选项下拉列表。
  5. 验证该规则是否出现在相应的松弛规则部分中。

注意:

通过“单击”部署的SQL注入和跨站点脚本规则部署选项不包括细粒松弛建议。

突出了

  • 支持CEF日志格式- CEF日志格式选项提供了一个方便的选项来监视、解析和分析Web应用程序防火墙日志消息,以识别攻击,微调配置设置以减少误报,并收集统计信息。
  • 单击部署- Syslog查看器提供了一个选项,可以从一个方便的位置过滤、评估和部署单个或多个安全检查违规的放松规则。
  • 选项,以自定义日志消息您可以使用高级PI表达式自定义日志消息,并在日志中包含您想要看到的数据。
  • 隔离Web应用防火墙特定的日志-你可以选择过滤和重定向应用程序防火墙特定的日志到一个单独的日志文件。
  • 远程日志-可以将日志消息重定向到远程syslog服务器。
  • 地理位置记录-你可以配置Web应用防火墙,以包括接收请求的区域的地理位置。内置的地理位置数据库是可用的,但您可以选择使用外部地理位置数据库。Citrix ADC设备支持IPv4和IPv6静态地理定位数据库。
  • 信息丰富日志消息-以下是可以包含在日志中的信息类型的一些示例,具体取决于配置:
    • 日志含义触发Web应用防火墙策略。
    • 触发安全检查违规。
    • 一个请求被认为是畸形的。
    • 请求或响应被阻止或未被阻止。
    • 转换了请求数据(如SQL或跨站点脚本特殊字符)或响应数据(如信用卡号码或安全对象字符串)。
    • 响应中的信用卡数量超过了配置的限制。
    • 信用卡号码和类型。
    • 签名规则中配置的日志字符串和签名ID。
    • 关于请求源的地理位置信息。
    • 屏蔽(用X划掉)用户输入的受保护的机密字段。

使用正则表达式模式屏蔽敏感数据

日志表达式中的REGEX_REPLACE高级策略(PI)函数(绑定到WAF配置文件)允许您屏蔽WAF日志中的敏感数据。您可以使用该选项使用正则表达式模式来屏蔽数据,并提供字符或字符串模式来屏蔽数据。此外,您还可以配置PI函数来替换正则表达式模式的第一次出现或所有出现。

默认情况下,Citrix GUI界面提供以下掩码:

  • SSN
  • 信用卡
  • 密码
  • 用户名

屏蔽Web应用防火墙日志中的敏感数据

通过在绑定到WAF配置文件的日志表达式中配置REGEX_REPLACE高级策略表达式,可以屏蔽WAF日志中的敏感数据。若要屏蔽敏感数据,需要完成以下步骤:

  1. 添加Web应用程序防火墙配置文件
  2. 将日志表达式绑定到WAF配置文件

添加Web应用程序防火墙配置文件

在命令提示符下,输入:

添加appfw profile

例子:

添加appfw配置文件testprofile1

将日志表达式与Web应用程序防火墙配置文件绑定

在命令提示符下,输入:

绑定appfw profile -logExpression -comment .使用实例

例子:

绑定appfw profile testProfile - logexpression "MaskSSN" "HTTP.REQ.BODY(10000).REGEX_REPLACE(re!\b\d{3}-\d{2}-\d{4}\b! ", " xxx ", ALL)"-注释“SSN蒙面”

使用Citrix ADC GUI屏蔽Web应用防火墙日志中的敏感数据

  1. 在导航窗格上展开安全>Citrix Web应用防火墙>配置文件
  2. 配置文件页面,点击编辑
  3. Citrix Web App防火墙配置文件页,导航到高级设置部分,单击扩展日志记录

    扩展测井部分

  4. 扩展日志记录部分中,点击添加

    Citrix WAF日志绑定

  5. 创建Citrix Web应用防火墙扩展日志绑定页,设置以下参数:

    1. 的名字。日志表达式名称。
    2. 启用。选择此选项可屏蔽敏感数据。
    3. 日志的面具。选择需要屏蔽的数据。
    4. 表达式。输入高级策略表达式,使您能够在WAF日志中屏蔽敏感数据
    5. 评论。关于屏蔽敏感数据的简要描述。
  6. 点击创建而且关闭

    Citrix WAF日志绑定