先进的概念

Citrix ADC VPX在Azure上部署指南

概述

Citrix ADC是一种应用交付和负载平衡解决方案,可为web、传统和云原生应用提供高质量的用户体验,无论它们托管在哪里。它有多种形式和部署选项,而不会将用户锁定在单一配置或云中。池容量许可支持在云部署之间移动容量。

作为服务和应用交付领域无可争议的领导者,思杰ADC部署在全球数千个网络中,以优化、保护和控制所有企业和云服务的交付。Citrix ADC直接部署在web和数据库服务器前面,将高速负载平衡和内容交换、HTTP压缩、内容缓存、SSL加速、应用程序流可见性和强大的应用程序防火墙集成到一个易于使用的集成平台中。通过端到端监控,将网络数据转换为可操作的业务智能,大大简化了满足sla的过程。Citrix ADC允许使用简单的声明性策略引擎定义和管理策略,而不需要编程专业知识。

Citrix ADC VPX

Citrix ADC VPX产品是一种虚拟设备,可以托管在各种虚拟化和云平台上。

本部署指南主要关注Azure上的Citrix ADC VPX。

微软Azure

  • Microsoft Azure是一套不断扩展的云计算服务,可帮助组织应对其业务挑战。Azure让用户可以自由地使用自己喜欢的工具和框架在大规模的全球网络上构建、管理和部署应用程序。使用Azure,用户可以:

  • 为未来做好准备,让微软不断创新来支持他们今天的发展和未来的产品愿景。

  • 在本地、云中和边缘无缝地操作混合云—azure满足用户的需求。

  • Azure承诺开源并支持所有语言和框架,允许用户自由地构建他们想要的方式,并在他们想要的地方部署。

  • 信任他们的云,从底层开始提供安全保障——由专家团队提供支持,以及受到企业、政府和初创公司信任的前瞻性、行业领先的合规性。

Azure的术语

以下是本文档中用户必须熟悉的关键术语的简要描述:

  • Azure负载平衡器——Azure负载平衡器是一种资源,用于在网络中的计算机之间分配传入流量。流量分布在负载平衡器集中定义的虚拟机之间。负载均衡器可以是外部的或面向internet的,也可以是内部的。

  • Azure资源管理器(ARM)——ARM是Azure中服务的新管理框架。Azure负载均衡器使用基于arm的api和工具进行管理。

  • 后端地址池——这些IP地址与将分配负载的虚拟机网卡相关联。

  • BLOB—二进制大对象—任何二进制对象,如文件或图像,可以存储在Azure存储中。

  • 前端IP配置——Azure负载均衡器可以包含一个或多个前端IP地址,也称为虚拟IP (vip)。这些IP地址作为流量的入口。

  • 实例级公共IP (ILPIP)—ILPIP是一个公共IP地址,用户可以将其直接分配给虚拟机或角色实例,而不是分配给虚拟机或角色实例所在的云服务。这不会取代分配给云服务的VIP(虚拟IP)。相反,它是一个额外的IP地址,可用于直接连接到虚拟机或角色实例。

注意:

在过去,ILPIP被称为PIP,它代表公共IP。

  • 入站NAT规则—包含负载均衡器上的公共端口到后端地址池中特定虚拟机端口的映射规则。

  • IP配置—可以定义为与单个网卡相关联的IP地址对(公共IP和私有IP)。在IP- config中,公网IP地址可以为NULL。每个网卡可以关联多个IP配置,最多255个。

  • 负载均衡规则——将给定的前端IP地址和端口组合映射到一组后端IP地址和端口组合的规则属性。通过对负载均衡器资源的单个定义,用户可以定义多个负载均衡规则,每个规则反映与虚拟机关联的前端IP和端口以及后端IP和端口的组合。

  • NSG (Network Security Group)—NSG包含一组ACL (Access Control list)规则,用于允许或禁止虚拟网络中的虚拟机实例访问网络流量。nsg既可以与子网关联,也可以与该子网内的单个虚拟机实例关联。当NSG与子网关联时,ACL规则适用于该子网中的所有虚拟机实例。此外,通过将NSG直接关联到单个虚拟机,可以进一步限制到该虚拟机的流量。

  • 私有IP地址——用于Azure虚拟网络内的通信,当使用VPN网关将用户网络扩展到Azure时,用于用户本地网络。私有IP地址允许Azure资源通过VPN网关或ExpressRoute电路与虚拟网络或本地网络中的其他资源进行通信,而无需使用可访问internet的IP地址。在Azure Resource Manager部署模型中,私有IP地址与以下类型的Azure资源相关联:虚拟机、内部负载平衡器(ilb)和应用程序网关。

  • 探测——这包含用于检查后端地址池中虚拟机实例的可用性的健康探测。如果特定虚拟机在一段时间内没有响应运行状况探测,则将其从流量服务中移除。探测使用户能够跟踪虚拟实例的运行状况。如果运行状况探测失败,虚拟实例将自动退出循环。

  • 公共IP地址(PIP)——PIP用于与Internet通信,包括Azure面向公共的服务,并与虚拟机、面向Internet的负载平衡器、VPN网关和应用程序网关相关联。

  • 区域—地理区域中不跨越国家边界的区域,包含一个或多个数据中心。定价、区域服务和优惠类型在区域级别公开。一个区域通常与几百英里之外的另一个区域配对,形成一个区域配对。区域对可以作为一种机制用于灾难恢复和高可用性场景。通常也被称为位置。

  • 资源组——资源管理器中的容器,用于保存应用程序的相关资源。资源组可以包括应用程序的所有资源,也可以只包括逻辑分组的资源。

  • 存储帐户——Azure存储帐户允许用户访问Azure存储中的Azure blob、队列、表和文件服务。用户存储帐户为用户Azure存储数据对象提供唯一的名称空间。

  • 虚拟机-运行操作系统的物理计算机的软件实现。多个虚拟机可以在同一硬件上同时运行。在Azure中,虚拟机有各种大小。

  • 虚拟网络——Azure虚拟网络是云中的用户网络的表示。它是专用于用户订阅的Azure云的逻辑隔离。用户可以完全控制该网络中的IP地址块、DNS设置、安全策略和路由表。用户还可以进一步将他们的VNet划分为子网,并启动Azure IaaS虚拟机和云服务(PaaS角色实例)。此外,用户可以使用Azure中提供的连接选项之一将虚拟网络连接到本地网络。从本质上讲,用户可以将他们的网络扩展到Azure,完全控制IP地址块,并利用Azure提供的企业规模优势。

Citrix WAF在Azure上的逻辑流程

image-vpx-azure-appsecurity-deployment-01

图1:Citrix WAF在Azure上的逻辑图

逻辑流

Web应用程序防火墙可以安装为客户服务器和客户用户之间的第3层网络设备或第2层网络桥接,通常位于客户公司的路由器或防火墙后面。它必须安装在一个可以拦截用户想要保护的web服务器与用户访问这些web服务器的集线器或交换机之间的流量的位置。然后,用户将网络配置为将请求发送到Web应用防火墙,而不是直接发送到他们的Web服务器,并将响应发送到Web应用防火墙,而不是直接发送到他们的用户。Web应用程序防火墙在将流量转发到最终目的地之前对其进行过滤,同时使用其内部规则集和用户添加和修改。它阻止或呈现无害的任何活动,它检测为有害的,然后将剩余的流量转发到web服务器。上面的图(图1)提供了过滤过程的概述。

注意:该图忽略了策略对传入流量的应用。它演示了一种安全配置,其中策略是处理所有请求。此外,在此配置中,已经配置了签名对象并与配置文件关联,并且在配置文件中配置了安全检查。如图所示,当用户请求受保护网站上的URL时,Web应用防火墙首先检查请求以确保它与签名不匹配。如果请求与签名匹配,Web应用程序防火墙要么显示错误对象(位于Web应用程序防火墙设备上的一个网页,用户可以通过使用导入特性对其进行配置),要么将请求转发到指定的错误URL(错误页面)。

如果一个请求通过了签名检测,Web应用防火墙就会应用已经开启的请求安全检查。请求安全检查验证请求是否适合用户网站或web服务,并且不包含可能构成威胁的材料。例如,安全检查检查请求的迹象,表明它可能是一个意外的类型,请求意外的内容,或包含意外的,可能是恶意的web表单数据,SQL命令,或脚本。如果请求没有通过安全检查,Web应用程序防火墙要么对请求进行处理,然后将其发送回Citrix ADC设备(或Citrix ADC虚拟设备),要么显示错误对象。如果请求通过了安全检查,则将其发送回Citrix ADC设备,后者完成任何其他处理并将请求转发给受保护的web服务器。

当网站或web服务向用户发送响应时,web应用防火墙应用已启用的响应安全检查。响应安全检查检查响应是否泄露敏感的私人信息、网站污损的迹象或其他不应该出现的内容。如果响应没有通过安全检查,Web应用程序防火墙要么删除不应该出现的内容,要么阻止响应。如果响应通过了安全检查,则将其发送回Citrix ADC设备,后者将其转发给用户。

用例

与需要将每个服务部署为单独的虚拟设备的替代解决方案相比,Azure上的Citrix ADC在单个VPX实例中结合了L4负载平衡、L7流量管理、服务器卸载、应用程序加速、应用程序安全性和其他必要的应用程序交付功能,可以通过Azure Marketplace方便地获得。此外,所有内容都由单一策略框架管理,并使用用于管理本地Citrix ADC部署的相同的强大工具集进行管理。最终的结果是,Azure上的Citrix ADC支持几个引人注目的用例,这些用例不仅支持当今企业的直接需求,而且还支持从传统计算基础设施到企业云数据中心的持续演变。

部署类型

多网卡多ip部署(三网卡部署)

  • 典型的部署

    • 样本的驱动

    • 与ADM

      • 使用GSLB (Azure流量管理(TM),无需域名注册)

      • 许可-汇集/市场

  • 用例

    • 多网卡多ip(三网卡)部署,实现数据流量和管理流量的真正隔离。

    • 多网卡多ip(三网卡)部署还可以提高ADC的规模和性能。

    • Multi-NIC Multi-IP (Three-NIC)部署用于吞吐量一般为1gbps及以上的网络应用,建议使用“Three-NIC Deployment”。

HA多网卡多ip(三网卡)部署

如果客户要部署到安全性、冗余性、可用性、容量和可伸缩性都很重要的生产环境中,他们可能会使用三网卡部署进行部署。使用这种部署方法,复杂性和易管理性对用户来说不是关键问题。

Azure资源管理器模板部署

如果客户要自定义部署或自动化部署,他们将使用ARM (Azure资源管理器)模板进行部署。

ARM (Azure资源管理器)模板

GitHub存储库为Citrix ADC ARM (Azure资源管理器)模板主机Citrix ADC自定义模板用于在Microsoft Azure云服务中部署Citrix ADC。这个存储库中的所有模板都是由Citrix ADC工程团队开发和维护的。

此存储库中的每个模板都有共同定位的文档,描述模板的用法和体系结构。这些模板试图编纂Citrix ADC VPX的推荐部署架构,或者向用户介绍Citrix ADC,或者演示特定的功能/版本/选项。用户可以重用/修改或增强模板,以满足他们特定的生产和测试需求。大多数模板需要对portal.azure.com进行足够的订阅,以创建资源和部署模板。Citrix ADC VPX Azure资源管理器(ARM)模板旨在确保以轻松一致的方式部署独立的Citrix ADC VPX。这些模板通过内置冗余提高了可靠性和系统可用性。这些ARM模板支持自带许可证(BYOL)或基于小时的选择。选择选项要么在模板描述中提到,要么在模板部署期间提供。有关如何使用ARM (Azure资源管理器)模板在Microsoft Azure上配置Citrix ADC VPX实例的更多信息,请访问:Citrix ADC Azure模板

有关如何在Microsoft Azure上部署Citrix ADC VPX实例的详细信息,请参阅:在Microsoft Azure上部署Citrix ADC VPX实例

有关Citrix ADC VPX实例如何在Azure上工作的更多信息,请访问:Citrix ADC VPX实例如何在Azure上工作

部署步骤

当用户在微软Azure资源管理器(ARM)上部署Citrix ADC VPX实例时,他们可以使用Azure云计算功能,并使用Citrix ADC负载平衡和流量管理功能来满足业务需求。用户可以在Azure资源管理器上部署Citrix ADC VPX实例,既可以作为独立实例,也可以作为active-standby模式下的高可用性对。

用户可以通过以下两种方式在Microsoft Azure上部署Citrix ADC VPX实例:

  • 通过Azure市场。Citrix ADC VPX虚拟设备在Microsoft Azure Marketplace中以镜像的形式提供。Azure资源管理器模板发布在Azure Marketplace中,可用于在独立部署和HA对部署中部署Citrix ADC。

  • 使用GitHub上提供的Citrix ADC Azure资源管理器(ARM) json模板。有关更多信息,请参阅GitHub存储库中的Citrix ADC解决方案模板

选择正确的Azure实例

Azure上的VPX虚拟设备可以部署在具有两个或更多核心和超过2 GB内存的任何实例类型上。ADC VPX license推荐的实例类型如下表所示:

VPX模型 Azure实例(推荐)
VPX10 标准D2s v3
VPX200 标准D2s v3
VPX1000 标准D4s v3
VPX3000 标准D8s v3

一旦知道了需要用于部署的许可证和实例类型,用户就可以使用推荐的Multi-NIC multi-IP架构在Azure上配置Citrix ADC VPX实例。

多网卡多ip架构(3网卡)

在这种部署方式下,用户可以为一个VPX实例绑定多个网卡。任何网卡都可以有一个或多个IP配置-分配给它的静态或动态公共和私有IP地址。多网卡架构既可以用于单机部署,也可以用于HA对部署。可以使用以下ARM模板:

  • Citrix ADC Standalone: ARM Template-Standalone 3网卡

  • Citrix ADC HA Pair: ARM Template-HA Pair 3网卡

请参考以下用例:

Citrix ADM部署架构

下图概述了Citrix ADM如何与Azure连接以在Microsoft Azure中提供Citrix ADC VPX实例。

image-vpx-azure-appsecurity-deployment-02

用户需要有三个子网,以便在Microsoft Azure中提供和管理Citrix ADC VPX实例。每个子网都需要创建安全组。网络安全组NSG (Network Security Group)中规定的规则用于管理子网间的通信。

Citrix ADM业务代理帮助用户发放和管理Citrix ADC VPX实例。

配置具有多个IP地址和网卡的高可用性安装程序

在Microsoft Azure部署中,两个Citrix ADC VPX实例的高可用性配置是通过使用Azure负载平衡器(ALB)实现的。这是通过在ALB上配置健康探测来实现的,ALB通过每5秒向主实例和辅助实例发送健康探测来监视每个VPX实例。

在此设置中,只有主节点响应运行状况探测,辅助节点不响应。一旦主服务器向运行状况探测发送响应,ALB就开始向实例发送数据流量。如果主实例连续两次错过运行状况探测,则ALB不会将流量重定向到该实例。在故障转移时,新的主服务器开始响应运行状况探测,ALB将流量重定向到它。标准的VPX高可用性故障转移时间是3秒。流量切换可能发生的总故障转移时间最多为13秒。

用户可以在Azure上以主-被动式高可用性(HA)设置部署一对具有多个网卡的Citrix ADC VPX实例。每个网卡可以包含多个IP地址。

对于多网卡高可用性部署,有以下选项:

  • 使用Azure可用性集实现高可用性

  • 使用Azure可用性区域实现高可用性

有关Azure可用性集和可用区的详细信息,请参阅Azure文档管理Linux虚拟机可用性

使用可用性集实现高可用性

使用可用性集的高可用性设置必须满足以下要求:

  • HA Independent Network Configuration (INC)配置

  • Azure负载平衡器(ALB)在直接服务器返回(DSR)模式

所有流量都通过主节点。备用节点保持备用状态,直到主节点故障。

注意:

为了使Citrix VPX高可用性部署在Azure云上工作,用户需要一个可以在两个VPX节点之间移动的浮动公共IP (PIP)。Azure负载平衡器(ALB)提供浮动PIP,在发生故障转移时,它会自动移动到第二个节点。

主备部署时,在每个VPX节点上添加ALB的PIP地址作为VIP地址。在HA-INC配置中,VIP地址是浮动的,SNIP地址是与实例相关的。

用户可以通过以下两种方式部署主备高可用性模式的VPX对:

  • Citrix ADC VPX标准高可用性模板:默认配置3个子网、6个网卡的HA pair。

  • Windows PowerShell命令:根据子网和网卡需求配置HA对。

介绍如何使用Citrix模板在主备HA环境中部署VPX对。如果用户希望使用PowerShell命令部署,请参见使用PowerShell命令配置具有多个IP地址和网卡的高可用性安装程序

使用“Citrix高可用性模板”配置HA-INC

用户可以使用标准模板快速高效地部署一对HA-INC模式的VPX实例。模板创建2个节点,3个子网,6个网卡。子网用于管理、客户端和服务器端流量,每个子网有两个网卡,分别用于两个VPX实例。

通过使用Azure可用性集,完成以下步骤以启动模板并部署高可用性VPX对。

  1. 从Azure Marketplace中选择并初始化Citrix解决方案模板。模板出现。

  2. 确保部署类型为资源管理器并选择创建

  3. 基础知识页面出现。创建资源组并选择好吧

  4. 一般设置页面出现。输入详细信息并选择好吧

  5. 网络设置页面出现。检查VNet和子网配置,编辑需要的设置后选择好吧

  6. 总结页面出现。检查配置并进行相应的编辑。选择好吧来确认。

  7. 页面出现。选择购买完成部署。

使用所需的配置创建Azure资源组可能需要一些时间。完成后,选择资源组在Azure门户中查看配置详细信息,如LB规则、后端池、运行状况探测等。高可用性对分别为ns-vpx0和ns-vpx1。

如果需要对HA设置进行进一步修改,例如创建更多安全规则和端口,用户可以从Azure门户进行修改。

接下来,用户需要配置负载均衡虚拟服务器ALB的前端公共IP (PIP)地址,在主节点上。要查找ALB PIP,请选择ALB >前端IP配置

有关如何配置负载平衡虚拟服务器的更多信息,请参阅参考资料部分。

资源:

以下链接提供了与HA部署和虚拟服务器配置相关的其他信息:

相关资源:

使用可用分区实现高可用性

Azure可用区是Azure区域内的故障隔离位置,提供冗余电源、冷却和网络,并提高弹性。只有特定的Azure区域支持可用区。有关详细信息,请参阅Azure文档Azure中的可用区:在主备高可用性配置中配置GSLB

用户可以通过使用Azure Marketplace中提供的名为“NetScaler 13.0 HA使用可用区”的模板,在高可用性模式下部署VPX对。

通过使用Azure可用区,完成以下步骤以启动模板并部署高可用性VPX对。

  1. 从Azure Marketplace中选择并初始化Citrix解决方案模板。

  2. 确保部署类型为资源管理器并选择创建

  3. 出现Basics页面。输入详细信息,然后单击好吧

