WAF
本文约需 2 分钟阅读
WAF (Web Application Firewall) 是一种专用防火墙,它检查发往 Web 应用程序的 HTTP/HTTPS 流量,并检测和拦截SQL 注入和XSS 等攻击。普通防火墙在网络层 (IP 地址、端口号) 控制通信,而 WAF 则解析应用层 (HTTP 请求的内容)。截至 2025 年,针对 API 安全的专用 WAF 功能正在不断增强。
以次数为标准的判定实际区分了什么
以规定时间内来自同一发送方的数量为标准进行拦截的机制,并不是在区分攻击与正规使用,而是在区分到达方式的聚集程度。只要作为标准的数量与时间幅度是固定的,把发送方分成几个、或把到达的间隔拉开,就足以落到标准之下,拦截一侧也就什么都不会留下。反过来把标准收紧,则反复更正输入错误的人,或因通信不稳定而重复发送同一内容的情形,看起来都会是同一个样子。只要仅以数量划分,就不存在同时满足这两者的取值。而且,同一发送方这一单位,与实际进行操作的人这一单位并不一致。在许多人经由同一出口到达的构成中,彼此无关的人会汇合成一个发送方;反过来,一个人的操作也会因所在位置或线路的切换而分散到多个发送方。由于单位不一致,以发送方为依据进行清点时,归并过度与拆分过度会在同一机制中同时发生。此外,如何回复被拦截这件事,本身就传达了标准所在的位置。若放行与拦截在应答的内容或返回所需的时间上存在差异,从外部就能确认拦截是从何处开始的。一旦知道了分界,只要保持在其之下就能持续通过;因此在决定拦截标准时,也要同时决定把拦截这一事实向对方展示到何种程度。
WAF 的检测方式
基于特征 (签名) 的方式通过将已知攻击模式 (例如包含 SQL 语句的请求参数) 定义为规则来进行检测。评分方式对多个可疑特征赋予分数,并拦截超过阈值的请求。基于机器学习的方式通过学习正常流量来自动检测异常请求。 AWS WAF 、 Cloudflare WAF 、 Akamai 等云 WAF 的优势在于能够将全球威胁情报实时反映到规则中。
对同一个请求,各层分别检查到哪里
即使没有命中某一条模式,在评分方式下,只要可疑特征的分数总和超过阈值就会被拦截。在基于机器学习的方式下,偏离所学习的正常流量本身就是判断依据。另外,在部署后立即使用的监控模式下,即使被判定为攻击也不会拦截,而是转发至 Web 服务器。
部署场景与运维
在电商网站上,WAF 可防御针对登录页面的撞库攻击、针对搜索表单的 SQL 注入以及针对评论提交的 XSS。部署后立即以监控模式 (仅检测,不拦截) 运行,掌握误报模式后再切换到拦截模式更为安全。处理正规请求被误拦截的误报 (false positive) 是 WAF 运维的最大课题。通过将DNS 安全与 WAF 结合,可以实现多层次的 Web 防御。
WAF 的局限性
WAF 终究只是防御层之一,并不能替代修复应用程序本身的漏洞。由于存在绕过 WAF 的高级攻击手法,因此安全编码与 WAF 二者缺一不可。请用强随机密码保护 WAF 的管理控制台,并将规则的变更历史记录到审计日志中。
这篇文章对您有帮助吗?