收集 Vercel WAF 日志

支持:

本文档介绍了如何使用 Google Cloud Storage V2 将 Vercel WAF 日志注入到 Google Security Operations。

Vercel WAF 是一种 Web 应用防火墙,集成到 Vercel 边缘网络中,用于保护无服务器应用。它会在边缘检查传入的 HTTP 请求,并应用安全规则来阻止恶意流量到达您的应用。由于 Vercel WAF 日志必须从 Vercel 平台导出,因此您必须将这些日志上传到 Google Cloud Storage (GCS) 存储桶,然后配置 Google SecOps Feed 以注入这些日志。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • 启用了结算功能的 Google Cloud 项目
  • 有权访问 WAF 日志的 Vercel 账号(Pro 或 Enterprise 方案)
  • 配置为导出 WAF 日志的 Vercel API 令牌或日志接收器

创建 Google Cloud Storage 存储桶

  1. 转到 Google Cloud 控制台
  2. 选择您的项目或创建一个新项目。
  3. 在导航菜单中,前往 Cloud Storage > 存储分区
  4. 点击创建存储桶
  5. 提供以下配置详细信息:

    设置
    指定存储桶的名称 输入全局唯一的名称(例如 vercel-waf-logs
    位置类型 根据您的需求进行选择(区域、双区域、多区域)
    位置 选择离您的 Google SecOps 实例最近的位置(例如 us-central1
    存储类别 标准(建议用于经常访问的日志)
    访问权限控制 统一(推荐)
    保护工具 可选:启用对象版本控制或保留政策
  6. 点击创建

将 Vercel WAF 日志导出到 GCS

Vercel 通过日志接收器和 Vercel REST API 提供 WAF 日志。配置日志导出,然后上传到 GCS。

Vercel 日志接收器会将日志实时流式传输到外部端点。

  1. 登录 Vercel 信息中心
  2. 前往团队设置:设置 > 日志接收器
  3. 点击添加日志接收器
  4. 配置日志接收器:
    • 传送格式:选择 JSON
    • 来源:选择防火墙以包含 WAF 事件。
    • 环境:选择要监控的环境(生产环境、预览、开发)。
    • 端点:输入中间接收器的网址(例如,写入 GCS 的 Cloud Run 函数端点)。
  5. 点击添加日志接收器
  6. 验证日志是否正在传送到您的端点。

方案 B:通过 Vercel REST API 导出

  1. 设置 > 令牌 中生成 Vercel API 令牌。
  2. 使用 Vercel REST API 检索防火墙事件:

    curl -H "Authorization: Bearer YOUR_VERCEL_TOKEN" \
      "https://api.vercel.com/v1/security/firewall/events?teamId=YOUR_TEAM_ID&projectId=YOUR_PROJECT_ID&limit=100" \
      -o vercel-waf-events.json
    

检索 Google SecOps 服务帐号

  1. 前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称 字段中,输入 Feed 的名称(例如 Vercel WAF Logs)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 Vercel WAF 作为日志类型
  7. 点击获取服务账号 。系统会显示唯一的服务帐号电子邮件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. 复制此电子邮件地址,以便在下一步中使用。

向 Google SecOps 服务帐号授予 IAM 权限

Google SecOps 服务帐号需要对您的 GCS 存储桶具有 Storage Object Viewer 角色。

  1. 前往 Cloud Storage > 存储分区
  2. 点击您的存储桶名称(例如 vercel-waf-logs)。
  3. 前往权限 标签页。
  4. 点击授予访问权限
  5. 提供以下配置详细信息:
    • 添加主账号:粘贴 Google SecOps 服务帐号电子邮件地址(例如 chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com)。
    • 分配角色:选择 Storage Object Viewer
  6. 点击保存

配置 Google SecOps Feed

  1. 前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称 字段中,输入 Feed 的名称(例如 Vercel WAF Logs)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 Vercel WAF 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • 存储桶网址:输入 GCS 存储桶 URI:

      gs://vercel-waf-logs/vercel-waf/
      
      • vercel-waf-logs 替换为您的 GCS 存储桶名称。
      • vercel-waf 替换为您配置的前缀路径。
    • 来源删除选项:根据您的偏好选择删除选项:

      • 永不:转移后永不删除任何文件(建议用于测试)。
      • 删除已转移的文件和空目录:成功转移后删除文件和空目录。

    • 文件存在时间上限:包含在过去指定天数内修改的文件(默认值为 180 天)。

    • 资产命名空间资产命名空间

    • 注入标签:要应用于此 Feed 中的事件的标签。

  9. 点击下一步

  10. 最终确定 屏幕中检查新 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
record.requestId、record.proxy.timestamp、record.proxy.region、record.proxy.errorCode、record.proxy.vercelCache、record.proxy.pathType、record.proxy.referer、record.proxy.cacheId、record.proxy.wafAction、record.proxy.scheme、record.proxy.userAgent、record.environment additional.fields 其他事件元数据
metadata.event_type 事件类型
record.deploymentId metadata.product_deployment_id 产品专用部署 ID
record.id metadata.product_log_id 产品专用日志 ID
record.proxy.method network.http.method HTTP 方法
record.statusCode network.http.response_code HTTP 响应代码
record.source principal.asset.hostname 与主账号关联的资产的主机名
record.host principal.hostname 主账号的主机名
record.message security_result.description 安全结果的说明
record.proxy.wafRule security_result.rule_name 触发安全结果的规则的名称
record.level security_result.severity 安全结果的严重程度
record.proxy.wafRule security_result.threat_name 威胁的名称
record.proxy.clientIp target.asset.ip 资产的 IP 地址
record.projectId target.cloud.project.id 云项目的 ID
record.projectName target.cloud.project.name Cloud 项目的名称
record.proxy.path target.file.full_path 文件的完整路径
record.proxy.clientIp target.ip 目标的 IP 地址
record.executionRegion target.location.name 位置的名称
record.proxy.vercelId target.user.userid 目标用户的用户 ID
metadata.product_name 商品名称
metadata.vendor_name 供应商名称

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。