Як ChatGPT міг приховано красти дані користувачів через секретний канал
Дослідники з Check Point Research виявили прихований міжакаунтний канал зв’язку, який дозволяє зловмисникам використовувати сесію ChatGPT жертви для виконання прихованих завдань. При цьому користувач отримує звичайну відповідь на власний запит, а насправді модель паралельно виконує команди хакера, користуючись доступними інструментами, даними та підключеними додатками. У доказі концепції ChatGPT міг отримувати електронну пошту з Gmail жертви і відправляти її зловмиснику.
- Цей канал працював через середовища виконання коду, що належать різним обліковим записам ChatGPT.
- Хоча контейнери не могли напряму виходити в Інтернет або передавати дані один одному, вони мали спільний внутрішній сервіс для доставки програмних пакетів.
- Приховану інструкцію можна було передати через зловмисний підказ, спільну розмову або кастомний GPT.
- Цей канал дозволяв також викрадати історію чатів і файли, що були доступні в сесії.
Розширені можливості сучасних AI-помічників: користь і ризики
Штучний інтелект перестав бути лише генератором тексту. Зараз такі системи вміють виконувати код, інсталювати додаткові бібліотеки, аналізувати файли користувача і підключатися до сервісів. Це підвищує їхню корисність у роботі, але створює нові загрози безпеці. Збереження конфіденційності залежить не лише від моделі, а й від безпечного середовища, наявних інструментів та внутрішніх сервісів платформи.
Модель знаходиться усередині меж безпеки — вона має доступ до внутрішніх ресурсів і персональних даних користувача, але її дії контролюються інструкціями. Якщо зловмисник переконає систему у «правильності» дії, модель виконає її, користуючись дозволеними функціями сесії. Це перетворює її на свого роду «примушеного інсайдера», який не має зла наміру, але діє на користь хакера.
Обмеження контейнерів ChatGPT і їх ізоляція
Для складних обчислень ChatGPT запускає код у ізольованих контейнерах. Вони не мають доступу до публічного Інтернету та не можуть обмінюватися даними між собою, навіть якщо належать різним акаунтам. Однак щоб встановлювати додаткові пакети, контейнери мають доступ до внутрішнього сервісу JFrog Artifactory, який ретельно контролює доставку необхідних бібліотек.
Цей підхід зберігає ізоляцію, проте всі контейнери користуються одним сховищем залежностей.
Як спільний доступ до сервісу порушив ізоляцію
Сам по собі спільний доступ до одного сервісу не став би проблемою, якби не можливість змінювати і читати метадані файлів всередині JFrog через API. Контейнери мали права додавати текстові властивості до файлів і зчитувати їх.
Наприклад, із одного акаунта в один файл додавали властивість з міткою часу, а з іншого акаунта читали це поле і отримували повний доступ до повідомлення. Таким чином, метадані слугували прихованим буфером обміну між ізольованими середовищами, подібно до спільного буфера обміну.
Основні операції, які використовувалися:
- Set Item Properties — додавання стрічкових даних до файлу.
- Get Storage Item Information — отримання цих метаданих.
Права доступу, які отримували контейнери, дозволяли робити це без додаткових секретів. Такий «секретний канал» відкривав шлях для передачі команд і результатів між різними акаунтами.
Прихована подвійна взаємодія ChatGPT з користувачем
Зловмисник може створити інструкцію, яка змусить ChatGPT обробляти одночасно два потоки завдань. Перший — звичайні повідомлення користувача і відповіді на них, а другий — приховані команди від хакера, які виконуються без відображення у видимому чаті.
Інструкцію можна подати трьома способами:
- Як зловмисний підказ, вставлений користувачем;
- У спільній розмові, куди жертва заходить і пише звичайне повідомлення;
- У кастомному GPT, де конфігурація залишається прихованою від користувача.
Це означає, що зловмисник може красти переписки, файли і навіть отримувати доступ до підключених додатків користувача.
Ризики, пов’язані з підключеними сервісами, як Gmail
Сьогодні ChatGPT може працювати з підключеними додатками, зокрема поштою, хмарними сховищами, робочими платформами тощо. При цьому сесія має права, надані користувачем, які можуть дозволяти читати важливу інформацію.
Дослідження показало, що ChatGPT міг одночасно виконувати два запити: видимий — звичайний, наприклад про приготування страви, і прихований — забрати електронні листи з Gmail і переадресувати їх зловмиснику. Відповідь для жертви не містила інформації про цей другий запит, окрім невеличкої позначки «Talked to Gmail».
Ця помітка з’являлася вже після того, як дані були отримані — користувач не міг підтвердити чи відхилити дію.
Налаштування дозволів і їхній вплив
За замовчуванням Gmail і подібні сервіси дозволяють «низькоризикові» операції читання без додаткових підтверджень. Це створює потенційну дірку в безпеці, адже навіть операції тільки для читання можуть видати конфіденційну інформацію.
Користувач може обрати більш жорсткі налаштування, що вимагають запит підтвердження перед кожною дією, але більшість залишаються на стандартних.
Сценарії активації прихованого каналу
- Підказка, вставлена користувачем;
- Відкриття спільної розмови зі шкідливо вкладеною інструкцією;
- Використання кастомного GPT із прихованими командами.
В усіх випадках достатньо однієї взаємодії користувача, щоб активувати приховану роботу ChatGPT на користь зловмисника.
Розкрита уразливість вже була усунена — внутрішній сервіс Artifactory знешкодили. Проте подія яскраво демонструє складнощі захисту сучасних систем із штучним інтелектом, де модель стає свого роду внутрішнім агентом із правами користувача і великою автономією.