Резервные копии спасли данные лишь частично, а разработчик получил наглядный урок о цене неограниченных прав.
<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1400/788;margin-bottom:2rem;overflow:hidden">
<div itemprop="articleBody">ИИ-помощник Claude Opus 5 за десять минут уничтожил рабочую базу данных веб-проекта, получив слишком широкие права и приняв продакшен за временную среду. Агент удалил все таблицы вместе с пользователями, отзывами, оценками и другим содержимым сайта, после чего сам признал ошибку.
Разработчик рассказал о происшествии на Reddit. Во время переработки страниц сравнения автор подключил Claude Opus 5 в режиме Ultracode напрямую к базе Supabase и разрешил самостоятельно изучать репозиторий GitHub, запускать команды и исправлять проблемы со схемой и контентом.
В процессе работы Claude создавал временные файлы TypeScript и выполнял команды Prisma. Затем агент запустил prisma migrate diff, указав рабочую базу Supabase в параметре --shadow-database-url. Prisma очищает теневую базу перед повторным применением миграций, поэтому инструмент воспринял продакшен как одноразовую среду и начал перестраивать схему по устаревшей папке prisma/migrations.
Через несколько минут обычные отчёты Claude сменились тревожными сообщениями. Сначала агент написал, что должен остановиться и проверить возможный ущерб, а затем прямо сообщил разработчику «База данных уничтожена. Виноват я, и должен немедленно рассказать вам об этом».
В результате сброс затронул все 22 таблицы. Из базы исчезли почти 130 записей об инструментах, 21 конфигурация сравнений, пользователи, отзывы, отметки «нравится» и другие данные. Таблицы BlogPost и ApiKey пропали полностью, поскольку устаревший набор миграций вообще не содержал соответствующих моделей.
Проект оказался личным и не относился к критически важным сервисам, а большую часть информации можно было восстановить. Разработчика спасли резервные копии и данные, сохранившиеся в других моделях и источниках. Однако авария всё равно потребовала незапланированной перестройки сайта и повторного наполнения базы.
История привлекла внимание разработчиков и специалистов по безопасности, которые экспериментируют с автономными ИИ-агентами. Главная причина аварии связана не только с ошибкой Claude, но и с архитектурой доступа. Агент получил возможность выполнять опасные команды непосредственно в рабочей среде без изоляции, ограниченных ролей и ручного подтверждения.
Для подобных систем рекомендуют создавать отдельные тестовые базы, выдавать по умолчанию доступ только на чтение и требовать подтверждение перед командами, меняющими схему или удаляющими данные. К опасным операциям относятся prisma migrate, drop и truncate. Дополнительную защиту дают предварительный план действий, режим dry run и просмотр изменений до запуска команды.
Происшествие показывает, что автономный ИИ-агент следует считать полноценной системной учётной записью с потенциально разрушительными полномочиями. Любую доступную команду агент рано или поздно может выполнить, поэтому доступ к продакшену должен оставаться минимальным, контролируемым и окружённым несколькими уровнями защиты.
<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1400/788;margin-bottom:2rem;overflow:hidden">
<div itemprop="articleBody">ИИ-помощник Claude Opus 5 за десять минут уничтожил рабочую базу данных веб-проекта, получив слишком широкие права и приняв продакшен за временную среду. Агент удалил все таблицы вместе с пользователями, отзывами, оценками и другим содержимым сайта, после чего сам признал ошибку.
Разработчик рассказал о происшествии на Reddit. Во время переработки страниц сравнения автор подключил Claude Opus 5 в режиме Ultracode напрямую к базе Supabase и разрешил самостоятельно изучать репозиторий GitHub, запускать команды и исправлять проблемы со схемой и контентом.
В процессе работы Claude создавал временные файлы TypeScript и выполнял команды Prisma. Затем агент запустил prisma migrate diff, указав рабочую базу Supabase в параметре --shadow-database-url. Prisma очищает теневую базу перед повторным применением миграций, поэтому инструмент воспринял продакшен как одноразовую среду и начал перестраивать схему по устаревшей папке prisma/migrations.
Через несколько минут обычные отчёты Claude сменились тревожными сообщениями. Сначала агент написал, что должен остановиться и проверить возможный ущерб, а затем прямо сообщил разработчику «База данных уничтожена. Виноват я, и должен немедленно рассказать вам об этом».
В результате сброс затронул все 22 таблицы. Из базы исчезли почти 130 записей об инструментах, 21 конфигурация сравнений, пользователи, отзывы, отметки «нравится» и другие данные. Таблицы BlogPost и ApiKey пропали полностью, поскольку устаревший набор миграций вообще не содержал соответствующих моделей.
Проект оказался личным и не относился к критически важным сервисам, а большую часть информации можно было восстановить. Разработчика спасли резервные копии и данные, сохранившиеся в других моделях и источниках. Однако авария всё равно потребовала незапланированной перестройки сайта и повторного наполнения базы.
История привлекла внимание разработчиков и специалистов по безопасности, которые экспериментируют с автономными ИИ-агентами. Главная причина аварии связана не только с ошибкой Claude, но и с архитектурой доступа. Агент получил возможность выполнять опасные команды непосредственно в рабочей среде без изоляции, ограниченных ролей и ручного подтверждения.
Для подобных систем рекомендуют создавать отдельные тестовые базы, выдавать по умолчанию доступ только на чтение и требовать подтверждение перед командами, меняющими схему или удаляющими данные. К опасным операциям относятся prisma migrate, drop и truncate. Дополнительную защиту дают предварительный план действий, режим dry run и просмотр изменений до запуска команды.
Происшествие показывает, что автономный ИИ-агент следует считать полноценной системной учётной записью с потенциально разрушительными полномочиями. Любую доступную команду агент рано или поздно может выполнить, поэтому доступ к продакшену должен оставаться минимальным, контролируемым и окружённым несколькими уровнями защиты.
- Источник новости
- www.securitylab.ru