Vibe Security — навык для ИИ-ассистентов кодинга
Vibe Security — навык для ИИ-ассистентов кодинга
Навык, который помогает защитить вайб-код-приложения (и любые другие) от типовых уязвимостей. Автор — Крис Рарок (в соавторстве с коллегами из Aloa).
ИИ-ассистенты быстро пишут фичи, но систематически ошибаются в безопасности: хардкодят секреты, пропускают row-level security, доверяют ценам, присланным клиентом, хранят токены в localStorage. Этот навык ловит такие паттерны до выхода в продакшн.
Предыстория
Навык создан для типовых проблем безопасности вайб-код-приложений. При быстрой разработке с ИИ основы безопасности пропускаются — и часто сами ассистенты вносят уязвимости. Навык даёт агенту знания, чтобы ловить и предотвращать эти паттерны.
Использует формат Agent Skills, поэтому работает с Claude Code, OpenAI Codex и другими совместимыми агентами.
Правила хранятся как справочные файлы: агент подгружает нужные в зависимости от технологий проекта. Используете Supabase — проверит политики RLS. Stripe — проверит платёжные потоки. React Native — проверит секреты в JS-бандле. Ненужные проверки не тратят контекст.
Установка
Claude Code
npx skills add <адрес репозитория навыка> --skill vibe-security
Если npx недоступен, сначала установите Node.js.
OpenAI Codex
npx skills add <адрес репозитория навыка> --skill vibe-security
Выберите «Codex» при запросе платформы агента.
Установка вручную (Claude Code)
Склонируйте репозиторий и скопируйте папку vibe-security/ в каталог навыков:
# Уровень проекта
cp -r vibe-security/ .claude/skills/vibe-security/
# Глобально (для всех проектов)
cp -r vibe-security/ ~/.claude/skills/vibe-security/
Использование
Claude Code: /vibe-security запускает полный аудит, или спросите естественно: «проверь код на проблемы безопасности», «это безопасно?», «проаудитируй проект».
Codex: $vibe-security или опишите задачу: «найди уязвимости», «проверь мой Supabase RLS».
Навык также активируется автоматически при работе с кодом, который обрабатывает аутентификацию, платежи, доступ к БД, API-ключи или пользовательские данные.
Что проверяет
| Категория | Что ловит |
|---|---|
| Секреты и env | Захардкоженные API-ключи, секреты в NEXT_PUBLIC_/VITE_/EXPO_PUBLIC_, отсутствующий .gitignore |
| Безопасность БД | Отключённый RLS в Supabase, политики USING (true), отсутствие WITH CHECK, открытые чувствительные поля, правила Firebase allow: if true, отсутствие auth в Convex |
| Аутентификация и права | jwt.decode() без проверки подписи, auth только в middleware, незащищённые Server Actions, токены в localStorage |
| Rate limiting | Отсутствие лимитов на auth/AI/email-эндпоинты, подделываемые клиентом счётчики, отсутствие лимитов расходов |
| Платежи | Цены, присланные клиентом, отсутствие проверки подписи вебхуков, устаревшие проверки подписок |
| Мобильные приложения | API-ключи в JS-бандле, AsyncStorage для токенов, опасные deep links, слабая биометрия |
| AI / LLM | Открытые ключи AI-API, отсутствие лимитов использования, prompt injection, небезопасный рендер вывода |
| Деплой | Debug-режим в продакшене, открытые source maps, отсутствие security-заголовков, доступный .git |
| Доступ к данным | SQL-инъекции, операторные инъекции в Prisma, $queryRawUnsafe, mass assignment |
Вклад приветствуется: если нашли антипаттерн, который ИИ постоянно вносит, — добавьте его в проект.