
Senior-CSO security audit skill для приложений, написанных в стиле vibe-coding. Аудит из 22 проверок, основанный на реальных инцидентах 2026 года (Moltbook, Lovable CVE-2025-48757). Навык для прямого использования в Claude Code.

██████╗███████╗ ██████╗ ██╗ ██╗██╗██████╗ ███████╗
██╔════╝██╔════╝██╔═══██╗ ██║ ██║██║██╔══██╗██╔════╝
██║ ███████╗██║ ██║ ██║ ██║██║██████╔╝█████╗
██║ ╚════██║██║ ██║ ╚██╗ ██╔╝██║██╔══██╗██╔══╝
╚██████╗███████║╚██████╔╝ ╚████╔╝ ██║██████╔╝███████╗
╚═════╝╚══════╝ ╚═════╝ ╚═══╝ ╚═╝╚═════╝ ╚══════╝
senior-CSO security audit for vibe-coded apps
Аудит безопасности уровня senior-CSO для vibe-кодированных приложений (созданных с помощью Cursor / Lovable / Bolt / Replit / v0 / Claude).
Выполняет детерминированный, повторяемый аудит из 20 уровней и создает структурированный отчет с доказательствами file:line и копируемыми diff-ами для исправления.
Vibe-кодированные приложения стабильно допускают одни и те же узкие места:
.envРеальные инциденты, на которых основан этот навык:
/api/projects/[id], 18 тыс. записей пользователей раскрыты, 48 дней без патча.sk- / AKIA / AIzaSy часто попадают в JS-бандлы..env / .cursor/ коммитятся в git.pickle.loads на сетевом вводе → RCE.VibeWrench просканировал 100 vibe-кодированных приложений (2026):
| Проблема | % приложений | Покрывается |
|---|---|---|
| Отсутствие CSRF | 70% | Check 21 |
| Раскрытие секретов / API-ключей | 41% | Checks 6, 16 |
| Утечка стек-трейса | 36% | Check 8 |
| Отсутствие валидации ввода | 28% | Checks 3-5 |
| Отсутствие аутентификации на эндпоинтах | 21% | Checks 1, 11, 19 |
| Отсутствие заголовков безопасности | 20% | Check 22 |
| XSS | 18% | Check 5 |
| Раскрытие учетных данных Supabase | 12% | Checks 6, 13 |
Исследование Wiz (2025): 20% vibe-приложений содержат серьезные уязвимости. ETH Zurich BaxBench (2025): 45% сгенерированного ИИ кода содержат уязвимость из OWASP Top 10.
22 многослойные проверки:
NEXT_PUBLIC_*/VITE_*)max_tokens + таймаут + canary на каждый вызов LLMtenant_id на уровне БД/[id] (BOLA / IDOR)console.log(req.body).env* в .gitignore И не в истории gitpickle.loads / eval / yaml.load / Function() / shell:true для пользовательского вводаuseEffectПолная процедура для каждой проверки: references/checks.md.
Однострочник:
curl -fsSL https://raw.githubusercontent.com/git-akki/cso-vibecheck/main/install.sh | bash
Или вручную:
git clone https://github.com/git-akki/cso-vibecheck.git ~/.claude/skills/cso-vibecheck
Затем в любой сессии Claude Code спросите:
проверь мое приложение на проблемы безопасности
или вызовите напрямую:
/cso-vibecheck
Для 30-секундного сканирования 5 самых катастрофических категорий (ключ в клиенте, IDOR, отключенные RLS, раскрытый .env, идентификация из запроса):
bash ~/.claude/skills/cso-vibecheck/scripts/triage.sh /path/to/repo
Затем спросите Claude:
/cso-vibecheck quick scan
Структурированный отчет в Markdown с:
file:line, описание на простом английском, привязанный инцидент, односложное описание эксплойта, diff для копирования и вставкиСмотрите references/report-template.md для точного шаблона.
MIT