Перейти к содержимому

Руководство

Чек-лист безопасности перед выпуском приложения, написанного через vibe coding

Привяжите релиз к просканированному коммиту, проверьте границы доступа и браузерные ассеты, сбои и восстановление, прежде чем выпускать приложение, созданное ИИ.

· 6 мин чтения · Команда vetkit

Робот вот-вот нажмёт большую кнопку запуска рядом с ракетой, а разработчик поднимает руку и показывает чек-лист с ещё не отмеченными пунктами.Робот вот-вот нажмёт большую кнопку запуска рядом с ракетой, а разработчик поднимает руку и показывает чек-лист с ещё не отмеченными пунктами.

Прежде чем выпускать приложение, написанное через vibe coding, определите точный коммит релиза, просканируйте его и протестируйте границы доступа, обработку секретов и сценарии сбоев в контролируемом окружении. Используйте находки vetkit как доказательства для проверки наряду с вашими тестами и конфигурацией деплоя. Пройденное сканирование не доказывает, что работающее приложение безопасно или готово к релизу.

Этот чек-лист — для решения о релизе после код-ревью. Для построчного ревью изменений ассистента начните с чек-листа ревью кода, сгенерированного ИИ. Храните описанные ниже доказательства вместе с релизом, чтобы другой человек мог понять, что было проверено.

1. Привяжите доказательства к релизу

  • Запишите SHA коммита и артефакт сборки, который планируете задеплоить.
  • Убедитесь, что в отчёте аудита указан тот же коммит. Отчёт по более старой вершине ветки не покрывает последующие исправления или сгенерированные файлы.
  • Соберите проект и запустите его тесты из этой версии с контролируемой конфигурацией и синтетическими данными. Сохраните фактические результаты команд, включая падения и пропущенные тесты.

2. Проверьте, что на самом деле выполнилось

Security Quick Scan включает posture, обнаружение секретов с помощью gitleaks и проверку зависимостей с помощью OSV. Более широкие аудиты могут включать дополнительные проверки, если это позволяют ваш аккаунт и выбранная область. Шаблон релиза в vetkit выбирает проверки для таких областей, как статический анализ безопасности, инфраструктура, workflow и эксплуатационная готовность, но это не все доступные анализаторы. Например, secrets-history и llm-app не входят в выборку этого шаблона.

ДоказательствоЧто проверить перед релизом
Завершённый аудитЧитайте результаты анализаторов и предупреждения о частичном отчёте, а не только общий балл.
Нет находокУбедитесь, что нужная проверка выполнилась и поддерживает ваш язык и фреймворк.
Находка помечена как исправленная или подавленнаяПроверьте исправление или обоснование применительно к этой версии релиза; назначьте ответственного за исключения.
Конфигурация на уровне исходного кода выглядит правильнойОтдельно проверьте настройки и поведение целевого деплоя.

Частичный отчёт означает, что один или несколько анализаторов не завершились и по затронутым категориям находок может быть меньше, чем на самом деле. Прежде чем полагаться на результат, закройте значимые пробелы в покрытии или задокументируйте альтернативную проверку.

3. Проверьте границы доступа на практике

В тестовом окружении создайте два обычных аккаунта и один с повышенными привилегиями. Попробуйте прочитать и изменить записи одного аккаунта от имени другого и вызовите защищённые эндпоинты без входа в систему. Убедитесь, что сервер отклоняет неавторизованные операции, даже если браузерный интерфейс прячет кнопку. Включите в проверку скачивание файлов, экспорт и фоновые операции, использующие те же данные.

Для приложения на Supabase проверьте развёрнутые политики row-level security и storage на синтетических записях. Правила vibe-stack в vetkit могут помечать поддерживаемые паттерны в исходном коде, например отсутствующие или слишком разрешительные политики row-level security и публичные storage-бакеты. Проверка исходного кода не устанавливает текущую конфигурацию вашей размещённой базы данных и не доказывает изоляцию тенантов.

