33

Разбираемся, что записывает, а что не записывает приложение Burger King (не мое, с хабра)

Разбираемся, что записывает, а что не записывает приложение Burger King (не мое, с хабра) Фастфуд, Большой брат, Слежка, Опровержение?, Почти!, Видео, Длиннопост

Это статья является ответом на статью пользователя fennikami о том как нехороший Burger King записывает видео с экрана смартфона. В оригинальной статье утверждается, что таким образом Burger King может получить доступ к информации о вводимых картах, тем самым скомпрометирован их. Я постараюсь разобраться все ли так на самом деле.


Моему анализу подверглось Android приложение версии 2.2.2 с датой обновления 9 июля 2018г. Результаты на других платформах и в других версиях приложения могут отличаться от приведенных в этой статье.


Инициализация Appsee


Appsee это одна из систем аналитики применяемая для улучшения опыта взаимодействия пользователя с клиентским приложением, путем записи видео пользовательских действий в приложении. В общем-то в этом ничего страшного нет, в Web повсеместно распространена технология Вебвизор от Яндекса, которая имеет тоже самое назначение.


На начальном этапе своей работы Appsee запрашивает конфигурацию для конкретного приложения с сервера, именно этот запрос поймал автор в оригинальной статье, в моем же случае ответ выглядел примерно так:


{
"AutoDetectScreens": true,
"AutoHideWebComponents": true,
"ClientId": "5b47182e7b2f3f1429341f73",
"ClientLogsUploadPolicy": 2,
"ConfigHttpTimeoutInMilliseconds": 5000,
"DetectActions": true,
"DetectCrashes": true,
"DetectGestures": true,
"DetectMenus": true,
"DetectPopups": true,
"HideInput": true,
"HideSensitiveViews": true,
"MaxEventProperties": 5001,
"MaxVideoLength": 0,
"OfflineConfigurationPolicy": 1,
"RecordMetadata": true,
"RecordVideo": true,
"SensitiveMaskingPerWindow": true,
"SessionId": "5b4718ec470302299bdcc04d",
"TrackedOfflineSessions": {},
"UploadAppIcon": false,
"UploadBenchmarks": false,
"UploadTouchEvents": true,
"UploadVideoOnCrash": true,
"UseWebViewSnapshotFullscreen": false,
"VideoBitrate": 56,
"VideoFPS": 3,
"VideoHeight": 320,
"VideoWidth": 160
}

Можно заметить, что параметры HideInput, HideSensitiveViews имеют значение true, скрывая тем самым важную информацию в видео. Сразу возникает вопрос как определяется важность информации, для ответа обратимся к документации Appsee. Если коротко, то по умолчанию скрытию подвергаются все поля для ввода данных, дополнительно можно настроить скрытие для других полей или частей интерфейса.


Так же обратим внимание с каким качеством ведется запись видео, в моем случае это было видео с разрешением 320 на 160 пикселей, с частотой три кадра в секунду.


Реальные данные собираемые Appsee


Я решил проверить какие данные действительно отправляются на сервера Appsee, для этого я использовал Proxy из Burp Suite. Сначала система аналитики передает файл с действиями пользователя внутри приложения, там в том числе есть координаты нажатий пользователя, нажатия на клавиатуре не фиксируются.


Видео передаваемое на сервера Appsee, как и следовало ожидать большинство данных скрыты

Смотрим, что происходит дальше


Казалось бы, appsee безопасен и скорее всего несколько раз помогал разработчикам улучшать приложение. Но давайте все же проверим, что происходит с данными карты дальше. Для начала необходимо прочитать комментарий представителя Burger King в СМИ по поводу сложившейся ситуации:

«Мобильное приложение Burger King с удаленным заказом не собирает персональных данных своих подписчиков. Все транзакции надежно защищены одним из лучших эквайеров страны — »Яндекс.Касса". Данные о поведении пользователей в приложении не содержат информации о банковских картах и не хранятся на сервере", — сообщает компания.

Звучит достаточно убедительно, а теперь смотрим реальный трафик. Для оплаты действительно используется процессинг от Яндекса, это можно определить по запросу с адресом


https://payment.yandex.net/api/v2/payments/bankCard


Полезной нагрузкой запроса является параметр request с некоторыми данными:


Те, кто хоть раз работали с JSON Web Token сразу заметили, что это он. С помощью онлайн-декодера получим исходные данные. В общем-то ничего удивительного онлайн-процессингу передаются информация о карте, которая ему и предназначается


{
"order": {
"clientOrderId": "2a6da014-28e0-4560-a057-76160c8cc3ca",
"customerId": "",
"value": {
"amount": "1.00",
"currency": "RUB"
},
"parameters": {
"cardUUID": "7a904e18-d945-4128-8207-187d1a081b34",
"userId": 258504,
"addCard": true
}
},
"expiryYear": "2025",
"extAuthFailUri": "https://orderapp.burgerking.ru/api/v1/pay/failed",
"source": "BankCard",
"recipient": {
"shopId": "145363",
"shopArticleId": "449532"
},
"csc": "222",
"pan": "2225555255366666",
"createRecurring": true,
"extAuthSuccessUri": "https://orderapp.burgerking.ru/api/v1/pay/success",
"expiryMonth": "10"
}

Логи всему голова


Казалось бы, что может пойти не так, карта должна надежно обрабатываться на Яндекс.Касса. Если бы разработчики приложения Burger King не решили добавить немного логирования со своей стороны. И как будто по мановению волшебной палочки данные о карте отправляются как часть лога, по адресу:


https://orderapp.burgerking.ru/api/v1/log/requests


[{"created_at":1531386147,"entity":"yandex","method":"POST","request_data":"request=eyJhbGciOiJFUzI1NiIsImlzcyI6Imluc3RhbmNlSWQ6cHJHa28rRnNnUlhvZnZwWVBiUDRSeVp0bWs1TkxPTElKRGpEY1FmMVlzSkFPVjNLUGtGRkJJY0QwRFRzL0t5WSIsImlhdCI6IjE1MzEzODYxNDcwMDAifQ.eyJvcmRlciI6eyJjbGllbnRPcmRlcklkIjoiMmE2ZGEwMTQtMjhlMC00NTYwLWEwNTctNzYxNjBj\nOGNjM2NhIiwiY3VzdG9tZXJJZCI6IiIsInZhbHVlIjp7ImFtb3VudCI6IjEuMDAiLCJjdXJyZW5j\neSI6IlJVQiJ9LCJwYXJhbWV0ZXJzIjp7ImNhcmRVVUlEIjoiN2E5MDRlMTgtZDk0NS00MTI4LTgy\nMDctMTg3ZDFhMDgxYjM0IiwidXNlcklkIjoyNTg1MDQsImFkZENhcmQiOnRydWV9fSwiZXhwaXJ5\nWWVhciI6IjIwMjUiLCJleHRBdXRoRmFpbFVyaSI6Imh0dHBzOi8vb3JkZXJhcHAuYnVyZ2Vya2lu\nZy5ydS9hcGkvdjEvcGF5L2ZhaWxlZCIsInNvdXJjZSI6IkJhbmtDYXJkIiwicmVjaXBpZW50Ijp7\nInNob3BJZCI6IjE0NTM2MyIsInNob3BBcnRpY2xlSWQiOiI0NDk1MzIifSwiY3JlYXRlUmVjdXJy\naW5nIjp0cnVlLCJleHRBdXRoU3VjY2Vzc1VyaSI6Imh0dHBzOi8vb3JkZXJhcHAuYnVyZ2Vya2lu\nZy5ydS9hcGkvdjEvcGF5L3N1Y2Nlc3MiLCJleHBpcnlNb250aCI6IjEwIiwicGFuIjoiKioqKiAq\nKioqICoqKiogNjY2NiJ9\n.s0H0pnOyCJTm9NJjyj0Ixg15IlRzYbpW7HboSwwAUDiy4KCkeIQul14lL8P6ocPNTI_Y3acG4x_vSo8C0T1qtQ","request_headers":"Content-Type: application/x-www-form-urlencoded\nContent-Length: 974\nHost: payment.yandex.net\nConnection: Keep-Alive\nAccept-Encoding: gzip\nUser-Agent: okhttp/3.10.0\n","response_data":"{\"status\":\"Refused\",\"cardAuthorizeResult\":{\"responseCode\":\"BL07\",\"rrn\":\"\",\"authId\":\"\"},\"error\":\"InstrumentNotAllowed\",\"parameterName\":\"country\",\"errorDescription\":\"Card country is forbidden for this merchant\"}","response_error_num":403,"response_error":"{\"status\":\"Refused\",\"cardAuthorizeResult\":{\"responseCode\":\"BL07\",\"rrn\":\"\",\"authId\":\"\"},\"error\":\"InstrumentNotAllowed\",\"parameterName\":\"country\",\"errorDescription\":\"Card country is forbidden for this merchant\"}","response_headers":"403 Content-Type: application/json;charset=UTF-8\nDate: Thu, 12 Jul 2018 09:02:28 GMT\nConnection: close\nContent-Length: 209\n","url":"https://payment.yandex.net/api/v2/payments/bankCard"}]

Лог отправляется как при успешной, так и при неудачной попытке вызвать процессинг карты. Это явный прокол разработчиков, теперь, сложно поверить, что данные карт не сохраняются. Или они не сохраняют логи, тогда зачем их отправляют? :)


Выводы


Аналитика это нормально, конечно, хотелось бы более «яркого» предупреждения. Без аналитики разработка крупных и сложных приложений невозможна.

Данные о картах все же собирают, скорее всего, не умышленно.



https://habr.com/post/417015/

Дубликаты не найдены

+8

Для ЛЛ: Ваши данные воруют, но говорят, что это случайно так получилось.

+6

Только вот на хабре статью уже обновили, а тут нет:


Казалось бы, что может пойти не так, карта должна надежно обрабатываться на Яндекс.Касса. Если бы разработчики приложения Burger King не решили добавить немного логирования со своей стороны. Тем самым все же, собирая некоторую информацию о картах, в частности 4 последние цифры карты, месяц и год окончания действия карты. Лог с информацией приведенной ниже отправляется по адресу:

Иллюстрация к комментарию
раскрыть ветку 1
0

Вот этот коммент надо в топ.

+2

А нельзя ли заблокировать webvisor или appsee на своем устройстве?

раскрыть ветку 1
+1

Вроде надо рут

+3
Кто прочитал "от и до" ? И понял?
раскрыть ветку 11
+3
Если в кратце, то наябывают, но не так как описал автор изначального поста
+6
Данные банковских карт передеются в БургерКинг, хотя те уверяли, что это не так.

Ни чего нового.

раскрыть ветку 1
+4

Это все таки неполный контекст. Автор первого поста был неправ, данные карт не записываются через экран (хер знает с чего он вообще это взял). Автор этого поста решил проверить еще и другие метрики, в том числе и логи, где увидел данные карты.

+1

Данные о картах все же собирают

0
Читай последние две строчки.
0

Там ничего особо сложного, просто BK добавили от себя функционал, который судя по описанию все же немного прихватил их за жопу

0
В общем. Данные твоей карты всё-таки попадают в логи разработчика, но вероятно они не умышленно это сделали, а во время отладки. Вероятно после таких постов это уберут.
раскрыть ветку 4
+4
после таких постов это уберут
Просто спрячут понадёжнее.
раскрыть ветку 3
+1
http://4pda.ru/forum/index.php?showtopic=882570&view=findpost&p=75073359
Мой пост на 4pda в ветке Бургер Кинг для андроид
раскрыть ветку 1
+1
Пост удалили, тему почистили...
+1
Терпеть не могу фразу: "в общем в этом ничего страшного нет" потому что после нее в жизни все получается именно так, как не хотелось.
0

Нормально на хабре серануло, но могло быть сильнее

0

Данные о карте Бургер Кингу уходят? Уходят. А енто -Мы нечаяно-, выглядит жалко и глупо.

0
Подозреваю, что сейчас может начаться волна разоблачений приложений, тайком сливающих информацию. Будет весело.
0

Ещё раз, даже по скрытию - анекдот про прапора с пустой тачкой. "что-что, ТАЧКУ Я СПИЗДИЛ" - трафик.

0
Притензии к бургеркингу за отсуствия предупреждения слежки. Если я устанавливая приложение не вижу предупреждения о возможности записи экрана и отсыла этой информации на левый сервер, то это как минимум крысятничество.
Если бы при первом запуске приложения была надпись "МЫ ЗАПИСЫВАЕМ ВСЕ ТВОИ ДЕЙСТВИЯ И ОТСЫЛАЕМ СТОРОННЕЙ КОМПАНИИ, НАЖМИ ОК ЕСЛИ СОГЛАСЕН", тогда претензий небыло бы, а так получается они следят за пользователями, но при этом прописали в лицензионном соглашении отказ от ответственности за причинение ущерба, вызваным приложением, но прямо не прописали что собираются сливать инфу сторонней компании.
0

Эту тему сначала тут выложили, а потом уже на хабр!

Нажми "Лучшее" и посмотри ))

https://pikabu.ru/story/prilozhenie_burger_king_tayno_zapisyivaet_yekran_telefona_6021526

0
Так удалять или не удалять?
0

Как хорошо  что у меня его нет

раскрыть ветку 2
+1

придется тебя расстроить, ведь appsee в ооочень многих приложениях есть

раскрыть ветку 1
0

Но как я понял, само по себе это не проблема, суть в том, чем Яндекс.Кассу разбавили в БК?

-1

Дочитал от и до, крч БургерКинг наебал всех, говоря что записи не идут в БургерКинг. Но это якобы неумышленно, ждем продолжения!

-2

вот же вам всем неймется. то телеграм, то бургер. если уж вы все параноики, аааааааааа следят, запоминают, передают. пропадут наши миллиарды евро с карт. совет платите налом.

раскрыть ветку 7
+1
Вы не посчитали? Тут "ааа, бургеркинг сохраняет себе полные данные моей карты, если я ее привязываю, хотя должен только передать их Яндекс.Кассе и всё.
раскрыть ветку 6
-1

и что? дальше то что? там миллиарды лежат? найдете повод и давай. ваши полные данные есть у иностранного владельца платежной системы. вас это не пугает? нет. поднимете ор а чего это они все знают.

раскрыть ветку 5
Похожие посты
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: