SuperAPI AI 工具集

agency-ai-generated-code-security-auditor

安全与审计

查看项目

更新于 10-24 16:16

技能介绍

用途

AI-Generated Code Security Auditor 是一个应用安全审查技能,面向由 AI 助手(如 Copilot、Cursor、Claude Code、v0、Lovable、bolt 等)脚手架生成或“vibe coding”出来的应用。它针对编码助手默认引入的、可预测的失败模式进行审查:把 API 密钥内联进代码、Supabase 项目行级安全(RLS)未真正生效、把用户输入直接拼进系统提示等。目标是在攻击者之前发现这些问题,证明其真实可利用,并给出可一次提交完成的修复。

主要能力

密钥泄露检测

  • 标记任何到达客户端代码路径的硬编码凭据:API 密钥、令牌、数据库 URL、内联私钥。
  • 识别更隐蔽的泄露:位于客户端暴露前缀(NEXT_PUBLIC_、VITE_、PUBLIC_、EXPO_PUBLIC_)后的密钥、被编译进发布 JS 包的密钥、被前端可达代码导入的 Supabase service_role 密钥。
  • 区分真正危险(客户端代码中的有效密钥)与无害(设计上就公开的 publishable/anon 密钥),以保持精度。
  • 每个泄露密钥发现都会给出在提供方处的具体轮换步骤,因为从代码中删除值并不能解除泄露。

数据库授权验证

  • 把“RLS 已启用”当作待验证的声明:RLS 开启但无策略会拒绝一切,USING (true) 则允许所有人,两者都是常见的 AI 默认。
  • 排查 Supabase 与 Postgres 授权漏洞:公开表缺少 RLS、USING (true) 全开放策略、存储桶全局可读、策略检查用户可控的角色字符串而非已认证用户身份。
  • 标记基于 user_metadata 的授权:已登录用户可通过 auth API 修改自己的 user_metadata 并给自己授予任意角色,特权逻辑必须基于仅服务端可写的 app_metadata。

提示注入检测

  • 追踪请求形态输入(req.body、查询参数、.json()、表单数据)从源头到 LLM 汇聚点,当它落入更高风险位置时告警:系统提示、无角色边界的单条指令加输入字符串,或同时授予模型工具与函数调用能力的调用。
  • 对文档化的安全模式保持静默:不可信内容位于独立的 user 角色消息中且无工具。
  • 每个提示注入发现都如实说明:检测为启发式、置信度为中、需开发者手动验证。

闭环与诚实报告

  • 扫描、修复、重扫:按最严重优先以平实语言呈现发现,由开发者批准修改内容,再重扫确认哪些已解决、哪些仍存在、是否引入新问题。
  • 不夸大覆盖范围或合规性:报告代码可见的分母与免责声明,不给出“你已合规”或“% 安全”这类会被误读为保证的数字。

使用方式

  1. 本地静态扫描:对仓库以静态代码方式运行,无网络出口、无账号、无遥测。按文件类型路由:客户端可达代码与发布包查密钥,SQL 与迁移查 RLS,LLM SDK 调用点查注入。
  2. 分类与解释:按最严重优先排序,先用平实英语描述风险再给术语;每个发现给出源头、汇聚点、具体利用方式与一次提交修复;启发式发现标注为中置信度。
  3. 与开发者的编码助手协作修复:逐条或按严重度提出修复,不提供在开发者背后编辑的全有或全无按钮;技能只呈现变更,由开发者的编码助手应用,技能自身不写文件。
  4. 重扫并如实告知:按指纹与上次扫描比对,区分已解决、仍存在、新引入;对发现的密钥确认轮换步骤已完成。

适用场景

  • 使用 Next.js、Supabase、边缘函数、LLM SDK 等现代无服务器与 LLM 应用栈的项目。
  • 由 AI 助手脚手架生成、需要上线前安全审查的应用。
  • 需要把发现映射到 CWE 与 OWASP LLM Top 10 以纳入现有风险登记与合规证据的团队。

限制

  • 提示注入与污点分析为启发式,故意保守,模糊流程会保持静默而非猜测;置信度为中,需人工验证。
  • 默认只读,不编辑或删除文件。
  • 不报告合规百分比或安全保证,只报告代码可见的覆盖范围与免责声明。
  • 输出中不打印原始密钥值,只报告类型、位置与脱敏预览。
  • 具体支持的平台、收费、价格等信息暂未提供。