Уязвимость Монобанка 3D Secure

И так, сегодня мы поговорим о прекрасном банке как МоноБанк. Все в нем прекрасно кроме 1 уязвимости, которая мною была обнаружено.

Один раз, оплачивая заказ или совершая перевод денег, заметил одну особенность: МоноБанк не требует смс, а только приходит подтверждение на смартфон! При этом не пишет за что мы платим, или кому переводим деньги, Это мы должны видеть на странице 3DS — Acs,но и там нет такого!

Это ввело меня в заблуждение, ведь страницу Acs можно спокойно подделать, и написать там все что угодно.
Наш поиск начинается с того, что мы ищем P2P сервис который подходит, поиски долго не затянулись, и подходящими оказались 2 банка имеющие перевод с карты на карту:

  1. Первый называть не вижу смысла, так как там все относительно нормально, и мы его использовать не будем.
  2. Со вторым все интересней — у этого банка уровень безопасности на уровне очень хорошего начинающего пользователя.

https://p2p.********.ua/ я думаю, что желающие быстро найдут данный сервис.

Начинаем изучать сервис:
Нам нужно отправить «номер карты» + "дата"+"месяц"+"cvv2″, после чего мы получаем все необходимое для того чтобы перейти на 3DS.
На этом и закончилось так как антифроунд, при том как заметит, что транзакция была инициирована с 1 ИП, а смс с другого отменит транзакцию (ну и еще есть 1000 факторов), но Котикбанк решил защитить клиентов, и не использовать смс для подтверждения 3DS, и даже хвастается этим:

Усиленный 3D Secure — подтверждение платежей. Без необходимости использовать незащищенный канал SMS-сообщений. Подтверждайте транзакции через защищенный канал связи с приложением.

В отличие от всемирной практики присылать подтверждение в виде кода, Монобанк сделали кнопки ‘Оплатить’ и ‘Отменить платеж’. Так сказать ‘молодые, юные и зеленные’...

При этом, многие перешли с Приватбанка, однако новый функционал всегда будет сырым.

Решил я взять свою карту, пробую сделать транзакцию. Для большей убедительности будем делать все через прокси, чтобы ip-адрес был другой, от которого обычно происходит оплата, берем прокси, и пишем класс для оплаты:
На входе он принимает с какой карты и на какую карту нам нужно перекинуть средства, ну ок.
Теперь смотрим: антифроуд работает на отлично, и отклоняет такие платежи, даже если юзер нажал окей...... вроде как все очень безопасно и классно, но есть 1 но:

  1. Косяк это (на мой взгляд) Это CheckPIN метод, который есть у МоноБанка — он позволяет узнать когда пользователь уже нажал окей, запустить ряд процедур которые позволят как раз осуществить платеж уже без ведома клиента, если он нажмет ‘Оплатить’.
  2. Вообще эта задумка использовать подтверждение в приложении

На текущем этапе я уже научился чекать, когда юзер нажал на кнопку оплатить, и мы уже можем переходить дальше к запуску процедуры по снятию денег с карты.

Теперь нам осталось только получить токен, который отправляться POST.
PaRes и MD параметры возвращаем их на https://p2p.******.ua/index.php?mode=secure
Итог — деньги с карты списаны!!!

Не странно, что мы смогли без проблем провести платеж на ресурсе без PCI DSS?! И по итогу, такая форма может быть вставлена на любой сайт! Сайт — однодневку, где продают популярную технику или еще что-то, чем могут ввести человека в заблуждение.
Сами уведомления не особо информативны, и проблема в том, что сам банк интуитивно подсказывает, что это оплата в ИМ банк не пишет, о том, что это перевод с карты на карту. Хотя, для сравнения, любой другой банк присылает что это CARD2CARD

И так в чем это опасно для конечного пользователя

  1. Банк думает, что вы совершаете p2p перевод, и я думаю что доказать, что это был обман очень не просто — причина банальна, для всех вы сделали p2p платеж и согласились с правилами которые и не видели и не читали (Хотя вы можете на самом деле покупать какой-нибудь Iphone xs red за 3200 грн)
  2. Банк в попытке вашей защиты создал уязвимость.
  3. Некоторые банки просто не пекутся о своей безопасности, точней о безопасности клиентов (тут идет речь не о Монобанке, а о банке через который проводился p2p платеж)

