Citrix ADC

常见问题解答和部署指南

问:为什么 Citrix Web App Firewall 是保护应用程序安全的首选?

Citrix Web App Firewall 具有以下功能,可提供全面的安全解决方案:

  • 混合安全模型: Citrix ADC 混合安全模型允许您利用正安全模型和负安全模型来提供适合您的应用程序的配置。
    • 积极安全模型 可防止缓冲区溢出、CGI-BIN 参数操作、表单/隐藏字段操作、强制浏览、Cookie 或会话中毒、破坏的 ACL、跨站点脚本 (XSS)、命令注入、SQL 注入、错误触发敏感信息泄露,加密技术的不安全使用、服务器配置错误、后门和调试选项、基于速率的策略实施、众所周知的平台漏洞、零日漏洞、跨站请求伪造 (CSRF) 以及信用卡和其他敏感数据泄露。
    • 负面安全模型 使用丰富的集签名来防止 L7 和 HTTP 应用程序漏洞。Web App Firewall 与多个第三方扫描工具集成,例如 Cenzic、Qualys、Whitehat 和 IBM 提供的扫描工具。内置的 XSLT 文件允许轻松导入规则,这些规则可以与基于本地格式的 Snort 规则结合使用。自动更新功能可获取新漏洞的最新更新。

正安全模型可能是保护高度安全需求的应用程序的首选选择,因为它允许您完全控制哪些人可以访问哪些数据。您只允许您想要什么,并阻止其余的。此模型包括内置的安全检查配置,只需点击几下即可部署。但是,请记住,安全性越严格,处理开销就越大。

对于定制的应用程序,负面安全模型可能更为可取。签名允许您组合多个条件,并且只有在满足所有条件时才会触发匹配和指定操作。您只阻止您不想要的东西,并允许其余的。指定位置中的特定快速匹配模式可显著降低处理开销,以优化性能。您可以根据应用程序的特定安全需求添加自己的签名规则,从而灵活地设计自己的定制安全解决方案。

  • 求以及响应端检测和保护: 您可以检查传入的请求以检测任何可疑行为并采取适当的措施,还可以检查响应以检测敏感数据并防止泄漏。
  • 为 HTML、XML 和 JSON 有效负载提供丰富的内置保护: Web App Firewall 提供 19 种不同的安全检查。其中六个(例如开始 URL 和拒绝 URL)同时适用于 HTML 和 XML 数据。五项检查(如字段一致性和字段格式)特定于 HTML,八项检查(如 XML 格式和 Web 服务互操作性)特定于 XML 有效负载。此功能包括一组丰富的操作和选项。例如,URL 关闭使您能够控制和优化通过您的网站的导航,以防止强制浏览,而无需配置放宽规则以允许每个合法 URL。您可以选择删除或剔除响应中的敏感数据,例如信用卡号码。无论是 SOAP 阵列攻击保护、XML 拒绝服务 (XDoS)、WSDL 扫描防护、附件检查还是任何数量的其他 XML 攻击,您都可以在应用程序受 Web App Firewall 保护时拥有一个防火墙保护您的数据。通过签名,您可以使用 XPITH 表达式配置规则,以检测正文中的冲突以及 JSON 负载的标头。
  • GWT: 支持保护 Google Web 工具包应用程序,以防止 SQL、XSS 和表单字段一致性检查冲突。
  • 无 Java,用户友好的图形用户界面 (GUI): 直观的 GUI 和预配置的安全检查使您可以通过点击几个按钮轻松部署安全性。向导将提示并指导您创建必需的元素,如配置文件、策略、签名和绑定。基于 HTML5 的 GUI 不存在任何 Java 依赖关系。它的性能比基于 Java 的旧版本的性能要好得多。
  • 易于使用和自动化 CLI: GUI 中提供的大多数配置选项也可在命令行界面 (CLI) 中使用。CLI 命令可以通过批处理文件执行,并且易于自动执行。
  • 支持 REST API: Citrix ADC NITRO 协议支持一组丰富的 REST API,用于自动化 Web App Firewall 配置,并收集相关统计信息,以便持续监视安全冲突行为。
  • 学习: Web App Firewall 通过监视流量以微调安全性来学习的功能非常方便用户使用。学习引擎推荐规则,这使得无需熟练掌握正则表达式即可轻松部署放宽。
  • RegEx 编辑器支持: 正则表达式提供了一个正常的解决方案来整合规则并优化搜索的困境。您可以利用正则表达式的强大功能来配置 URL、字段名称、签名模式等。丰富的内置 GUI RegEx 编辑器为您提供了表达式的快速参考,并提供了一种方便的方法来验证和测试 RegEx 的准确性。
  • 自定义错误页面: 被阻止的请求可以重定向到错误 URL。您还可以选择显示使用支持的变量和 Citrix 默认语法(高级 PI 表达式)嵌入客户端的故障排除信息的自定义错误对象。
  • PCI-DSS、统计信息和其他冲突报告:丰富的报告 集可以轻松满足 PCI-DSS 合规性要求,收集流量计数器的统计信息,并查看所有配置文件或只是一个配置文件的冲突报告。
  • 日志记录和点击规则: 本机和 CEF 格式支持详细记录。Web App Firewall 使您能够在 syslog 查看器中筛选目标日志消息。只需点击一个按钮,即可选择日志消息并部署相应的放宽规则。您可以灵活地自定义日志消息,并支持生成 Web 日志。有关其他详细信息,请参阅Web App Firewall 日志主题。

  • 在跟踪记录中包含冲突日志: 在跟踪记录中包含日志消息的功能使调试意外行为(如重置和阻止)变得非常容易。
  • 隆: 有用的导入/导出配置文件选项允许您将安全配置从一个 Citrix ADC 设备克隆到其他设备。导出学习的数据选项可以轻松将学习的规则导出到 Excel 文件。然后,您可以在应用程序之前由应用程序所有者审核和批准。
  • AppExpert 模板 (一组配置设置)可设计为您的网站提供适当的保护。您可以通过将这些 cookie 切割器模板导出到模板来简化和加快在其他设备上部署类似保护的过程。

