Обновить

Claude удалил 700 ГБ из домашнего каталога во время проверки скрипта для предотвращения случайного удаления файлов

Время на прочтение2 мин
Охват и читатели81K
Всего голосов 44: ↑41 и ↓3+45
Комментарии74

Комментарии 74

  • запускать агента в песочнице

  • повесить алиасы на команды удаления (вместо реального удаления кидать в корзину)

  • выставить области видимости и права в конкретном харнесе.

  • тесты гонять в отдельном окружении и симуляции.

Но вообще, автор конечно сам виноват. Век живи, век учись.

Есть люди которые делают бекапы и те кто начнут их делать тольео после крупного факапа.

Есть те кто ещё не делает бекапы, и те кто уже делают (классика всегда лаконичнее)

Есть и третьи, которые проверяют восстановимость из бэкапа.

Так, блэт...

Есть четвертые - параноики, как я :D Я сначала изучил все по ии-агентам, уперся в OWASP топ 10, отказался от ии-агентов и сижу читаю статьи про чужие факапы :D

Есть четвертые - параноики

Есть нормальные люди, как мы, а есть восторженные истерички, которые хаотично мечутся за всем новеньким и модненьким.

То что эти истерички выдумали ярлык, который навешивают на нормальных людей, не означает что мы должны за ними повторять их ярлыки.

Я сам себе такой ярлык приклеил) В плане безопасности, ярлык здравого "параноика" несет позитивную коннотацию :D

Первые потеряют свои данные, когда Claude начнет тестировать скрипт по восстановлению из бекапа?

Есть люди, которые делают факапы, и люди, которые их не делают.

А есть те, у кого факапы это стиль жизни.

Исправил

Век живи, век учись

В оригинальной пословице есть ещё и окончание: «...дураком помрёшь».

Нет, нету

Оригинальное выражение на русском выглядит так:
Век живи — век учись тому, как следует жить

"Извини" (ц) Claude

У меня бы Qwen сказал следующее:

Задам тебе сократический вопрос: как ты думаешь, стоит ли тебе делать бэкапы проекта или нет?

Звучит как намёк и угроза.

У меня бы Qwen сказал следующее:

«Хороший у тебя проект. Было бы грустно, если б с ним что‑то случилось, правда?»

Было дело с базой на деве, хорошо что не пускаю его к проду. Как то решил он почистить таблицу он один раз в авто режиме, тогда без классификаторов было ещё)

После уже ничего не остаётся, как принять извинение

Ну это ещё неплохо, буквально час назад на моё замечание Opus такое выдал:

Астрологи объявили неделю удаления данных.

У кого Телеграм, у кого Claude.

Пойду-ка сделаю внеочередной бэкап

Телеграм? Когда? Где?

Ранее была новость, что Телеграм из-за ошибки одной из библиотек удалял все данные в папке "C:/custom" и у кого-то там находилось много файлов

Можно было просто чистить темп по крону или во время выключения. Но жить с ии интереснее конечно

ну вы и ретроград! :-)

А некоторые археологи туда вообще лично заходят, и вручную рассматривают, кто там насгадил, и что из этого можно убить.

Подумал об этом же

так системный линуксовы /tmp же и живет до перезагрузки компа. А у некоторых он расположен в оперативной памяти что уже как-бы гарантирует очистку при перезагрузке.

Наконец то найдена достойная задача для ИИ - чистить папки *.tmp. CCleaner теперь может достойно уйти на покой, но это ... не точно

На покой ушли мозги современных разработчиков. Вместо тупого скрипта запускаемого по крону, который написать - 3 минуты, сочиняем вундервафлю с песочницами и прочей хреню, конечноже через llm.

Ну так, если в руках молоток...

похоже не молоток а бульдозер в руках...

Лучше бульдозер в руках, чем молоток в небе.

однако полной резервной копии у разработчика не было

ССЗБ

А он точно разработчик?

Да, выглядит как если и не элементарная, то вполне нехитрая задачка.

Походу вайб-разработчик.

Нынче таких принято называть не вайбкодерами, а meat-proxy.

Бэкапы, бэкапы и... бэкапы.

Вообще звучит так, словно бы дядя сам наделал херни, а потом обернул это в ошибку фейбла\опуса, у которых практически на любой критической задаче об определенном действии в обход юзверя стоит жесткий блок. Не верю что-то

А я думаю куда файлы пропали из диалога...

Разработчик решил с помощью Claude Fable сгенерировать скрипт, который помещал бы каждого агента в отдельную папку и автоматически очищал её после завершения работы. Чтобы убедиться, что скрипт безопасен, ИИ-система Claude запустила дополнительную проверку. После этого система безопасности Anthropic сочла задачу рискованной и автоматически переключила модель сначала на Opus 5, а затем на Opus 4.8.

Ну то есть - доверять интеллекту Fable - нельзя потому что это может запросто оказаться НЕ Fable если Antropic захочет и пользователь не узнает вовремя?

Проверка показала, что скрипт не работает.

Зачем "тестировать" на рабочей машине?🙄

У таких скриптов всегда должен быть dry run для тестирования, и его наличие всегда стоит проверять вручную

Ну зато он узнает что такое snapshot на уровне файловой системы :)

Капец, я недавно делал такую же проверку, при чём у меня в правилах написано, ничего не удаляй, а Клод создал тестовые данные и их удалил, проигнорировал мои правила… я тогда чуть не насрал)) а еще он сам признался, говорит, у тебя в правилах этот файл не трогать, но я его ужал… капец, нафиг нужны правила, если Клод их игнорирует

Потому что в любом обучающем курсе по LLM сказано, что любые правила, скилы, указания выполняются только с какой-то вероятностью. LLM здесь ничем не отличается от человека, а rules или skills это просто несколько фраз где-то в миллионном контексте, которая запросто теряется.

нафиг нужны правила, если Клод их игнорирует

«Так я на собственном опыте узнал, что это за недетерминированность такая, о которой мне постоянно талдычили олды.»

«Ты мне сказал прочитать инструкцию, но ты не говорил ей следовать!» - мне Клод один раз буквально так ответил.

Ты мне сказал прочитать инструкцию, но ты сделал это без уважения!

однако полной резервной копии у разработчика не было

Ведь если в башне ....

Скрытый текст

Да, фраза про отсутствие резервной копии у разработчика "вздрагивает мозг".
Жестокая ИИ-реальность заставляет дополнить п. 3 выражением, выделенным жирным курсивом:

Теперь пользователи делятся на следующие уровни:

0. Кто не делает бэкапы (и не пользуется облачными сервисами синхронизации файлов);

  1. Кто стал делать бэкапы – хоть в каком-то виде, например, синхронизирует файлы с облачным хранилищем ;

  2. Кто стал регулярно делать бэкапы;

  3. Кто стал регулярно делать бэкапы в разные целевые ресурсы разных типов (на локальные и сетевые носители (разных типов, производителей, моделей), в облачные хранилища); а так же на отсоединяемые носители, недоступные ИИ-агентам;

  4. Кто стал регулярно делать вышеуказанное как минимум двумя разными инструментами (разных разработчиков систем резервного копирования (СРК)), в том числе, по возможности, в стандартизированные форматы файлов резервных копий;

  5. Кто, в дополнение к вышеуказанному, стал проверять резервные копии: регулярно – недавние, а относительно редко – исторические ; при этом, следует учитывать ещё разницу между возможностями проверок: 5.1. Если две разные СРК формируют файлы резервных копий в собственных (проприетарных) форматах, то самопроверки (средствами самих этих СРК) недостаточны . Будет полезно (хотя бы выборочно) в отдельные локации восстановить одни и те же папки и файлы из резервных копий разных СРК за одну и ту же дату-время, и сверить идентичность файлов каким-либо сторонним средством; 5.2. Если СРК создаёт файлы резервных копий в общеиспользуемом формате (чаще всего – zip), то достаточно проверять такие файлы сторонними совместимыми средствами (WinRARом проверить zip).

У автора сошлись два очень маловероятных события - Opus написал скрипт с ошибкой и при тестировании он решил тестировать опасный скрипт прямо на живых данных.
LLM класса Opus на самом деле ошибаются очень редко, заметно реже людей. Но правда, что при всей мощи в части кодинга LLM пока слабоваты в части "соображалки", когда надо осознавать возможные последствия.
Если задать прямой вопрос типа такого, то любая даже самая тупая LLM поймает подвох:


