Уязвимость в картах Visa позволяет обходить проверку PIN кода при безконтактной оплате
Кто сказал, что кардинг умирает? Нет, он просто становится более интелектуальным, если ещё 15 лет назад любой гастарбайтер в европе, накопивший на MSR206 и познакомившийся с одним из дампобарыг в интернетах, мог назвать себя кардером, то сейчас ситуация координально изменилась и для успешной атаки на платежные системы теперь требуются не только специфические знания, но и определнные склад ума.
А то, что несмотря на почти повсеместный приход новых методов защиты, индустрия электронных платежей по прежнему изобилует уязвимостями на этот раз доказывают исследователи из ETH Zurich.
Исследователи наглядно продемонстрировали способ атаки на EMV, позволяющий обойти проверку PIN-кода карты даже при транзакциях на большие суммы. Суть этой MITM атаки заключается в том, чтобы ввести в заблуждение платежный терминал и платежный шлюз, передав вместе с деталями карты информацию о том, что аутентификация кардхолдера была выполнена на платежном устройстве (например, смартфоне), примерно так, как это делают Apple Pay, Google Pay и прочие.
Разберемся?
Подменяем передаваемые терминалу данные с помощью MITM атаки
EMV (сокращение от Europay, Mastercard и Visa), широко используемый международный стандарт протокола оплаты смарт-картами, требующий подтверждения с помощью PIN кода при снятии крупных сумм с платежных карт.
Исследователи из ETH, обнаружили критический недостаток в протоколе EMV, позволяющий с помощью атаки “человек посередине” (MitM) через приложение для Android, которое “сообщает терминалу, что проверка PIN-кода не требуется, поскольку проверка держателя карты уже была выполнена на его устройстве”, обойти проверку PIN.
Это означает, что отныне PIN код не помешает злоумышленникам использовать краденную бесконтактную карту Visa для оплаты своих транзакций, даже если сумма превышает лимит. Для проведения атаки кардеры должны иметь получить доступ к карте, либо украв её, либо скопировав с неё информацию NFC. Исследователи заявляют, что для проведения транзакции достаточно и данных с трека карты, а именно её номера и PVV.
Уязвимость возникает из-за того, что метод проверки держателя карты (CVM), использующийся для проверки того, является ли лицо, пытающееся совершить транзакцию с помощью карты, законным владельцем карты, не защищен криптографически.
Демонстрация
Исследователи, чтобы продемонстрировать насколько легко использовать обнаруженные ими уязвимости, разработали экспериментальное приложение для Android. Приложение реализует MITM атаку на передаваемые данные. В ходе атаки изменяются команды терминала и ответы карты перед их доставкой.
Устройства на схеме – это платежный терминал (слева) и бесконтактная карта жертвы (справа). Телефон рядом с платежным терминалом является эмулятором карты злоумышленника, а телефон рядом с картой жертвы – устройством эмулирующим POS терминал. Устройства злоумышленника обмениваются данными друг с другом по Wi-Fi, а с терминалом и картой по NFC.
Существует шесть разновидностей бесконтактных протоколов EMV, и каждый из них поддерживается одним из брендов карт: Mastercard, Visa, American Express, JCB, Discover и UnionPay. Атака с обходом PIN-кода применима к протоколу Visa и (возможно) к протоколам Discover и UnionPay, но последние два не тестировались на практике.
К сожалению, исследователи не опубликовали технические детали атаки или код приложения Андроид.
А ещё можно совершать offline – транзакции и не платить
Также исследователи обнаружили вторую уязвимость бесконтактных транзакций в автономном (оффлайн) режиме, выполняемыми либо с помощью карты Visa, либо старой картой Mastercard, что позволяет злоумышленнику изменить определенный фрагмент данных, называемый Application Cryptogram (криптограммой приложения, AC), прежде чем он будет передан терминалу оплаты.
Офлайн-карты обычно используются для прямой оплаты товаров и услуг с банковского счета держателя карты без необходимости ввода ПИН-кода. Но поскольку эти транзакции не связаны с онлайн-системой, возникает задержка от 24 до 72 часов, прежде чем банк подтвердит легитимность транзакции с помощью криптограммы, а сумма покупки будет списана со счета.
Преступник может атаковать этот механизм отложенной обработки, используя карту для осуществления небольшой оффлайн-транзакции. К тому моменту, когда банк-эмитент отклонит транзакцию из-за неправильной криптограммы, преступник заберёт купленные товары. В РФ лимит таких транзакций – до 1000р. Есть страны со значительно большим лимитом. Можно поесть и заправиться. Профит.
Волшебные CTQ (Card Transaction Qualifiers) и TTQ (Terminal Transaction Qualifiers)
CTQ
CTQ устанавливается эмитентом карты во время её выдачи и определяет, какие действия будут выполняться в POS-терминале, когда происходит транзакция. Эти данные стандартны для всех EMV карт и позволяют эмитенту карты передавать контрольные значения POS терминалу во время транзакции. К сожалению, публичной документации не так много. Тем не менее из того, что мы нашли, можно понять какие именно контрольные значения существуют и важность того за что они отвечают. При обмене данных между терминалом и картой CTQ не шифруются!
Бит | Состояние | Описание |
8 | True | Требовать онлайн PIN |
7 | True | Требовать онлайн подпись |
6 | True | Переходить в онлайн режим, если оффлайн аутентификация не удалась и ридер поддерживает онлайн-режим |
5 | True | Переключать интерфейс, если оффлайн аутентификация не удалась и ридер поддерживает VIS |
4 | True | Переходить в онлайн, если срок действия приложения истёк |
3 | True | Переключать интерфейс CashTransactions |
2 | Trua | Переключать интерфейс для Cashback Transactions |
1 | N/A | RFU |
Бит | Состояние | Описание |
8 | True | Consumer Device CVMPerformed. Восьмой бит не используется картами Visa и обычно устанавливается в False |
7 | True | Card supports Issuer Update Processing at the POS |
6 | N/A | RFU |
5 | N/A | RFU |
4 | N/A | RFU |
3 | N/A | RFU |
2 | N/A | RFU |
1 | N/A | RFU |
Устанавливая значения контрольных битов, CTQ управляет следующими параметрами транзакции:
- Если срок действия приложения истек, настройка CTQ будет определять, будут ли транзакции обработаны онлайн или будут немедленно отклонены
- Если выполняется денежная транзакция, CTQ определяет, следует ли переключить транзакцию на контактный метод n, или её следует отклонить
- Если fDDA (проверка аутентификации) снова завершится неудачно, CTQ имеет три варианта: обработать транзакцию онлайн, переключить её на контактный режим или отклонить её
- Если CTQ не возвращается картой в терминал и ридеру требуется CVM (из своих настрек TTQ), ридер примет решение использовать подпись, онлайн-пин или отклонить транзакцию
- Если CTQ возвращается картой терминалу, он решает, какой CVM может или должен быть использован в онлайн-PIN или подписи
Результаты CTQ передаются как в сообщениях авторизации, так и в клиринговых сообщениях в каждой транзакции.
TTQ
Бит | Значение | Описание |
8 | True | Contactless MSD supported |
7 | True | Contactless VSDC supported |
6 | True | Contactless qVSDC supported |
5 | True | EMV contact chip supported |
4 | True | Offline-only reader |
3 | True | Online PIN supported |
2 | True | Signature supported |
1 | True | Offline Data Authentication (ODA) for Online Authorizations supported |
Бит | Значение | Описание |
8 | True | Online cryptogram required |
7 | True | CVM required |
6 | True | (Contact Chip) Offline PIN supported |
5 | N/A | RFU |
4 | N/A | RFU |
3 | N/A | RFU |
2 | N/A | RFU |
1 | N/A | RFU |
Бит | Значение | Опеписание |
8 | True | Issuer Update Processing Supported |
7 | True | Mobile functionality supported (Consumer Device CVM) |
6 | N/A | RFU |
5 | N/A | RFU |
4 | N/A | RFU |
3 | N/A | RFU |
2 | N/A | RFU |
1 | N/A | RFU |
Своими настройками CTQ и TTQ определяют, как будет проходить транзакция и что требуется и для её выполнения. И эти данные передаются незашифрованнми!
По моему всё понятно, осталось лишь достать Proxmark и разобраться с деталями.
Последствия
Привет, 2000-е! Не только при наличии данных второго трека можно опять проводить транзакции не “парясь” и закупать товар фурами, но и в перерывах между шоп-ранами, кардеры могут абсолютно на халяву заправлять топливо и жрать благодаря оффлайн-уязвимостям. Уязвимости в протоколе затрагивают фундаментальные функции системы и не могут быть быстро исправлены.
Также, напоминаю, что Github изобилует Host Card Emulation Андроид приложениями и всё что нужно – это немного их допилить.
Если вспомнить, что в некоторых странах транзакции до сих происходят с помощью магнитной полосы, можно представить сколько времени у платежных операторов уйдёт на латание вышеописанных дыр.
Новая эра кардинга?
Вангую подъем цен на дампы Visa в даркнет-шопах.
P.S. Детали исследования читаем на https://emvrace.github.io/
Кто проводил исследования? 🙂