有关更多详细信息,请参阅 AppExpert 模板主题

  • 无会话安全检查: 部署无会话安全检查可帮助您减少内存占用并加快处理速度。
  • 与 Citrix ADC 其他功能的互操作性: Web App Firewall 可与其他 Citrix ADC 功能(如重写、URL 转换、集成缓存、CVPN 和速率限制)无缝工作。
  • 在策略中支持 PI 表达式: 您可以利用高级 PI 表达式的强大功能设计策略,以便为应用程序的不同部分实施不同级别的安全性。
  • 支持 IPv6: Web App Firewall 同时支持 IPv4 和 IPv6 协议。
  • 基于地理位置的安全保护: 您可以灵活地使用 Citrix 默认语法(PI 表达式)来配置基于位置的策略,这些策略可与内置位置数据库结合使用,以自定义防火墙保护。您可以识别恶意请求来源的位置,并对来自特定地理位置的请求强制执行所需的安全检查级别。
  • 性能: 请求侧 流式处理 显著提高了性能。处理字段后,生成的数据将转发到后端,同时继续对其余字段进行评估。处理大型帖子时,处理时间的改进尤其显著。
  • 其他安全功能: Web App Firewall 还有其他几个安全旋钮,可帮助确保数据的安全。例如,机密字段允许您阻止日志消息中的敏感信息泄露,而剥离 HTML 注释允许您在将 HTML 注释转发到客户端之前将其从响应中删除。字段类型 可用于指定在提交给您的应用程序的表单中允许输入的内容。

问:配置 Web App Firewall 需要做些什么?

请执行以下操作:

  • 添加 Web App Firewall 配置文件,并为应用程序的安全要求选择适当的类型(html、xml、web2.0)。
  • 选择所需的安全级别(基本或高级)。
  • 添加或导入所需文件,例如签名或 WSDL。
  • 配置配置文件以使用文件,并对默认设置进行任何其他必要更改。
  • 为此配置文件添加 Web App Firewall 策略。
  • 将策略绑定到目标绑定点并指定优先级。

问:我如何知道要选择哪种配置文件类型?

