06-WAF配置
本章节下载: 06-WAF配置 (410.89 KB)
WAF(Web application firewall,Web应用防火墙)用于阻断Web应用层攻击,保护内网用户和内部Web服务器。当设备收到来自外部的HTTP或HTTPS请求后,会执行防护策略,对请求内容的安全性和合法性进行检测和验证,对非法的请求予以实时阻断,从而对内网的用户和Web服务器进行有效防护。
WAF支持通过如下功能对Web应用层攻击进行检测与防护。
设备通过对攻击行为的特征进行检测,保护内网用户和服务器免受Web应用层攻击。
设备通过对报文中的SQL语法进行分析来检测SQL注入攻击行为,保护内网用户和服务器免受该类攻击。
CC(Challenge Collapsar,挑战黑洞)攻击是DDoS(Distributed Denial of Service,分布式拒绝服务)攻击的一种,也是一种常见的网站攻击方法。CC攻击防护功能通过对来自Web应用程序客户端的请求进行内容检测、规则匹配和统计计算,对攻击请求予以实时阻断,从而对内网的Web服务器进行有效防护。
设备基于WAF策略对攻击报文进行处理。WAF策略中定义了匹配报文的WAF特征和处理报文的WAF策略动作。
WAF特征用来描述网络中的Web应用层攻击行为的特征,设备通过将报文与WAF特征进行比较来检测和防御攻击。WAF特征包含多种属性,例如攻击分类、动作、保护对象、严重级别和方向。这些属性可作为过滤条件来筛选WAF特征。
设备支持以下两种类型的WAF特征:
· 预定义WAF特征:系统中的WAF特征库自动生成。设备不支持对预定义WAF特征的内容进行创建、修改和删除。
· 自定义WAF特征:管理员在设备上手工创建。通常新的网络攻击出现后,与其对应的攻击特征会出现的比较晚一些。如果管理员已经掌握了新网络攻击行为的特点,可以通过自定义方式创建WAF特征,及时阻止网络攻击,否则,不建议用户自定义WAF特征。
WAF策略动作是指设备对检测出攻击的报文做出的处理。包括如下几种类型:
· 丢弃:丢弃报文。
· 放行:允许报文通过。
· 重置:通过发送TCP的reset报文断开TCP连接。
· 重定向:将报文重定向到指定的Web页面上。
· 源阻断:丢弃报文并将该报文的源IP地址加入IP黑名单。如果设备上同时开启了IP黑名单过滤功能(由blacklist global enable开启),则一定时间内(由block-period命令指定)来自此IP地址的所有报文将被直接丢弃;否则,此IP黑名单不生效。有关IP黑名单过滤功能的详细介绍请参见“安全配置指导”中的“攻击检测与防范”,有关block-period命令的详细介绍请参见“DPI深度安全”中的“应用层检测引擎”。
· 捕获:捕获报文。
· 生成日志:记录日志信息。
WAF特征匹配处理流程如图1-1所示:
图1-1 WAF特征匹配处理流程图
WAF功能是通过在DPI应用profile中引用WAF策略,并在虚服务器中引用DPI应用profile来实现的,WAF的具体实现流程如下:
(1) 设备识别应用层报文协议并提取报文特征。
(2) 设备将提取的报文特征与WAF特征进行匹配,并进行如下处理:
¡ 如果报文未与任何WAF特征匹配成功,则设备对报文执行允许动作。
¡ 如果报文只与一个WAF特征匹配成功,则根据此特征中指定的动作进行处理。
¡ 如果报文同时与多个WAF特征匹配成功,则根据这些动作中优先级最高的动作进行处理。动作优先级从高到低的顺序为:重置 > 重定向 > 丢弃 > 允许。但是,对于源阻断、生成日志和捕获三个动作只要匹配成功的特征中存在就会执行。
设备通过对报文中的SQL语句进行语法分析来检测是否存在SQL注入攻击,并根据检测结果对报文进行相应的处理:
· 如果检测到攻击,则判断是否配置了WAF策略动作。如果已配置,则对报文执行指定的动作;如果未配置,则放行报文,并以快速日志方式输出WAF日志。有关WAF动作的详细介绍,请参见“1.1.2 2. WAF策略动作”。
· 如果未检测到攻击,则放行报文。
设备基于CC攻击防护策略对CC攻击行为进行检测,CC攻击防护策略中定义了攻击报文的匹配条件、攻击行为的检测方式以及处理报文的动作等。
设备支持使用请求速率和请求集中度双重检测方式对CC攻击进行检测。
· 请求速率检测:用于检测客户端是否过于频繁地访问某网站。
· 请求集中度检测:用于检测客户端是否主要针对某网站进行访问。
每种检测方式可以分别配置检测阈值,设备将统计到的用户访问网站的结果与检测阈值进行比较,如果统计结果达到任意一个检测阈值,则认为客户端的访问为CC攻击。
CC攻击防护功能是通过在WAF策略中引用CC攻击防护策略来实现的。当用户的数据流量经过设备时,设备将进行CC攻击防护处理。处理流程如图1-2所示:
图1-2 CC攻击防护数据处理流程图
(1) 如果报文与例外IP地址匹配成功,则直接放行该报文;如果未匹配成功,则进入步骤(2)处理。
(2) 设备对报文进行深度内容检测,并提取报文内容。
(3) 设备将提取的报文内容与CC攻击防护策略规则进行匹配,并进行如下处理:
¡ 如果未匹配到任何CC攻击防护策略规则,则对报文执行允许动作。
¡ 如果匹配到一条CC攻击防护策略规则,则不再进行后续规则匹配,进入步骤(4)处理。
(4) 设备对报文数据进行统计,并与规则下配置的检测项阈值进行比较,并进行如下处理:
¡ 如果统计结果达到任意一个检测项的阈值,则认为存在CC攻击行为,并执行规则下配置的动作,包括允许、黑名单和记录日志。
¡ 如果未达到阈值,则放行报文。
当WAF特征匹配、语义分析检测和CC攻击防护功三种功能检测出同一个攻击报文时,则对报文执行三种功能的处理动作中更高优先级的动作。动作优先级从高到低依次为:重置 > 重定向 > 丢弃 > 允许,对于黑名单、日志和捕获三个动作只要处理动作中包含就会执行。
WAF特征库是用来对经过设备的应用层流量进行Web攻击检测和防御的资源库。随着网络攻击不断的变化和发展,需要及时升级设备中的WAF特征库,同时设备也支持WAF特征库回滚功能。
WAF特征库的升级包括如下几种方式:
· 定期自动在线升级:设备根据管理员设置的时间定期自动更新本地的WAF特征库。
· 立即自动在线升级:管理员手工触发设备立即更新本地的WAF特征库。
· 手动离线升级:当设备无法自动获取WAF特征库时,需要管理员先手动获取最新的WAF特征库,再更新设备本地的WAF特征库。
如果管理员发现设备当前WAF特征库对报文进行检测和防御Web攻击时,误报率较高或出现异常情况,则可以将其进行回滚到出厂版本和上一版本。
WAF功能需要购买并正确安装License后才能使用。License过期后,WAF功能可以采用设备中已有的WAF特征库正常工作,但无法升级到官方网站在过期时间后发布的新版本的特征库。关于License的详细介绍请参见“基础配置指导”中的“License管理”。
(1) 创建WAF策略
(2) 配置筛选WAF特征的属性
(3) 配置WAF策略动作
(4) 配置WAF策略动作引用的应用层检测引擎动作参数profile
(1) 创建WAF策略
(2) 开启语义分析检测功能
(1) 创建WAF策略
(2) 创建CC攻击防护策略
(3) 创建CC攻击防护策略规则
(5) (可选)管理CC攻击防护策略规则
(1) (可选)激活WAF策略配置
(4) (可选)配置自定义WAF特征
(5) (可选)配置WAF特征库升级和回滚
(6) (可选)配置WAF白名单
缺省情况下,WAF策略将使用当前设备上所有处于生效状态的WAF特征与报文进行匹配,并对匹配成功的报文执行WAF特征属性中的动作。管理员可根据实际需求,在新建的WAF策略中,将WAF特征的属性作为过滤条件,筛选出需要与报文进行匹配的WAF特征,并配置WAF策略动作。
(1) 进入系统视图。
system-view
(2) 创建WAF策略,并进入WAF策略视图。
waf policy policy-name
缺省情况下,存在一个缺省WAF策略,名称为default,且不能被修改或删除。
在WAF策略中,可以定义不同类型的属性作为WAF特征的过滤条件。如果某个属性中配置了多个参数,则WAF特征至少需要匹配上其中一个参数,才表示匹配上该属性。
(1) 进入系统视图。
system-view
(2) 进入WAF策略视图。
waf policy policy-name
(3) 配置筛选WAF特征的属性。
¡ 配置筛选WAF特征的保护对象属性。
protected-target { target [ sub-target subtarget ]| all }
缺省情况下,WAF策略匹配所有保护对象的特征。
¡ 配置筛选WAF特征的攻击分类属性。
attack-category { category [ sub-category subcategory ] | all }
缺省情况下,WAF策略匹配所有攻击分类的特征。
¡ 配置筛选WAF特征的动作属性。
action { block-source | drop | permit | reset } *
缺省情况下,WAF策略匹配所有动作的特征。
¡ 配置筛选WAF特征的方向属性。
object-dir { client | server } *
缺省情况下,WAF策略匹配所有方向的特征。
¡ 配置筛选WAF特征的严重级别属性。
severity-level { critical | high | low | medium } *
缺省情况下,WAF策略匹配所有严重级别的特征。
缺省情况下,新建WAF策略执行特征属性中的动作。管理员也可以根据实际网络需求,为WAF策略中所有特征配置统一的动作,或者为指定的特征配置动作。
设备对以上动作执行的优先级为:WAF策略中为指定特征配置的动作 > WAF策略动作 > WAF特征自身属性的动作。
当动作配置为logging时,设备将记录日志并支持如下两种方式输出日志。
· 快速日志:此方式生成的日志信息直接发送到管理员指定的日志主机。
· 系统日志:此方式生成的日志信息将发送到信息中心,由信息中心决定日志的输出方向。本业务产生的系统日志不支持输出到控制台和监视终端。如需快速获取日志信息,可通过执行display logbuffer命令进行查看。
系统日志会对设备性能产生影响,建议采用快速日志方式。
有关display logbuffer命令的详细介绍,请参见“网络管理和监控命令参考”中的“信息中心”;有关快速日志的详细介绍,请参见“网络管理和监控配置指导”中的“快速日志输出”。
(1) 进入系统视图。
system-view
(2) 进入WAF策略视图。
waf policy policy-name
(3) 配置WAF策略动作。
signature override all { { block-source | drop | permit | redirect | reset } | capture | logging } *
缺省情况下,WAF策略执行特征属性中的动作。
(4) (可选)修改WAF策略中指定特征的动作和生效状态。
signature override pre-defined signature-id { disable | enable } [ { block-source | drop | permit | redirect | reset } | capture | logging ] *
缺省情况下,预定义WAF特征使用系统预定义的状态和动作。
每类WAF策略动作的具体执行参数由应用层检测引擎动作参数profile来定义,该profile的具体配置请参见“DPI深度安全配置指导”中的“应用层检测引擎”。
如果WAF策略动作引用的应用层检测引擎动作参数profile不存在或没有引用,则使用系统各类动作参数的缺省值。
(1) 进入系统视图。
system-view
(2) 配置WAF策略动作引用的应用层检测引擎动作参数profile。
waf { block-source | capture | email | logging | redirect } parameter-profile parameter-name
缺省情况下,WAF策略动作未引用应用层检测引擎动作参数profile。
(1) 进入系统视图。
system-view
(2) 创建WAF策略,并进入WAF策略视图。
waf policy policy-name
缺省情况下,存在一个缺省WAF策略,名称为default,且不能被修改或删除。
开启本功能后,设备将同时使用特征匹配和语义分析功能对SQL注入攻击进行检测,可以提升该类攻击的识别率,但同时会对设备性能产生影响,请管理员根据实际情况进行配置。
开启本功能后会对设备性能产生影响,建议仅在含有SQL注入类攻击的场景中开启。
(1) 进入系统视图。
system-view
(2) 进入WAF策略视图。
waf policy policy-name
(3) 开启语义分析功能。
semantic-analysis enable
缺省情况下,语义分析检测功能处于关闭状态。
WAF策略中未引用CC攻击防护策略,用户需要手工新建一个WAF策略,并在其中引用CC攻击防护策略才能使CC攻击防护功能生效。
(1) 进入系统视图。
system-view
(2) 创建WAF策略,并进入WAF策略视图。
waf policy policy-name
缺省情况下,存在一个缺省WAF策略,名称为default,不能被修改或删除,且未引用CC攻击防护策略。
设备基于CC攻击防护策略对攻击报文进行处理,管理员可以根据实际需求配置匹配报文的过滤条件以及检测项等。
(1) 进入系统视图。
system-view
(2) 创建CC攻击防护策略,并进入CC攻击防护策略视图。
cc-defense policy policy-name
(3) (可选)配置CC攻击防护策略的描述信息。
description text-string
(4) (可选)配置CC攻击检查项的检测周期。
detection-interval interval
缺省情况下,CC攻击检查项的检测周期为30秒。
(5) (可选)配置CC攻击防护例外IP地址。
exception { ipv4 ipv4-address | ipv6 ipv6-address }
缺省情况下,未配置CC攻击防护例外IP地址。
CC攻击防护策略规则下可以配置如下内容:
· CC攻击检测的过滤条件,包括:目的IP地址、目的端口号和请求方法。
· CC攻击防护策略规则防护的路径。
· CC攻击检测的检查项阈值。
· CC攻击防护策略规则的动作。
CC攻击防护策略规则的匹配顺序为配置顺序,当报文与一条规则匹配成功时,则结束匹配过程。
(1) 进入系统视图。
system-view
(2) 进入CC攻击防护策略视图。
cc-defense policy policy-name
(3) 创建CC攻击防护策略规则,并进入CC攻击防护策略规则视图。
rule name rule-name
(4) 配置过滤条件。
¡ 配置作为CC攻击防护策略规则过滤条件的目的IP地址。
destination-address { ipv4 ipv4-address | ipv6 ipv6-address }
¡ 配置作为CC攻击防护策略规则过滤条件的目的端口。
destination-port port-number
¡ 配置作为CC攻击防护策略规则过滤条件的请求方法。
method { connect | delete | get | head | options | post | put | trace } *
(5) 配置CC攻击防护策略规则防护的路径。
protected-url url-text
缺省情况下,未配置CC攻击防护策略规则防护的路径。
(6) 开启X-Forwarded-For字段检测功能。
xff-detection enable
缺省情况下,X-Forwarded-For字段检测功能处于关闭状态。
(7) 配置CC攻击检测项。
cc-detection-item { request-concentration [ concentration-value ] [ request-number number ] | request-rate [ rate-value ] }
缺省情况下,未配置CC攻击检测项,设备不对检查项进行检测。
(8) 配置规则动作。
action { block-source [ block-time ] | permit }
缺省情况下,CC攻击防护策略规则的动作为permit。
(9) 开启日志记录功能。
logging enable
缺省情况下,日志记录功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入WAF策略视图。
waf policy policy-name
(3) 在WAF策略中引用CC攻击防护策略。
apply cc-defense policy policy-name
(1) 进入系统视图。
system-view
(2) 进入CC攻击防护策略视图。
cc-defense policy policy-name
(3) 移动CC攻击防护策略规则。
rule move rule-name1 { after | before } rule-name2
(1) 进入系统视图。
system-view
(2) 进入CC攻击防护策略视图。
cc-defense policy policy-name
(3) 复制CC攻击防护策略规则。
rule copy rule-name new-rule-name
缺省情况下,当WAF策略发生变更时(即被创建、修改和删除),系统将会检测在20秒的间隔时间内是否再次发生了配置变更,并根据判断结果执行如下操作:
· 如果间隔时间内未发生任何配置变更,则系统将在下一个间隔时间结束时(即40秒时)执行一次激活操作,使这些策略的配置生效。
· 如果间隔时间内再次发生了配置变更,则系统将继续按照间隔时间周期性地检测是否发生配置变更。
如果用户希望对变更的配置立即进行激活,可执行inspect activate命令手工激活,使配置立即生效。
WAF策略中对语义分析检测功能和CC攻击防护功能的修改是即时生效的,不需要配置本功能。
有关此功能的详细介绍请参见“DPI深度安全配置指导”中的“应用层检测引擎”。
(1) 进入系统视图。
system-view
(2) 激活WAF策略配置。
inspect activate
缺省情况下,WAF策略被创建、修改和删除后,系统会自动激活配置使其生效。
执行此命令会暂时中断DPI业务的处理,可能导致其他基于DPI功能的业务同时出现中断。例如,七层负载均衡业务无法基于应用进行负载分担等。
DPI应用profile是一个安全业务的配置模板,为实现WAF功能,必须在DPI应用profile中引用指定的WAF策略。
一个DPI应用profile中只能引用一个WAF策略,如果重复配置,则新的配置