0xf4r/vyroscan

GitHub: 0xf4r/vyroscan

Vyroscan 是一款专为 AI 生成应用设计的安全审计扫描器,通过 Claude Code 技能与独立脚本检测并修复「氛围编程」代码中常见的密钥泄露、访问控制缺失、注入等安全问题。

Stars: 0 | Forks: 0

# Vyrovo 的 Vyroscan ![License: MIT](https://img.shields.io/badge/license-MIT-green) ![Version](https://img.shields.io/badge/version-1.0.0-blue) ![Stacks: any](https://img.shields.io/badge/stacks-any-informational) ![Claude Code skill](https://img.shields.io/badge/Claude%20Code-skill-8A2BE2) **为 AI 构建的应用提供安全保障。** *发布前先进行扫描。* 这是一款 Claude Code 技能(及插件),专门审计 “氛围编程”应用中常见的访问控制、密钥暴露、注入和供应链错误——这些正是 AI 代码生成器反复发布的问题——并帮助您从一开始就避免编写此类代码。 由 [Vyrovo](https://vyrovo.com) 构建并维护。 当您审查代码、发布功能或编写任何涉及身份验证、数据库访问、 密钥、支付、上传或 LLM/agent 调用的内容时,它会自动触发。参考文件也是纯 Markdown 格式,因此即使 您不使用 Claude Code,整个内容也可作为独立的安全指南。 ## 为什么会有这个项目 AI 助手致力于优化*能运行*的代码,而不是*能抵御攻击者*的代码。2025-2026 年的独立 研究说明了这一点: - 约 **45%** 的 AI 生成代码包含 OWASP Top 10 漏洞,而且 AI 代码的缺陷比人类编写的代码多 **2.74倍**。 - 2026 年对 **1,072 个基于 Supabase 的氛围编程应用**的扫描发现,**98% 存在安全问题**,16% 存在严重缺陷—— 数以百计的应用允许任何人使用公开密钥且无需登录即可读取、修改或**删除**数据库。只有 26 个应用是安全的。 - 2025 年有 **2865 万**个新的硬编码密钥泄露在公开的 GitHub 上(同比增长 34%);AI 服务密钥泄露增加了 **81%**。 - 对 **38 万**个氛围编程应用的扫描发现,数千个应用公开泄露了真实的用户数据——医疗记录、 财务数据、PII(个人身份信息)——通常是因为平台默认将项目设为公开,且数据库没有 访问控制。 - 此外,技术栈本身也面临共同的命运:React2Shell(CVE-2025-55182,CVSS **10.0** 未授权 RCE)、 Next.js middleware 绕过漏洞,以及 Supabase Auth 绕过漏洞都集中发生在同一年——一个 CVE,牵连数千个 应用。 这些漏洞并不罕见。只需更改 URL 中的 ID、打开 DevTools 或读取 公开存储桶即可发现它们。Vyroscan 正是对这些检查进行了编码。 ## 涵盖范围 - **17 个领域** —— 密钥、数据库访问控制、身份验证/会话、对象级授权(IDOR)、 注入、API/Server Actions、速率限制与 DoS、支付、AI/LLM 与 agent、上传/SSRF、 Headers/CORS/CSRF/TLS、部署、**供应链与 AI 构建管道**、移动端、日志记录、隐私和 业务逻辑。 - **真实事件案例集** —— Lovable(缺少 RLS,CVE-2025-48757)、Replit 生产数据库被清空、 Base44 身份验证绕过、Tea 应用开放的 Firebase 存储桶、Next.js middleware 绕过漏洞(CVE-2025-29927)、 Vercel v0 被滥用于钓鱼、s1ngularity/Shai-Hulud npm 蠕虫以及 slopsquatting(软件包抢注)——每个案例都简化为 它所证明的那一条规则。 - **检测 + 渗透测试手册** —— 用于静态扫描的 grep 模式库,以及用于证明(而不仅仅是断言)漏洞发现的黑盒 `curl`/DevTools 手册。 - **专业测试模型** —— 范围界定 → 枚举 → 按影响范围攻击 → 优先报告最严重的漏洞 → **重测**,外加威胁情报准则(跟踪已知被利用的漏洞、修补 面向互联网/框架的层级、攻击面意识以及事件响应准备)。 - **发布前检查清单和可复用的审计提示。** ## 安装 将 Vyroscan 添加到您要保护的项目中。将仓库克隆到临时位置,并将该技能 复制到您项目的 `.claude/` 文件夹中——完整选项(全局安装、插件)请参见 [`INSTALL.md`](INSTALL.md)。 ``` git clone https://github.com/0xf4r/vyroscan.git /tmp/vyroscan mkdir -p .claude/skills .claude/commands .claude/agents cp -r /tmp/vyroscan/skills/vyroscan .claude/skills/vyroscan cp /tmp/vyroscan/commands/vyroscan-audit.md .claude/commands/ # optional: /vyroscan-audit command cp /tmp/vyroscan/agents/vyroscan-auditor.md .claude/agents/ # optional: deep-audit subagent ``` 然后像往常一样工作——该技能会在涉及安全相关的任务时激活。要进行完整的显式审计,请运行 `/vyroscan-audit` 或派遣 `vyroscan-auditor` 子代理(subagent)。 ### 适用于任何技术栈,无论是否使用 Claude 检测并不完全依赖于模型——内置的只读 Bash 扫描器可让每位安装者立即获得真实的 检测结果,适用于任何技术栈,并且可在 CI 或 pre-commit hook 中独立运行: ``` bash .claude/skills/vyroscan/scripts/vyroscan.sh . # static scan bash .claude/skills/vyroscan/scripts/vyroscan.sh . --url https://the-app # + live header check # 为 Supabase 暴露探测(只读)添加 --anon-key ``` 它能检测技术栈(Next.js/Supabase、Django、Flask/FastAPI、Rails、Laravel、Go、Spring、Firebase、移动端), 标记出影响范围极大的错误,并在发现任何严重问题时以非零状态退出。 ### 扫描结果示例 ``` == 1. Secrets in source (Domain 1) == [CRITICAL] private value(s) behind a PUBLIC client env prefix (shipped in bundle): ./.env.local:1:NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY=... [CRITICAL] Supabase service_role key exposed to client — bypasses ALL RLS == 2. Git hygiene == [CRITICAL] .env file is tracked by git == 3. Database access control (Domain 2) == [CRITICAL] RLS policy USING (true) — every row exposed == 4. Injection & dangerous sinks (Domain 5) == [HIGH] possible SQL string-building with user input: ./src/api.js:5: const q = `SELECT * FROM users WHERE id = '${req.params.id}'`; == Summary == Critical: 6 High: 4 Medium: 2 Ship-blocker: fix all CRITICAL findings before deploying. ``` ### 可审计任何工具构建的应用 Vyroscan 不关心代码是*由什么*生成的。只需将目标指向使用 Cursor、v0、Lovable、 Replit、Bolt、Windsurf、GitHub Copilot、ChatGPT 构建的应用,或者是手动编写的代码——所犯的错误都是一样的,并且 扫描器可以在任何仓库或 URL 上运行。技能封装(自动触发、`/vyroscan-audit`、子代理)是 Claude Code 的功能,但扫描器和参考指南与工具无关:您可以在 CI、pre-commit hook 中使用它们, 作为 Cursor 规则,或作为普通读物使用,无论是否使用 Claude Code。 ## 从发现到修复,而不仅仅是标记 Vyroscan 旨在*解决*问题,而不仅仅是列出问题。每个发现都遵循相同的格式: **位置(`file:line`) → 攻击者的操作 → 修复前/修复后 → 如何验证已修复。** - **扫描器**快速且确定性地找到候选项(如上例所示)。 - **技能**对它们进行推理,并从 17 个领域的参考中给出具体的修复前后对比——例如, 将客户端暴露的 `service_role` 密钥替换为 anon key + RLS,或者将字符串拼接的 SQL 替换为 参数化查询。 - **渗透测试手册**提供了确切的 `curl`/DevTools 检查方法来*证明*修复有效,并且 专业方法论强调您必须进行**重测**,而不是相信更改已经生效。 它针对的漏洞类别并非假设性的——它们正是[事件案例集](skills/vyroscan/references/incident-casebook.md)中每次违规事件背后的 同类型漏洞(Lovable、Replit、Base44、Tea 以及 其他)。修复它们正是防止下一次事件发生的关键。 ## 目录结构 ``` vyroscan/ SKILL.md # orchestrator: doctrine, process, severity, output format scripts/ vyroscan.sh # deterministic read-only scanner (any stack, CI-friendly) references/ domains.md # the 17 domains, deep stack-playbooks.md # per-stack specifics (Django, Rails, Laravel, Go, Spring, …) incident-casebook.md # 10 real breaches → the rule each proves detection-and-pentest.md # grep library + black-box playbook professional-audit-methodology.md # engagement model + threat intelligence checklist-and-prompts.md # pre-launch checklist, audit prompts, tooling ``` ## 范围与客观说明 Vyroscan 能捕获大多数现实世界氛围编程违规事件背后的错误。它不能替代 针对处理大量资金或大规模敏感数据的应用的专业评估,并且没有任何自动化审计 是绝对完整的。工具和 CVE 会发生变化——请对照最新来源验证具体情况。用它来大幅提升基础安全水平, 然后再由人工来确保更高层次的安全。 ## 标准与延伸阅读 Vyroscan 的领域映射到了既定的安全标准——如需深入了解氛围编程之外的特定领域, 请参阅以下内容: - OWASP Top 10、OWASP API Security Top 10、OWASP Top 10 for LLM Applications、OWASP MCP Top 10 - OWASP Application Security Verification Standard (ASVS) 和 Web Security Testing Guide - ISO/IEC 27001 附录 A 8.26(应用程序安全要求) - CISA Known Exploited Vulnerabilities (KEV) 目录和英国 NCSC Early Warning 服务 - 您的技术栈自身的安全公告(Next.js/React、Supabase、Node.js)——订阅并在发布时及时打补丁 ## 许可证 MIT © 2026 0xf4r · [Vyrovo](https://vyrovo.com)。欢迎贡献和纠正。
标签:AI代码审计, Claude Code插件, DOE合作, 应用安全, 错误基检测, 防御加固, 静态代码分析