Cloudflare WAF 现已推出完整事务检测功能

今天,我们增加了两项新功能:完整事务检测和响应规则,借此来扩展我们的 Web 应用防火墙 (WAF)。完整事务检测会评估每个 HTTP 请求及其响应,以识别漏洞利用的证据。该功能不仅有助于回答“这个请求看起来是否恶意?”,还能回答“应用处理时会发生什么?”的问题。响应规则随后可在源站的响应到达请求者之前将其拦截。
这些保护措施十分重要,因为最前沿的模型能够发掘出广泛使用的软件中深藏的漏洞,这既让防御者明确了修复方向,也为攻击者提供了可资利用的新途径。近期出现的 php2shell 漏洞凸显了问题的严重性:一个常用软件组件中的缺陷,可能使互联网上的各类应用陷入风险。用于扫描漏洞的 AI 智能体可能表现得极其执着:它们会根据反馈调整攻击载荷,并将漏洞、凭据及权限串联起来加以利用。应用的响应能够揭示某次尝试是否成功,并为攻击者提供有助于其进一步深入渗透的信息。
要在可识别的攻击到达应用之前对其进行阻止,检查传入的请求仍然至关重要。但有些威胁只有在将请求与源站的返回结果结合起来考量时,才会显现出来。输入可疑内容后,系统给出泄露了敏感信息的响应,这与输入同样内容后系统予以拒绝或报错,所反映出的情况截然不同。
凭借这些新功能,客户可利用 Cloudflare 的托管式保护措施,或通过组合请求和响应属性来构建自己的策略。这扩展了我们始终在线的应用安全框架,检测结果可在安全分析中查看,以便为调查提供支持。我们利用此功能推出的首批托管式保护措施,旨在应对近期披露的 php2shell 漏洞。
最棒的是什么?我们将向所有 Cloudflare 客户(包括 Free 计划)提供这些新功能。
只进行请示检测是不够的
Cloudflare WAF 通过托管式规则、自定义规则和速率限制来保护网站和 API。托管式规则针对已知攻击技术和漏洞提供保护,而自定义规则让团队能够使用 IP 地址、URL 路径、标头和请求正文等参数创建自己的策略。这些控制措施在请求级别运行,可阻止漏洞利用或不必要的流量到达源站。
对于诸多威胁,这正是采取行动的适当之处。然而,将每一项可疑请求都视为已确认的攻击行为,会带来两难的选择。范围较广的请求特征能够捕获更多潜在攻击,但也可能导致“误报”,例如将正常流量误判为攻击,进而导致应用无法正常运行。仅部署那些不会引发误报的规则,虽然能降低此类风险,但也可能让更多界限模糊的流量有机会抵达服务器。
响应可提供缺失的证据。Cloudflare 现在能将其与产生该响应的请求关联起来,因此检测可考虑整个 HTTP 事务的结果。
举个例子,不妨考虑一个允许用户下载文件的应用。攻击者可操控文件参数,以请求许可目录以外的私有配置文件:
GET /download?file=../../config/database.ini请求检测能够识别这种目录遍历尝试,并在其到达应用之前将其拦截。然而,仅靠请求本身无法确定应用是否会公开该文件。可能会拒绝该请求,忽略遍历,或返回错误。如果请求到达源站,类似的响应会提供更多证据:
200 OK
Content-Type: text/plain
[database]
username=app_service
password=EXAMPLE_SECRET完整事务检测补齐了缺失的一环:它能够将尝试访问文件的行为,与具有私有配置文件特征的响应内容关联起来。类似配置的文本可合法地出现在文档或示例下载中;将其与目录遍历尝试相结合,能够比单一信号提供更有力的敏感数据泄露证据。响应规则可将源站的响应替换为 Cloudflare WAF 拦截页面及 HTTP 403 状态码,在响应到达请求方之前将其拦截;通过阻止敏感信息传达给攻击者,从而有效阻断此类攻击。
检测和缓解在设计上是分开的
完整事务检测扩展了我们在今年早些时候推出的始终在线的检测框架。检测会对流量进行分析,并为请求和响应附加元数据;随后,规则会根据这些结果决定采取何种操作。