Web App Firewall 配置文件为 HTML 和 XML 有效负载提供保护。根据应用程序的需要,您可以选择 HTML 配置文件或 XML 配置文件。如果您的应用程序同时支持 HTML 和 XML 数据,则可以选择 Web2.0 配置文件。

问:基本配置文件和高级配置文件有什么区别? 我如何决定我需要哪一个?

使用基本配置文件或高级配置文件的决定取决于您的应用程序的安全需求。基本配置文件包括一组预配置的“开始 URL”和“拒绝 URL 放宽规则”。这些放宽规则决定了允许哪些请求和哪些请求被拒绝。传入请求与预配置的规则匹配,并应用配置的操作。用户可以通过最少的放宽规则配置来保护应用程序。“开始”URL 规则可防止强制浏览。通过启用一组默认的拒绝 URL 规则,可以检测和阻止被黑客利用的已知 Web 服务器漏洞。通常发起的攻击,例如缓冲区溢出、SQL 或跨站点脚本,也可以很容易地检测到。

如名称所示,高级保护适用于具有更高安全要求的应用程序。放宽规则配置为仅允许访问特定数据并阻止其余数据。此正面安全模型可缓解未知攻击,而基本安全检查可能无法检测到这些攻击。除了所有的基本保护之外,高级配置文件还通过控制浏览、检查 Cookie、指定各种表单字段的输入要求以及防止篡改表单或跨站点请求伪造攻击来跟踪用户会话。学习(观察流量并建议适当的放宽)在许多安全检查中默认启用。高级保护虽然易于使用,但需要适当考虑,因为它们提供了更严格的安全性,但也需要更多的处理。一些高级安全检查不允许使用缓存,这可能会影响性能。

在决定是否使用基本配置文件还是高级配置文件时,请牢记以下几点:

  • 基本和高级配置文件刚刚开始模板。您始终可以修改基本配置文件以部署高级安全功能,反之亦然。
  • 高级安全检查需要更多的处理,可能会影响性能。除非您的应用程序需要高级安全性,否则您可能希望从基本配置文件开始,并根据应用程序的要求加强安全性。
  • 您不希望启用所有安全检查,除非您的应用程序需要它。

问:什么是策略? 如何选择绑定点并设置优先级?

Web App Firewall 策略可帮助您将流量排序为逻辑组,以配置不同级别的安全实现。仔细选择策略的绑定点,以确定哪些流量与哪个策略匹配。例如,如果您希望检查每个传入请求是否存在 SQL/XSS 攻击,则可以创建一个通用策略并将其全局绑定。或者,如果要对托管包含敏感数据的应用程序的虚拟服务器的流量应用更严格的安全检查,则可以将策略绑定到该虚拟服务器。

仔细分配优先级可以增强流量处理。您希望为更具体的策略分配更高的优先级,而为通用策略分配较低的优先级。请注意,数字越高,优先级越低。优先级为 10 的策略在优先级为 15 的策略之前进行评估。

您可以为不同类型的内容应用不同级别的安全性,例如,对静态对象(如图像和文本)的请求可以通过使用一个策略来绕过,对其他敏感内容的请求可以通过使用第二个策略进行严格的检查。

问:如何配置规则以保护我的应用程序?

Web App Firewall 可以很容易地为您的网站设计适当的安全级别。您可以拥有多个 Web App Firewall 策略,绑定到不同的 Web App Firewall 配置文件,以便为您的应用程序实施不同级别的安全检查检查。您可以初始监视日志以观察检测到哪些安全威胁以及触发哪些冲突行为。您可以手动添加放宽规则,也可以利用 Web App Firewall 推荐的学习规则来部署所需的放宽以避免误报。

Citrix Web App Firewall 提供 GUI 中的可视化工具支持,这使得规则管理变得非常简单。您可以轻松地在一个屏幕上查看所有数据,并通过一次点击对多个规则采取操作。可视化工具的最大优势在于它推荐正则表达式来整合多个规则。您可以根据分隔符和操作 URL 选择规则的子集。可视化工具支持可用于查看 1) 学习的规则和 2) 放宽规则。

  1. 学习规则的可视化工具提供了编辑规则并将其作为放宽部署的选项。您也可以跳过(忽略)规则。

  2. 已部署放宽的可视化工具为您提供了添加新规则或编辑现有规则的选项。您还可以通过选择节点并单击放宽可视化工具中的启用禁用按钮来启用或禁用一组规则。

问:什么是签名? 我如何知道要使用哪些签名?

签名是一个可以有多个规则的对象。每个规则由一个或多个模式组成,这些模式可以与指定的操作集相关联。Web App Firewall 有一个内置的默认签名对象,由 1,300 多个签名规则组成,可选择使用 自动更新功能获取最新 规则,以防止新漏洞。也可以导入由其他扫描工具创建的规则。

签名功能非常强大,因为它们使用模式匹配来检测恶意攻击,并且可以配置为检查请求和事务响应。当需要可定制的安全解决方案时,它们是首选选项。检测到签名匹配时,可以使用多个操作选项(例如,块、日志、学习和转换)。默认签名涵盖了保护不同类型的应用程序的规则,如 web-cgi、web-coldfusion、web-frontpage、web-iis、web-php、web-client、web-activex、web-shell-shock 和 web-struts。为了满足应用程序的需求,您可以选择并部署属于特定类别的规则。

签名使用提示:

  • 您可以创建默认签名对象的副本并对其进行修改,以启用所需的规则并配置所需的操作。
  • 可以通过添加新规则来自定义签名对象,这些规则可与其他签名规则结合使用。
  • 还可以将签名规则配置为与 Web App Firewall 配置文件中指定的安全检查一起工作。如果签名以及安全检查检测到了指示冲突的匹配项,则强制执行的操作越严格。
  • 签名规则可以具有多个模式,并配置为仅在所有模式匹配时标记冲突,从而避免误报。
  • 仔细选择规则的文字快速匹配模式可以显著优化处理时间。

问:Web App Firewall 是否与其他 Citrix ADC 功能配合使用?

Web App Firewall 完全集成到 Citrix ADC 设备中,并可与其他功能无缝配合使用。您可以通过将其他 Citrix ADC 安全功能与 Web App Firewall 配置为应用程序的最大安全性。例如, AAA-TM 可用于对用户进行身份验证、检查用户访问内容的授权以及记录访问,包括无效的登录尝试。重写 可用于修改 URL 或添加、修改或删除标题, 响应程序 可用于向不同的用户提供自定义内容。您可以通过使用 速率限制来监视流量并在速率过高时限制 速率来定义您的网站的最大负载。HTTP 拒绝服务 (DoS) 保护可帮助区分真实 HTTP 客户端和恶意 DoS 客户端。您可以通过将 Web App Firewall 策略绑定到虚拟服务器来缩小安全检查的范围,同时仍然通过使用 负载平衡 功能来管理大量使用的应用程序来优化用户体验。对静态对象(如图像或文本)的请求可以绕过安全检查检查,利用 集成缓存压缩 优化此类内容的带宽使用率。

问:Web App Firewall 和 Citrix ADC 其他功能如何处理有效负载?

功能的处理顺序部分中显示了 Citrix ADC 设备中 L7 数据包流的详细信息的图表。

问:Web App Firewall 部署的推荐工作流是什么?