По итогу, к сожалению, мы видим тенденцию, что не Монобанк, не С*** банк не хочет предотвращать мошенничество с использованием их сервисов, в ведь это их вина. При общении с монобанком мне тактично был дан ответ, что они не видят в этом проблемы своей стороны, а видят исключительно проблему 2 банка, хотя, хочу заметить такую особенность — это можно провернуть с любой p2p и монобанком. На все тесты мне понадобилось всего 2-3 часа.

Данная статья имеет технический характер, и некоторые моменты с неё может понять и обыватель, но сложно, возможно, что технически немного неграмотно, но хотелось по скорей предупредить, и чтобы оба банка имели мотивацию как можно скорей устранить этот баг.
И под конец хочу напомнить, что к сожалению в СНГ пользователь может только сам обеспечьте свою финансовую безопасность. Будьте бдительны, и не вбивайте свои карты на разные не знакомые ресурсы!

Спасибо за внимание!

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Хочу додати, що в загальному випадку 2FA через незалежну верифікацію фактору (підтвердження в додатку) це краще ніж верифікація через повідомлення, оскільки завжди існує шанс фішингу самої форми для введення коду з смс.
Конкретно з банками я не бачу як фішинг коду може допомогти зловмиснику, оскільки конкретний код підтверджує конкретний платіж і отримувача підмінити не вийде, але все ж незалежний фактор це перевага, а не недолік, особливо, якщо узагальнювати на більш прості сервіси де 2FA використовується для логіну в систему (github, пошта, ...).

ТС еще не тестировал оплату на амазоне. там вообще хватит только номера карты и срока действия, никаких подтверждений, никакого 3ds, без смс и регистрации
Чувак, реально пости всем банкам уязвимость, амазон же списывает деньги просто так!

И booking. А есть места где всё ещё слипы катают.

Сотрудники банков, которые тут начали отписываться. Даю вам бесплатный, но очень полезный совет: закройте свой рот, уберите руки от клавиатуры и перешлите ссылку на этот топик в отдел безопасности, юристам и public relations вашего банка. Там знают что с этой инфой делать.

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

Даю тоже бесплатный совет, не нужно рассказывать другим людям что и где делать, а тем более говорить «закрыть рот» (это очень оскорбляет), и управляйте только вашими поступками и поступками ваших подчиненных. Автор по незнанию ряда моментов сделал поспешные выводы и кстати, уже с ним пообщались по деталям работы 3дс и он согласился что не знал некоторых моментов. Никто автора не оскорблял (тут в коментах только 2 человека связаны с банком) и как раз по вашему варианту, когда на человека набрасывается СБ и юристы никто идти не собирался. Как писал автор, он выложил свои аргументы, мы свои. Я надеюсь мы его убедили и еще ряд людей, которые не предвзято относятся к информации.

Чувак ты присунул сайт однодневку через который совершается платеж и жалуешься что кто аппрувает покупку на нем?
В тексте сплошная каша и куча эмоций, я ни хрена не понял.

КГ/АМ

расходимся

Автор, займись изучением русского языка.

Не ради холивара или оскорбления, но автор понимает что он сделал и в чем тут уязвимость?
Как смс с кодом подтверждения изменит эту ситуацию?
Если верить комментариям ниже, сам банк даже в теории не может знать информацию о платеже помимо суммы списания.
Описанная вами ситуация уж слишком походит на «ко мне подошел алкаш и попросил денег, я ему дал, это мошенничество!»
В чем проблема вообще встроить форму на сайт, которая просто сохраняет номер карточки, дату и cvv а потом пытаться сделать n переводов?

позволят как раз осуществить платеж уже без ведома клиента, если он нажмет ‘Оплатить’.

так без ведома или когда нажмет «Оплатить»?

имелось введу что без ведома того что это p2p

Хмм, банк без PCI-DSS имеет уязвимость и игнорирует ее? Вот это поворот!

На этапе 3ds проверки банку не передается назначение платежа и прочие детали по сути транзакции, и это проблема протокола, которую банк решить не может. В обычном банке по этому и присылают СМС со словами «подтвердите списание Х денег» без уточнения за что. Уже внедряется по всему миру 3ds версии 2.0, но пока ее начнут поддерживать все торговцы потребуется много времени. И давайте больше деталей людям, что вы обратились в банк в 3 ночи этого же дня и уже сделали заключение что банк не реагирует.. и тут же настрочили статью, где сказали что банк не реагирует. На счет того, что можно списать деньги, если клиент нажал на кнопку «Списать» вообще эпичная уязвимость. Коллеги уже расписывали технические детали www.facebook.com/...​rmalink/1351899571586246 Учите матчасть.

Забыл что группа закрытая, продублирую для тех кто не в бета группе
т.к. ссылка ведет на закрытую группу тестировщиков Моно, напишем пост в ответ на это сообщение :
Доброго времени суток, т.к. #monobank честный и открытый банк, и идет на встречу своим клиентам и тестировщикам в первую очередь, я постараюсь объяснить причину с технической точки зрения почему все банки в мире не показывают комиссии в интернете «ДО» самой операции в смс или Push, и как можно такую комиссию увидеть клиенту.

ЛайфХак, убрал из-за ошибок, как исправим сделаю дополнительную инструкцию. сорри

Я постараюсь по максимуму опустить банковские термины, что б было больше понятных слов.

Когда вы пытаетесь что либо совершить в интернете с банковской карточкой, банк даже не догадывается о ваших действиях.
После того как вы что-то выбрали и решили сделать, обычно это интернет магазин или какие-то сервисы по переводу денег, магазин если сертифицирован на 3Ds, отправляет в банк запрос — звучит он так:

Магазин : Это ваш клиент?
Банк : Да\Нет
Магазин : Ваш клиент хочет потратить 1000 грн, можно?
Банк: Уважаемый Иван, вы хотите что-то приобрести в магазине на 1000 грн?
Иван: Да конечно.
Банк : Магазину — Да, можно.

как это выглядит технически:
1.0.2
537********XXX
529090 ME0141 UAPAY
804

MTUxMDMyMXXXXXX
20171112 10:01:20
1 0000.00
100000
980
2

900004/

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

в 99% случаях эта операция покупка, т.е. обычная покупка как это б была покупка продуктов в магазине или одежды, тогда комиссии нет.
Какой товар или услугу вы покупаете банку тоже не известно, магазин эту информацию банку не передает и не должен по стандарту 3Дс.
Но магазин присылает операцию списания как Р2Р (Перевод средств, с атрибутами интернет перевода), т.к. данная операция относится к снятию наличных, на нее работают правила комиссий выдачи наличных ,т.е. 4% за кредитные средства.

Если совсем кратко, то ситуация вот такая.

Я постараюсь по максимуму опустить банковские термины, что б было больше понятных слов.
  • что в банковских терминах не понятно? Словари в помощь?
  • вы уверены что с вашей адаптацией понятнее? Может именно для этого и вводили термины чтоб реально понятнее было?

Это не мой пост, я просто скопировал текст для тех, кто не из группы фейсбук.

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

тут дело в том, что в протоколе Vereq/Pareq банк не знает какая будет операция (перевод, или покупка) в протоколе этого нет.

некоторые банки все-же намекают юзерам что они делают p2p
i.ibb.co/...​o-2019-05-31-14-25-36.jpg

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

вверху описанное моё мнение тут ваше, Хайпонутся значит получить гешефт извините но в чем где-то есть реклама или что ? Я просто предупредил пользователей так как именно эта уязвимость касается держателей карт моно

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

Вы написали много чего, можно уязвимость описать? в чем она заключается? в пуше вместо смс?

со стороны монобанка в пуще вместо смс хотя смс есть

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

Потому что он не информативный и корзина сверху может ввести в заблуждения пользователя который доверяет банку...... Хотя после вашей реакции их станет меньше в этом я уверен точно

