SuperAPI AI 工具集

supabase-audit-realtime

安全与审计

查看项目

更新于 10-15 18:11

技能介绍

用途

该技能用于测试 Supabase Realtime WebSocket 通道的安全问题,主要目标是检查 Realtime 通道是否被正确保护、检测未授权的数据流式传输,以及在 Realtime 用于敏感数据时进行安全评估。它通常作为 Supabase 综合安全审计的一部分使用。

主要能力

技能会连接 Supabase Realtime 端点(wss://[project].supabase.co/realtime/v1/websocket),并执行以下测试:

  • 通道枚举:查找开放的通道。
  • Postgres Changes 测试:测试表变更是否被流式传输,判断 RLS 策略是否对 Realtime 生效。
  • Broadcast 测试:测试发布/订阅通道的访问权限,检测公开可订阅的频道。
  • Presence 测试:测试在线状态通道的访问权限,检查是否暴露过多用户信息。

技能会输出结构化的审计报告,包含连接测试、各表订阅结果、广播频道访问情况、Presence 数据暴露情况,以及按严重级别(P0/P1)分类的发现和修复建议。

使用方式

使用前需要具备 Supabase URL 和 anon key,并已完成检测(Detection)。

基本用法示例:

  • “Audit Realtime channels on my Supabase project”
  • “Test if Postgres Changes streams sensitive data”

技能在执行过程中要求逐步更新上下文文件(.sb-pentest-context.json)和审计日志(.sb-pentest-audit.log),并在每个通道测试前后记录,确保即使中断也能保留已有发现。同时需要收集证据文件到 .sb-pentest-evidence/06-realtime-audit/ 目录,包括 WebSocket 连接测试、各表订阅结果、广播频道访问和 Presence 数据暴露等。

适用场景

  • 检查 Realtime 通道是否被正确保护。
  • 检测未授权的数据流式传输。
  • 当 Realtime 用于敏感数据时进行安全评估。
  • 作为综合安全审计的一部分。

限制与注意事项

  • 需要 Supabase URL 和 anon key,且检测已完成。
  • Realtime 遵循 RLS 策略:如果 RLS 阻止 SELECT,Realtime 不会流式传输;如果 RLS 允许 SELECT,Realtime 会流式传输数据;Broadcast 通道可以在没有 RLS 的情况下被订阅。
  • 技能要求逐步写入上下文文件和日志,不能等到最后批量写入。
  • 证据文件中的敏感数据需要脱敏(redacted)。
  • 具体收费、价格、平台支持等信息暂未提供。