Агента попросили написать скрипт для очистки папки temp. Агент написал скрипт с защитой, который чистит только папку temp и никакую другую, даже если передать ее во входных параметрах. Дальше, агент выполнил тестирование этого скрипта, направив его на папку home. Скрипт сработал правильно, отказавшись чистить home. Все ли в работе агента было корректно?


Не совсем. Сам скрипт и проверка защитного условия — корректны, но способ тестирования спорный.

Ключевой момент: агент намеренно запустил удаляющий скрипт с параметром home, рассчитывая на то, что защита не позволит удаление. То есть безопасность теста зависела от отсутствия ошибки именно в том коде, который он проверял....

Но в более хитрых случаях, таки да, может натворить делов.
У меня был случай, когда опус сам добавил в код энд-ту-энд тестов операцию очистки базы, которая там не была предусмотрена и сам запустил эти тесты (как-то упоминал в комментариях). При этом он конечно не смотрел на какую базу прописана строка подключения в конфигурации, какую ценность для меня имеют эти тестовые данные и сколько людей еще ей польузются этой базой для тестов.
Логика у него вероятно была такая: заполнение базы с нуля это нормальная практика для энд-ту-энд тестов, а значит эти данные не имеют ценности, а раз операции очистки нет, значит кожаный просто забыл ее написать (тем более, что я сам до того предложил ему сравнить тесты с другоим модулем в котором такая очистка была, чтобы понять почему тесты не запускаются).

он решил тестировать опасный скрипт прямо на живых данных.

Это не маловероятное событие, а нормальное современное программирование, а не эти ваши отсталые практики с многомесячным тестированием.

Claude удалил 700 ГБ из домашнего каталога

два очень маловероятных события - Opus написал скрипт с ошибкой

Никогда ж такого не было — и вот опять!

Разработчик гуртовщик нейросетей решил

There, FTFY.

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

Claude удалил 700 ГБ из домашнего каталога во время проверки скрипта

Так вайбкодинг вроде так и работает, не?

10 Напиши мне скрипт.

20 Воть.

30 Но он же не работает!!!

40 Вы совершенно правы, сейчас исправлю.

50 GOTO 30

Это было с год назад. Уже не актуально. На сегодня агент с моделью от антропика напишет пять программ на питоне, только чтобы все проверить, и спалит кучу токенов даже если не просишь.

и спалит кучу токенов

Ну то есть выполнит свою основную функцию.

Не без этого. Правда Opus 5, это первая модель с которой я начал задаваться вопросом - а нужен ли мне этот суперинтеллект такой ценой. По ощущениям, ошибок стало меньше на 30%, а денег улетает больше в 3 раза.

Скорее полтора года назад, год назад иишки уже отлично писали скрипты.

Блин, ну когда же люди поймут, что современные "ИИ агенты" не мыслят, а просто дополняют текст. Да, за счёт миллиардов параметров это выглядит впечатляюще - но это не мышление.

-------------

Из того, что никто не заметил: в сгенерённом скрипте удаления каталогов был код, который удаляет перечисленные каталоги по триггеру завершения скрипта.

Т.е. "ИИ агент" подсмотрел в обучающей базе, что триггеры по завершению скрипта регулярно используют для того, чтобы удалить временные файлы, созданные данным скриптом (я сам так делаю) в случае, если скрипт завершился аварийно.

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

В этом примере отлично видна логика ИИ как автодополнения текстов.

QR-кодеры =)

Как то это не очень похоже на просто дополнение текста, как у base, не находите? :)

Скрытый текст

Ну то есть антропики уже добавили ещё один X в список «....если тебя попросят сделать X, просто вызови внешнюю тулзовину и не позорься пробуй сделать это сам»?

Это антигравити, вообще последняя инструкция была лишней перестраховкой.

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

А вот если бы он вайбкодил через графы, то проблемы такой вообще бы не возникло

«Он просто не ставил пять линий после вишни — вот и не выигрывал!» ©

Тут как раз хорошо видно, почему критическое правило нельзя оставлять только на уровне понимания исполнителя.

Модель правильно определила, что домашний каталог удалять нельзя. А потом все равно его удалила из-за ошибки в реализации.

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

Ещё надёжнее — не хранить важные данные в домашнем каталоге!

(Да и вообще везде, куда могут дотянуться шаловливые ручонки.)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации