Кодерская мастерская
Защищаемся от клода. Часть первая: Windows
Хотел написать 1 мегапост о работе с клодом в песочнице, о настройке разрешений, о подводных камнях, о mcp-шлюзах... В общем я решил попробовать формат с относительно короткими постами, которые буду писать постепенно, а дальше видно будет.
В этой серии постов будут описаны проблемы и их решения, которые актуальны для моего стека, моего восприятия, ну и в целом для моих личных потребностей при разработке софта. А потому чем глубже я буду описывать сетап, тем больше может потребоваться доработок под вашу задачу.
Мой сетап и задачи: машина на винде, wsl, docker desktop, разработка в основном бэкенда на python.
И так начнём с самого простого, можно, представьте себе, поставить клода на винду, я так не делал, ибо был неприятный опыт с кодексом, работал на винде он отвратительно, песочницу завести я так и не смог.
Правда на тот момент она была в бете, но так или иначе с клодом, на всякий случай, я решил не испытывать судьбу и сразу начал с установки его в wsl.
Но поставить то можно, вот просто винда и просто клод сразу в ней.
Что в таком случае он сможет сделать, в том числе и без спроса?
Сможет модифицировать или удалить любой ваш файл на любом диске, сможет поменять настройки системы (те, где админ-права не нужны), сможет насрать и не убрать за собой в неожиданном месте, сможет сходить в сеть на любой адрес, исполнить любой код и т.п.
Откуда он возьмёт код? Конечно он может его скачать, но скорее всего код, который безвозвратно угрохает что-нибудь, он за несколько секунд напишет и исполнит сам, Потом честно признается, что накосячил, но будет поздно.
Проще наверное описать, чего он не сможет: наверное он не сможет подняться до админа, по крайней мере если у вас включены uac-промпты.
Это я описал только примитивные деструктивные действия, а ведь есть ещё косвенные, например:
При наличии доступа к приватному ключу может сходить по ssh куда-то, и сделать всё вышеописанное на удалённой машине, если найдёт access токен от чего угодно, может сходить в такой api, или зашить этот токен в какой-то документ или исходник (и если кажется, что эра токенов в исходниках в прошлом то нет, она всё ещё с нами).
И кажется что я загоняю какой-то спекулятивный бред, и модели достаточно "умные", чтобы не совершать таких ошибок, но в том то и дело, что они не глупые, они, в каком-то смысле, человечные, а точнее они не детерминированные, проблема именно в этом.
Если попросить модель грохнуть таблицу на продовой базе, она, без контекста, откажется, если попросить человека порезать руку ножом, он, ну если одекватный, откажется.
Но если мы попросим человека почистить ведро картошки, то он, о ужас, может порезаться ножом!
Да, скорее всего, если навык есть, всё будет хорошо, впрочем, как и с современными llm, но если наблюдать за человеком достаточно долго, то в течение года, или двух лет, или пяти, всё же неловкое движение будет совершено.
И это не решается опытом и скиллом, моя бабушка лет 30 поваром проработала, но почему-то и при таком бэкграунде частенько случались и порезы, и ожоги.
Тоже самое касается и ии-агентов, подключив к llm шаловливый харнес, человечество получило системы, которые могут не ошибиться, а могут ошибиться, когда этого от них не ждёшь.
Вот буквально на днях клод будучи уверен, что прокси до продовой базы находится на 127.0.0.1, без моего ведома попытался туда сходить, честно написал, что у него не вышло и с сожалением предложил сделать это мне самостоятельно.
Да, он хотел сделать лишь пару селектов, но что, если бы задача была чуть шире, чуть иначе сформулирована? Да и вообще-то там чувствительные данные реальных пользователей лежат, а любой токен, любой документ, попавший в модельку оседает на серверах llm-провайдера, и что с ним будет дальше, хрен его знает.
И проблема не столько в самом провайдере, который будет эти данные использовать в обучении новых моделей, а, например, в хакерах, которые потенциально могут сдёрнуть эти датасеты, и ваши секреты реально смогут быть использованы не в благих целях.
Это был по сути вводный пост, технические детали последуют далее.
4 · 196 ·