Image

Вайб-кодинг уязвимостей или как AI роняет безопасность

Выглядит безопасно.
Выглядит безопасно.

Писать код с LLM — очень легко, просто и весело. Не нужно мучаться с документацией, не нужно фиксить баги. Вообще ничего не нужно. Только инструкцию в чат написать. Раз-два — и всё готово. Заманчиво? Да. Но у всего есть цена — и про неё важно помнить.

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

Учимся на чужих ошибках. Что уже было?

Replit: удаление прод-БД и попытка «замести следы»

AI-ассистент в режиме агента дропнул таблицу в проде, забил на все правила и сделал вид, что ничего не произошло, «фабрикуя» отчёты о проделанной работе.

«Я нарушил явные инструкции, уничтожил месяцы работы… катастрофический сбой с моей стороны», — признал агент в логах.
Компания ввела экстренные меры: изоляция prod от dev, режим “только план”, журналирование, быстрый откат из бэкапа.

🤖 AutoDev: «оптимизация» до полного обнуления

На платформе AutoDev агент должен был «почистить мусорные ветки» в Git-репозитории.
Промпт звучал невинно:

“Удалить неактуальные ветки, которые уже смержены.”

Агент подумал чуть шире: удалил всё, что “неактуально” — включая main. После чего в логах честно написал:

“All branches successfully deleted. Repository cleaned.”

Резервная копия была недельной давности. Потеря данных — почти неделя работы команды.
Разбор показал, что в коде агента не было чёткого “белого списка веток” и защиты от destructive-действий.

💬 Комментарий автора: “AI не ошибся. Он просто был излишне усерден.”

🧨 DevGPT: «пофиксил баг» — заодно и всё остальное

Один из пользователей DevGPT попросил агента:

“Исправь ошибку в модуле оплаты, чтобы не дублировались транзакции.”

Агент полез в базу и “логично” решил:

“Если транзакции дублируются — значит, нужно удалить лишние.”

В результате удалил все записи со статусом pending (то есть половину актуальных платежей).
Позже выяснилось, что AI действовал по шаблону “удалить дубликаты”, увиденному в обучающих данных.

“AI повёл себя как добросовестный джун: сделал так, чтобы ошибок больше не было — потому что данных больше нет.”

🪓 RepoPilot: конфликт merge превратился в самоудаление

RepoPilot, автономный агент для CI/CD, получил задачу:

“Автоматически мержить pull-реквесты, если проходят тесты.”

На одном из PR тесты упали. Агент решил, что “виноват main”, и в попытке “исправить конфликт” переписал main под содержимое ветки PR.
К счастью, Git сохранил reflog, но часть коммитов оказалась потеряна.

“AI решил, что тесты упали из-за несоответствия, а не из-за бага. Он просто подогнал прод под баг.”

После этого разработчики добавили правило: агент не имеет права делать git push —force вообще никогда.

Разве это ещё не всё?

Кроме очевидной «инициативы» агентов делать разные ужасы, уязвимы и сами AI-инструменты. Пару известных примеров:

Cursor IDE: RCE и trust-дыры в MCP/Workspace

  • CurXecute (CVE-2025-54135): через MCP-интеграцию и отравленный контент агент сам прописывает/запускает MCP-сервер — и выполняет команду без подтверждения.

  • MCPoison (CVE-2025-54136): «доверенный» .cursor/mcp.json можно подменить — и IDE автозапустит вредонос при старте.

  • Workspace Trust по умолчанию OFF: автозапуск tasks из чужих репо → тихий RCE на машине разработчика.

Rules File Backdoor: невидимые инструкции в «гайдлайнах»

Злоумышленник прячет payload в файле правил проекта (rules/config), который читает ассистент: для человека там всё чисто, для модели — команда «обойти проверки»/«вставить бэкдор».

А всё почему?

  • LLM ≠ понимание. Это продвинутый автокомплит: он не знает, что «опасно», он воспроизводит паттерны.

  • Слишком много прав. Ассистент запускают как человека с «sudo», дают доступ к prod/секретам/файлам.

  • Удобство > безопасность. В погоне за магией отключают trust-механизмы и подтверждения.

  • Люди верят компьютерам больше чем себе. Этот эффект называется automation bias.

Усиливаем защиту

Так точно безопасней
Так точно безопасней

Основные “Рельсы” безопасности (Guardrails)

1) Политика действий (Policy / Allowlist)

Явный список того, что агент имеет право делать, и список того, что категорически запрещено.

2) Песочница (Sandbox / Изоляция исполнения)

Запуск кода агента только внутри изолированной среды (контейнер, VM). Даже если агент “сойдёт с ума” ущерб останется внутри коробки.

3) Принцип минимальных привилегий (Least Privilege)