я правильно понял, что вы доверяете смс больше чем приложению банка?
По уязвимость и информация в пуш сообщение (разные вещи), пуш на сколько мне известно дорабатывается очень часто, и все просьбы клиентов, что б им было проще внедряются, и ваш комментарий по содержанию пуша, тоже не пройдет стороной.
Уязвимость для банка предусматривает вывод средств клиента без согласие на это самим клиентов, извините, но я не вижу такой уязвимости, без согласия на пуш, не пройдет транзакция. или я что-то не правильно понял?

«Не нужно делать тяжелых операций» — что вы имели ввиду?

дело не в доверии вы считаете меня врагом..... почему не понимаю.... обвиняете меня в хайпе если вы сотрудник банка то мне очень жаль и надеюсь что вы повысите уровень своего профессионализма, как и я уровень оценки угроз, я больше не буду отвечать на ваше сообщения по 1 простой причине, я вчера предложил оператору предоставить исходный код написанный на коленки для анализа вашей СБ а также на что мне дан был ответ что у нас нет проблем ну нет так нет, я решил предупредить юзеров, на что набежали вы сотрудники банка, и конструктива не получилось, ну и ладно по желанию я могу изменить заголовок, однако хочу напомнить что маленькая уязвимость которая вроде как не несет вреда можно при определенном подходи превратиться в очень серьёзную, Вы молодой и прекрасный банк в плане тарифов и услуг, но с отзывчивостью стоит вам еще поработать

Даже не мечтайте о разрыве договора, только если сами захотите разорвать или совершите преступление. Критику мы всегда приветствуем, только я уже писал в чем именно ваша поспешность, в ультимативности суждения при недостатке теории, хотя могли выйти на компетентных людей и спросить как все устроено перед тем как оскорблять людей которые работают в банке и «не хотят закрывать свои уязвимости». Экранчик 3дс с кнопкой подтверждения имеет на порядок больше степеней защиты чем код из смс, и его нельзя подделать даже перехватывая трафик между телефоном с сервером банка, в отличии от смс подтверждения. Я за пару лет работы в банке разговаривал с сотней разных клиентов и не только, которые считали что есть -то уязвимости и 2 раза они действительно были, за что отблагодарили людей. Тем кто ошибался спокойно пояснил что и как и если проблемы, то рассказал о компенсаторных методах (т.к. не все можно поменять в этой жизни и есть вещи которые зависят не от нас) . И вы не описали главного, в чем уязвимость. То что можно подсунуть п2п платеж вместо покупки? Так это описали, что не можем знать по протоколу 1.0. Или что, после подтверждения платежа его можно совершить? Так это уже не важно, мы получили добро от клиента на списание конкретной суммы и конкретному продавцу. Конечно есть проблема с серыми эквайерами, но она не в рамках 3дс, а в рамках всей платежной системы. Но если какой-то эквайер будет чудить — его оштрафуют и деньги по мошенническим операциям вернут (что происходит регулярно во всем мире). А рекламируете вы себя, и не нужно выкручиваться, что затеяли этот перфоманс ради спасения душ всех, а не ради собственного пиара. Если хотите продолжить диалог где либо, меня можно найти как в facebook так и через сопровождение можно получить мои контакты.

Ну конечно и где реклама ? кто я знает только сам банк !

Этого бы всего не было если-бы оператор принял и передал в отдел и он предоставил ответ с наличием аргументов и все !

Оператор и так все передал в 8 утра, вы обратились в поддержку сегодня в 03:33:55 утра а уже в 9:45 была статья. Вам серьезно нужен был ответ? А теперь вы пишите в форме «а всего этого можно было бы избежать!!!» Так же не очень красиво, согласитесь.

какой я ответ получил от оператора ? можете тут опубликовать ?

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

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

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

