将网站域名接入Web应用防火墙(Web Application Firewall,简称WAF),能够帮助您的网站防御OWASP TOP10常见Web攻击和恶意CC攻击流量,避免网站遭到入侵导致数据泄露,全面保障您网站的安全性和可用性。您可以参考本文中的接入配置和防护策略最佳实践,在各类场景中使用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正常请求被拦截。 |
业务是否存在注册、登录、密码找回、短信接口被刷的情况 | 判断是否开启数据风控防护策略,并提前开启相关测试工作。 |
业务是否已完成压力测试 | 评估源站服务器的请求处理性能,帮助后续判断是否因遭受攻击导致业务发生异常。 |
准备工作
- 所需接入的网站域名清单,包含网站的源站服务器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功能,并在测试通过后开启防护,避免影响正常业务。如果您仍然无法解决,可以联系阿里云技术支持获得帮助。
- 自定义CC攻击防护:针对URL设置灵活的限速策略,有效缓解CC攻击(HTTP Flood)带来的业务影响。
- 日志功能
根据您的业务和预算情况,选择启用日志服务功能。开通日志服务功能,可记录更多详细的原始日志信息,同时实现更灵活的访问日志自定义分析,发现恶意请求特征。更多信息,请参见概述。
- 监控告警
根据您的业务情况,为网站业务设置具体的QPS、4XX、5XX告警触发阈值。通过配置WAF告警监控功能,实时感知攻击事件。更多信息,请参见使用云监控设置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解析记录。
说明 如果您域名DNS解析存在MX记录与CNAME记录冲突的情况,建议您通过A记录方式接入WAF。或者,您可以通过创建二级域名的方式区分业务,实现使用CNAME方式接入。真实业务流量切换后,您需要再次根据上述业务可用性验证项进行测试,确保网站业务正常运行。
- 日常运维。
- 您可以参考以下最佳实践根据所需防护的具体场景,进一步配置具有针对性的防护策略:
- 如果您使用的是按量计费WAF实例,请仔细阅读WAF按量计费实例计费方式(具体内容,请参见计费说明),避免出现实际产生的费用超出预算的情况。
- 为避免WAF实例遭受大量DDoS攻击触发黑洞策略,导致网站业务无法访问的情况,建议您根据实际情况选择DDoS原生防护或DDoS高防产品,防御DDoS攻击。更多信息,请参见什么是DDoS原生防护、什么是DDoS高防(新BGP&国际)。
- 如果出现业务访问延时或丢包的问题,参考以下建议变更部署方式:
- 针对源站服务器在地区非中国内地、WAF实例为中国内地地区、主要访问用户来自中国内地的情况,如果用户访问网站时存在延时高、丢包等现象,可能是由于回源网络链路问题,推荐您将源站服务器部署在中国内地。
- 针对源站服务器在非中国内地、WAF实例为非中国内地、主要访问用户来自中国内地的情况,如果用户访问网站时存在延时高、丢包等现象,可能存在跨网络运营商导致的访问链路不稳定,推荐您使用中国内地的WAF实例。
- 如果需要删除已防护的域名配置记录,确认网站业务是否已正式接入WAF。
- 如果尚未正式切换业务流量,直接在Web应用防火墙管理控制台中删除域名配置记录即可。
- 如果已完成业务流量切换,删除域名配置前务必前往域名DNS解析服务控制台,修改域名解析记录将业务流量切换回源站服务器。
说明- 删除域名配置前,请务必确认域名的DNS解析已经切换至源站服务器。
- 删除域名配置后,WAF将无法再为您的域名提供专业级安全防护。
业务遭受攻击时的紧急接入场景
- 遭受Web攻击入侵
- 为避免二次入侵,务必先清理入侵者植入的恶意文件并修复漏洞。
说明 如果您需要专业的安全运维人员帮助,请选购应急响应服务。
- 已对业务系统进行安全加固。
- 将网站业务接入WAF。
说明 根据实际情况将Web攻击防护策略调至高级规则,有效防御Web攻击行为导致的入侵事件。
- 为避免二次入侵,务必先清理入侵者植入的恶意文件并修复漏洞。
- 遭受CC攻击或爬虫攻击
在将网站业务接入WAF后,需要通过日志功能分析网站访问日志,判断攻击特征后进行针对性的防护策略配置。
安全专家服务
开通WAF后,您可以在管理控制台中通过钉钉扫描二维码直接联系阿里云安全服务专家。