camellol

camellol

пикабушник
пол: мужской
поставил 14303 плюса и 5619 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
15К рейтинг 3664 комментария 20 постов 5 в "горячем"
1 награда
5 лет на Пикабу
34

Разбираемся, что записывает, а что не записывает приложение 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/

Показать полностью 1
-10

Помогите найти гифку

покадрово:

ночь, тьма

НЕХ пробегает справа налево на руках и ногах, попадая в свет фонаря, затем, когда фонарь поворачивается налево, вслед, эта нех одновременно забавно и крипово бежит в камеру.

нейросеть гифку не нашла (видимо запрос корявый).

комментарии для минусов внутри

У «Пикабу» будет своя банковская карта, и вы можете выбрать ее уникальный дизайн

У «Пикабу» будет своя банковская карта, и вы можете выбрать ее уникальный дизайн Длиннопост

У каждого большого классного сообщества должны быть свой маскот и свой мерч. А что, если бы еще была своя дебетовая карта с уникальным дизайном? Вместе с «Тинькофф Банком» мы планируем выпустить такую карту — специально для пикабушников.


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


Почему именно «Тинькофф Банк»?

Потому что у «Тинькофф Банка» есть крутая дебетовая карта Tinkoff Black. Хороший кешбэк в рублях, процент на остаток каждый месяц, партнерские предложения и акции, удобное мобильное приложение. Если вы никогда не слышали о карте Tinkoff Black, прочитайте о ее преимуществах в этом посте, и сразу поймете, почему мы выбрали именно ее.

У «Пикабу» будет своя банковская карта, и вы можете выбрать ее уникальный дизайн Длиннопост

А кроме плюшек самой карты и уникального дизайна что-то есть?

Есть. От «Тинькофф Банка» вы получите полгода бесплатного обслуживания карты, а от нас — набор пикабушных стикеров с Печенькой (они отлично смотрятся на ноутбуках и чехлах для смартфонов).


Окей, как я могу предложить свой дизайн?

Прислать прямо нам на почту editorial@pikabu.ru. Опишите свою идею словами или нарисуйте, если вам так проще. Умеете рисовать только схематично карандашом на бумаге — сгодится! Словом, предлагайте вашу идею так, как вам удобнее. Главное, чтобы задумка была понятна. Присылая нам свою идею, вы соглашаетесь, что она будет участвовать в конкурсе. А полные правила страшным языком вот тут по ссылке.

У «Пикабу» будет своя банковская карта, и вы можете выбрать ее уникальный дизайн Длиннопост

Но как вы узнаете, по каким идеям рисовать макеты карт?

Мы возьмем все предложенные идеи, отрисуем по ним макеты и добавим их к нашим вариантам. Когда все будет готово, мы устроим всепикабушное голосование за лучший дизайн карты.


А карту можно предзаказать?

Да! И даже нужно. Мы ведь должны понимать, сколько людей хотят получить себе такой драгоценный артефакт, как банковская карта с Печенюхой! Чтобы приступить к выпуску карты, нам нужно собрать хотя бы 1001 предзаказ.

У «Пикабу» будет своя банковская карта, и вы можете выбрать ее уникальный дизайн Длиннопост

Но у меня уже есть карта Tinkoff Black. Я в пролете?

Нет. Вы можете дождаться, когда выйдет карта «Пикабу», и перевыпустить свою Tinkoff Black в новом дизайне. Ну или выпустить ее в качестве дополнительной карты, как хотите. В любом случае вы ничего не потеряете.


Ладно, вы меня убедили, предзаказываю. Куда нажимать?

Показать полностью 3
Отличная работа, все прочитано!