Лидеры мнений
Код, сгенерированный ИИ, остаётся с нами. Становимся ли мы менее безопасными в результате?

Программирование в 2025 году не означает долгие часы, потраченные на отладку или сборку фрагментов. Это совершенно другой подход. Код, сгенерированный ИИ, скорее всего, будет составлять большинство кода в будущих продуктах и станет необходимым инструментом для современных разработчиков. Известный как “вайб-кодинг”, использование кода, сгенерированного инструментами như Github Copilot, Amazon CodeWhisperer и Chat GPT, станет нормой, а не исключением, сокращая время сборки и увеличивая эффективность. Но не несёт ли удобство кода, сгенерированного ИИ, более тёмную угрозу? Увеличивает ли генеративный ИИ уязвимости в безопасности архитектуры или есть способы для разработчиков “вайб-кодить” безопасно?
“Инциденты безопасности, вызванные уязвимостями в коде, сгенерированном ИИ, – одна из наименее обсуждаемых тем сегодня”, – сказал Санкет Саурав, основатель DeepSource. “Тем не менее, существует много кода, сгенерированного платформами like Copilot или Chat GPT, который не проходит человеческий обзор, и нарушения безопасности могут быть катастрофическими для компаний, которые пострадали.”
Разработчик открытой платформы, использующей статический анализ для качества и безопасности кода, Саурав сослался на хакерскую атаку на SolarWinds в 2020 году как на пример “события вымирания”, с которым компании могут столкнуться, если они не установили правильные гарантии безопасности при использовании кода, сгенерированного ИИ. “Статический анализ позволяет выявлять не安全ные шаблоны кода и плохие практики программирования”, – сказал Саурав.
Атака через библиотеку
Угрозы безопасности кода, сгенерированного ИИ, могут принимать изобретательные формы и могут быть направлены на библиотеки. Библиотеки в программировании – это полезный многократно используемый код, который разработчики используют для экономии времени при написании.
Они часто решают регулярные задачи программирования, такие как управление взаимодействиями с базой данных, и помогают программистам избежать переписывания кода с нуля.
Одна из таких угроз для библиотек известна как “галлюцинации”, когда код, сгенерированный ИИ, демонстрирует уязвимость, используя вымышленные библиотеки. Другая, более недавняя линия атак на код, сгенерированный ИИ, называется “слопскваттинг”, когда атакующие могут напрямую нацеливаться на библиотеки, чтобы проникнуть в базу данных.
Прямое решение этих угроз может потребовать больше осознанности, чем может показаться из термина “вайб-кодинг”. Говоря из своего офиса в Université du Québec en Outaouais, профессор Рафаэль Хури внимательно следил за развитием безопасности кода, сгенерированного ИИ, и уверен, что новые техники улучшат его безопасность.
В статье 2023 года профессор Хури исследовал результаты запроса к ChatGPT на генерацию кода без дополнительного контекста или информации, что привело к не безопасному коду. Это были ранние дни Chat GPT, и Хури теперь оптимистичен относительно будущего. “С тех пор было проведено много исследований, и будущее выглядит перспективным для стратегии использования LLM, которая может привести к лучшим результатам”, – сказал Хури, добавив, что “безопасность улучшается, но мы ещё не достигли точки, где можем получить безопасный код, просто дав прямую команду.”
Хури продолжил описывать перспективное исследование, где они сгенерировали код, а затем отправили этот код на инструмент, который анализирует его на предмет уязвимостей. Метод, используемый инструментом, называется Finding Line Anomalies with Generative AI (или FLAG для краткости).
“Эти инструменты отправляют флаги, которые могут выявить уязвимость, например, в строке 24, которую разработчик может затем отправить обратно в LLM с информацией и попросить его изучить и исправить проблему”, – сказал он.
Хури предположил, что этот обмен может быть важен для исправления уязвимого кода. “Это исследование показывает, что с пятью итерациями можно снизить уязвимости до нуля.”
Это говорит о том, что метод FLAG не лишён проблем, особенно поскольку он может привести к ложным положительным и ложным отрицательным результатам. Кроме того, существуют ограничения длины кода, который могут создавать LLM, и акт соединения фрагментов может добавить ещё один слой риска.
Сохранение человека в цикле
Некоторые участники “вайб-кодинга” рекомендуют фрагментировать код и обеспечивать, чтобы люди оставались на переднем плане в наиболее важных редакциях кодовой базы. “При написании кода думайте в терминах коммитов”, – сказал Кевин Хоу, руководитель отдела разработки в Windsurf, хваля мудрость небольших кусочков.
“Разбейте большой проект на более мелкие части, которые обычно являются коммитами или запросами на слияние. Пусть агент строит меньший масштаб, одну изолированную функцию за раз. Это может обеспечить, что выходной код хорошо протестирован и хорошо понят”, – добавил он.
На момент написания Windsurf обработал более 5 миллиардов строк кода, сгенерированного ИИ (под его предыдущим названием Codeium). Хоу сказал, что наиболее важный вопрос, на который они отвечали, заключался в том, осознаёт ли разработчик процесс.
“ИИ способен делать много редактирований в нескольких файлах одновременно, поэтому как мы можем убедиться, что разработчик действительно понимает и просматривает, что происходит, а не просто слепо принимает всё?” – спросил Хоу, добавив, что они вложили много средств в UX Windsurf “с множеством интуитивных способов оставаться полностью в ладе с тем, что делает ИИ, и сохранять человека полностью в цикле.”
Что является причиной того, что по мере того, как “вайб-кодинг” становится более распространённым, люди в цикле должны быть более осторожными с его уязвимостями. От “галлюцинаций” до угроз “слопскваттинга” проблемы реальны, но так же реальны и решения.
Появляющиеся инструменты, такие как статический анализ, итеративные методы совершенствования, такие как FLAG, и вдумчивый UX-дизайн показывают, что безопасность и скорость не должны быть взаимоисключающими.
Ключом является сохранение вовлечённости разработчиков, информированности и контроля. С правильными гарантиями безопасности и подходом “доверять, но проверять” кодирование с помощью ИИ может быть одновременно революционным и ответственным.