注意:确保选择了支持可用区的Azure区域。有关支持可用区区域的详细信息,请参阅Azure文档Azure中的可用区:Azure中的区域和可用区

  1. 一般设置页面出现。输入详细信息并选择好吧

  2. 网络设置页面出现。检查VNet和子网配置,编辑需要的设置后选择好吧

  3. 总结页面出现。检查配置并进行相应的编辑。选择好吧来确认。

  4. 页面出现。选择购买完成部署。

使用所需的配置创建Azure资源组可能需要一些时间。完成后,选择资源组以查看Azure门户中的配置详细信息,例如LB规则、后端池、运行状况探测等。高可用性对分别为ns-vpx0和ns-vpx1。此外,用户还可以在位置列。

如果需要对HA设置进行进一步修改,例如创建更多安全规则和端口,用户可以从Azure门户进行修改。

有关在Microsoft Azure上配置Citrix ADC VPX实例的详细信息,请参阅:在Microsoft Azure上配置Citrix ADC VPX实例

Citrix应用交付管理

Citrix应用交付管理服务(Citrix ADM)提供了一个简单且可扩展的解决方案来管理Citrix ADC部署,包括Citrix ADC MPX、Citrix ADC VPX、Citrix网关、Citrix安全Web网关、Citrix ADC SDX、Citrix ADC CPX和部署在本地或云上的Citrix SD-WAN设备。

用户可以使用此云解决方案从一个统一的集中式基于云的控制台管理、监视整个全局应用程序交付基础设施,并对其进行故障排除。Citrix ADM Service提供在Citrix ADC部署中快速设置、部署和管理应用程序交付所需的所有功能,并提供对应用程序运行状况、性能和安全性的丰富分析。

Citrix ADM Service提供以下好处:

  • 敏捷-易于操作、更新和消费。Citrix ADM service的服务模式通过云提供,便于操作、更新和使用Citrix ADM service提供的特性。更新频率与自动更新功能相结合,可以快速增强用户Citrix ADC的部署。

  • 更快实现价值-更快实现业务目标。与传统的本地部署不同,用户只需点击几下就可以使用他们的Citrix ADM服务。用户不仅可以节省安装和配置时间,还可以避免在潜在错误上浪费时间和资源。

  • 多站点管理-跨多站点数据中心实例的单窗格。通过Citrix ADM Service,用户可以对各种部署类型的Citrix adc进行管理和监控。用户可以一站式管理部署在本地和云中的思杰adc。

  • 运营效率-优化和自动化的方式,以实现更高的运营效率。使用Citrix ADM Service,可以节省维护和升级传统硬件部署所需的时间、金钱和资源,从而降低用户的运营成本。

思杰ADM服务是如何工作的

Citrix ADM Service以服务形式在Citrix Cloud上提供。用户注册Citrix Cloud并开始使用该服务后,需要在用户网络环境中安装代理或在实例中启动内置代理。然后,将用户想要管理的实例添加到服务。

代理用于实现Citrix ADM Service与用户数据中心中的被管理实例之间的通信。代理从用户网络中的被管理实例中收集数据并发送给Citrix ADM Service。

当用户向Citrix ADM Service添加实例时,它会隐式地将自身添加为陷阱目的地,并收集实例的清单。

该服务收集实例的详细信息,例如:

  • 主机名

  • 软件版本

  • 运行和保存的配置

  • 证书

  • 在实例上配置的实体,等等。

Citrix ADM Service定期轮询管理实例以收集信息。

下图展示了服务、代理和实例之间的通信:

image-vpx-azure-appsecurity-deployment-03

文档指南

Citrix ADM Service文档包括关于如何开始使用该服务的信息,该服务支持的特性列表,以及特定于此服务解决方案的配置。

思杰ADC WAF和OWASP前十名- 2017

开放Web应用程序安全项目:OWASP近日,OWASP发布了2017年web应用安全十大榜单。这个列表记录了最常见的web应用程序漏洞,是评估web安全性的一个很好的起点。这里我们详细介绍了如何配置Citrix ADC Web应用程序防火墙(WAF)来缓解这些缺陷。WAF作为集成模块可在Citrix ADC(高级版)和一系列完整的设备中使用。

完整的OWASP Top 10文档可在十佳

2017年OWASP top10 Citrix ADC WAF特性
A1:2017——注射 防注入攻击(SQL或其他自定义注入,如OS Command注入、XPath注入、LDAP注入)、自动更新签名特性
A2:2017 -认证失效 AAA, Cookie篡改保护,Cookie代理,Cookie加密,CSRF标签,使用SSL
A3:2017 -敏感数据暴露 信用卡保护,安全商务,Cookie代理和Cookie加密
04:2017 XML外部实体(XXE) XML保护,包括WSI检查,XML消息验证和XML SOAP故障过滤检查
A5:2017破解访问控制 AAA, NetScaler的AAA模块中的授权安全功能,表单保护和Cookie篡改保护,StartURL和ClosureURL
A6:2017 -安全配置错误 PCI报告,SSL功能,从漏洞扫描报告(如Cenzic, Qualys, AppScan, WebInspect, Whitehat)生成签名。此外,特定的保护,如Cookie加密、代理和篡改
A7:2017 -跨站脚本(XSS) XSS攻击防范,阻断所有OWASP XSS小抄攻击
A8:2017 -不安全反序列化 XML安全检查,GWT内容类型,自定义签名,JSON和XML的Xpath
A9:2017 -使用具有已知漏洞的组件 漏洞扫描报告、应用防火墙模板和自定义签名
A10:2017 -记录和监控不足 用户可配置自定义日志,Citrix ADC管理和分析系统

A1:2017——注射

当不受信任的数据作为命令或查询的一部分发送给解释器时,就会出现注入缺陷,例如SQL、NoSQL、OS和LDAP注入。攻击者的恶意数据可以欺骗解释器运行非预期的命令或在没有适当授权的情况下访问数据。

ADC WAF保护

  • SQL注入防御功能可以防范常见的注入攻击。可以上传自定义注入模式,以防止任何类型的注入攻击,包括XPath和LDAP。这适用于HTML和XML有效负载。

  • 自动更新签名功能使注入签名保持最新状态。

  • 字段格式保护功能允许管理员将任何用户参数限制为正则表达式。例如,您可以强制邮政编码字段只包含整数或甚至5位整数。

  • 表单字段一致性:根据用户会话表单签名验证每个提交的用户表单,以确保所有表单元素的有效性。

  • 缓冲区溢出检查确保URL、报头和cookie在正确的限制范围内,阻止任何注入大型脚本或代码的尝试。

