Відповідно до технічного звіту, опублікованого Parameter Labs 28 жовтня, дослідницька група безпеки знайшла спосіб заволодіти будь-яким обліковим записом ChatGPT, просто змусивши жертву відкрити спільне посилання на розмову. Компанія повідомила, що OpenAI виправив уразливість 26 жовтня та класифікував звіт як P1, найвищий рейтинг серйозності.
Це рідкісне наскрізне захоплення облікового запису проти основної платформи штучного інтелекту, і це сталося, оскільки [останні розробки штучного інтелекту] (https://aibuzzwire.news) продовжують показувати, скільки конфіденційного матеріалу зараз люди зберігають у програмах чату. У Parameter Labs заявили, що для атаки не потрібно було встановлювати програму, не було інструментів розробника та не було жодної взаємодії, крім відкриття спільної URL-адреси ChatGPT зловмисника.
Як працював ланцюжок атак
Мережа зловживала двома звичайними функціями ChatGPT, які виглядали нешкідливими окремо: інтерактивний графік і пісочниця попереднього перегляду HTML. Функція попереднього перегляду ChatGPT запускає згенерований HTML у обмеженому фреймі на окремій веб-адресі, що має запобігти торканню сторінки chatgpt.com, на якій ви ввійшли в систему.
Прорив став завдяки графу, який завантажив математичну бібліотеку під назвою MathLive. Ця бібліотека встановила прослуховувач повідомлень на головній сторінці ChatGPT для екранної клавіатури, але Parameter Labs виявила, що прослухувач приймає повідомлення з будь-якого джерела без перевірки відправника. Один із прийнятих типів повідомлень може замінити розкладку віртуальної клавіатури на керований зловмисником HTML, який MathLive потім вставляє на реальну сторінку ChatGPT через innerHTML.
Скрипти, вставлені таким чином, зазвичай не виконуються, тому дослідники загорнули їх корисне навантаження в iframe за допомогою атрибута srcdoc. Оскільки головна сторінка ChatGPT створила цей фрейм без пісочниці, браузер розглядав код у ньому як справжній вміст chatgpt.com із доступом до батьківської сторінки.
Вихід із політики безпеки вмісту
Політика безпеки вмісту ChatGPT все ще блокувала вбудовані сценарії, але Parameter Labs виявила прогалину: політика дозволяла сценарії з YouTube. Дослідники виявили, що кінцева точка YouTube oEmbed відобразила недійсний параметр зворотного виклику JSONP у своїй відповіді на помилку перед перевіркою, що дозволило їм додати виконуваний JavaScript до відповіді, яку браузер із задоволенням завантажить як сценарій.
На той момент у команди був запущений довільний JavaScript із ідентифікатором chatgpt.com у сеансі жертви, під час якої вона ввійшла в систему. Parameter Labs чітко розповіли, що це означає на практиці: корисне навантаження не обмежувалося лише зміною сторінки чи відображенням попередження — воно могло безпосередньо викликати автентифіковані API ChatGPT як жертву. Під час тестування корисне навантаження могло нумерувати список бесід жертви, отримувати вміст приватних розмов, які ніколи не надавалися зловмиснику, і надсилати ці дані на зовнішній сервер. Браузер ідентифікував кожну дію як таку, що надходить від самого chatgpt.com, не даючи жертві видимого сигналу про те, що щось не так.
Одного посилання було достатньо
Те, що перетворило дослідницьку помилку на практичну зброю, так це доставка. Дослідники помістили графік і блок HTML для попереднього перегляду в одну звичайну бесіду, опублікували його за допомогою звичайної функції спільного доступу ChatGPT і надіслали отримане посилання /share/ тими ж маршрутами, якими користувався б будь-хто: електронною поштою, чатом, запитом у службу підтримки або публікацією в соціальних мережах.
У найбільш стабільному відтворенні жертва мала натиснути кнопку попереднього перегляду ChatGPT один раз після відкриття посилання. Пізніша версія позначила блок HTML як доступний для попереднього перегляду, тому ChatGPT відкривав його автоматично, і єдиною необхідною дією жертви було відвідування URL-адреси. Команда відтворила цей повністю автоматичний шлях тричі в окремому обліковому записі, у тому числі після жорсткого оновлення, із запуском корисного навантаження приблизно через 4,5 секунди після завантаження сторінки.
Оскільки графік і попередній перегляд завантажувалися незалежно, корисне навантаження іноді могло запускатися до того, як MathLive був готовий. Остаточна версія повторювала свої повідомлення протягом обмеженого періоду, щоб впоратися з цією умовою гонки.
Розкриття та виправлення
Parameter Labs повідомила про проблему OpenAI, яка надіслала виправлення 26 жовтня та оцінила звіт на P1. Ця інформація з’явилася на тлі ширшого дослідження безпеки платформи ШІ; раніше цього тижня The Register повідомив про помилки в п’яти інструментах розробника штучного інтелекту, деякі з яких ще не були виправлені на момент публікації.
Урок узагальнює межі однієї бібліотеки. Сучасні програми чату містять сторонні компоненти, попередні перегляди в ізольованому середовищі та дозвільні канали повідомлень на одній автентифікованій сторінці, і будь-який неперевірений одержувач postMessage може стати мостом між ними. Для користувачів практичні рекомендації не відрізняються від класичної веб-безпеки: ставтеся до посилань на спільні бесіди AI так само, як до будь-якого іншого небажаного посилання, оскільки платформа більше не може обіцяти, що відкриття такого посилання нешкідливо.
Зі свого боку, класифікація OpenAI P1 і швидке відновлення вказують на те, що компанія розглядає атаки сеансів на базі браузера на chatgpt.com як загрози першого рівня. Цей інцидент також є нагадуванням про те, скільки цінності зосереджено в цих облікових записах, коли користувачі зберігають робочі документи, медичні питання та приватні проекти в історії чату — саме той вміст, який Parameter Labs підтвердив, що міг отримати зловмисник.
---
Будьте попереду ШІОтримуйте останні новини штучного інтелекту, аналіз і прориви — усе в одному місці.
Читати більше новин AI →