Риски кода, сгенерированного ИИ: контрольный список перед внедрением

Безопасность8 мин чтения

Модель генерирует код, который выглядит убедительно и часто работает. Именно поэтому его недостатки так легко упустить.

Безопасность

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

Секреты в репозитории

API-ключи и пароли, вставленные в файл «на минутку», могут попасть в историю репозитория. Храните их в переменных окружения, добавьте конфигурационные файлы в игнорируемые и проверяйте историю, прежде чем публиковать проект.

Несуществующие зависимости

Модели способны выдумывать названия пакетов. Если кто-то зарегистрирует такое имя и поместит в пакет вредоносный код, установка «предложенного» пакета становится вектором атаки. Прежде чем добавить незнакомую библиотеку, проверьте, кто её поддерживает, как давно она существует и сколько людей ею пользуется.

Приватность данных

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

Лицензии

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

Технический долг

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

Контрольный список перед внедрением

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