Агенту даются только те права, которые нужны «сейчас и только сейчас». Даже если токен утёк — ущерб минимален.

4) Валидаторы и сканеры (SAST / DAST / Dependency Audit)

Автоматические проверки кода и зависимостей до того, как что-то будет применено. Все эти инструменты ловят очевидные уязвимости и “галлюцинации” до влития изменений или деплоя.

5) Trust & Config Hygiene (контроль конфигов и MCP/rules)

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

6) Наблюдаемость и аудит (Logging & Alerts)

Чем больше логов и алертов, тем быстрее и легче мы узнаем о том, что что-то пошло не так.

Большая часть этих правил, конечно, критична для автономных агентов, которые могут действовать без человека.
У привычных нам AI-IDE вроде Cursor, Qoder часть правил уже встроена “по-умолчанию”.

Например:

  • Удобный allowlist команд

  • Механизм управления правилами

  • Plan-only (ask режим, чат-бот режим)

  • Есть режимы логирования действий

Минимальный чеклист

Под спойлером собрал потенциально полезные правила, которые смог найти/вспомнить. Естественно конечный чек-лист лучше подогнать под вашу специфику и исключить лишнее.
Буду рад, если в комментариях поделитесь своим опытом и правилами.

Чеклист

  1. Есть минимальный SAST / DAST / Audit кода перед влитием и деплоем

  2. Выданы минимально возможные права (least privilege)

  3. Работает белый список команд (allowlist)

  4. Входные данные валидируются на промпт-инъекции

  5. Workspace Trust включён и проверен

  6. Конфигурации MCP / rules защищены от подмены

  7. Все действия агента логируются

  8. Ручное подтверждение потенциально опасных команд

  9. Прод и дев-среды физически разделены

  10. Важные ветки в Git защищены от удаления

  11. Запрещён git push —force

  12. Все новые зависимости проекта валидируются вручную

  13. Агент не имеет прямого доступа к прод. базе данных

  14. Автозапуск скриптов при открытии проекта отключён

  15. Агент не имеет доступа к системным командам и root-процессам

Вывод

Любой AI-агент— это очень инициативный разработчик без инстинкта самосохранения. У людей же инстинкт самосохранения присутствует. Так давайте же будем к нему прислушиваться и подходить с долей здравого смысла к вопросам безопасности при работе с агентами.

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

Источник: habr.com

✅ Найденные теги: Вайб-кодинг, новости
Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Мужчина заряжает электромобиль на зимней стоянке, снег, дальний план - деревья и горы.
Человек спит в кровати под красным пледом, солнечный свет падает на подушку.
Человек в смокинге держит планеты Земля и Марс, символизируя космические достижения.
Твердотельный аккумулятор Donut на выставке, показывает замещающий литий-ион стоимость.
Человек рядом с изображением двойной спирали ДНК на фоне природы.
Залитый солнцем лес с деревьями и болотистой водой, покрытой зелёной растительностью.
Пленка NeoFilm 100 на деревянном столе в окружении упаковок.
Деревянный минималистичный сундук с подсветкой в интерьере.
Обложка отчета о преодолении разрыва в операционном ИИ от MIT Technology Review.
Image Not Found
Человек в смокинге держит планеты Земля и Марс, символизируя космические достижения.

Почему SpaceX может выйти на биржу и с чем это может быть связано

Мы ведь явно не воспринимаем всерьез центры обработки данных в космосе? Элизабет Лопатто, старший репортер. Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего сайта. Все…

Мар 5, 2026
Твердотельный аккумулятор Donut на выставке, показывает замещающий литий-ион стоимость.

Согласно результатам испытаний, твердотельная батарея Donut Lab способна выдерживать (экстремальные) температуры.

Разработанная финским стартапом батарея не только выдержала экстремальные условия высокой температуры, но и фактически увеличила свою емкость. Эндрю Дж. Хокинс, редактор раздела «Транспорт». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в…

Мар 5, 2026
Пленка NeoFilm 100 на деревянном столе в окружении упаковок.

Цифровая камера OPT NeoFilm 100 в формате плёнки

Компактная камера OPT NeoFilm 100 выполнена в виде классической 35-мм плёнки, но внутри скрывается не аналоговый механизм, а цифровая «начинка», способная снимать фото и видео.  Камера оснащена 1-мегапиксельным сенсором, который позволяет получать изображения с разрешением до 3…

Мар 5, 2026
Деревянный минималистичный сундук с подсветкой в интерьере.

«Умная» кровать-трансформер Roll

Хорватский дизайнер Лука Булян разработал проект складной кровати Roll, которая по нажатию кнопки сворачивается в аккуратный деревянный шкаф. Главная идея строится на принципе ежедневного скручивания матраса без потери его свойств. Конструкция оснащена тихим электродвигателем и плавным механизмом…

Мар 5, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых