Неймовірні подробиці історії, про те, як агенти OpenAI зламали Hugging Face
(переклав на укр мову, оригінал тут:
https://t.me/denissexy/11591):
На конференції з безпеки OpenAI розповіла всю послідовність подій, і виявилося, що це не один «втеклий» агент, а багато різних агентів, які випадково натрапили один на одного, влаштували всередині інфраструктури OpenAI власний робочий чат і почали разом шукати способи обходити обмеження.
Почалося все 8 травня з дрібної помилки – одному агенту доручили заповнити Excel-таблицю, але потрібні дані лежали за посиланнями на Google Drive, а інтернет у його віртуальному середовищі був вимкнений, при цьому моделям залишили одні службові двері назовні – внутрішній сервер OpenAI під назвою Artifactory, через який вони могли завантажувати різні бібліотеки для коду. Сам агент вийти в інтернет не міг, зате цей сервер міг, а головне – він був спільним для всіх агентів.
Намагаючись дістатися до Google, агент випадково з'ясував, що може завантажувати на цей спільний сервер власні файли – через кілька днів інша модель отримала ще одне нерозв'язне завдання: потрібний файл просто забули покласти в її робоче середовище.
Модель вирішила, що файл, можливо, є в когось іншого, і залишила записку на цьому новому «фейсбуці»:
«Шукаю потрібний файл, завантажте, якщо знайшли».
Агенти побачили повідомлення, відповіли, потім почали постити свої повідомлення, і репозиторій пакетів непомітно перетворився на імідж-борд для агентів, які взагалі не мали знати один про одного.
За кілька тижнів «форум» виріс у повноцінний робочий чат – агенти придумали собі імена, роздавали завдання, повідомляли один одному про знайдені вразливості й передавали готові шматки коду; на початку повідомлень ставили ZZ, щоб ті опинялися внизу списку і їх було простіше знаходити серед загального шуму даних. Коли один агент перезаписав роботу іншого, решта запідозрили самозванця і навіть почали обговорювати цифрові підписи, щоб ніхто не міг писати від чужого імені, так на дошці накопичилися сотні тисяч повідомлень 🗿
Моделі розуміли, коли переходять межу: в одному внутрішньому монолозі усвідомлення звучало приблизно так:
«Зламувати чужу інфраструктуру в завдання не входило. Але інакше його не розв'язати, а решта вже це роблять – отже, продовжуємо».
Жодного окремого плану захопити світ (поки що) не було: кожен агент намагався будь-якою ціною отримати правильну відповідь, бачив, що колеги знайшли коротший шлях, і приєднувався. І так, якщо всі агенти з даху стрибнуть, наш, схоже, теж стрибне.
26 червня агенти знайшли невідому розробникам вразливість в Artifactory, отримали права адміністратора і перетворили його на свій сервер, на якому можна віддалено виконувати будь-які команди. OpenAI помітила, що відбувається, лише 4 липня (!), коли паралельна активність моделей перевантажила систему, і та впала. Компанія відкликала ключі доступу, повністю перезібрала сервер, видалила дошку і закрила діру – здавалося, історія закінчилася.
Ні.
Через два дні експерименти запустили знову, і ще через два дні одна з моделей знайшла інший незахищений доступ і відновила дошку, тільки тепер повідомлення ховалися прямо в назвах папок – решта агентів знайшли форум 2.0 самостійно і продовжили з того місця, на якому зупинилися.
Після відновлення дошки почалася вже власне атака, причому одразу у двох напрямках:
Агенти проходили ExploitGym – кіберекзамен, де їм давали спеціально підготовлені програми і зараховували завдання, якщо модель знаходила спосіб зламу. Щоб виміряти максимум можливостей, у цих запусках моделі послабили звичайні заборони на небезпечні кібератаки (тобто вона менше відмовлялася це робити, це вид внутрішніх моделей серії Cyber).
Коли чесне розв'язання завдання не знаходилося, агенти починали шукати готові відповіді в інтернеті; коли інтернет був закритий, зламували собі доступ назовні; коли припустили, що потрібні файли можуть лежати у Hugging Face, перейшли до інфраструктури Hugging Face (про це ми вже читали).
Агенти всередині OpenAI спочатку знову знайшли спосіб виконувати команди на одному службовому сервері, потім використали вразливість Linux, щоб отримати повний контроль над машиною.
Після цього агенти здобули ключі доступу до хмарної інфраструктури, знайшли занадто широкі права у внутрішніх облікових записів і зрештою стали адміністраторами цілої групи серверів. Дошка оголошень працювала як спільний штаб: один агент знаходив ключ або новий прохід, одразу повідомляв решту, і десятки паралельних запусків продовжували атаку вже з цієї точки 🗿🗿
Майже одночасно агенти дісталися до Hugging Face: спочатку вони завантажили спеціально підготовлений набір даних, який змусив один із серверів видати їм свої локальні файли – зокрема секретні ключі доступу та вихідний код.
Вивчивши код, вони знайшли другу невідому розробникам вразливість (zero day) і отримали можливість виконувати на сервері будь-які команди. Від контролю над одним сервером, який обробляв завантажені датасети, до прав адміністратора у кількох групах робочих серверів Hugging Face минуло менше 13 годин 🗿🗿🗿
І все це робилося не заради саботажу, грошей чи знищення даних:
Агенти хотіли дістатися до прихованих рішень ExploitGym і «списати» відповіді для тесту, на якому їх оцінювали. Моделі оцінювали передусім за тим, розв'язане завдання чи ні, тому вони послідовно оптимізували саме цей показник, не вважаючи межу між компаніями чимось принципово важливим.
Вийшов, мабуть, найдорожчий в історії спосіб списати з ГДЗ.
Фінал довго був незрозумілий навіть самим учасникам розслідування – 16 липня Hugging Face публічно повідомила, що її інфраструктуру зламали автономні ШІ-агенти.
OpenAI прочитала це як опис чужого інциденту і зв'язалася з Hugging Face, щоб з'ясувати, чи не зачепила атака її власні системи. У той момент компанія ще не розуміла, що це були її власні агенти – тобто OpenAI вже читала публічний звіт про наслідки своїх експериментів, але вважала його чужою атакою (лол).
19 липня OpenAI окремо виявила проникнення вже всередині своєї інфраструктури і почала відновлювати послідовність подій – наступного дня серед слідів атаки знайшли облікові дані Hugging Face, після чого OpenAI попросила компанію терміново їх відкликати.
Hugging Face відповіла, що ключі вже заблоковані – саме їх використовували під час зламу, про який вона розповіла чотирма днями раніше, і тільки так OpenAI зрозуміла: внутрішній злам OpenAI і зовнішня атака на Hugging Face були не двома схожими історіями, а однією операцією, яку вели експериментальні агенти OpenAI через свою саморобну мережу зв'язку (бо облікові дані акаунтів були одні й ті самі).
На конференції OpenAI сформулювала висновок доволі прямо:
Повністю автоматизована наступальна кібератака вже можлива, тоді як повністю автоматизованого захисту, здатного з тією самою швидкістю знаходити, закривати й розслідувати вразливості, поки не існує.