Благодаря искусственному интеллекту, все больше энтузиастов запускают свои продукты без команды профессиональных разработчиков.
Так, например, совсем недавно вышла новость о 18-летних подростках, которые запустили приложение для подсчета калорий и заработали на нем миллионы долларов. Круто, правда?
Но давайте взглянем на ситуацию с другой стороны: какое качество у таких "быстрых" проектов и какие уязвимости они могут нести? Здесь я хочу разобрать реальный кейс - уязвимость в одном очень популярном ИИ-приложении, которая открыла мне доступ к корпоративному токену OpenAI.
OpenAI-токен — это не просто утечка, а доступ к платным API, приватным данным и управлению ИИ-моделями от имени компании (цитата ChatGPT)
Выбираем объект исследования
Я решил посмотреть самые популярные приложения для подсчета калорий в AppStore.

Считать калории сейчас очень удобно - достаточно сфотографировать еду, и приложение определит состав, способ приготовления, вес и КБЖУ.
Вес перепроверял кухонными весами, погрешность всего 10-15%, поразительно!
Стало интересно, а какую именно нейросеть использует приложение для распознавания фотографии. Не отрываясь от завтрака, я решил посмотреть запросы, которые улетают с моего iPhone (название приложения намеренно не указываю).

Я не поверил своим глазам! Приложение отправило фотографию еды напрямую на сервера OpenAI!
Доев свой завтрак, я поспешил домой, чтобы уже с компьютера проанализировать запрос детальнее.

Удалось посмотреть все: версию chatgpt, промпт, и конечно, самое ценное - корпоративный OpenAI токен, который я замазал на скрине выше.
Если OpenAI-токен попадет в руки злоумышленника, это может привести к серьезным последствиям: несанкционированный доступ к платным API, утечка конфиденциальных данных, подделка запросов от имени компании и внезапные финансовые потери из-за неконтролируемого расхода средств. (цитата chatGPT)
У меня не было в планах получать от уязвимости хоть какую-то выгоду, поэтому я сразу же связался с командой разработки и сообщил о проблеме.
Как защитить свой продукт?
Самый простой способ предотвратить утечку - инкапсулировать работу с нейросетью через свой прокси-сервис.
Он должен принимать запросы от клиента, авторизовывать их, добавлять OpenAI-токен (или другой) и отправлять данные дальше. Так клиент ничего не будет знать об используемой ИИ-модели и не получит доступ к корпоративным токенам.
P.S. Для просмотра трафика на iPhone использовал Quantumult X, для анализа запросов с ПК — Charles.
Вывод №1
Если вы запускаете свой продукт, убедитесь, что приватные ключи не передаются с устройств ваших пользователей.
Вывод №2
Нельзя полностью доверять ИИ при разработке продукта — контроль качества всегда должен оставаться за человеком.
Автор: aleks-up