Skip to main contentSkip to footer

Безопасный вайб-кодинг: 10 проверок перед запуском AI-приложения в продакшен

Разработчик проверяет безопасность приложения, созданного с помощью AI-ассистента

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

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

1. Секреты остаются на сервере

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

2. Сервер проверяет все входные данные

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

3. Авторизация проверяется для каждого объекта

Недостаточно знать, что пользователь вошёл в систему. Сервер обязан проверить, имеет ли он право читать или изменять конкретный документ, заказ или профиль. Простая замена идентификатора в URL не должна открывать чужие данные.

4. База данных получает параметризованные запросы

Не соединяйте пользовательский текст со строкой SQL. Используйте параметры ORM или подготовленные выражения и выдавайте приложению минимально необходимые права.

5. Есть ограничения частоты

Rate limit нужен для входа, восстановления пароля, отправки сообщений и дорогих AI-запросов. Он защищает от перебора, спама и неожиданного счёта за использование модели.

6. CORS настроен точечно

Разрешение запросов с любых доменов удобно в разработке, но редко оправдано в рабочей системе. Перечислите доверенные источники и проверьте передачу cookies и токенов.

7. Ошибки не раскрывают внутренности

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

8. Загрузки файлов ограничены

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

9. Зависимости и права минимальны

Удалите неиспользуемые пакеты, обновите критичные зависимости и проверьте lock-файл. Контейнер, серверная функция и база должны работать с минимальными разрешениями.

10. Резервное копирование проверено восстановлением

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

Отдельно для функций с ИИ

Не доверяйте ответу модели как команде. Инструменты агента должны иметь узкие разрешения, опасные действия — требовать подтверждения, а пользовательский контент — отделяться от системных инструкций. Ограничьте стоимость запроса, объём контекста и число шагов агента.

Как использовать AI для проверки AI-кода

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

Основной ориентир: OWASP Top 10. Для AI-функций следует дополнительно применять актуальные рекомендации OWASP по безопасности LLM-приложений.

Интересное