Ученые из Швейцарской высшей технической школы Цюриха разработали атаку, которая позволяет не водить PIN-код во время совершения бесконтактных платежей по картам Visa Credit, Visa Electron и VPay. Данная атака позволяет злоумышленнику, который владеет данными украденной бесконтактной карты Visa, использовать карту для оплаты дорогостоящих товаров, чья цена намного превышает лимит бесконтактных транзакций. И PIN-код при этом не понадобится.

Доклад, описывающий эту технику атак, уже опубликован в открытом доступе, а полноценную презентацию своих изысканий специалисты намерены устроить на симпозиуме IEEE, который пройдет в мае 2021 года.

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

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

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

«Наше приложение не требует root-прав или каких-либо хитроумных хаков Android. Мы успешно протестировали его на обычных устройствах Pixel и Huawei», — пишут исследователи.

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

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

Для обнаружения этих проблем исследователи использовали модифицированную версию инструмента под названием Tamarin, который ранее уже применялся для обнаружения сложных уязвимостей в криптографическом протоколе TLS 1.3 (PDF), а также в механизме аутентификации 5G (PDF).

С помощью этого же инструмента эксперты выявили еще одну потенциальную проблему, которая затрагивает не только Visa, но и Mastercard. Данную брешь исследователи не тестировали «в полевых условиях» по этическим соображениям. Вот как эксперты описывают вторую проблему:

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

15 комментариев

  1. Аватар

    0d8bc7

    29.08.2020 в 09:20

    То ли дело карты «MIR» — там можно в бесконтактном режиме не вводить PIN до какой-то суммы. Т.е. НЕ НУЖНО ВЗЛОМА! Вот уж где безопасники — улучшатели удобств не зря съели свой хлеб. А я об этой фигне вообще узнал случайно)
    Не понимаю, кто и зачем вообще придумал отсутствие требования вводить PIN.
    Пусть даже лимит был бы 100 руб. 100 руб тут, 100 руб там… Один фиг деньги владельца карты могут быть потрачены, а даже если сумма будет недостаточной для возбуждения уголовного дела, владельцу карты от этого будет не легче.

    • Аватар

      0d8bc7

      29.08.2020 в 09:23

      * Про возбуждение уголовного дела — просто к тому, что страх этого может останавливать часть противоправных действий. Но не более.

    • Аватар

      Роман

      30.08.2020 в 05:00

      Ээээ… Вообще то оплата без ввода пинкода, возможна на любых бесконтактных картах. Лист раньше у всех был тысяча. Можешь запросить в банке изменение лимита.
      Не так давно платежные системы лимит увеличивали, но поддержал ли изменение твой банк, можешь узнать только у своего банка.

      • Аватар

        0d8bc7

        30.08.2020 в 12:48

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

        • Аватар

          Владиславище

          30.08.2020 в 13:05

          Товарищ, Вы геморойны и не компетентны до невозможности… Сейчас все карты выпускаются с бесконтактной оплатой. И в банк идти не надо, все лимиты можно менять в приложении на Вашем сотовом.
          Но даже не в этом дело. Статья о том, что ПИН не нужен даже в случае оплаты очень большой суммой.

          • Аватар

            0d8bc7

            30.08.2020 в 14:50

            А я не и должен быть компетентен в банковских вопросах — не моё это.
            А почему гемороен? Разве я сейчас тут поднимаю какие-то неправильные вопросы?
            Спасибо, конечно, что сказали про приложение на сотовом. Но у меня нет приложения. И не будет. Нафиг мне всякие левые исполняемые файлы. Но есть смысл вместо того, чтобы идти в банк, позвонить в саппорт и уточнить, спасибо)
            Вы видели, как написан мой первый коммент? По его структуре должно быть понятно, что я и не приравниваю объект своего комментария к сабжу статьи.

    • Аватар

      Vikarti

      30.08.2020 в 07:31

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

      • Аватар

        0d8bc7

        30.08.2020 в 13:04

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

    • Аватар

      Lmar

      30.08.2020 в 09:09

      В статье как раз про превышения лимита и говорится

    • Аватар

      JustMoose

      02.09.2020 в 10:32

      «отсутствие требования вводить PIN» — если пин не надо вводить, то его нельзя и продолбать. Имхо, лучше махнуть картой и бесконтактно списать 900р, чем вводить пин на неведомом устройстве, которое хз кто доработал (могли накладку на клавиатуру сделать, а могли и само устройство перепрошить, в какой-нибудь кафешке, или на АЗС). Короче, при выборе между «потерять небольшую сумму» или «продолбать пин и перевыпустить карту» я бы выбрал первое.

      • Аватар

        0d8bc7

        02.09.2020 в 11:33

        А в чём смысл, если для бо́льших сумм всё равно нужно вводить PIN на том же устройстве, возможно, доработанном?
        Для кого-то 900 руб небольшая сумма, а для кого-то большая. Наиболее корректно тут было бы дать возможность клиенту самому выбирать. Причём явно — чтобы сначала он выбрал такую «небольшую» для него сумму, а уже потом для него включалось это удобство, если оно ему вообще нужно.
        Также замечу: если бы была гарантия, что банк просто (именно ПРОСТО) вернёт несанкционированно потраченные деньги, не было бы никаких проблем. А так это всё-таки деньги клиента. Что вообще значит «небольшая» для кого-то другого сумма?) Нельзя поощрять несанкционированное использование даже одной чужой копейки, т.е. даже маленькую кражу, поскольку кража есть кража. Или я не прав?

        • Аватар

          JustMoose

          02.09.2020 в 17:54

          Эммм. Я могу только высказать своё ИМХО. «Небольшая сумма» — ограничение установленное банком. Ибо paypass имеет ограничение в 1000р и поменять его я никак не могу. С другой стороны, меня такое ограничение вполне устраивает.

          Мне это удобно. Потому что я могу расплачиваться где попало.
          А пинкод ввожу только в ограниченном числе мест, которым я доверяю.
          Про «даже одной чужой копейки»… Ну, у меня тоже бывает случается жаба. Но нервы всё таки дороже. Я точно не буду нервничать из-за суммы < 1000р. По крайне мере, пока я не на пенсии.

          • Аватар

            0d8bc7

            02.09.2020 в 21:31

            Ну… вообще, речь не о том, что удобно лично вам, и даже не о том, что неудобно лично мне. Речь о том, что деньги клиентов должны защищаться хоть как-то. Был же PIN-код для этого, и как-то ведь с этим жили. А что теперь? Ну ладно, можно вместо PIN-кода использовать и другую систему защиты. Но главное, чтобы она вообще была, а разве она есть?
            А вот на счёт удобства оплаты: тут на самом деле проблема в том, что мы сейчас живём в обществе потребления — людям лишь бы побольше потратить) (а потом ещё попахать и ещё потратить) А банки этому процессу, ясное дело, помогают.

        • Аватар

          JustMoose

          02.09.2020 в 17:55

          «нужно вводить PIN на том же устройстве» — не на том же.
          Я чётко разграничиваю (у себя в голове) доверенные и не очень устройства.

  2. Аватар

    Lex.Mikachev

    01.09.2020 в 17:10

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

Оставить мнение