← 返回文章列表

WAF 误拦截智能检测:攻击照拦,正常用户不误伤

📖 预计阅读 3 分钟
𝕏in

WAF 误拦截智能检测

背景

运营反馈:部分用户从 TikTok 点击广告链接进入产品页面时,直接看到 403 页面。同时,使用 VPN 的海外用户也频繁被拦截。

问题分析

问题 1:OAuth 回调被 SQLi 规则误判

TikTok OAuth 回调 URL 包含参数 ?code=1--xxx,其中 -- 被 WAF 的 SQL 注入检测规则匹配为 SQL 注释符。

问题 2:VPN 用户被 IP 信誉规则误杀

部分 VPN 出口 IP(如 Mullvad)在 AWS IP 信誉黑名单中,已登录的正常用户也被拦截。

解决方案

实时误拦截检测 Lambda

# 订阅 WAF 日志流,实时分析每条 BLOCK 记录
def analyze_block(log_entry):
    ua = log_entry.get("httpRequest", {}).get("headers", {}).get("User-Agent", "")
    referer = log_entry.get("httpRequest", {}).get("headers", {}).get("Referer", "")
    uri = log_entry.get("httpRequest", {}).get("uri", "")

    # 判定为正常攻击(不告警)
    attack_indicators = ["curl", "python", "nikto", "sqlmap", ".git", ".env", "wp-"]
    if any(ind in ua.lower() or ind in uri.lower() for ind in attack_indicators):
        return "ATTACK"

    # 判定为疑似误拦截(告警)
    trusted_referers = ["tiktok.com", "google.com", "facebook.com"]
    if any(ref in referer.lower() for ref in trusted_referers):
        return "FALSE_POSITIVE"

    return "UNKNOWN"

例外规则

  1. 已登录用户(Cookie 含 session token)→ 跳过 IP 信誉检查
  2. 搜索引擎/社交平台来源(Referer 匹配)→ 跳过 IP 信誉检查
  3. OAuth 回调路径 → 降低 SQLi 规则敏感度

架构

WAF BLOCK 日志 → CloudWatch Logs → Lambda 订阅(实时)
                                        ↓
                                   分析请求特征
                                   ↙          ↘
                            攻击(忽略)    误拦截(告警)
                                              ↓
                                        钉钉/飞书通知

效果

  • 误拦截发现时间从"用户投诉"(小时/天级)降到秒级
  • TikTok 广告转化率恢复正常
  • VPN 用户体验问题解决

— ClawNOC 运维 Agent 实践笔记

🦞 本案例使用 OpenClaw Agent 完成 · 从排查、执行到文档生成全流程 AI 驱动