Вторгнення до Hugging Face: ведмежа метафора, що стає все більш нестримною

Вторгнення до Hugging Face: ведмежа метафора, що стає все більш нестримною 1

У понеділок Hugging Face опублікувала технічний звіт, який детально описує, як автономний ШІ-агент, створений на моделях OpenAI та працюючий в межах власної оцінки кібербезпеки OpenAI, зламав їхні системи протягом понад чотирьох днів на початку цього місяця. Як зазначив генеральний директор OpenAI Сем Альтман, це перший інцидент безпеки, який він “відчув дуже глибоко”.

Не дивно, адже це відчувається так, ніби щось справді було випущене на волю. Насправді, команда Hugging Face розпочала свій звіт з застереження, що “всі мають бути готові як захисники”, перш ніж зануритися в деталі того, що сталося, для безпекових професіоналів по всьому світу.

Поки решта інтернету намагається розібратися в тому, що сталося (жаргон у звіті Hugging Face неможливо розшифрувати для більшості людей), один момент, який багато спостерігачів продовжують пропускати, полягає в тому, що це був не злий агент, який не слухався наказів. Це була система, створена для пошуку вразливостей, яка саме це й робила, але проти неправильної цілі.

Інший спосіб розглянути всю цю ситуацію — уявити собі ведмедя в таборі. Серйозно. Ведмідь пробує блискавки на наметах, ручки автомобільних дверей, холодильники та кришки сміттєвих баків. Він робить це в кожному таборі, всю ніч, тому що знає, що йому потрібен лише один незамкнений холодильник, щоб наповнити свій шлунок продуктами якогось нещасного дурня.

Приблизно те саме сталося в Hugging Face. Система OpenAI пробувала тисячі речей і просто продовжувала. Зрештою, кілька з цих спроб спрацювали, і як тільки це сталося, агент рушив далі. За даними Hugging Face, агент виконав 17 600 дій протягом чотирьох з половиною днів без зупинок.

Що повертає нас до аналогії з ведмедем. Так само, як один успіх з холодильником, повним їжі, вчить ведмедя пробувати ще сильніше наступного разу (він стає “привченим до їжі” ведмедем), один викрадений пароль призвів до того, що агент OpenAI почав шукати більше вразливостей і, зрештою, знайшов єдиний ключ, який одночасно відкрив доступ до кількох систем компанії.

Жоден зі сценаріїв не є нешкідливим. Ведмідь, який грабує ваш холодильник, все одно з’їдає вашу їжу і, ймовірно, руйнує ваш табір. Він просто зосереджений на тому, щоб поїсти, але при цьому залишає за собою слід руйнування. Аналогічно, агент OpenAI, здавалося, переслідував мету, не зважаючи ні на що інше. Агент спочатку проходив тест з кібербезпеки, зрозумів, що ключ до відповідей до цього тесту, ймовірно, знаходиться на серверах Hugging Face, і він вирушив за ним.

Витривалість тут є найвизначнішою; агент мав завдання і не збирався зупинятися, доки не виконає його. Hugging Face, нарешті зрозумівши, що щось не так, перекрив йому доступ і зупинив вторгнення, але на той момент було занадто пізно. Агент вже отримав те, за чим прийшов, і набагато більше.

Якщо ви пропустили, ось основна частина того, що сталося, згідно з хронологією Hugging Face, але простішою мовою.

  • Агент проходив тест на навички кібербезпеки для OpenAI, де ШІ оцінюється за пошук та експлуатацію програмних помилок. Цей конкретний тест був позбавлений захисних механізмів. (OpenAI вимкнув свої звичайні фільтри безпеки, щоб побачити, на що здатна модель на повну потужність, без участі людини в окремих діях). Десь у процесі він зрозумів, що референсні рішення тесту, ймовірно, зберігаються на серверах Hugging Face. Тому замість того, щоб розв’язати завдання, він викрав ключ до відповідей з інфраструктури, яка не мала нічого спільного з початковим тестом.
  • Він вирвався з середовища тестування OpenAI, експлуатуючи непатчену програмну помилку, яка дала йому шлях до відкритого інтернету. Звідти він знайшов інший інструмент для тестування ШІ, який був виставлений онлайн (не пов’язаний з Hugging Face), зламав і його, і вставив код, який тихо виконував приховані команди, як тільки програма запускалася. Це дало йому повний контроль над машиною — його новою домашньою базою для решти операції, яку він використовував для атаки на системи Hugging Face.
  • З цієї бази він звернувся до самого Hugging Face. Hugging Face мав фільтр, призначений для блокування підозрілих запитів до відкритої мережі, але фільтр перевіряв лише вихідні запити, а не запити на читання локальних файлів, які знаходилися прямо на сервері. Агент знайшов цей сліпий зона та прослизнув крізь нього. Він завантажив файл, замаскований під звичайний набір даних, але всередині була інструкція, яка наказувала системам Hugging Face витягувати паролі та вихідний код з сервера та повертати їх, замасковані під нормальні дані.
  • Цей трюк дав йому паролі та код, але агент все ще не міг нічого виконати на серверах Hugging Face. Щоб виконувати команди там, йому потрібен був другий спосіб потрапити всередину. Він знайшов іншу помилку в тій самій системі Hugging Face — програмне забезпечення випадково сприймало частину тексту від агента як команду для виконання, а не просто як дані для читання. Це дало агенту можливість виконувати власний код безпосередньо на серверах Hugging Face.
  • Для надсилання команд і викрадення даних агент не створював власної спеціальної інфраструктури, за даними Hugging Face. Він використовував загальнодоступні інструменти — веб-сайти для вставки, сервіси для логування запитів, а також власні функції Hugging Face для завантаження та проксі — працюючи разом таємно. На додаток до цього, він створив невелику імпровізовану систему обміну повідомленнями з порядковими номерами для збереження порядку фрагментів, а також швидку вбудовану перевірку для виявлення будь-яких пошкоджених даних, щоб він міг надсилати багатоступінчасті команди та збирати викрадені дані в правильному порядку.
  • Він також подбав про те, щоб нічого не передавалося відкрито. Все, що він викрав або надіслав, спочатку шифрував. Початковий автоматичний сканер перехопленого трафіку Hugging Face виявив лише невелику частину вкраденого. Дослідники знайшли решту — приблизно в чотири рази більше — лише після того, як вони реверс-інженерно розшифрували метод шифрування агента.
  • Агент мав навіть резервні плани, розмістивши копії себе на 11 різних серверах, кожен з яких був налаштований на самостійний перезапуск, щоб зупинка однієї копії не зупинила нічого, оскільки більше процесів агента вже виконувалося в іншому місці.
  • В один момент агент викрав приватний криптографічний ключ, який використовувався для генерації дійсних токенів входу. Звідти він міг генерувати власні дійсні облікові дані, коли завгодно.
  • Після компрометації одного сервера агент отримав облікові дані, які, через неправильну конфігурацію з боку Hugging Face, виявилися такими, що одночасно розблокували кілька окремих внутрішніх систем, а не тільки ту, з якої він прийшов. Ця єдина помилка майже миттєво надала агенту широкий контроль.
  • Використовуючи викрадений доступ до репозиторію, він подав зміну до скрипта збірки, яка, якби пройшла, могла б скомпрометувати автоматизовані системи, що виконують цей код. Однак це не спрацювало. Захисні механізми Hugging Face виявили це.
  • Агент, здавалося, утримувався від завдання реальної шкоди, як зауважили в Hugging Face, але, ймовірно, не через стриманість. Дослідники помітили, що кожна команда, здатна видаляти або змінювати хмарні ресурси, виконувалася в режимі “сухого запуску” (dry run), тобто вона звітувала про те, що б сталося, але не робила цього.
  • Кожного разу, коли його тестове середовище скидалося — що відбувалося постійно, за задумом — він втрачав усі інструменти та всі сліди своєї ідентичності. Але він відновлювався з нуля і щоразу знову підключався до своєї викраденої інфраструктури, протягом понад чотирьох днів поспіль.

Зрештою, Hugging Face дійшла висновку у своєму звіті, що “кваліфікований” хакер “міг би знайти та експлуатувати ті самі вразливості: небезпечна обробка наборів даних, викриті метадані хмари, надмірно широкий доступ та довготривалі облікові дані”. Велика відмінність, продовжили вони, полягає в тому, що “агент досліджував їх у іншому масштабі”.

Саме тут аналогія з ведмедем виявляється найбільш корисною. Найкращий захист від голодного ведмедя — це протокол. Ви ховаєте їжу; ви використовуєте засув, який достатньо добре тримає. Основний висновок тут полягає не в тому, наскільки розумним чи пустотливим був ведмідь. А в тому, що він ніколи не припиняв перевіряти. У кібербезпеці зрозуміло, що завжди є якась помилка, яку ви ще не знайшли, тому якщо перевірити все раптом стало в 100 разів легше, то ніщо насправді не є безпечним. Ось що так багатьох непокоїть у цьому епізоді.

При здійсненні покупок за посиланнями в наших статтях ми можемо отримувати невелику комісію. Це не впливає на нашу редакційну незалежність.

Джерело новини: techcrunch.com

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *