将网站域名接入Web应用防火墙(Web Application Firewall,简称WAF),能够帮助您的网站防御OWASP TOP10常见Web攻击和恶意CC攻击流量,避免网站遭到入侵导致数据泄露,全面保障您网站的安全性和可用性。您可以参考本文中的接入配置和防护策略最佳实践,在各类场景中使用WAF更好地保护您的网站。
正常网站业务接入场景
业务梳理
建议您对所需接入WAF进行防护的业务情况进行全面梳理,帮助您了解当前业务状况和具体数据,为后续配置WAF的防护策略提供依据。
梳理项 | 说明 |
网站和业务信息 | |
网站/应用业务每天的流量峰值情况,包括Mbps、QPS | 判断风险时间点,并且可作为WAF实例的业务带宽和业务QPS规格的选择依据。 |
业务的主要用户群体(例如,访问用户的主要来源地区) | 判断非法攻击来源,后续可使用地域级IP黑名单屏蔽非法来源地区。 |
业务是否为C/S架构 | 如果是C/S架构,进一步明确是否有App客户端、Windows客户端、Linux客户端、代码回调或其他环境的客户端。 |
源站是否部署在非中国内地地域 | 判断所配置的实例是否符合最佳网络架构。 |
源站服务器的操作系统(Linux、Windows)和所使用的Web服务中间件(Apache、Nginx、IIS等) | 判断源站是否存在访问控制策略,避免源站误拦截WAF回源IP转发的流量。 |
域名使用协议 | 判断所使用的通信协议WAF是否支持。 |
业务端口 | 判断源站业务端口是否在WAF支持的端口范围内。更多信息,请参见WAF支持的端口。 |
业务是否有获取并校验真实源IP机制 | 接入WAF后,真实源IP会发生变化。请确认是否要在源站上调整获取真实源IP配置,避免影响业务。 |
业务是否使用TLS 1.0或弱加密套件 | 判断业务使用的加密套件是否支持。 |
业务是否需要支持IPv6协议 | WAF企业版和旗舰版实例已支持IPv6协议。 |
(针对HTTPS业务)业务是否使用双向认证 | WAF不支持双向认证。如果您的HTTPS业务采用双向认证,推荐您先使用应用型负载均衡ALB(Application Load Balancer)或全站加速DCDN(Dynamic Route for Content Delivery Network)部署采用双向认证的HTTPS业务,再从云产品上开启WAF防护。
|
(针对HTTPS业务)客户端是否支持SNI标准 | 对于支持HTTPS协议的域名,接入WAF后,客户端和服务端都需要支持SNI标准。 |
(针对HTTPS业务)是否存在会话保持机制 | 如果业务部署了阿里云负载均衡SLB(Server Load Balancer)实例,建议开启Cookie会话保持功能。 |
业务交互过程 | 了解业务交互过程、业务处理逻辑,便于后续配置针对性防护策略。 |
活跃用户数量 | 便于后续在处理紧急攻击事件时,判断事件严重程度,以采取风险较低的应急处理措施。 |
业务及攻击情况 | |
业务类型及业务特征(例如,游戏、棋牌、网站、App等业务) | 便于在后续攻防过程中分析攻击特征。 |
业务流量(入方向) | 帮助后续判断是否包含恶意流量。例如,日均访问流量为100 Mbps,则超过100 Mbps时可能遭受攻击。 |
业务流量(出方向) | 帮助后续判断是否遭受攻击,并且作为是否需要额外业务带宽扩展的参考依据。 |
单用户、单IP的入方向流量范围和连接情况 | 帮助后续判断是否可针对单个IP制定限速策略。 |
用户群体属性 | 例如,个人用户、网吧用户或通过代理访问的用户。 |
业务是否遭受过大流量攻击及攻击类型 | 判断是否需要增加DDoS防护服务。 |
业务遭受过最大的攻击流量峰值 | 根据攻击流量峰值判断需要的DDoS防护规格。 |
业务是否遭受过CC攻击(HTTP Flood) | 通过分析历史攻击特征,配置预防性策略。 |
业务遭受过最大的CC攻击峰值QPS | 通过分析历史攻击特征,配置预防性策略。 |
业务是否提供Web API服务 | 如果提供Web API服务,不建议使用CC攻击紧急防护模式。通过分析API访问特征配置自定义CC攻击防护策略,避免API正常请求被拦截。 |
业务是否存在注册、登录、密码找回、短信接口被刷的情况 | 判断是否开启数据风控防护策略,并提前开启相关测试工作。 |
业务是否已完成压力测试 | 评估源站服务器的请求处理性能,帮助后续判断是否因遭受攻击导致业务发生异常。 |
准备工作
在将网站业务接入WAF时,强烈建议您先使用测试业务环境进行测试,测试通过后再正式接入生产业务环境。
在将网站业务接入WAF前,您需要完成以下准备工作:
所需接入的网站域名清单,包含网站的源站服务器IP、端口信息等。
所接入的网站域名必须已完成备案。更多信息,请参见阿里云备案。
如果您的网站支持HTTPS协议访问,您需要准备相应的证书和私钥信息,一般包含格式为CRT的公钥文件或格式为PEM的证书文件、格式为KEY的私钥文件。
具有网站DNS域名解析管理员的账号,用于修改DNS解析记录将网站流量切换至WAF。
推荐在将网站业务接入前,完成压力测试。
检查网站业务是否已有信任的访问客户端(例如,监控系统、通过内部固定IP或IP段调用的API接口、固定的程序客户端请求等)。在将业务接入后,需要将这些信任的客户端IP加入白名单。
WAF配置
域名接入配置。
根据您的业务场景,参考以下接入配置指导,将您的网站域名接入WAF:
说明如果在添加域名配置时,提示您配置的域名已被其他用户使用,建议您检查是否已在其他阿里云账号的WAF实例中添加与该域名冲突的配置记录。如果确实存在,您需要删除造成冲突的域名配置记录后再进行配置。
源站保护配置:
源站保护:为避免恶意攻击者绕过WAF直接攻击或入侵源站服务器,建议您完成源站保护配置。更多信息,请参见源站保护。
标记WAF回源流量:将网站域名接入WAF进行防护后,您可以为网站域名设置流量标记(相关操作,请参见设置流量标记)。通过设置流量标记的方式,方便地标识经过WAF转发的流量,从而实现精准的源站保护(访问控制)、防护效果分析,有效防止流量绕过WAF请求源站。
说明如果您接入WAF的网站域名的业务源站使用的是Windows IIS Web服务,在配置HTTPS域名时,IIS默认会启用需要服务器名称指示(即SNI)。这种情况下,在将域名接入WAF后可能会出现访问空白页502的错误信息,您只需禁用该配置选项即可解决该问题。
防护策略配置。
参考以下推荐防护配置对已接入的网站业务进行防护:
规则防护引擎
一般情况下,建议选用拦截模式,并选用中等规则组防护策略。
说明业务接入WAF防护一段时间后(一般为2~3天),如果出现网站业务的正常请求被WAF误拦截的情况,您可以通过设置自定义规则组的方式提升Web防护效果。相关操作,请参见使用自定义规则组提升Web攻击防护效果。
CC安全防护
业务正常运行时,建议采用系统默认配置。
说明由于CC防护的防护-紧急模式可能产生一定量的误拦截,如果您的业务为App业务或Web API服务,不建议您开启防护-紧急模式。如果使用CC安全防护的正常模式仍发现误拦截现象,建议您使用精准访问控制功能放行特定类型请求。
说明业务接入WAF防护一段时间后(一般为2-3天),可以通过分析业务日志数据(例如,访问URL、单个IP访问QPS情况等)评估单个IP的请求QPS峰值,提前通过自定义CC攻击防护配置限速策略,避免遭受攻击后的被动响应和临时策略配置。
当您的网站遭受大量CC攻击时,建议您开通日志服务功能。通过访问日志分析,发现恶意访问请求的特征,然后结合以下WAF的安全防护功能进行联合防御:
自定义CC攻击防护:针对URL设置灵活的限速策略,有效缓解CC攻击(HTTP Flood)带来的业务影响。
说明自定义CC攻击防护的限速策略可能产生误拦截,建议您通过深度日志分析找出攻击特征,配置精准访问控制策略实现精准拦截。
自定义ACL访问控制:当攻击源IP比较分散时,可以通过分析访问日志,使用精准访问控制提供的丰富字段和逻辑条件组合,灵活配置访问控制策略实现精准防护,有效降低误拦截。
支持IP、URL、Referer、User Agent、Params、Header等HTTP常见参数和字段的条件组合。
支持包含、不包含、等于、不等于、前缀为、前缀不为等逻辑条件,设置阻断或放行策略。
地域级IP黑名单:针对全球来源IP地理位置进行自定义地域访问控制。您可以根据业务的用户分布情况,屏蔽不需要的访问来源地区。
数据风控:通过风险决策引擎和人机识别算法,有效识别和拦截欺诈行为。
说明数据风控功能目前仅适用于网页/H5环境。
一般来说,功能性页面遭恶意被刷的风险较低,可不配置数据风控策略。而对于注册、登录、密码找回、营销活动类等静态页面,建议您根据防护需求配置数据风控,有效识别和拦截欺诈行为。
配置完成后,务必进行兼容性和业务可用性测试,避免数据风控策略配置对正常业务造成影响。
说明部分页面前端代码与数据风控的JavaScript脚本可能存在兼容性问题。如果遇到此类问题,建议您使用指定页面插入JS功能,并在测试通过后开启防护,避免影响正常业务。如果您仍然无法解决,可以联系阿里云技术支持获得帮助。
日志功能
根据您的业务和预算情况,选择启用日志服务功能。开通日志服务功能,可记录更多详细的原始日志信息,同时实现更灵活的访问日志自定义分析,发现恶意请求特征。更多信息,请参见概述。
监控告警
根据您的业务情况,为网站业务设置具体的QPS、4XX、5XX告警触发阈值。通过配置WAF告警监控功能,实时感知攻击事件。更多信息,请参见配置云监控通知。
本地测试。
完成上述WAF配置后,建议您进行配置准确性检查和验证测试。
说明您可以通过修改本地系统Hosts文件方式进行测试。相关操作,请参见本地验证。
表 1. 配置准确性检查项
编号
检查项
是否必检
1
接入配置域名是否填写正确
是
2
域名是否备案
是
3
接入配置协议是否与实际协议一致
是
4
接入配置端口是否与实际提供的服务端口一致
是
5
WAF前是否有配置其他七层代理(例如,DDoS高防、CDN等)
是
6
源站填写的IP是否是真实服务器IP,而不是错误地填写了高防IP或其他服务IP
是
7
回源算法是否与预期一致
否,建议检查
8
证书信息是否正确上传
是
9
证书是否合法(例如,加密算法不合规、错误上传其他域名的证书等)
是
10
证书链是否完整
是
11
是否配置流量标记
否,建议检查
12
告警监控配置
否,建议检查
13
是否已了解按量计费实例的计费方式
说明仅适用于按量计费WAF实例。
是
表 2. 业务可用性验证项
编号
检查项
是否必检
1
测试业务(包括Web、App客户端、Windows客户端、Linux客户端、其他环境的客户端)是否能够正常访问
是
2
测试业务登录会话保持功能是否正常
是
3
观察业务返回4XX和5XX响应码的次数,确保回源IP未被拦截
是
4
对于App业务,检查是否存在SNI问题
是
5
是否配置后端真实服务器获取真实源IP
否,建议检查
6
是否配置源站保护,防止攻击者绕过WAF直接入侵源站
否,建议检查
正式切换业务流量。
必要测试项均检测通过后,建议采用灰度的方式逐个域名修改DNS解析记录,将网站业务流量切换至Web应用防火墙,避免批量操作导致业务异常。修改DNS解析记录后,需要10分钟左右生效。如果切换流量过程中出现异常,请快速恢复DNS解析记录。
真实业务流量切换后,您需要再次根据上述业务可用性验证项进行测试,确保网站业务正常运行。
日常运维。
您可以参考以下最佳实践根据所需防护的具体场景,进一步配置具有针对性的防护策略:
如果您使用的是按量计费WAF实例,请仔细阅读WAF按量计费实例计费方式(具体内容,请参见计费说明),避免出现实际产生的费用超出预算的情况。
为避免WAF实例遭受大量DDoS攻击触发黑洞策略,导致网站业务无法访问的情况,建议您根据实际情况选择DDoS原生防护或DDoS高防产品,防御DDoS攻击。更多信息,请参见什么是DDoS原生防护、什么是DDoS高防。
如果出现业务访问延时或丢包的问题,参考以下建议变更部署方式:
针对源站服务器在地区非中国内地、WAF实例为中国内地地区、主要访问用户来自中国内地的情况,如果用户访问网站时存在延时高、丢包等现象,可能是由于回源网络链路问题,推荐您将源站服务器部署在中国内地。
针对源站服务器在非中国内地、WAF实例为非中国内地、主要访问用户来自中国内地的情况,如果用户访问网站时存在延时高、丢包等现象,可能存在跨网络运营商导致的访问链路不稳定,推荐您使用中国内地的WAF实例。
如果需要删除已防护的域名配置记录,确认网站业务是否已正式接入WAF。
如果尚未正式切换业务流量,直接在Web应用防火墙管理控制台中删除域名配置记录即可。
如果已完成业务流量切换,删除域名配置前务必前往域名DNS解析服务控制台,修改域名解析记录将业务流量切换回源站服务器。
说明删除域名配置前,请务必确认域名的DNS解析已经切换至源站服务器。
删除域名配置后,WAF将无法再为您的域名提供专业级安全防护。
业务遭受攻击时的紧急接入场景
如果您的网站业务已经遭受攻击,建议您在将业务接入WAF前执行以下操作:
遭受Web攻击入侵
为避免二次入侵,务必先清理入侵者植入的恶意文件并修复漏洞。
说明如果您需要专业的安全运维人员帮助,请选购应急响应服务。
已对业务系统进行安全加固。
将网站业务接入WAF。
说明根据实际情况将Web攻击防护策略调至高级规则,有效防御Web攻击行为导致的入侵事件。
遭受CC攻击或爬虫攻击
在将网站业务接入WAF后,需要通过日志功能分析网站访问日志,判断攻击特征后进行针对性的防护策略配置。