Безалаберность пользователей PayPal позволяющая украсть их аккаунт и деньги [Исправлено]

Добрый день, уважаемые коллеги!


Я являюсь пользователем популярного платежного сервиса системы PayPal. Также, по совместительству, являюсь специалистом по технической безопасности в области защиты персональных данных. Хочу рассказать вам, каким образом я обнаружил уязвимость в системе, которая позволяла войти в аккаунт пользователя системы PayPal, а также произвести незаметную смену пароля, и открыть доступ к личному кабинету клиента без его ведома, вывести денежные средства.
image
Итак, приступим…

Начну с того, что я отчасти являюсь и фрилансером, который получает свою премию через сервис PayPal. И вот сидя дома, и проверяя в очередной раз поступления на свой счет PayPal с мобильного телефона у меня возникла проблема с входом в личный кабинет. Я очень часто пользовался системой аутентификации через Touch ID, прикладывая палец и попадая в личный кабинет сервиса. Но в этот раз, по какой-то причине, на моем мобильном телефоне отвалился Touch ID и мне пришлось вспоминать обычный пароль, что составило немало проблем, поскольку он сложный и с мобильного устройства его не ввести. После некоторых безуспешных попыток вспомнить правильный пароль, я решил воспользоваться системой восстановления паролей и вот тут начинается самое интересное! :)

Дело в том, что как и все популярные нынче сервисы, у PayPal есть система восстановления пароля, при этом очень разнонаправленная — мы можем восстановить пароль по почте, указав почту своего аккаунта, можем указать ответ на контрольный вопрос … Но меня в этой опции заинтересовало поле восстановления доступа к учетной записи по «банковской карте».

image
Фото 1 — Варианты восстановления доступов к аккаунту PayPal
(Выше на скриншотах показано поле восстановления доступа к аккаунту через различные варианты)

Почему этот момент меня так зацепил? Ну, потому что я знаю, как люди, по крайней мере в России, относятся к своим персональным данным, совершенно не понимая какие из них можно опубликовывать в сети Интернет, а какие нельзя! Понимая это, я решил провести эксперимент и выяснить, чем это может грозить клиенту — непосредственно мне, ну и заодно остальным пользователям платежного сервиса PayPal.

Для восстановления доступа к учетной записи по номеру банковской карты — сервис показывает нам последние 4 2 цифры номера карты. Возникает закономерный вопрос — как можно узнать полный номер банковской карты клиента? И тут нам на помощь приходят различные банковские сервисы онлайн платежей (про безалаберность людей, оставляющих свои ПДн пока не говорим). О чем речь? Я имею в виду приложения банков, которые люди устанавливают на свои мобильные телефоны, например приложение «СберБанк Online», «ВТБ» и другие. Каким образом злоумышленнику может это помочь? Зная телефон потенциальной жертвы — мы можем частично пробить через приложение номер банковской карты владельца этого телефона. Любезный сервис банка покажет нам «Имя» и «Отчество» владельца карты, а также номер его карты, некоторые символы которого будут закрыты звездочками.

ЗЫ: По моему еще в 2018 или начале 2019 года меня также насторожил тот факт, что банк «ВТБ» в своих терминалах также частично раскрывал персональные данные клиента, если бы вы вставили в терминал найденную кредитную карту, ввели пароль «от балды» и в онке терминала увидели бы приветствие «Здравствуйте, Фамилия Имя Отчество!»… Меня тогда насторожил этот факт.

image
Фото 1 — Приложение СберБанк Online
(Выше показаны скриншоты приложений СберБанк, ВТБ, которые показывают частично информацию о ФИО клиента, и его номере карты)

image

(Выше показан скриншот поиска информации в поисковиках/социальных сетях)
Но и без этого. Данное количество информации помогает нам выявить потенциальную жертву, используя поиск в Интернете, мошеннические сайты, или обычную человеческую невнимательность и доверчивость.

Так вот, почему меня волнует этот момент. Представьте, что злоумышленник выдаст себя за заказчика, которому необходимо разработать сайт. Он ищет фрилансера, через какую-нибудь популярную площадку. Списывается с фрилансером и предлагает ему свои условия, например, предлагает сразу же оплатить ему работу, но взамен просит предоставить номер банковской карты для перевода денег. Вполне обычная, нормальная ситуация. Получая номер банковской карты в полном его «размере», злоумышленнику остается лишь одно — узнать на какую E-mail почту зарегистрирован аккаунт фрилансера. Для этого злоумышленнику достаточно просто вбить по ссылке восстановления доступа E-mail почту жертвы и убедиться что сервис увидел его почту, после чего мы просто выбираем опцию восстановления доступа к аккаунту жертвы не через почту, а уже через ввод номера банковской карты и… И мы получаем полный доступ к личному кабинету клиента PayPal!

image
Фото 1 — Проверяем, что полученный E-mail есть в системе PayPal
Фото 1.1 — видим подтверждение, или видим отказ системы

image
Фото 2 — Меняем способ восстановления с E-mail на номер банковской карты

image
Фото 2.1 — Убеждаемся, что указанный жертвой номер карты соответсвует привязанному в аккаунте по последним 2–4 символам.
(Выше представлен пример того, как можно выявить соответствие почты E-mail и привязки к ней банковской карты, указанной фрилансером)

После того, как злоумышленник убедится в том, что эти данные достаточные и они соответствуют тому, что нам показывает сам сервис PayPal — злоумышленник попросту заходит в систему, и при этом ставит свой пароль. При этом все эти действия не отображаются на почте жертвы. Видимо сервис полагает, что раз вы указываете номер карты то это 100% их клиент, а не злоумышленник, и просто не отправляет на почту информацию о смене пароля. Это чревато последствиями.

