Минус вайб

Чем опасно доверять написание кода нейросетям?

Мнение редакции может не совпадать с мнением автора

Большие языковые модели (Large language models, LLMs) прославились благодаря осмысленным текстам, почти неотличимым от человеческих. Но умение обрабатывать последовательности символов пригодилось не только для задач, связанных с естественными языками: везде, где данные представимы в виде букв и цифр — от игры в шахматы до работы с генетической информацией, — LLM могут быть полезны. Одной из первых областей за пределами генерации текстов, где они хорошо себя показали, стал кодинг: в конце концов, формальные языки — тоже языки.

Программировать могут даже языковые модели, не заточенные под эту задачу. Для этого достаточно кода, который опубликован в интернете и попал в датасеты (об этом я написал отдельный материал «И целого интернета мало»). Регулярно появляются и специализированные модели, например GPT-4.1, представленная OpenAI в апреле 2025 года. Теперь LLM для программирования используют даже те, кто ничего не понимает в разработке. Но способны ли модели генерировать надежный код, который можно без опаски применять в реальных проектах?

И кодить за меня будете?

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

При поддержке ИИ писать код стали люди, которые не знают языков программирования. С легкой руки Андрея Карпатого, соучредителя OpenAI, такой подход получил название «вайб-кодинг». Смысл заключается в том, чтобы расслабиться, формулировать запросы «как чувствуешь» и слепо доверять ИИ — ведь если код не работает, всегда можно попросить LLM его исправить.

Похоже, новый подход к разработке набирает популярность, хотя сложно сказать, сколько программистов вайб-кодят и какую долю в общем объеме составляет сгенерированный код. Некоторые оценки можно сделать на основе заявлений сервисов, предоставляющих ИИ-инструменты. Например, в феврале 2024 года GitHub сообщил, что их платной функцией Copilot пользуется 1,3 миллиона пользователей. Позже компания поделилась результатами опроса, согласно которому 97 процентов программистов хотя бы раз просили ИИ написать за них код. 

Преимущество вайб-кодинга еще и в том, что LLM знают много языков. Журналист издания Ars Technica Бендж Эдвардс рассказал, как Claude 3.5 Sonnet написала для него программу на QBasic для распаковки двухсот zip-файлов по папкам с индивидуальными названиями. Вручную эта работа заняла бы у Эдвардса несколько часов, поскольку ничего другого на старом компьютере под управлением MS-DOS не работало.

Пользу от использования моделей для программирования видят и крупные компании. Недавно CEO Google Сундар Пичаи заявил, что более 30 процентов кода в его компании написано ИИ (осенью прошлого года он утверждал, что только четверть). Сооснователь и гендиректор Anthropic Дарио Амодей считает, что это не предел: по его прогнозам, через полгода ИИ будет писать 90 процентов кода, а через год — практически весь.

Они так чувствуют

Новый тренд, однако, нравится далеко не всем. Вайб-кодинг в первоначальной формулировке подразумевает отсутствие контроля и планирования, что противоречит основным принципам разработки ПО. Без системного мышления и архитектурного контроля такой код зачастую трудно масштабировать и поддерживать. IT-сообществу даже пришлось придумать правила вайб-программирования. Кроме того, пока у вайб-проектов есть большие проблемы с безопасностью — в том числе уязвимость данных и некорректные настройки аутентификации. 

В апреле 2025 года внимание экспертов привлек (slopsquatting). Этот тип атаки эксплуатирует галлюцинации моделей, то есть склонность LLM выдумывать очень правдоподобные, но несуществующие факты, имена и ссылки. В случае с вайб-кодингом все языковые модели предлагают установить ненастоящие пакеты или библиотеки.

О том, какие еще проблемы с безопасностью есть у вайб-кода, я спросил у руководителя лаборатории безопасного искусственного интеллекта SAIL AIRI и МТУСИ Олега Рогова. Вот что он ответил:

«Основная угроза — это галлюцинации LLM, которые приводят к генерации небезопасного или ошибочного кода. Как показано в статье китайских исследователей, посвященной новому типу атаки — Hackode, LLM могут встраивать уязвимости даже при ссылке на „корректный“ код, если он был заранее отравлен злоумышленником. Это включает переполнения буфера, неправильные проверки границ массивов, бесконечные циклы и другие, более сложные уязвимости, в том числе различные бэкдоры. Риски усиливаются при автоматической интеграции внешнего кода (с форумов, например , или GitHub) без верификации».

На первый взгляд, ничего страшного в этом нет: вызов неверного пакета просто приведет к ошибке. Однако, как показали эксперименты, не все галлюцинации случайны — 58 процентов вымышленных названий повторялись более одного раза. Этим могут воспользоваться злоумышленники и, например, создать пакет с вредоносным или опасным кодом и дать ему название распространенной галлюцинации.

О массовом использовании этой уязвимости пока неизвестно, но есть прецеденты, которые заставляют думать, что это лишь вопрос времени. В январе 2025 года специалисты по безопасности компании Sоcket обратили внимание, что инструмент AI Overviews от Google, который дает саммари по поисковому запросу, предлагает установить вредоносный пакет @async-mutex/mutex, замаскировавшийся под полезный пакет async-mutex. Также Socket рассказали о злоумышленнике под ником «_Iain», который автоматизировал с помощью ChatGPT создание тысяч правдоподобных имен пакетов и подробно описал этот процесс в руководстве.

Эксперты рекомендуют вайб-программистам соблюдать элементарные правила безопасности. Прежде всего — проверять имена пакетов либо вручную, либо с помощью сканеров безопасности. Поможет также снижение галлюцинаций. Наконец, как и в обычном программировании, перед эксплуатацией ИИ-код следует протестировать в безопасной и изолированной среде.

Похоже, что программирование с помощью ИИ вскоре станет стандартной практикой разработки ПО, а потому умение защищать свой код от слопсквоттинга и иных атак превратится в один из ключевых навыков. Директор по разработке продуктов в Sonatype Митчелл Джонсон уверен: способность нести ответственность даже за сгенерированный моделью код еще сильнее отделит хороших программистов от плохих. «Те, кто и ранее был небрежен, еще больше отстанут и столкнутся с серьезными проблемами», — считает он.

Олег Рогов в своем комментарии был настроен более пессимистично:

«Атаки вроде слопсквоттинга вполне могут стать новой нормой. Злоумышленники уже создают тысячи фейковых библиотек, автоматически генерируя описания и названия, — это явный признак надвигающейся волны атак. Исследования показывают, что свыше половины вымышленных объектов повторяются при генерации, что делает их уязвимыми для всевозможных эксплойтов. Потенциально любой пакет, содержащий код с такими галлюцинациями, может быть заражен. Это приоткрывает окно овертона массовой автоматизированной компрометации систем, особенно если доверие к коду от LLM велико, а специалисты разного калибра все чаще используют модели без должного подхода и даже иногда не делают код-ревью. Но куда более опасным выглядит возможное снижение общей культуры контроля написания кода, что чревато большими потенциальными уязвимостями».

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

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.