Ученые из Швейцарской высшей технической школы Цюриха разработали атаку, которая позволяет не водить 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) — созданного картой криптографического доказательства транзакции, которое терминал не может верифицировать (может только эмитент карты). Это позволяет злоумышленникам обманом вынудить терминал принять недостоверную оффлайновую транзакцию. Позже, когда эквайер добавит данные транзакции к клиринговой записи, банк-эмитент обнаружит неверную криптограмму, но к тому времени преступник уже давно скроется вместе с товаром».