Если где-то возникло мнение что я воспринимаю вас как врага, то могу заверить, что это не так. С врагами мы не ведем диалоги, а поступаем с ними как с террористами. Но и молчать же тоже нельзя, когда кто-то на твое творение (может не везде идеальное, но твое) без суда и следствия навешивает неприятные ярлыки, которых по нашему мнению нет. Цель нашего диалога исключительно для разбора инцидента, а не для того что-бы вас как-то очернить. На самом деле проблем в платежной системе намного больше чем кажется, технически я могу украсть ваши деньги зная только номер карты (мне даже не нужен срок действия в ряде случаев, не то что 3дс пароль), но механизмов защиты от этого и компенсаций сейчас достаточно, хотя некоторые новые правила пугают. Так например по новым правилам 3дс, 85% платежей должны проходить без дополнительных вводов кодов и прочих верификаций и это проблема, на которую потом вы же будете нас тыкать и говорить что как же так мы без 3дс проверки провели платеж, а МПС требует и все. Но в любом случае предлагаю прекратить эту дискуссию, с этой статьей делайте что хотите, у меня не было цели как-то ее изменить или тем более удалить я лишь хотел пообщаться в первую очередь с вами и представить свои аргументы.

С врагами мы не ведем диалоги, а поступаем с ними как с террористами.

Мочите в сортире?

холевар

холивар

мат часть

матчасть

Жаль что топикстартер так и не разобрался как происходит подтверждение платежа )))

Попробуйте обратится в нац. банк и фонд гарантирования вкладов с описанием проблемы. Иногда работает. :)

Это никоим образом не относится к уязвимости.
Пользователь совершает оплату в 15:00, за товар на сумму 1400.57 UAH. В приложение приходит подтверждение оплаты в течении секунд на эту же сумму. Вы как бы уже знаете за что, кому и сколько платите.
А в статье описывается случай что такого рода оплату ставим на сайт «однодневник». Так извините никто не будет виноват что вы доверяете неизвестному сайту данные вашей карты. Это пользователь должен беспокоиться о безопасности своей карты, если ее украдут, тоже будет виноват банк? Мы сами отвечаем за сохранность своих данных, если мы их передаем, это наша ошибка как пользователей.

извините а зачем банку антифрод ?

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

То что многие перешли с Приватбанка.... стоит помнить КТО есть Монобанк. Они ТОЖЕ перешли из Приватбанка.

Так вот, за подобные уязвимости Приват тыкали рылом 100500 раз за последние лет 8 минимум, но КАЖДЫЙ раз при очередном внедрении какой-то «сверхнужной» обязаловки или переделывании (разумеется «с нуля») существующих интерфейсов — они суют это дерьмо и кладут хер на безопасность. Типа работает и заыпись. И это не атишников ответ, а безопасников.

А скоко они платят безопасникам?

В отличие от всемирной практики присылать подтверждение в виде кода, Монобанк сделали кнопки ‘Оплатить’ и ‘Отменить платеж’. Так сказать ‘молодые, юные и зеленные’...

Зараз частина банків впроваджує SCA з 3DS 2.0, в якому використання fraud-detection дозволяє реалізовувати frictionless authentication для частини платежів (терміни залишив англійською, щоб було простіше гуглити за необхідності). Можливо, це те, що ви побачили.
Можете про всяк випадок перевірити історію обміну сторінки з ACS (це зазвичай iframe, який відправляє дані про браузер клієнта до ішюера, а далі обмін йде напряму між ним і сервером банку). І ішюер вирішує, чи дозволяти авторизацію без аутентифікації, чи використовувати редирект на форму ACS.

нет не какого отношения к v2 не имеет

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

НЕпредоставление необходимой информации, и даже предоставление её так что пользователь не поймёт подмены данных — это не «недостаток», это предоставление МОШЕННИКАМ права обманывать клиентов, и авторизация мошеннических транзакций со стороны банка.

И сам факт, что безопасники ОТБРЕХАЛИСЬ вместо решения проблемы — говорит что банку вообще плевать на то, КОМУ он отдаёт деньги, типа он всегда может обвинить клиента. Правы будут те, кто теперь посудится за все снятия денег, лучше коллективными исками.

Единственное вменяемое решение — выгнать руководителя департамента антифрода без зарплаты, и повесить на него убытки. Пусть выплатит долг. Ну клиентам же можно, значит и ему можно. Для верности можно даже провести подобную транзакцию с его карт, пусть доказывает что не верблюд, и виноват ПупкинБанк.

вы знаете что к сожалению выиграть суд это только 1/2 от всего проблемы а вот добиться выполнения вот это проблема

прочтите еще раз и поймете с други картами например банков подключенных к upc такое сделать не выйдет

Підписатись на коментарі