SuperAPI AI 工具集

security-audit-pro

安全与审计

查看项目

更新于 10-16 04:06

技能介绍

用途

security-audit-pro 是一个数据安全审计类技能,定位为资深数据安全架构师与取证审计角色。其核心目标是在 Convex、Supabase 和 Postgres 环境中,通过严格的策略校验、即时(JIT)访问控制和取证追踪分析,阻断未授权访问,强化数据层的行级安全(RLS)与零信任架构。

主要能力

  • 攻击面映射:识别数据层的所有入口点,包括公开 API、内部看板与 AI 智能体。
  • 策略审计:审查既有 RLS 策略或 Convex 函数权限,排查逻辑绕过问题。
  • 强制协议:
    1. RLS by Default(Supabase/Postgres):公共 schema 中每张表都必须启用 RLS;禁止客户端使用 service_role key;使用非对称 JWT 并每月轮换密钥;对高敏感表启用 pgaudit。
    2. 显式认证校验(Convex):每个 Convex 函数必须显式调用 ctx.auth.getUserIdentity();优先使用细粒度的“基于动作”函数(如 transferOwnership)而非通用 “Update” 函数。
    3. 即时(JIT)数据访问:避免管理员任务的常驻权限,实施任务完成后自动过期的时间绑定授权。
    4. 取证审计追踪:以不可否认的方式记录“谁在何时访问了什么”,通过数据库触发器维护不可篡改的 audit_log 表,包含 old_data、new_data 和 actor_id。
  • 影子访问模拟:执行模拟以验证未认证或未授权用户无法检索敏感行。
  • 顺序激活:activate_skill(name="security-audit-pro") → activate_skill(name="auditor-pro") → activate_skill(name="db-enforcer")。

使用方式

该技能以技能激活的方式调用,并提供实现范式,例如:

加固的 RLS 策略(Supabase/Postgres):

-- Enable RLS ALTER TABLE sensitive_data ENABLE ROW LEVEL SECURITY;

-- Create a policy for "Teams" where users can only see data from their own team CREATE POLICY user_team_access ON sensitive_data FOR SELECT TO authenticated USING ( team_id IN ( SELECT team_id FROM team_members WHERE user_id = auth.uid() ) );

Convex Auth Guard Pattern:

import { query } from "./_generated/server"; import { v } from "convex/values";

export const getSecureData = query({ args: { id: v.id("items") }, handler: async (ctx, args) => { const identity = await ctx.auth.getUserIdentity(); if (!identity) throw new Error("Unauthenticated");

const item = await ctx.db.get(args.id);
if (!item || item.ownerId !== identity.subject) {
  throw new Error("Unauthorized access attempt logged.");
}
return item;

}, });

此外还提供专用脚本:scripts/simulate-leak.ts(以匿名上下文尝试查询表中所有行以验证 RLS)和 scripts/extract-audit-report.py(将日志汇总为合规可用的 PDF)。

反模式清单(Do Not List)

  • 不要依赖“隐晦式安全”(例如仅以 UUID 作为唯一保护)。
  • 不要让 anon 角色对敏感表保留 SELECT 权限。
  • 不要在 user_id 无索引时使用 auth.uid() = user_id,这会拖垮生产性能。
  • 不要只在前端做权限校验。
  • 不要忘记审计 service_role 的使用,它会绕过所有 RLS。

适用场景

适用于需要加固 Supabase、Postgres 或 Convex 数据层安全、审计访问策略、建立取证审计追踪、验证 RLS 有效性的团队与项目,尤其适合关注零信任数据库架构和数据访问合规性的场景。

限制

资料未提供该技能的收费、价格、平台支持范围、性能指标或具体部署方式等信息,上述内容暂未提供。