一、什么是 Web 应用防火墙?
Web 应用防火墙对网站、APP 的业务流量安全及合规性保护,对业务流量的识别恶意特征提取、分析识别出恶意流量并进行处理, 将正常安全的流量回源到业务服务器, 保护网站核心业务和数据安全。
京东云 Web 应用防火墙的产品架构示意图如下:
二、Web 攻击常见的检测手段?
Web 攻击常见的三种检测手段,规则检测、AI 检测或语义检测。
- 规则检测:效率高、识别精准度高。其表现形式是正则表达式,通过正则表达式或组合来检测攻击,例如:OWASP Top10 十大安全漏洞,也有与其对应的规则集合 owasp top10 rules set,通过规则拦截恶意攻击已经是各大厂商的主流检测手段。目前各大 WAF 厂商都有自己的安全规则集合。
2.AI 检测:通过 AI 机器学习或深度学习算法来检测 Web 攻击, 能检出未知威胁, 缺点检测效率低,一般用于离线检测,误报率相对较高, 具体取决于算法模型及训练样本等。
- 语义检测:通过对 SQL 或 XSS 注入进行语法及词法分析来检测攻击, 鉴于算法特点, 误报率较高,一般用于告警, 不直接拦截业务请求。
三、公有云上用户及业务场景的特点
公有云上的用户包含各个行业,业务场景具有多样性和复杂性的特点,例如:电商和政务云都是公有云的常见客户,通用的规则集合可以有效满足用户的防护需求, 但针对特点活动场景,例如优惠券活动、重点场景需要针对性定制不同的防护规则集合, 以满足特殊场景下防护需求。
四、针对公有云多态、复杂的业务场景的解决方案
默认规则组: 采用规则组集合的方式进行全面安全防护。
规则组分级: 规则组级别分为宽松、正常、严格,用以满足不同场景或同一场景不同时期的需求。
自定义规则组:定制化的防御策略组,针对复杂,特定需求的业务场景,例如:专门针对 SQL 注入自定义规则组,在选择规则时只选择 SQL 注入类的规则。
误报处理:通过白名单对请求特征加白或在自定义规则组中去掉误报的规则来处理误报。
4.1 默认规则组
Web 应用攻击防护引擎基于内置的专家经验规则集,自动为网站防御 SQL 注入、XSS 跨站,webshell 上传、命令注入、后门隔离、非法文件请求、路径穿越、常见应用漏洞攻击等通用的 Web 攻击。
4.2 规则组分级
规则组级别分为宽松、正常、严格,用以满足不同场景或同一场景不同时期的需求。
例如在平时我们将规则组设置为正常级别, 但是在重保时期可以将规则组提升为严格级别,从而来阻断更多的攻击风险。
正常级别:检测常见的 Web 应用攻击(默认选择)。
严格级别:当您需要更严格地防护路径穿越、SQL 注入、命令执行时,建议选择此等级。
宽松:当发现存在较多误拦截,或者业务存在较多不可控的用户输入时,可以选择此等级。
4.3 自定义规则组
定制化的防御策略组,针对复杂,特定需求的业务场景,例如:专门针对 SQL 注入自定义规则组,在选择规则时只选择 SQL 注入类的规则。
例如:
选择一个规则组模板,之后对模板内的规则进行删除,或添加新的规则到规则组中;
已选择的安全规则
未添加的安全规则
4.4 解决业务误报
4.4.1 自定义规则组
通过自定义规则组除去误报规则的方式来解决误报问题。
4.4.2 白名单加白
基于请求特征对误报流量加白, 加白后的流量会被 WAF bypass,从而解决误报问题。
五、京东云 WAF 规则检测引擎主要特性
实时全面检测 http 报文,且跨包流量无遗漏检测;
自适应内容解析:自适应解析 JSON、XML、Multipart 等数据格式,提升检测的准确率;
自适应解码:包括 URL、HTML、Base64、Unicode、十六进制、二进制等多种格式解码,提高检测的召回率;
支持 HPP 参数污染及依赖注入攻击防护,自适应 SQL、XSS 去注释。