部署WAF后,很多管理员只开启了基础防护,却漏掉了几个关键规则,导致防护体系存在明显缺口。实际上,有七个规则组是必须强制开启的,它们构成了WAF防御的骨架:SQL注入防护、跨站脚本防护、命令注入防护、路径遍历防护、核心规则集、文件上传防护,以及针对特定漏洞的防护规则。下面我们逐一解析其原理和配置要点。

1. SQL注入防护规则:堵住数据库的第一道缺口

SQL注入攻击通过将恶意SQL代码插入输入参数,直接操作后端数据库。WAF的SQL注入规则必须开启并精细调校。规则主要通过检测输入中的SQL元字符和关键字组合来识别攻击,例如单引号、分号、UNION、SELECT等。但要注意避免误杀,例如正常内容中包含“union”这个词。建议采用评分制规则,当多个可疑特征同时出现时才进行拦截。对于使用参数化查询的现代应用,可以适当放宽对某些字符的过滤,但绝不能完全关闭此规则组。

2. 跨站脚本防护规则:抵御前端脚本攻击的核心

跨站脚本攻击危害极大,可盗取用户会话、钓鱼、篡改页面。WAF的XSS规则必须始终开启。它主要检测<script>标签、javascript:协议、事件处理器以及各种编码变体。高级XSS规则会解析HTML实体编码、Unicode编码甚至混淆过的脚本。开启时,务必同时启用对POST和GET请求体的检测,并覆盖所有Content-Type。对于富文本编辑器等需要输入HTML的场景,应通过白名单机制放行安全标签,而非直接关闭规则。

3. 命令注入防护规则:阻断系统级入侵路径

攻击者试图通过Web输入执行系统命令,例如在参数中拼接“; ls -la”或“| cat /etc/passwd”。命令注入规则检测管道符、分号、反引号、系统命令关键字等。此规则必须保持高敏感度,因为一旦命令执行成功,服务器即告沦陷。在Linux/Windows混合环境中,需同时配置针对两种系统命令特征的检测。规则应与应用程序的权限控制相结合,确保Web服务以最低权限运行,即使规则被绕过,危害也有限。

4. 路径遍历防护规则:保护服务器文件系统

攻击者利用“../”或其编码形式尝试访问Web根目录之外的文件,如配置文件、日志、源代码。路径遍历规则必须开启,并能够识别各种编码,例如“..%2f”、“..\”等。规则应监控所有可能包含文件路径的参数,包括文件名、路径、URL参数。在云原生环境中,还需注意容器内的路径特性。同时,建议在服务器层面设置严格的目录访问权限,作为防御的最后一环。

5. 核心规则集:不可或缺的通用攻击防护基线

CRS提供了防护常见Web攻击的通用规则集合,是WAF的基石。它覆盖了协议合规性检查、异常检测、恶意机器人识别等。必须开启并定期更新至最新版本,以应对新型攻击手法。管理员应根据自身应用流量特点调整规则阈值和评分,但不应随意禁用整个规则组。例如,可以对频繁触发误报的特定规则设置例外条件,而非直接关闭。

6. 文件上传防护规则:守好恶意文件上传的关卡

文件上传是常见的攻击入口,攻击者试图上传Webshell或恶意脚本。此规则组必须开启,并实施多重检查:检查文件扩展名黑名单与白名单、检测文件内容魔术头、扫描文件内容是否包含恶意脚本片段、限制文件大小。对于图像文件,还应进行二次渲染处理以破坏可能嵌入的脚本。规则配置应与业务结合,例如,只允许用户头像上传功能接收图片格式,并严格限制其尺寸。

7. 特定漏洞防护规则:针对已知高危漏洞的精准防御

此规则组针对广泛存在的已知框架或组件漏洞提供紧急防护,例如Struts2、Log4j2等漏洞的利用特征。在官方补丁部署前,开启此类规则是关键的临时缓解措施。即使打了补丁,也建议长期开启作为深度防御。管理员应订阅安全公告,及时更新WAF的漏洞防护规则。配置时需明确规则对应的CVE编号和影响范围,避免对无关应用造成影响。

总结来说,这七个规则组构成了WAF的基础防御矩阵。开启后,关键在于持续监控日志、分析误报与漏报、并根据实际业务流进行规则微调。一个良好的实践是,在部署初期将规则设置为仅记录模式,观察一段时间后再逐步启用拦截,从而实现安全与业务稳定性的平衡。WAF规则不是“一劳永逸”的设置,它需要与威胁情报、应用变更保持同步,才能真正成为Web应用安全的坚实盾牌。