Об эксперте: Леонид Плетнев — бизнес-партнер по информационной безопасности 1С-Битрикс. Курирует направление информационной безопасности в части организации взаимодействия бизнеса и технических подразделений. Эксперт в области проектирования систем защиты критичных данных, продуктовой безопасности, ИТ-аудита и контроля, CISM, CISA.
Вайбкодинг, который представляет собой технологию, когда человек описывает задачу словами, а код за него пишет ИИ-агент набирает силу и позволяет обычным людям заниматься разработкой программного обеспечения. Собрать рабочее приложение может маркетолог, предприниматель или менеджер, ни разу не открывавший учебник по программированию. Вместе с ним пропал и барьер, который прежде отделял этих людей от ошибок безопасности при использовании программ.
Раньше приложение собирал профильный разработчик, который знает про SQL-инъекции, межсайтовый скриптинг, утечки ключей и разграничение прав, тогда как сегодня его место занял человек, для которого информационная безопасность в лучшем случае означает двухфакторный вход в почту. ИИ по умолчанию выдает код, который прекрасно работает, хотя при этом остается незащищенным, и стоит приложению запуститься, а данным сохраниться, как неспециалист считает задачу по разработке ПО выполненной, даже если в нем остаются уязвимости, которыми рано или поздно кто-нибудь воспользуется.
Безопасность нужно просить отчетливо
Модель не станет добавлять защиту сама, пока ее об этом прямо не попросят. Поскольку ИИ оптимизирует ровно то, что сформулировано в запросе. Например, инструкция «сделай красиво и быстро» требований к безопасности в себе не несет.
Поэтому в промпте нужно прямо прописывать задачи: проверять и экранировать все, что вводит пользователь; хранить пароли, ключи и токены в переменных окружения, а не в коде; проверять права доступа на каждом входе; по умолчанию закрывать все и открывать наружу только то, что действительно нужно. Отдельно стоит держать в голове и реализовывать принцип наименьших привилегий, по которому приложение и агент получают ровно столько прав, сколько нужно для задачи, и ни одним больше.
Список угроз
Перечни типовых уязвимостей составлены и содержатся в документах различных фреймворков, (например, OWASP AI Testing Guide, OWASP Top 10 for LLM Applications, NIST SSDF) объединяя самые частые угрозы, среди которых оказываются инъекции, сломанная аутентификация, утечки чувствительных данных и ошибки конфигурации доступа. Заучивать этот список неспециалисту совершенно не обязательно, потому что проверку можно поручить самому ИИ, отправив ему для приложения с ИИ запрос вроде «проверь приложение по OWASP Top 10 for LLM Applications и объясни найденное простым языком, без жаргона», после чего модель пройдется по классическим болевым точкам и переведет результат на понятный человеку язык.
Агент работает как исполнитель, и его нужно контролировать
Самая недооцененная часть безопасности вайбкодинга связана с поведением ИИ-агентов, которые действуют от имени пользователя и с его правами, и которые могут из благих намерений или из-за компрометации выходить далеко за рамки разрешенных ему действий. Если выдать такому агенту доступ на удаление данных без надобности, то он может этим доступом воспользоваться и данные удалить. Поэтому появляются и правило минимальных прав, и рекомендация включать режим «только чтение» всюду, где изменение данных для работы приложения вообще не требуется.
Агент способен сделать совсем не то, чего от него ждали, причем без всякого злого умысла, просто потому что модель достаточно сообразительна, чтобы трактовать расплывчато поставленную задачу по-своему. Чем размытее формулировка, тем шире простор для неожиданных действий. Рядом стоит и prompt-инъекция, которая возникает тогда, когда внутри письма, документа или веб-страницы, читаемых агентом, оказывается спрятана посторонняя команда, и агент иногда ее выполняет, приняв за легитимную инструкцию. Поэтому защита должна сводиться к тому же минимуму прав, минимуму внешних источников, контролю ввода и вывода.
Поскольку ИИ вдобавок ошибается и склонен «галлюцинировать», важные решения разумно оставлять за человеком, а проверять код стоит поручать вовсе не тому же агенту, который его писал, ведь он склонен «оправдывать» собственную работу и убедительно сообщать, что все в порядке, из-за чего независимый аудит имеет смысл запускать в чистой сессии или на другой модели, выдав ей доступ только на чтение и роль аудитора безопасности.
Приложение закрывает только половину задач по безопасности
Даже безупречно написанный код остается только набором текста. Случаи, когда непонятно, где и как он развернуто приложение, какие порты открыты, какой доступ предоставлен пользователям, по каким правилам реализованы интеграции с другими приложениями способны перечеркнуть любое качество самого кода. Разумный принцип «закрыто по умолчанию» или предполагает, что сервер остается невидимым из интернета, доступ к приложению есть только у владельца, а публичный режим включается осознанно и лишь там, где чувствительных данных нет. Часть этой работы платформы берут на себя. Например, в Битрикс24 Вайбкод серверы по умолчанию запускаются в непубличном режиме по технологии Black Hole, при которой все порты закрыты и снаружи на сервер не попасть, а права ключей можно ограничить вплоть до режима «только чтение».
Кто и за что отвечает
Разделение ответственности сводится к следующим зонам:
- платформа отвечает за инфраструктуру, изоляцию приложений, предоставления механизмов управления ключами, идентификации и аутентификации при доступе к платформе, различных режимов доступа пользователей к приложению;
- ИИ-инструмент берет на себя генерацию кода, хотя архитектуру безопасности закладывает вайбкодер, давая инструкции агенту-разработчику и обеспечивая проверку результата, который выдал ИИ;
- также вайбкодер решает, какие данные доверить приложению, какие права выдать агенту и пользователям, кому открыть доступ.
Чек-лист на пять минут перед запуском
- В промптах к ИИ безопасность запрошена явно. В том числе, проверка ввода, отказ от секретов в коде и проверку прав на каждой точке входа.
- Проведена независимая проверка по стандартам безопасности в отдельной сессии.
- У ключей отсутствуют лишние права, а там, где это возможно, включен режим «только чтение».
- Ключи хранятся в надежном месте, подальше от кода и переписки.
- Публичный режим остался выключенным, а доступ открыт по принципу «не больше, чем нужно».
- Реализованы механизмы контроля пользовательских сессий.
- Включен двухфакторная аутентификация для пользователей приложения.
- Приложение протестировано на заведомо тестовых данных.
- Для платежей, медицинских, персональных или других чувствительных данных результат работы ИИ посмотрел специалист.
- Приложение размещено в надежной инфраструктуре.
Источник новости: hi-tech.mail.ru