image
Фото 1 — Заходим в систему восстановления доступа к аккаунту PayPal

image
Фото 2 — Указываем способ восстановления по номеру банковской карты

image
Фото 3 — Вводим номер банковской карты

image
Фото 4 — Меняем пароль аккаунта PayPal

image
Фото 5 — Заходим в аккаунт PayPal потенциальной жертвы
(На скриншотах показаны этапы беспрепятственного получения доступа к аккаунту PayPal)

DONE! Для такого «взлома» не потребовалось использовать дополнительных стредств. Вся информация выявляется либо через стандартные сервисы, либо попросту из открытых источников =(

Как вы можете убедиться, мы без особого труда, используя лишь доступную из открытых источников информацию и сервисы, смогли войти в аккаунт пользователя платежной системы PayPal, увидеть его счет, информацию о поступлениях (от куда, сколько, и когда), которая должна защищаться банковской тайной. Без ведома владельца аккаунта мы смогли сменить его пароль.
Также мы смогли получить доступ к настройкам профиля пользователя, и в этих настройках мы можем посмотреть персональные данные клиента, где он живет, и самое важное — мы можем сменить почту E-mail аккаунта, на которую приходят уведомления о переводах. Да, тут конечно без замусоривания основной почты владельца не обойтись — иначе он сможет увидеть письмо системы, в котором говорится что его основной логин сменен на другой, но из-за спама это можно и не заметить, верно?

Если мы сменим почту аккаунта, в таком случае, при осуществлении мошенником снятия/перевода денежных средств жертвы на другой счет сервиса — уведомление системы, в котором говорится «Здравствуйте, Клиент! Мы переводим средства на другой счет … в размере…» увидим только мы, а жертва не будет знать о том, что его деньги пропали, пока не попытается войти в свой аккаунт, что у него сразу не получится, к тому времени деньги уже могут быть выведены из системы на какие-либо подставные счета мошенников.

Почему меня так сильно волнует эта проблема, спросите вы? Да, я даю себе отчет о том, что люди, у которых на счетах PayPal могут находиться большие суммы, скорее всего лучше защищают сведения о своих персональных данных, знают, как их хранить и какими законами они защищаются, чтобы оперировать этим в компаниях, которые потенциально могут «засветить» эти данные каким-либо образом в сети Интернет, или передать их 3-м лицам, у которых потом эти данные могут утечь… Да, я с вами совершенно согласен. Но, если взглянуть повнимательнее, то системой PayPal пользуются много людей, простых и не совсем дружащих с Информационными технологиями — просто появились срочные обстоятельства, по которым им приходится завести аккаунт и получать на него средства.

Когда я разбирался, каким образом можно выявлять необходимые E-mail адреса, номера мобильных телефонов, номера банковских карт… Вы не поверите — в какой то момент я попросту вбил в одной популярной социальной сети поисковый запрос следующего характера: «E-mail PayPal номер банковской карты» и в поисковой выдачи получил сотни таких данных, которые злоумышленники могут просто брать, копировать, вставлять и пользоваться той схемой взлома, которую я описал выше.

image
Фото 1 — вводим запрос в поисковую сеть в ВКонтакте. Не буду выкладывать остальные скриншоты — вы сами можете это проверить. Не думаю, что такое просто отношение к своим персональным данным только у жителей России, полагаю, что такая же проблема есть и в других странах…

(На скриншотах показано как много информации с конкретными данными счетов, карт, E-mail, можно легко и просто получить из открытых источников в Интернете)

Большинство таких данных публикуют не задумываясь люди, которые собирают средства на лечение своих детей, родственников, любимых питомцев. Эти люди, и это вполне понятно, не задумываются о безопасности своего аккаунта PayPal — для них на первом месте спасти жизнь. Понимая это, я считаю, что сервис PayPal должен изменить подход к восстановлению доступа к учетной записи посредством указания номера банковской карты. Помимо номера банковской карты, было бы разумно отправлять запрос с «кодом» на почту или телефон клиента.
Это поможет вовремя выявить попытки мошенников получить доступ к аккаунту, возможно даже выявить реально действующих таких мошенников на текущий момент (если для них это станет неожиданностью и за их действиями можно будет проследить).

Что следует предпринять пользователям для усиления безопасности пользователей PayPal:
1. Включить двухфакторную авторизацию в аккаунте.
2. Не выкладывать в открытом доступе в сети Интернет номера карт, E-mail, которые привязаны к вашему аккаунту PayPal.
3. Не публикуйте в социальных сетях, форумах и мессенджерах открыто свои персональные данные.
4. Использовать E-mail почту, которую нигде кроме сервиса PayPal не указывалась (неизвестна никому кроме вас).
Что следует предпринять сервису для усиления безопасности пользователей PayPal:
1. При использовании функции восстановления доступа к аккаунту через указание банковской карты — внедрить дополнительную отправку кода подтверждения на почту клиента или на мобильный номер, после подтверждения которого уже разрешать менять пароль на новый.
2. Информировать клиента о попытке сменить пароль от аккаунта на почту.
3. Информировать клиента о изменениях в учетной записи — в том числе сообщать об изменении E-mail, ФИО, номеров реквизитов.

Данный отчет был написан 31.12.2019 года. Со службой поддержки PayPal с 26 декабря были безуспешные попытки связаться — получил лишь отписку, что со мной свяжутся специалисты технического отдела, но они так и не связались.

UPD: По состоянию на 13.01.2020 данную уязвимость исправили.

Полезные ссылки по данной проблеме от другого специалиста в области ИБ, который обнаружил схожу проблему, позволяющую украсть логин и пароль пользователя PayPal [Читать…]

© Habrahabr.ru