Добрый день, уважаемые коллеги!
Я являюсь пользователем популярного платежного сервиса системы PayPal. Также, по совместительству, являюсь специалистом по технической безопасности в области защиты персональных данных. Хочу рассказать вам, каким образом я обнаружил уязвимость в системе, которая позволяла войти в аккаунт пользователя системы PayPal, а также произвести незаметную смену пароля, и открыть доступ к личному кабинету клиента без его ведома, вывести денежные средства.
![image](https://habrastorage.org/getpro/habr/post_images/518/493/770/518493770a80323240e19ddd5b17506e.jpg)
Итак, приступим…
Начну с того, что я отчасти являюсь и фрилансером, который получает свою премию через сервис PayPal. И вот сидя дома, и проверяя в очередной раз поступления на свой счет PayPal с мобильного телефона у меня возникла проблема с входом в личный кабинет. Я очень часто пользовался системой аутентификации через Touch ID, прикладывая палец и попадая в личный кабинет сервиса. Но в этот раз, по какой-то причине, на моем мобильном телефоне отвалился Touch ID и мне пришлось вспоминать обычный пароль, что составило немало проблем, поскольку он сложный и с мобильного устройства его не ввести. После некоторых безуспешных попыток вспомнить правильный пароль, я решил воспользоваться системой восстановления паролей и вот тут начинается самое интересное! :)
Дело в том, что как и все популярные нынче сервисы, у PayPal есть система восстановления пароля, при этом очень разнонаправленная – мы можем восстановить пароль по почте, указав почту своего аккаунта, можем указать ответ на контрольный вопрос … Но меня в этой опции заинтересовало поле восстановления доступа к учетной записи по «банковской карте».
![image](https://habrastorage.org/getpro/habr/post_images/25f/0bb/914/25f0bb914708912082a0d5e6dbad263d.jpg)
Фото 1 – Варианты восстановления доступов к аккаунту PayPal
(Выше на скриншотах показано поле восстановления доступа к аккаунту через различные варианты)
Почему этот момент меня так зацепил? Ну, потому что я знаю, как люди, по крайней мере в России, относятся к своим персональным данным, совершенно не понимая какие из них можно опубликовывать в сети Интернет, а какие нельзя! Понимая это, я решил провести эксперимент и выяснить, чем это может грозить клиенту – непосредственно мне, ну и заодно остальным пользователям платежного сервиса PayPal.
Для восстановления доступа к учетной записи по номеру банковской карты – сервис показывает нам последние 2 цифры номера карты. Возникает закономерный вопрос – как можно узнать полный номер банковской карты клиента? И тут нам на помощь приходят различные банковские сервисы онлайн платежей (про безалаберность людей, оставляющих свои ПДн пока не говорим). О чем речь? Я имею в виду приложения банков, которые люди устанавливают на свои мобильные телефоны, например приложение “СберБанк Online”, «ВТБ» и другие. Каким образом злоумышленнику может это помочь? Зная телефон потенциальной жертвы – мы можем частично пробить через приложение номер банковской карты владельца этого телефона. Любезный сервис банка покажет нам «Имя» и «Отчество» владельца карты, а также номер его карты, некоторые символы которого будут закрыты звездочками.
ЗЫ: По моему еще в 2018 или начале 2019 года меня также насторожил тот факт, что банк «ВТБ» в своих терминалах также частично раскрывал персональные данные клиента, если бы вы вставили в терминал найденную кредитную карту, ввели пароль «от балды» и в окне терминала увидели бы приветствие «Здравствуйте, Фамилия Имя Отчество!»… Меня тогда насторожил этот факт.
![image](https://habrastorage.org/getpro/habr/post_images/df4/46b/d84/df446bd84aa2278fc252f68622ea417e.jpg)
Фото 1 – Приложение СберБанк Online
(Выше показаны скриншоты приложений СберБанк, ВТБ, которые показывают частично информацию о ФИО клиента, и его номере карты)
![image](https://habrastorage.org/getpro/habr/post_images/073/2e4/8e5/0732e48e57b4b5fb62492b0519107017.jpg)
(Выше показан скриншот поиска информации в поисковиках/социальных сетях)
Но и без этого. Данное количество информации помогает нам выявить потенциальную жертву, используя поиск в Интернете, мошеннические сайты, или обычную человеческую невнимательность и доверчивость.
Так вот, почему меня волнует этот момент. Представьте, что злоумышленник выдаст себя за заказчика, которому необходимо разработать сайт. Он ищет фрилансера, через какую-нибудь популярную площадку. Списывается с фрилансером и предлагает ему свои условия, например, предлагает сразу же оплатить ему работу, но взамен просит предоставить номер банковской карты для перевода денег. Вполне обычная, нормальная ситуация. Получая номер банковской карты в полном его «размере», злоумышленнику остается лишь одно – узнать на какую E-mail почту зарегистрирован аккаунт фрилансера. Для этого злоумышленнику достаточно просто вбить по ссылке восстановления доступа E-mail почту жертвы и убедиться что сервис увидел его почту, после чего мы просто выбираем опцию восстановления доступа к аккаунту жертвы не через почту, а уже через ввод номера банковской карты и… И мы получаем полный доступ к личному кабинету клиента PayPal!
![image](https://habrastorage.org/getpro/habr/post_images/327/27d/110/32727d1106f80bd015a791c9295dd26e.jpg)
Фото 1 – Проверяем, что полученный E-mail есть в системе PayPal
Фото 1.1 – видим подтверждение, или видим отказ системы
![image](https://habrastorage.org/getpro/habr/post_images/25f/0bb/914/25f0bb914708912082a0d5e6dbad263d.jpg)
Фото 2 – Меняем способ восстановления с E-mail на номер банковской карты
![image](https://habrastorage.org/getpro/habr/post_images/f44/85a/d6c/f4485ad6cc572630fbcb1dd0c9d42888.jpg)
Фото 2.1 – Убеждаемся, что указанный жертвой номер карты соответсвует привязанному в аккаунте по последним 2-4 символам.
(Выше представлен пример того, как можно выявить соответствие почты E-mail и привязки к ней банковской карты, указанной фрилансером)
После того, как злоумышленник убедится в том, что эти данные достаточные и они соответствуют тому, что нам показывает сам сервис PayPal – злоумышленник попросту заходит в систему, и при этом ставит свой пароль. При этом все эти действия не отображаются на почте жертвы. Видимо сервис полагает, что раз вы указываете номер карты то это 100% их клиент, а не злоумышленник, и просто не отправляет на почту информацию о смене пароля. Это чревато последствиями.
![image](https://habrastorage.org/getpro/habr/post_images/dbe/4f5/e58/dbe4f5e58087a90d2c5a0dbf92948846.jpg)
Фото 1 – Заходим в систему восстановления доступа к аккаунту PayPal
![image](https://habrastorage.org/getpro/habr/post_images/25f/0bb/914/25f0bb914708912082a0d5e6dbad263d.jpg)
Фото 2 – Указываем способ восстановления по номеру банковской карты
![image](https://habrastorage.org/getpro/habr/post_images/102/198/f8b/102198f8b5906afab7c1cbaaa20bb9c9.jpg)
Фото 3 – Вводим номер банковской карты
![image](https://habrastorage.org/getpro/habr/post_images/6b6/35f/940/6b635f940ddb72fdcb5299c41f69139b.jpg)
Фото 4 – Меняем пароль аккаунта PayPal
![image](https://habrastorage.org/getpro/habr/post_images/7f8/80b/1fb/7f880b1fbf81686aea2162156bf1fe2f.jpg)
Фото 5 – Заходим в аккаунт PayPal потенциальной жертвы
(На скриншотах показаны этапы беспрепятственного получения доступа к аккаунту PayPal)
DONE! Для такого «взлома» не потребовалось использовать дополнительных стредств. Вся информация выявляется либо через стандартные сервисы, либо попросту из открытых источников =(Как вы можете убедиться, мы без особого труда, используя лишь доступную из открытых источников информацию и сервисы, смогли войти в аккаунт пользователя платежной системы PayPal, увидеть его счет, информацию о поступлениях (от куда, сколько, и когда), которая должна защищаться банковской тайной. Без ведома владельца аккаунта мы смогли сменить его пароль.
Также мы смогли получить доступ к настройкам профиля пользователя, и в этих настройках мы можем посмотреть персональные данные клиента, где он живет, и самое важное – мы можем сменить почту E-mail аккаунта, на которую приходят уведомления о переводах. Да, тут конечно без замусоривания основной почты владельца не обойтись — иначе он сможет увидеть письмо системы, в котором говорится что его основной логин сменен на другой, но из-за спама это можно и не заметить, верно?
Если мы сменим почту аккаунта, в таком случае, при осуществлении мошенником снятия/перевода денежных средств жертвы на другой счет сервиса – уведомление системы, в котором говорится «Здравствуйте, Клиент! Мы переводим средства на другой счет … в размере …» увидим только мы, а жертва не будет знать о том, что его деньги пропали, пока не попытается войти в свой аккаунт, что у него сразу не получится, к тому времени деньги уже могут быть выведены из системы на какие-либо подставные счета мошенников.
Почему меня так сильно волнует эта проблема, спросите вы? Да, я даю себе отчет о том, что люди, у которых на счетах PayPal могут находиться большие суммы, скорее всего лучше защищают сведения о своих персональных данных, знают, как их хранить и какими законами они защищаются, чтобы оперировать этим в компаниях, которые потенциально могут «засветить» эти данные каким-либо образом в сети Интернет, или передать их 3-м лицам, у которых потом эти данные могут утечь… Да, я с вами совершенно согласен. Но, если взглянуть повнимательнее, то системой PayPal пользуются много людей, простых и не совсем дружащих с Информационными технологиями – просто появились срочные обстоятельства, по которым им приходится завести аккаунт и получать на него средства.
Когда я разбирался, каким образом можно выявлять необходимые E-mail адреса, номера мобильных телефонов, номера банковских карт… Вы не поверите – в какой то момент я попросту вбил в одной популярной социальной сети поисковый запрос следующего характера: «E-mail PayPal номер банковской карты» и в поисковой выдачи получил сотни таких данных, которые злоумышленники могут просто брать, копировать, вставлять и пользоваться той схемой взлома, которую я описал выше.
![image](https://habrastorage.org/getpro/habr/post_images/ec8/90f/be7/ec890fbe7e943a270a6cf071125cd4ef.jpg)
Фото 1 – вводим запрос в поисковую сеть в ВКонтакте. Не буду выкладывать остальные скриншоты — вы сами можете это проверить. Не думаю, что такое просто отношение к своим персональным данным только у жителей России, полагаю, что такая же проблема есть и в других странах…
(На скриншотах показано как много информации с конкретными данными счетов, карт, E-mail, можно легко и просто получить из открытых источников в Интернете)
Большинство таких данных публикуют не задумываясь люди, которые собирают средства на лечение своих детей, родственников, любимых питомцев. Эти люди, и это вполне понятно, не задумываются о безопасности своего аккаунта PayPal – для них на первом месте спасти жизнь. Понимая это, я считаю, что сервис PayPal должен изменить подход к восстановлению доступа к учетной записи посредством указания номера банковской карты. Помимо номера банковской карты, было бы разумно отправлять запрос с «кодом» на почту или телефон клиента.
Это поможет вовремя выявить попытки мошенников получить доступ к аккаунту, возможно даже выявить реально действующих таких мошенников на текущий момент (если для них это станет неожиданностью и за их действиями можно будет проследить).
Что следует предпринять пользователям для усиления безопасности пользователей PayPal:
- Включить двухфакторную авторизацию в аккаунте.
- Не выкладывать в открытом доступе в сети Интернет номера карт, E-mail, которые привязаны к вашему аккаунту PayPal.
- Не публикуйте в социальных сетях, форумах и мессенджерах открыто свои персональные данные.
- Использовать E-mail почту, которую нигде кроме сервиса PayPal не указывалась (неизвестна никому кроме вас).
Что следует предпринять сервису для усиления безопасности пользователей PayPal:Данный отчет был написан 31.12.2019 года. Со службой поддержки PayPal с 26 декабря были безуспешные попытки связаться — получил лишь отписку, что со мной свяжутся специалисты технического отдела, но они так и не связались.
- При использовании функции восстановления доступа к аккаунту через указание банковской карты – внедрить дополнительную отправку кода подтверждения на почту клиента или на мобильный номер, после подтверждения которого уже разрешать менять пароль на новый.
- Информировать клиента о попытке сменить пароль от аккаунта на почту.
- Информировать клиента о изменениях в учетной записи – в том числе сообщать об изменении E-mail, ФИО, номеров реквизитов.
UPD: По состоянию на 13.01.2020 данную уязвимость исправили.
Полезные ссылки по данной проблеме от другого специалиста в области ИБ, который обнаружил схожую проблему, позволяющую украсть логин и пароль пользователя PayPal [Читать...]