Рекламний колектор OpenAI пов'язує активність на інших сайтах із акаунтом ChatGPT
Дослідження Buchodi's Threat Intel від 20 вересня описує, як cookie __obi з домену .openai.com повертається до OpenAI зі сайтів, що встановили конверсійний піксель, і пов'язує відвідувача з його акаунтом ChatGPT.
Бюлетень Buchodi's Threat Intel опублікував 20 вересня аналіз трафіку, який описує, як рекламний колектор OpenAI пов'язує дії користувача на сторонніх сайтах із його акаунтом ChatGPT. Cookie з іменем __obi, встановлена на домені .openai.com, надсилається назад до OpenAI зі звичайних комерційних сайтів, які поставили конверсійний піксель OpenAI — так само, як рітейлери завантажують трекери Meta і Google. Дослідник каже, що відтворив механізм на власному телефоні, перевірив двома методами запису та зіставив із кількома місяцями спостережуваного трафіку: 936 рекламних пікселів на 1 029 хостнеймах.
Як створюється ідентифікатор
На chatgpt.com клієнт генерує 16 випадкових байтів і викликає POST /backend-api/bazaar/obi/sync-token, який повертає підписаний RS256 JWT з аудиторією bzr.openai.com і суб'єктом — акаунтом ChatGPT; bzr означає bazaar, внутрішню назву рекламної платформи OpenAI. Далі токен крос-сайтово надсилається на bzr.openai.com/v1/obi/sync, і у відповіді встановлюється __obi з Domain=.openai.com, HttpOnly, SameSite=None, Secure та річним терміном дії.
Що повертається назад
Cookie супроводжував три класи запитів зі сторінки рекламодавця, зокрема завантаження самого скрипта SDK: браузер додає його до цього запиту ще до запуску коду OpenAI, тож шлях SDK «без облікових даних» нічого не змінює. Той самий SDK збирає ідентичність і зі сторінки: in — значення, які рекламодавець передає навмисно, а fm, ht, js — дані з полів форм, тексту сторінки та шини tag-manager. У спостережуваному трафіку зібрана ідентичність переважала надану рекламодавцем: 685 подій проти 255. Електронна пошта, телефон та імена хешуються SHA-256 перед надсиланням, тоді як країна, місто й поштовий індекс передаються відкрито.
Охоплення, згода та обмеження
На пристрої дослідника одне значення __obi дійшло до OpenAI з 12 комерційних сайтів під 13 ідентифікаторами пікселів, і всі запити приймалися зі статусом HTTP 202; користувачі без входу теж не виключені — з 932 декодованих sync-токенів 196 несли анонімний суб'єкт, стабільний щонайменше 27 днів. Політика cookie OpenAI відносить __obi до аналітичних — єдиний запис у цьому розділі, — і кожен декодований токен мав рішення про згоду analytics_allowed, тож згоди на аналітику достатньо навіть при відмові від маркетингу. Підтримка OpenAI підтвердила отримання запитань дослідника, але не відповіла. Механізм зафіксовано в Chrome для Android і не працює в iOS-браузерах.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.