A2:2017 -认证失效

与身份验证和会话管理相关的应用程序功能通常实现不正确,从而允许攻击者泄露密码、密钥或会话令牌,或者利用其他实现缺陷来临时或永久地使用其他用户的身份。

ADC WAF保护

  • Citrix ADC AAA模块执行用户身份验证,并为后端应用程序提供单点登录功能。这被集成到Citrix ADC AppExpert策略引擎中,以允许基于用户和组信息定制策略。

  • 通过使用SSL卸载和URL转换功能,防火墙还可以帮助站点使用安全传输层协议来防止通过网络嗅探窃取会话令牌。

  • Cookie代理和Cookie加密可以完全减少Cookie窃取。

A3:2017 -敏感数据暴露

许多web应用程序和api不能正确保护敏感数据,如金融、医疗保健和PII。攻击者可能会窃取或修改这些保护不力的数据,进行信用卡欺诈、身份盗窃或其他犯罪。敏感数据可能在没有额外保护的情况下被泄露,例如在静态或传输中进行加密,并且在与浏览器交换时需要特别的预防措施。

ADC WAF保护

  • 应用程序防火墙保护应用程序不泄露敏感数据,如信用卡详细信息。

  • 敏感数据可以配置为安全商业保护中的安全对象,以避免暴露。

  • Cookie代理和Cookie加密可以保护Cookie中的任何敏感数据。

04:2017 XML外部实体(XXE)

许多较旧的或配置较差的XML处理器评估XML文档中的外部实体引用。外部实体可以使用文件URI处理程序、内部文件共享、内部端口扫描、远程代码执行和拒绝服务攻击来公开内部文件。

ADC WAF保护

  • 除了检测和阻止可用于攻击基于xml的应用程序的常见应用程序威胁(即跨站点脚本、命令注入等)之外。

  • ADC应用程序防火墙包括一组丰富的特定于xml的安全保护。其中包括彻底验证SOAP消息和XML有效负载的模式验证,以及阻止包含恶意可执行文件或病毒的附件的功能强大的XML附件检查。

  • 自动流量检测方法可以阻止以获取访问权限为目的的url和表单的XPath注入攻击。

  • ADC应用程序防火墙还可以阻止各种DoS攻击,包括外部实体引用、递归扩展、过度嵌套以及包含长或多属性和元素的恶意消息。

A5:2017破解访问控制

对经过身份验证的用户允许做什么的限制通常没有得到适当的执行。攻击者可以利用这些漏洞访问未经授权的功能和数据,例如访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等

ADC WAF保护

  • 支持对所有应用程序流量进行身份验证、授权和审计的AAA特性允许站点管理员使用ADC设备管理访问控制。

  • ADC设备的AAA模块中的Authorization安全特性使设备能够验证应允许每个用户访问受保护服务器上的哪些内容。

  • 表单字段一致性:如果对象引用作为隐藏字段存储在表单中,那么使用表单字段一致性可以验证这些字段在后续请求中没有被篡改。

  • Cookie代理和Cookie一致性:存储在Cookie值中的对象引用可以通过这些保护进行验证。

  • 用URL闭包启动URL检查:允许用户访问预定义的允许URL列表。URL闭包构建了用户会话期间在有效响应中看到的所有URL的列表,并自动允许在会话期间访问它们。

A6:2017 -安全配置错误

安全配置错误是最常见的问题。这通常是由于不安全的默认配置、不完整或临时配置、开放的云存储、错误配置的HTTP标头以及包含敏感信息的详细错误消息造成的。不仅必须安全地配置所有操作系统、框架、库和应用程序,而且还必须及时修补和升级它们。

ADC WAF保护

  • 应用程序防火墙生成的PCI-DSS报告记录了防火墙设备上的安全设置。

  • 来自扫描工具的报告被转换为ADC WAF签名,以处理安全配置错误。

  • ADC WAF支持Cenzic、IBM AppScan(企业和标准)、Qualys、TrendMicro、WhiteHat和自定义漏洞扫描报告。

A7:2017 -跨站脚本(XSS)

每当应用程序在没有适当验证或转义的情况下在新网页中包含不受信任的数据时,或者使用可以创建HTML或JavaScript的浏览器API使用用户提供的数据更新现有网页时,就会出现XSS缺陷。XSS允许攻击者在受害者的浏览器中运行脚本,这些脚本可以劫持用户会话,破坏网站或将用户重定向到恶意网站。

ADC WAF保护

  • XSS保护防范常见的XSS攻击。可以上传自定义XSS模式来修改允许的标记和属性的默认列表。ADC WAF使用允许的HTML属性和标记的白名单来检测XSS攻击。这适用于HTML和XML有效负载。

  • ADC WAF阻止OWASP XSS过滤器评估备忘单中列出的所有攻击。

  • 字段格式检查防止攻击者发送不适当的web表单数据,这可能是一个潜在的跨站攻击。

  • 表单字段一致性。

A8:2017 -不安全反序列化

不安全的反序列化通常会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,它们也可以用于执行攻击,包括重放攻击、注入攻击和特权升级攻击。

ADC WAF保护

  • 带有自定义签名的JSON有效负载检查。

  • XML安全性:防止XML拒绝服务(xDoS), XML SQL和Xpath注入和跨站点脚本,格式检查,WS-I基本配置文件遵从性,XML附件检查。

  • 可以使用字段格式检查、Cookie Consistency和Field Consistency。

A9:2017 -使用具有已知漏洞的组件

组件(如库、框架和其他软件模块)以与应用程序相同的权限运行。如果利用了易受攻击的组件,这种攻击可能导致严重的数据丢失或服务器接管。使用具有已知漏洞的组件的应用程序和api可能会破坏应用程序防御,并导致各种攻击和影响。

ADC WAF保护

  • Citrix建议使用最新的第三方组件。

  • 转换为ADC签名的漏洞扫描报告可用于虚拟修补这些组件。

  • 可以使用这些易受攻击组件可用的应用程序防火墙模板。

  • 可以将自定义签名与防火墙绑定,以保护这些组件。

A10:2017 -记录和监控不足

日志记录和监视不足,加上事件响应集成的缺失或无效,使攻击者能够进一步攻击系统、维护持久性、转向更多系统,以及篡改、提取或销毁数据。大多数漏洞研究表明,发现漏洞的时间超过200天,通常由外部方而不是内部流程或监控检测到。

ADC WAF保护

  • 当为安全检查或签名启用日志操作时,生成的日志消息将提供有关应用程序防火墙在保护网站和应用程序时所观察到的请求和响应的信息。

  • 应用程序防火墙提供了使用内置ADC数据库的便利,用于识别恶意请求源自的IP地址对应的位置。

  • 默认格式(PI)表达式提供了自定义日志中包含的信息的灵活性,并提供了在应用程序防火墙生成的日志消息中添加要捕获的特定数据的选项。

  • 应用防火墙支持CEF日志。

应用安全防护

Citrix ADM

Citrix应用交付管理服务(Citrix ADM)提供可扩展的解决方案来管理Citrix ADC部署,包括Citrix ADC MPX、Citrix ADC VPX、Citrix网关、Citrix安全Web网关、Citrix ADC SDX、Citrix ADC CPX和部署在本地或云上的Citrix SD-WAN设备。

Citrix ADM应用分析和管理特性

下面列出并总结了ADM在应用安全中扮演的关键角色的显著特性。

应用分析与管理

Citrix ADM的应用程序分析和管理功能加强了以应用程序为中心的方法,以帮助用户解决各种应用程序交付挑战。这种方法使用户可以了解应用程序的健康状况评分,帮助用户确定安全风险,并帮助用户检测应用程序流量中的异常情况并采取纠正措施。在这些角色中,最重要的是应用安全分析:

  • 应用程序安全分析:应用安全分析。App Security Dashboard提供了用户应用程序安全状态的整体视图。例如,它显示安全违规、签名违规、威胁索引等关键安全度量。App Security仪表板还会显示发现的Citrix ADC实例的SYN攻击、小窗口攻击、DNS flood攻击等攻击相关信息。

样本

stylebook简化了为用户应用程序管理复杂的Citrix ADC配置的任务。StyleBook是一个模板,用户可以使用它来创建和管理Citrix ADC配置。在这里,用户主要关心用于部署Web应用程序防火墙的StyleBook。有关stylebook的更多信息,请参见:样本

分析

提供一种简单且可扩展的方式来查看Citrix ADC实例数据的各种见解,以描述、预测和改进应用程序性能。用户可以同时使用一个或多个分析功能。对于应用安全来说,最重要的角色是:

  • 安全的见解:安全的洞察力。提供单窗格解决方案,帮助用户评估用户应用程序的安全状态,并采取纠正措施,以确保用户应用程序的安全。

  • 机器人的洞察力

  • 有关分析的更多信息,请参阅分析:分析

其他对ADM功能很重要的特性有:

事件管理

事件表示受管Citrix ADC实例上发生的事件或错误。例如,当系统发生故障或配置变更时,会在Citrix ADM上产生事件并记录下来。以下是用户可以通过Citrix ADM配置或查看的相关特性:

有关事件管理的详细信息,请参见:事件

实例管理

提供对Citrix ADC、Citrix网关、Citrix安全Web网关和Citrix SD-WAN实例的管理功能。有关实例管理的更多信息,请参见:添加实例

许可证管理

通过将Citrix ADM配置为license管理器,对Citrix ADC的license进行管理。

  • Citrix ADC池容量:池容量。一个公共许可池,用户Citrix ADC实例可以从中查看一个实例许可和所需的带宽。当实例不再需要这些资源时,它将它们检入公共池,使需要这些资源的其他实例可以使用这些资源。

  • Citrix ADC VPX签入和签出许可:Citrix ADC VPX签入和签出许可。Citrix ADM按需分配license给Citrix ADC VPX实例。当一个Citrix ADC VPX实例被发放时,一个Citrix ADC VPX实例可以从Citrix ADM中检出许可证,或者当一个实例被删除或销毁时,可以检回它给Citrix ADM的许可证。

  • 有关许可证管理的详细信息,请参见:池容量

配置管理

Citrix ADM允许用户创建配置作业,帮助他们执行配置任务,例如创建实体、配置特性、复制配置更改、系统升级,以及在多个实例上轻松地进行其他维护活动。配置作业和模板将最重复的管理任务简化为Citrix adm上的单个任务。有关配置管理的详细信息,请参阅配置作业:配置工作

配置审计

使用户能够监控和识别跨用户实例配置中的异常情况。

签名提供以下部署选项,帮助用户优化对用户应用的保护:

  • 负安全模型:使用负安全模型,用户使用一组丰富的预配置签名规则来应用模式匹配的功能来检测攻击并防范应用程序漏洞。用户只屏蔽他们不想要的,允许其他的。用户可以根据用户应用的具体安全需求,添加自己的签名规则,设计自己的定制化安全解决方案。

  • 混合安全模型:除了使用签名之外,用户还可以使用积极的安全检查来创建适合用户应用程序的配置。使用签名来阻止用户不想要的内容,并使用积极的安全检查来强制执行允许的内容。

为了通过签名保护用户应用程序,用户必须配置一个或多个配置文件来使用其签名对象。在混合安全配置中,用户签名对象中的SQL注入和跨站点脚本模式以及SQL转换规则不仅由签名规则使用,而且还由使用签名对象的Web Application Firewall配置文件中配置的积极安全检查使用。

Web应用防火墙对访问用户保护的网站和Web服务的流量进行检测,检测出符合签名的流量。只有当规则中的每个模式都与流量匹配时,才会触发匹配。当出现匹配时,将调用规则的指定操作。当请求被阻止时,用户可以显示错误页面或错误对象。日志消息可以帮助用户识别针对用户应用程序发起的攻击。如果用户启用了统计功能,Web应用防火墙会维护与Web应用防火墙签名或安全检查匹配的请求数据。

如果流量同时匹配签名和正安全检查,则强制执行两个动作中较严格的一个。例如,如果一个请求匹配了一个签名规则,而该签名规则的阻止动作被禁用,但该请求也匹配了一个SQL注入阳性安全检查,该操作被阻止,则该请求被阻止。在这种情况下,签名冲突可能被记录为,尽管请求被SQL注入检查阻止。

定制:用户可以根据需要在签名对象中添加自己的规则。用户还可以自定义SQL/XSS模式。可以根据用户应用的具体安全需求,添加自己的签名规则,使用户可以灵活地设计自己的定制安全解决方案。用户只屏蔽他们不想要的,允许其他的。在指定位置使用特定的快速匹配模式可以显著减少处理开销,从而优化性能。用户可以添加、修改或删除SQL注入和跨站点脚本模式。内置的RegEx和表达式编辑器帮助用户配置用户模式并验证其准确性。

用例

与需要将每个服务部署为单独的虚拟设备的替代解决方案相比,Citrix ADC在AWS上将L4负载平衡、L7流量管理、服务器卸载、应用程序加速、应用程序安全性、灵活的许可和其他必要的应用程序交付功能集成在单个VPX实例中,可通过AWS Marketplace方便地获得。此外,所有内容都由单一策略框架管理,并使用用于管理本地Citrix ADC部署的相同的强大工具集进行管理。最终的结果是,Citrix ADC在AWS上支持了几个引人注目的用例,这些用例不仅支持当今企业的直接需求,而且还支持从传统计算基础设施到企业云数据中心的持续演变。

Citrix Web应用防火墙(WAF)

Citrix Web应用程序防火墙(WAF)是一种企业级解决方案,为现代应用程序提供最先进的保护。Citrix WAF减轻了对面向公众的资产(包括网站、web应用程序和api)的威胁。Citrix WAF包括基于IP声誉的过滤、Bot缓解、OWASP十大应用程序威胁防护、第7层DDoS防护等。还包括强制身份验证、强SSL/TLS密码、TLS 1.3、速率限制和重写策略的选项。使用基本和高级WAF保护,思杰WAF以无与伦比的易用性为您的应用程序提供全面的保护。起床和跑步只是几分钟的事。此外,使用称为动态分析的自动学习模型,Citrix WAF为用户节省了宝贵的时间。通过自动学习受保护应用程序的工作方式,即使开发人员部署和更改应用程序,Citrix WAF也能适应应用程序。Citrix WAF有助于所有主要监管标准和机构的遵从性,包括PCI-DSS、HIPAA等。使用我们的CloudFormation模板,它从未如此容易地快速启动和运行。 With auto scaling, users can rest assured that their applications remain protected even as their traffic scales up.

Web应用防火墙部署策略

部署web应用程序防火墙的第一步是评估哪些应用程序或特定数据需要最大的安全保护,哪些应用程序或特定数据不太容易受到攻击,以及哪些应用程序或特定数据可以安全地绕过安全检查。这有助于用户进行最佳配置,并设计适当的策略和绑定点来隔离流量。例如,用户可能希望配置一个策略来绕过对静态web内容(如图像、MP3文件和电影)请求的安全检查,并配置另一个策略来对动态内容请求应用高级安全检查。用户可以使用多个策略和配置文件来保护同一应用程序的不同内容。

下一步是建立部署基线。首先创建一个虚拟服务器,并通过它运行测试流量,以了解流经用户系统的流量的速率和数量。

然后,部署Web应用防火墙。使用Citrix ADM和Web应用防火墙样式手册配置Web应用防火墙。详细信息请参见本指南下面的StyleBook部分。

在使用Web应用程序防火墙样式手册部署和配置Web应用程序防火墙之后,一个有用的下一步将是实现Citrix ADC WAF和OWASP Top Ten。

最后,有三种Web应用程序防火墙保护对常见类型的Web攻击特别有效,因此比其他任何一种都更常用。因此,它们应该在初始部署中实现。它们是:

  • HTML跨站脚本。检查试图访问或修改与脚本所在网站不同网站上内容的脚本的请求和响应。当此检查发现这样的脚本时,它要么在将请求或响应转发到目的地之前使该脚本无害,要么阻止连接。

  • HTML SQL注入。检查包含表单字段数据的请求是否试图将SQL命令注入SQL数据库。当此检查检测到注入的SQL代码时,它要么阻止请求,要么在将请求转发给Web服务器之前使注入的SQL代码无害。

注意:如果以下两个条件都适用于用户配置,则用户应确保您的Web应用程序防火墙配置正确:

  • 如果用户启用HTML跨站脚本检查或HTML SQL注入检查(或两者都启用),并且

  • 受用户保护的网站接受文件上传或包含可能包含大量POST主体数据的Web表单。

有关配置Web应用程序防火墙以处理这种情况的详细信息,请参阅配置应用程序防火墙:配置Web应用防火墙

  • 缓冲区溢出。检查请求以检测在Web服务器上导致缓冲区溢出的尝试。

配置Web应用防火墙(WAF)

下面的步骤假设WAF已经启用并且正常工作。

Citrix建议用户使用Web应用程序防火墙样式手册配置WAF。大多数用户发现这是配置Web应用程序防火墙最简单的方法,它的设计是为了防止错误。GUI和命令行界面都是为有经验的用户设计的,主要用于修改现有配置或使用高级选项。

SQL注入

应用程序防火墙HTML SQL注入检查提供了特殊的防御措施,防止注入可能破坏用户应用程序安全性的未经授权的SQL代码。Citrix Web Application Firewall在三个位置检查注入SQL代码的请求有效负载: 1) POST主体,2)报头,3)cookie。

默认的关键字和特殊字符集提供了常用的SQL攻击的已知关键字和特殊字符。用户还可以添加新的模式,并且可以编辑默认设置来定制SQL检查检查。

可以为SQL注入处理配置几个参数。用户可以检查SQL通配符。用户可以更改SQL注入类型然后从4个选项中选择一个(SQLKeyword, SQLSplChar, SQLSplCharANDKeyword, SQLSplCharORKeyword)来指示在处理负载时如何计算SQL关键字和SQL特殊字符。的SQL注释处理参数为用户提供了一个选项,可以指定在SQL注入检测期间需要检查或豁免的注释类型。

用户可以部署放松以避免误报。学习引擎可以为配置松弛规则提供建议。

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

—如果用户启用了阻断,则只有当输入符合SQL注入类型规范时,才会触发阻断动作。例如,如果SQLSplCharANDKeyword如果配置为SQL注入类型,则即使在输入中检测到SQL特殊字符,也不会阻止不包含关键字的请求。如果将SQL注入类型设置为任意一种,则会阻止此类请求SQLSplChar,或SQLSplCharORKeyword

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

统计数据—启用后,统计违规信息和日志信息。统计计数器中的意外激增可能表明用户应用程序受到攻击。如果合法请求被阻止,用户可能不得不重新访问配置,看看是否需要配置新的放松规则或修改现有规则。

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

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

  • 转换操作通过对请求进行以下更改来使SQL代码不活动:

  • 单直引号(')到双直引号(")。

  • 反斜杠()到双反斜杠()。

  • 分号(;)被完全去掉。

这三个字符(特殊字符串)是向SQL服务器发出命令所必需的。除非SQL命令以特殊字符串开头,否则大多数SQL服务器都会忽略该命令。因此,Web应用程序防火墙在启用转换时执行的更改可以防止攻击者注入活动SQL。完成这些更改后,请求可以安全地转发到受用户保护的网站。当用户受保护网站上的web表单可以合法地包含SQL特殊字符串,但web表单不依赖于特殊字符串来正常运行时,用户可以在不降低web应用防火墙对用户受保护网站的保护的情况下,关闭拦截并启用转换,以防止合法的web表单数据被拦截。

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

提示:用户通常要么启用转换,要么启用阻塞,但不会两者都启用。如果块操作被启用,它优先于转换操作。如果用户启用了阻塞,则启用转换是多余的。

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

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

SELECT * from customer WHERE name like“%D%”

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

SELECT * from customer WHERE salary like ' _00% '

不同的DBMS供应商通过添加额外的操作符扩展了通配符。Citrix Web应用程序防火墙可以防止通过注入这些通配符发起的攻击。默认的5个通配符是百分比(%)、下划线(_)、插入符号(^)、左括号([)和右括号(])。这种保护适用于HTML和XML配置文件。

属性中指定的字面值列表*默认签名

  • %

  • < wildchar类型=“文字”> _ < / wildchar >

  • < wildchar类型=“文字”> ^ < / wildchar >

  • < wildchar type = "文字“> < / wildchar >

  • < wildchar type = "文字“> < / wildchar >

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

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

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

  • 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通常使用嵌套SQL注释。例如;-(两个连字符)和/**/(允许嵌套注释)

  • ANSI /嵌套-跳过同时遵守ANSI和嵌套SQL注释标准的注释。只匹配ANSI标准或只匹配嵌套标准的注释仍然会被检查是否注入SQL。

  • 检查所有注释-检查整个请求注入SQL不跳过任何东西。这是默认设置。

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

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

注意:如果用户启用Check Request标头标志,他们可能必须为用户代理头。存在SQL关键字就像SQL特殊字符分号(;)可能会触发误报并阻止包含此标头的请求。警告:如果用户同时启用请求标头检查和转换,那么在标头中找到的任何SQL特殊字符也会被转换。Accept、Accept- charset、Accept- encoding、Accept- language、Expect和User-Agent报头通常包含分号(;)。同时启用请求报头检查和转换可能会导致错误。

InspectQueryContentTypes—如果用户希望检查特定内容类型的请求查询部分是否存在SQL注入攻击,请配置此选项。如果用户使用GUI,则可以在高级设置->配置文件设置应用程序防火墙配置文件的。

跨站点脚本编制

HTML跨站脚本(Cross-Site Scripting)检查检查用户请求的报头和POST主体,以防止可能的跨站脚本攻击。如果它发现跨站点脚本,它要么修改(转换)请求以使攻击无害,要么阻止请求。

注意:HTML跨站点脚本(Cross-Site Scripting)检查仅对内容类型、内容长度等有效。这对cookie不起作用。还要确保在用户Web应用防火墙配置文件中启用了“checkrequesttheaders”选项。

为了防止滥用用户保护网站上的脚本来破坏用户网站的安全,HTML跨站脚本检查阻止违反同源规则的脚本,该规则规定脚本不应该访问或修改任何服务器上的内容,而是它们所在的服务器。任何违反同源规则的脚本都被称为跨站点脚本,使用脚本访问或修改另一台服务器上的内容的做法被称为跨站点脚本。跨站点脚本是一个安全问题的原因是,允许跨站点脚本的web服务器可以被不在该web服务器上的脚本攻击,而是在不同的web服务器上,例如攻击者拥有和控制的服务器。

不幸的是,许多公司都安装了大量javascript增强的web内容,这违反了同源规则。如果用户在这样的站点上启用HTML跨站点脚本检查,他们必须生成适当的异常,以便检查不会阻止合法活动。

Web应用程序防火墙为实现HTML跨站脚本保护提供了各种操作选项。除了日志统计数据学习操作时,用户也可以选择转换跨站点脚本通过对提交请求中的脚本标签进行实体编码,使攻击无害。用户可以为跨站点脚本参数配置检查完整URL,以指定他们是否希望不仅检查查询参数,而且检查整个URL以检测跨站点脚本攻击。用户可以配置InspectQueryContentTypes参数检查请求查询部分是否存在针对特定内容类型的跨站点脚本攻击。

用户可以部署放松以避免误报。Web应用防火墙学习引擎可以为配置放松规则提供建议。

以下选项可用于为用户应用程序配置优化的HTML跨站脚本保护:

  • —如果用户启用了阻断,则如果在请求中检测到跨站点脚本标记,则会触发阻断动作。

  • 日志—如果用户启用了日志特性,则HTML跨站脚本检查会生成日志消息,记录所执行的操作。如果禁用block,则会为检测到跨站点脚本冲突的每个标头或表单字段生成单独的日志消息。但是,当请求被阻塞时,只生成一条消息。类似地,即使在多个字段中转换跨站点脚本标记时,也会为转换操作生成每个请求的日志消息。用户可以监视日志,以确定对合法请求的响应是否被阻止。日志消息数量的大量增加可能表明有人试图发起攻击。

  • 统计数据—启用后,统计违规信息和日志信息。统计计数器中的意外激增可能表明用户应用程序受到攻击。如果合法请求被阻止,用户可能不得不重新访问配置,看看是否必须配置新的放松规则或修改现有规则。

  • 学习-如果用户不确定哪些放松规则可能最适合他们的应用程序,他们可以使用学习功能根据学习数据生成HTML跨站脚本规则建议。Web Application Firewall学习引擎监视流量,并根据观察到的值提供学习建议。为了在不影响性能的情况下获得最佳收益,用户可能希望在短时间内启用学习选项,以获得规则的代表性样本,然后部署规则并禁用学习。

  • 转换跨站点脚本如果启用,Web应用防火墙会对符合HTML跨站脚本检查的请求进行以下更改:

    • 左尖括号(<)与HTML字符实体等效(<)

    • 右尖括号(>)与HTML字符实体等效(>)

这确保了浏览器不会解释不安全的html标记,例如