现在您已经了解了使用 Citrix Web App Firewall 的最先进安全保护的优势,您可能需要收集其他信息,以帮助您设计满足安全需求的最佳解决方案。Citrix 建议您执行以下操作:

  • 解您的环境: 了解您的环境将帮助您找到满足您需求的最佳安全保护解决方案(签名、安全检查或两者)。在开始配置之前,您应该收集以下信息。
    • 操作系统: 您有哪种操作系统(MS Windows、Linux、BSD、Unix 或其他)?
    • Web 服务器:您运行的是 哪个 Web 服务器(IIS、Apache 或 Citrix ADC 企业服务器)?
    • 应用程序: 您的应用程序服务器上运行哪种类型的应用程序(例如,ASP.NET、PHP、Cold Fusion、ActiveX、FrontPage、Struts、CGI、Apache Tomcat、Domino 和 WebLogic)?
    • 您是否有自定义的应用程序或现成的应用程序(例如 Oracle、SAP)? 您使用的是什么版本?
    • SSL: 您是否需要 SSL? 如果是这样,那么用于签名证书的密钥大小(512、1024、2048、4096)?
    • 流量: 通过您的应用程序的平均流量是多少? 您是否有季节性或特定时间的峰值?
    • 服务器场: 您有多少台服务器? 是否需要使用负载平衡?
    • 数据库: 您使用什么类型的数据库(MS-SQL,MySQL,甲骨文,邮政,SQLite,nosql,Sybase,Informix 等)?
    • 数据库连接: 您有什么样的数据库连接(DSN,每个文件连接字符串,单个文件连接字符串)以及使用哪些驱动程序?
  • 确定您的安全需求: 您可能需要评估哪些应用程序或特定数据需要最大程度的安全保护,哪些应用程序或特定数据不太易受攻击,以及哪些可以安全绕过安全检查的应用程序或特定数据。这将有助于您提出最佳配置,并设计适当的策略和绑定点以隔离流量。例如,您可能需要配置策略以绕过对静态 Web 内容(例如图像、MP3 文件和动画)的请求进行安全检查,并配置另一个策略以将高级安全检查应用于动态内容请求。您可以使用多个策略和配置文件来保护同一应用程序的不同内容。
  • 许可证要求: Citrix 提供了一个统一的解决方案,通过利用负载平衡、内容切换、缓存、压缩、响应程序、重写和内容过滤等丰富功能来优化应用程序的性能。识别所需的功能可帮助您决定所需的许可证。
  • 安装 Citrix ADC 设备并对其进行基准测试: 创建虚拟服务器并通过该服务器运行测试流量,以了解系统流量的速率和流量。此信息将帮助您确定容量要求并选择正确的设备(VPX、MPX 或 SDX)。
  • 部署 Web App Firewall: 使用 Web App Firewall 向导继续进行简单的安全配置。向导将引导您浏览多个屏幕,并提示您添加配置文件、策略、签名和安全检查。
    • 配置文件: 为您的配置文件选择一个有意义的名称和相应的类型(HTML、XML 或 WEB 2.0)。策略和签名将使用相同的名称自动生成。
    • 策略: 自动生成的策略具有默认的表达式 (true),该表达式选择所有流量并全局绑定。除非您考虑到要使用的特定策略,否则这是一个很好的起点。
    • 保护: 该向导可帮助您利用混合安全模型,在该模型中,您可以使用默认签名,提供丰富的规则集来保护不同类型的应用程序。简单 的编辑模式允许您查看各种类别(CGI、冷融合、PHP 等)。您可以选择一个或多个类别以确定适用于您的应用程序的特定规则集。使用操作”选项启用所选类别中的所有签名规则。请确保禁用阻塞,以便在加强安全性之前监视流量。单击 继续。在指定深度保护窗格中,您可以根据需要进行更改以部署安全检查保护。在大多数情况下,基本保护足以满足初始安全配置。运行流量一段时间以收集安全检查数据的具有代表性的示例。
    • 加强安全性: 部署 Web App Firewall 并观察流量一段时间后,您可以通过部署放宽,然后启用阻塞来开始加强应用程序的安全性。学习可视化工具单击以部署规则是非常有用的功能,可以很容易地调整您的配置,从而达到恰当的放宽级别。此时,您还可以更改策略表达式和/或配置其他策略和配置文件,以便为不同类型的内容实现所需的安全级别。
    • 调试: 如果您看到应用程序的意外行为,Web App Firewall 提供了各种方便调试的选项:
      • 日志。如果合法请求被阻止,您的第一步是检查 ns.log 文件以查看是否触发了任何意外的安全检查冲突。
      • 禁用功能。如果您没有看到任何冲突,但仍然看到意外的行为(例如应用程序重置或发送部分响应),则可以禁用 Web App Firewall 功能进行调试。如果问题仍然存在,它将 Web App Firewall 排除为嫌疑人。
      • 使用日志消息跟踪记录。如果问题似乎与 Web App Firewall 相关并且需要仔细检查,您可以选择在 nstrace 中包含安全冲突消息。您可以在跟踪中使用“跟踪 TCP 流”来查看单个事务的详细信息,包括标头、有效负载和相应的日志消息,一起在同一屏幕上。有关如何使用此功能的详细信息,请访问附录