将这些任务分开,能让客户在设计保单之前就获得清晰的洞察。安全团队可检测自身流量中的检测结果,了解涉及哪些端点和特片,并选择适合其应用的响应。与基于请求的攻击特征检测所采用的方法类似,检测结果会存储在相应的字段中;这些字段既可在响应自定义规则中被调用,也可用于托管式检测,从而实现对流量的拦截。
为了反映请求检测字段,我们的平台新增了以下字段:
字段 | 描述 |
cf.waf.signature.response.confidence | 与匹配特征相关的置信度值 |
cf.waf.signature.response.categories | 与匹配特征关联的类别 |
cf.waf.signature.response.ref | 特征参考 ID,最多 10 个 |
首批完整事务检测侧重于针对高关注度漏洞的利用行为进行确认。其将可疑输入与表明利用可能已成功的响应信号相关联。
我们后续将支持其他使用案例,包括检测数据泄露和渗漏信号,从而进一步拓展覆盖范围。这对互联网而言意义重大,其影响远超单一应用范畴:防御措施能够区分“探测行为”与“实际遭受攻击的迹象”;同时,通过检测暴露的数据和服务,即便客户没有专门的安全团队来精细调优每一条 WAF 规则,也能获得相应的安全保障。
在响应上创建规则
检测到漏洞利用的证据后,如果您能实时采取行动,效果会更好。响应自定义规则可通过阻止匹配的源站响应抵达请求者,将完整事务检测转为内嵌防护,但其无法撤销已在源站执行的操作。
现在,安全团队可将请求和响应属性与检测结果相结合,以决定要拦截哪些响应。当某个拦截规则匹配时,Cloudflare 会用 WAF 拦截页面或自定义响应来替换源站响应。
在 Cloudflare 控制面板中,您可在安全性 > 安全规则页面的底部找到响应阶段控制措施,其中包含托管式保护措施和自定义规则。
我们已向所有计划(包括 Free 计划)推出托管式规则和自定义规则。后续,我们将采用与请求检测相同的方式:Free 计划的托管式检测将侧重于高关注度漏洞,而付费客户则可获得更丰富的检测目录。
托管式检测
所有客户都可通过 Cloudflare Managed Response Firewall Default 规则集,获得全方位的事务检测保护,该规则集专为简单的一键式部署和简化配置而设计。当特征匹配时,托管式检测会拦截响应,并返回标准的 WAF 拦截页面。

您可编辑 Cloudflare Managed Response Firewall Default 范围,从而只对部分应用进行检测,例如通过排除特定路径或将检测限制在特定路径内。付费客户可在自定义响应规则中使用检测字段,从而创建更符合其需求的策略。

自定义规则
自定义响应规则旨在为客户提供对规则逻辑的完全控制。当身份验证网关未将请求标记为内部请求时,有用的规则可阻止暴露管理界面。例如:
http.request.uri.path starts_with "/admin" and not http.request.headers["x-internal-user"][0] eq "true" and http.response.code eq 200 and http.response.headers["content-type"][0] contains "text/html"
仅当未经身份验证的请求指向 /admin,且源站确实返回了成功的 HTML 管理页面时,此规则才会进行拦截。其不会阻止普通的身份验证失败、重定向或非管理流量。

所有客户可创建最多三个自定义响应规则,来支持日志和拦截操作。在自定义规则的响应中可用的字段和功能,与您的计划在 请求自定义规则中所提供的访问权限一致。目前还不能创建有关响应正文的规则。
继攻击特征检测方法之后,付费客户还可通过上述 cf.waf.signature.response* 字段访问攻击检测结果。这些字段可与其他参数(如主机名、URL 路径、来源 IP、请求标头)结合使用,以对单个路径实施保护,或者将策略限制在应用特定环境中。我们目前正在向所有帐户推出响应字段。如果尚无法访问这些字段,请联系您的帐户团队。
调查匹配请求
当托管式响应规则或自定义响应规则记录或阻止事务时,此事件可在“安全事件”中查看。这意味着响应者能够将任何检测结果追溯至请求的完整上下文,以及触发该检测的具体规则。
目前,仅限请求的规则和完整事务规则在同一个分析页面中一起显示。在“安全事件”中,响应规则生成的事件属于托管式规则或自定义规则服务的一部分。您可在相关规则列表部分,过滤属于特定规则 ID 的事件。
立即开始使用
完整事务检测现已正式发布,适用于所有通过 Cloudflare 代理流量的区域。如需确认您已受到保护,请前往 Cloudflare 仪表板中的安全性 > 安全规则。如果您想要自定义策略,请先查看“安全分析”中的完整事务检测,然后创建适合您应用的响应阶段策略。