4. Проверьте секреты и браузерные ассеты

Разберите находки по секретам, публичные префиксы переменных окружения и сгенерированные браузерные ассеты. Учётные данные провайдеров и service role храните на сервере. Аудит репозитория не видит секрет деплоя, которого нет в просканированных файлах, и не проверяет автоматически ваш развёрнутый браузерный бандл. Если учётные данные были раскрыты, отзовите или ротируйте их; удалить строку из исходного кода недостаточно. В руководстве об утёкших секретах объясняются отдельные проверки репозитория, истории и браузера.

5. Проверьте зависимости и ИИ-функции

Используйте lock-файл, предназначенный для релиза, и разберите находки по зависимостям. Поиск известных уязвимостей не может установить, что незнакомому пакету можно доверять. Проверьте имена новых пакетов и их происхождение; см. руководство о галлюцинированных пакетах.

Если ваше приложение вызывает LLM, проверьте, что происходит при слишком большом вводе, ошибках провайдера и выводе, который запрашивает привилегированную операцию. Установите лимиты использования на сервере и требуйте авторизации вокруг инструментов, изменяющих данные. Правила llm-app в vetkit находят поддерживаемые паттерны, например вывод модели, выполняемый как команды или SQL, и вызовы по инициативе пользователя без ограничения выходных токенов. Они не доказывают, что любая попытка prompt injection провалится, и не измеряют ваши механизмы контроля расходов в продакшене.

6. Протестируйте сценарии сбоев и восстановление

  • Смоделируйте таймаут зависимости и неудачную запись. Убедитесь, что пользователь видит понятное состояние ошибки, а повторная попытка не дублирует операцию незаметно.
  • Проверьте команду запуска в продакшене, отчёты о состоянии и отчёты об ошибках. С помощью синтетических сбоев убедитесь, что ответственный оператор может заметить сломанный релиз, при этом учётные данные не попадают в логи.
  • Отрепетируйте процедуру отката или восстановления в тестовом окружении. Если релиз меняет хранимые данные, проверьте путь восстановления отдельно: откат кода приложения может не восстановить эти данные.

В vetkit есть статические правила для таких паттернов, как исходящие вызовы без таймаутов, dev-серверы в команде запуска для продакшена и потенциально разрушительная синхронизация схемы. Эти находки могут направить ваше ревью, но аудит не проводит за вас эту репетицию сбоев и не восстанавливает бэкап.

7. Зафиксируйте решение о релизе

Храните вместе коммит, идентификатор сборки, область аудита, результаты тестов и проверки деплоя. Прежде чем выпускать релиз, устраните раскрытые учётные данные и подтверждённый неавторизованный доступ. Для остальных находок запишите доказательства, влияние, ответственного за решение и дату повторной проверки. Если нужный анализатор упал или критичное поведение так и не было протестировано, явно обозначьте этот пробел, а не принимайте молчание за одобрение.

Источники и ограничения

Проверено 1 ноября 2026 года по конфигурации Quick Scan в vetkit, шаблонам аудита, форматировщику отчётов и правилам vibe-stack, llm-app, resilience, data-access и operability. Публичный каталог проверок описывает собственные правила и поддерживаемые ими языки; документация описывает настройку аудита. На покрытие влияют доступность анализаторов, поддерживаемые паттерны, ограничения сканирования и выбранная область.

Описанные здесь ручные проверки — работа для вашей команды, а не утверждение, что vetkit проводит живое тестирование на проникновение, запускает набор тестов вашего приложения или сертифицирует релиз. Аудит исходного кода не может проверить каждое право доступа в продакшене, каждую настройку деплоя или каждое бизнес-требование. Оставляйте эти проверки в процессе релиза, даже если в отчёте нет находок.

Запросить ранний доступ

Расскажите немного о своей команде и репозиториях, которые хотите проверять. Мы подключаем команды небольшими группами и ответим по электронной почте.

Мы используем эти данные только для ответа на ваш запрос. Политика конфиденциальности