Автор: cuamckuu
Извлечение содержимого карты и работа с EMV-командами может быть интересна не только в исследовательских целях. Существует несколько видов атак на бесконтактные банковские карты, про реализацию которых будет рассказано под катом.
Введение
В этом году я попал на стажировку Summer of Hack 2019 в Digital Security и поработал над темой исследования бесконтактных EMV-карт. В ходе стажировки получилось лучше узнать о том, как работают банковские карты, и создать новую утилиту для работы с бесконтактными картами. С демонстрацией режима считывания данных можно познакомиться здесь.
Виды атак
Карта и терминал общаются, используя стандарт EMV (Europay + MasterCard + VISA), который разрабатывался для повышения безопасности платежей. В связи с этим, существует не так много векторов атак на бесконтактные карты. В статье речь пойдёт о следующих:
- Привязка чужой карты в онлайн-магазине
- Вспомогательный шаг в социальной инженерии
- Бесконтактный DoS, превращающий карту в кирпич
Такие атаки возможны при взаимодействии с картой по EMV-стандарту. Многие карты позволяют без проблем считать приватную информацию пользователя, в частности PAN, срок действия и имя держателя. Считанных данных хватает для привязки карты в некоторых онлайн-магазинах, например, Amazon. А полученные приватные данные можно использовать для более персонализированного фишинга или при рассылке спама.
Похожим способом реализуется DoS-атака. Вызов нужных EMV-команд позволяет переполнить внутренний счётчик транзакций или имитировать неправильный ввод PIN-кода, что приводит к блокировке карты.
Зачем изобретать велосипед?
Перед началом разработки было решено изучить существующие решения. В частности, были рассмотрены: RFIDIOt/ChAP.py, Jaccal, nfcmillionaire, PoC с конференций, “Ruby” script, Android apps/libs.
Большинство из рассмотренных программ пытаются имитировать работу POS-терминала и используют словари с идентификаторами поддерживаемых карт, поэтому часто такие решения будут работать только с Visa и MasterCard.
Другой проблемой является считывание малой части данных вместо снятия полного дампа. Почти все программы пытаются разобрать как можно больше EMV на лету и делают ошибки при разборе.
Если какая-то из проблем отсутствует или не так сильно выражена, то скорее всего речь идёт о приложении/библиотеке для Android, и вам потребуется телефон с NFC-ридером, который пока есть не у всех.
Описанные проблемы можно решить, для этого следует:
- Определять тип карты динамически, вместо использования словарей
- Добавить несколько режимов работы для полного считывания файлов
- Не пытаться разбирать EMV-стандарт на лету
- Использовать дешёвый ридер PN532 (~5$)
Извлекаем данные с карты
На Хабре уже есть статьи, подробно описывающие процесс взаимодействия карты и терминала (раз, два, три), поэтому постараюсь не повторяться и сосредоточиться на практической части.
Для общения с картой будем использовать ридер PN532 из-за приятной цены и библиотеку libnfc. Плавно переходим к делу. Данные на карте организованы следующим образом:
Окружения -> Приложения -> Файлы -> Записи.
Цель считывания – получить данные всех записей, для этого нужно пройти полную цепочку, причём выбор окружения и приложения происходит только один раз в начале общения.
Тот же процесс в терминах EMV-команд:
- SELECT PPSE // Выбираем бесконтактное окружение
- SELECT APPLICATION // Выбираем приложение по AID
- READ RECORD // Указываем номер файла и записи
Рассмотрим пример формирования одной из команд. Первая команда для выбора бесконтактного окружения всегда одинаковая и выглядит следующим образом:
byte_t const command[] = {
0x40, 0x01, // Pn532 InDataExchange
0x00, 0xA4, // SELECT ppse
0x04, 0x00, // P1:By name, P2:_
0x0e, // Lc: Data length
0x32, 0x50, 0x41, 0x59, 0x2e, 0x53, 0x59, // Data string:
0x53, 0x2e, 0x44, 0x44, 0x46, 0x30, 0x31, // 2PAY.SYS.DDF01 (PPSE)
0x00 // Le
};
Пример ответа: 6F 23 84 0E 32 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 11 BF 0C 0E 61 0C 4F 07 A0 00 00 00 03 10 10 87 01 01 90 00
Для вызова следующей команды нам потребуется разобрать ответ предыдущей команды.
Нас интересует идентификатор приложения AID. Запоминаем его и формируем новый SELECT запрос, но на этот раз передаём команде SELECT полученный AID, а не PPSE, как в первой команде.
Пример: 00 A4 04 00 07 A0 00 00 00 03 10 10 00
Как было сказано ранее, важно получать AID динамически, а не использовать подготовленный словарь, тогда ваше приложение с большой вероятностью сможет считывать разные виды карт, например, карты МИР.
После того, как приложение выбрано, мы можем читать необходимые записи, используя команду READ RECORD и передавая в качестве параметров номер файла и номер записи.
Пример формирования команды: (подробнее об этом можно почитать в стандарте. EMV Book1. 11.2 READ RECORD)
byte_t const sfi_param = (sfi << 3) | (1 << 2);
byte_t const command[] = {
0x40, 0x01, // Pn532 InDataExchange
0x00, 0xB2, // READ RECORD
record_number, sfi_param, // P1:record_number and P2:SFI
0x00 // Le
};
Пример вызова: 00 B2 02 14 00
Заметим, что под номер файла отводится не полный байт, соответственно, всего файлов может быть 31 (2^5 — 1), а записей 255. Файлы с 1-го по 10-й отводятся для хранения внутренних данных, а оставшиеся отводятся под хранение лога транзакций, если карта поддерживает логирование.
Теперь используя два вложенных цикла, мы можем получить данные всех записей карты, вызывая для каждой пары команду READ RECORD. Процесс перебора можно существенно ускорить, если обращать внимание на возвращаемый картой status word (последние два байта ответа). Статус может сказать нам о том, что файла не существует (SW = 0x6A82) или о том, что дальше в этом файле нет записей (SW = 0x6A83).
На практике выяснилось, что имеет смысл рассматривать только случай несуществующего файла, так как иногда встречаются карты, которые некорректно используют статус код для отсутствующих записей. После чтения данных можно отправить их в один из онлайн-парсеров, мне понравился этот.
Фрагмент данных, извлечённых из записей карты:
Считанных данных хватит для привязки карты в некоторых онлайн-магазинах (в основном, в зарубежных), также полученную информацию можно использовать для более персонализированной атаки с применением социальной инженерии.
Организуем бесконтактный DoS
Переходим к следующему виду атаки. Для DoS-a существует, как минимум, 2 способа реализации.
Медленный способ
Для реализации медленного способа (атака потребует около 4 минут) необходимо переполнить внутренний счётчик транзакций карты (ATC). Для этого требуется вызвать:
- SELECT PPSE // Выбираем бесконтактное окружение
- SELECT APPLICATION // Выбираем приложение
- GET DATA // Узнаём, сколько осталось до переполнения ATC (Опционально)
- GET PROCESSING OPTIONS // Начинаем проводить транзакции
- …
- GET PROCESSING OPTIONS // Повторяем транзакции до переполнения
Рассмотрим шаги подробнее. Выбор бесконтактного окружения и приложения аналогичен пункту с извлечением данных, единственным отличием является то, что на этот раз нам потребуется обработать ответ команды SELECT APPLICATION.
Нас интересует поле PDOL, так как оно понадобится для последующего вызова команды GET PROCESSING OPTIONS, которая и будет увеличивать счётчик транзакций при каждом вызове.
В PDOL-е карта просит от нас информацию о терминале и платеже.
В примере выше карта просит у нас:
- 9F66 04 // Terminal transaction qualifier (4 bytes)
- 9F02 06 // Amount (6 bytes)
- 9F37 04 // Unpredictable number (4 bytes)
- 5F2A 02 // Transaction Currency code (2 bytes)
Поскольку мы реализуем DoS, а не реальный платёж, мы можем не заботиться о правильности значений и просто использовать заранее подготовленные значения, которые примет карта. Подробнее о требуемых значениях можно почитать в стандарте. (EMV Book 3. Annex A Data Elements Dictionary).
Для удобства практического использования привожу таблицу:
Тег (Hex) | Описание | Валидное значение (Hex) |
9F59 | Terminal Transaction Information | C8 80 00 |
9F5A | Terminal Transaction Type | 00 |
9F58 | Merchant Type Indicator | 01 |
9F66 | Terminal Transaction Qualifiers | 79 00 40 80 |
9F02 | Amount (authorized) | 00 00 00 10 00 00 |
9F03 | Amount (Other) | 00 00 00 00 00 00 |
9F1A | Terminal Country Code | 01 24 |
5F2A | Transaction Currency Code | 01 24 |
95 | Terminal Verification Results | 00 00 00 00 00 |
9A | Transaction Date | 19 01 01 |
9C | Transaction Type | 00 |
9F37 | Unpredictable Number | 82 3D DE 7A |
Сформировав данные, запрашиваемые картой, мы готовы к вызову GPO.
Пример: 80 A8 00 00 12 83 10 79 00 40 80 00 00 00 10 00 00 82 3D DE 7A 01 24 00
Ответ: 77 4F 82 02 20 00 94 0C 10 02 03 00 18 01 01 00 10 04 04 00 57 13 42 76 55 00 66 83 25 13 D2 00 52 01 14 89 36 20 00 00 1F 5F 20 02 20 2F 9F 10 07 06 01 11 03 80 20 00 9F 6C 02 30 00 9F 26 08 33 33 89 D5 70 A3 DF 37 9F 27 01 00 9F 36 02 02 48 90 00
Повторяем вызов GPO 65 536 раз, и карта блокируется. Можно уменьшить количество требуемых вызовов, если предварительно считать текущее значение ATC с помощью GET DATA.
Быстрый способ
Быстрый способ намного удобнее (и опаснее), так как потребует около 2 секунд для блокировки карты, поэтому подробный разбор деталей реализации останется за кадром.
Метод похож на предыдущий, но на этот раз потребуется понизить счётчик попыток ввода PIN-кода, вместо повышения счётчика транзакций. Значение PIN Try Counter также можно получить через GET DATA, но в данном случае существенного прироста по скорости не будет.
Требуемые операции:
- SELECT PPSE // Выбираем бесконтактное окружение
- SELECT APPLICATION // Выбираем приложение
- GET DATA // Узнаём, сколько есть попыток ввода PIN-а
- GET PROCESSING OPTIONS // Начинаем транзакцию
- VERIFY // И вводим неправильный ПИН
- …
- VERIFY // Пока карта не заблокируется
Итоги
В ходе стажировки получилось создать новый инструмент для работы с бесконтактными банковскими картами и решить несколько проблем присутствующих в существующих решениях, а использование дешёвого ридера значительно понижает стоимость исследовательского набора и может поспособствовать привлечению новых людей к исследованию безопасности бесконтактных банковских карт. Исходный код программы доступен на Github.
Комментарии (72)
PowerMetall
07.10.2019 08:06Да, всё на самом деле так просто.
А всё дело в том, что стандарт EMV изначально изобретался для контактных карт в дремучие времена, и первостепенной задачей было обеспечить работу в оффлайн режиме (без Интернета).
Кстати, нужны еще и ключи шифрования, да. Открытые ключи МПС. Которые, правда, не секретны:
С контактной картой всё проворачивается в точности так же, но, по понятным причинам, придется взять карту и физически вставить в ридер. Что естественно сложнее, чем в случае contactless.
В те времена никто не думал, что карта когда-нибудь сможет работать на расстоянии, получая питание и обмениваясь данными «по воздуху».
P. S. Вот одна из причин, почему я до сих пор хожу с контактной картой, и вызываю смешки кассиров в небольших магазинчиках, когда в ответ на «прислоняйте карту» отвечаю «увы, надо вставлять в аппарат, да да, каменный век, согласен» :)MiXei4
07.10.2019 08:23У меня есть подозрение, что нарваться на какой-нибудь скиммер, или просто взлом базы данных магазина, в которой была твоя карта, гораздо проще, поэтому пользуюсь бесконтактными.
PowerMetall
09.10.2019 13:44У меня есть подозрение, что нарваться на какой-нибудь скиммер, или просто взлом базы данных магазина, в которой была твоя карта, гораздо проще, поэтому пользуюсь бесконтактными.
Ну, я бы не был столь категоричен.
Для Интернет-покупок — естественно виртуальная карта, которая пополняется аккурат перед оплатой, на сумму ~ равную сумме предстоящей оплаты.
Это без вариантов.
А для обычных платежей — скиммер клонирует магнитную полосу (которую желательно, само собой, повредить сразу после получения карты. Не размагнитить! Иначе, например, старые банкоматы Wincor не будут принимать карту, ибо у них магнитный датчик на входе кардридера).
Да, не будут работать fallback-транзакции, но кто ими в последний раз когда пользовался в обычном сценарии оплаты «повседневной» картой? Да и всё бОльшая часть эквайеров отключает fallback на POS-терминалах в целях безопасности.
А утянуть БД с обычного магазина — да пусть тянут, там никаких карточных данных нет, т. к. пин-пад играет роль этакой лайт версии HSM.
Если более простыми словами — с пин-пада никак не утекают по кабелю никакие данные в открытом виде, всё зашифровано ключами банка-эквайера (банка, который установил POS-терминал в торговую точку)
mmMike
07.10.2019 08:26Кстати, нужны еще и ключи шифрования, да. Открытые ключи МПС.
Для целей описанных в статье — не нужны. Смысл такому ПО проверять RSA подписи?
У бесконтактной карты гораздо опасней другие вещи.
Вот когда мост для бесконтактной карты на двух телефонах (c NFC) позволял только делать без пиновые покупки в пределах 1000 руб — это было еще ничего..
Но вот когда Сбер ввел выдачу наличных по безконтакту!
Микро камера для подсмотреть PIN — элементарно. Прислонится к толпе, к кошельку жертвы одним из телефонов "моста" — да проще простого.
Не нужны никакие накладки и пр. Просто камера для подсмотреть за вводом PIN и два андройд телефона. Ну еще программки под андройд, которые валяются на GitHub выложенные такими же энтузиастами.
Хотя в программке обеспечивающей "мост" между двумя телефонами (один — ридер, другой эмулятор карты) ничего сложного нет, но ее и писать не нужно. Уже валяются, сделанные в "исследовательских целях".
Вот совсем не уверен, что ПО Сберовских банкоматов анализирует миллисекундные накладные задержки на выполнение команд карты (которые может вносить такой "мост").
Так, что паранойя носить карту в экранированном чехле — это не обязательно паранойя.
vvzvlad
07.10.2019 12:36Хотя в программке обеспечивающей «мост» между двумя телефонами (один — ридер, другой эмулятор карты) ничего сложного нет, но ее и писать не нужно. Уже валяются, сделанные в «исследовательских целях».
Это какой телефон позволяет произвольно работать с NFC-модулем?mmMike
07.10.2019 12:42Android. Ровно с тех пор как Google отрыл API. Сразу и
Еще в 2014 году делал/отлаживал первый демонстрационный пример HCE приложения Visa (MC попозже спеки сделал).
см.
android.nfc.cardemulation.*
android.nfc.NfcAdapter
x86d0cent
07.10.2019 13:19Микро камера для подсмотреть PIN — элементарно. Прислонится к толпе, к кошельку жертвы одним из телефонов «моста» — да проще простого.
Там, если правильно помню, два раза ведь надо карту к банкомату прикладывать (перед началом обслуживания и непосредственно перед выдачей наличных)?
Получается, что нужно подсмотреть пин (который при вводе в общем-то рекомендуется закрывать рукой — тогда микрокамера мало что увидит), потом дождаться, когда человек будет в толпе и дважды с некоторым промежутком времени прислониться к его карте, которая лежит где-нибудь в нагрудном кармане. Рискуя при этом, что человек обратит внимание на злоумышленника, дважды прижимающегося к его груди. А также учитывая, что человеку скорее всего сразу после снятия придет СМС об этом. При этом надо либо либо знать сумму, которая есть на счете (а просто так ее не узнать), либо снимать наугад относительно небольшую сумму.
Весьма сомнительное, на мой взгляд, мероприятие выходит для злоумышленников — достаточно хлопотное, с неиллюзорными рисками и негарантированным результатом. Имхо, проще кошельки из карманов вытаскивать…mmMike
07.10.2019 13:31Весьма сомнительное, на мой взгляд, мероприятие выходит для злоумышленников — достаточно хлопотное, с неиллюзорными рисками и негарантированным результатом. Имхо, проще кошельки из карманов вытаскивать…
Человеку, который прислонился к кому то в метро — даже поймать за руку не получится. И предъявить нечего. Это же не кошелек из кармана потянул и за руку поймали.
Получается, что нужно подсмотреть пин (который при вводе в общем-то рекомендуется закрывать рукой — тогда микрокамера мало что увидит),
Специально наблюдал, стоя в очереди к банкомату, сколько человек прикрывают рукой/корпусом вид на PIN клавиатуру. Очень мало.
А уж сколько человек вводят PIN в магазине ничем не закрывая. (суммы в супермаркете > 1000 руб — это типично). Редкость когда кто то прикрывает.
Даже без камеры не напрягаясь фиксировал кто какой PIN ввел.x86d0cent
07.10.2019 14:04Человеку, который прислонился к кому то в метро — даже поймать за руку не получится. И предъявить нечего.
Когда есть четкое понимание того, кто прислонился, есть записи с камер наблюдения с его лицом, с хронометражем, и есть время проведения транзакций, совпадающее с моментом прислонения, да еще если не по одному, а по нескольким эпизодам — думаю, следователь сообразит, кому что предъявлять, если желание будет.
Это же не кошелек из кармана потянул и за руку поймали.
«Кошелек, кошелек… Какой кошелек? На, обыщи.» (с) С кошельками порой тоже предъявить нечего.
А уж сколько человек вводят PIN в магазине ничем не закрывая.
И потом кладут карту в задний карман — да, и такое нередко наблюдаю. Только, повторюсь, тут будет эффективнее незаметно карту вытащить, чем, простите, к чужой заднице телефоном прикладываться и nfc-мост организовывать. И проблема тут не в nfc, а в том, что люди игнорируют требования сохранению пин-кода в тайне от третьих лиц.
(суммы в супермаркете > 1000 руб — это типично).
А насколько типично с такой покупкой потом идти в метро в толпу? :) И какова вероятность, что на этой карте доступно больше чем пара десятков тысяч рублей? То есть по отдельности-то те факторы, которые вы упоминаете, имеют место. Но вот если сложить все это в цельную картину — затея для злоумышленника, на мой взгляд, начинает выглядеть весьма сомнительной.
Разговоры в духе «вот ввели эти бесконтактные платежи — будут теперь прислонятся в толпе и деньги с карты списывать» идут уже больше десяти лет. Но на практике как-то не наблюдается такой проблемы.mmMike
07.10.2019 15:15Когда есть четкое понимание того, кто прислонился, есть записи с камер наблюдения с его лицом, с хронометражем,
В вагоне метро, например? Телефоны могут быть вообще физически на разных континентах быть (лишь бы IP пакеты не слишком долго ходили между)
А насколько типично с такой покупкой потом идти в метро в толпу?
Хм. У меня, как не пойду в Ашан или какой еще супермаркет, то меньше 1000 практически никогда не получается. И в очереди обычно стоят с тележками груженными.
Средний чек который я вижу в очереди — 3-4 тыс рублей. И у людей явно не последние деньги на продукты.
Но на практике как-то не наблюдается такой проблемы.
А кто его знает. Наблюдается или нет. Банки такую статистику не публикуют.
В общем, меня мало утешит, что я попал в редкий случай, если с моей карты стырят деньги таким способом. Тем более, что опротестовать не реально. По правилам ПС: вот карта, вот PIN. Не опротестовывается.x86d0cent
07.10.2019 16:54В вагоне метро, например?
Вероятно, в разных городах метро разное. Но гугл говорит, что, например, в московском еще 4 года назад в полторы тысячи вагонов установили 7 тысяч камер.
И в очереди обычно стоят с тележками груженными.
Вот я и спрашиваю — насколько типично потом идти с содержимым этих груженых тележек в метро (да еще в то время, когда там толпа), а не на машине уезжать из магазина (если он далеко от дома) или уходить пешком (если дом близко)? Или вы думаете, что злоумышленники решат организовать слежку, подкараулить через два дня у метро, и начать прислоняться к человеку в надежде, что на карте окажется больше чем тысяч двадцать рублей? :)
В общем, меня мало утешит, что я попал в редкий случай, если с моей карты стырят деньги таким способом.
Закрывайте пин при вводе — и описанный вектор атаки будет неприменим (как и ряд других).d-stream
08.10.2019 10:50Вероятно, в разных городах метро разное. Но гугл говорит, что, например, в московском еще 4 года назад в полторы тысячи вагонов установили 7 тысяч камер.
и рулит этим метрополитен, максимум транспортная полиция. Камерами банкоматов — безопасность банков. Увязать всё это вместе — жутко сложная бюрократическая задача…
Вот я и спрашиваю — насколько типично потом идти с содержимым этих груженых тележек в метро (да еще в то время, когда там толпа), а не на машине уезжать из магазина (если он далеко от дома) или уходить пешком (если дом близко)?
Захожу в магазин, прикупаю коробку шоколодных конфет, бутылку шампанского и пачку презервативов — оппа… это уже больше 1000руб.
Ну или буханку хлеба, пакет молока и палку брауншвейской колбасы — тоже больше 1000р
Или вы думаете, что злоумышленники решат организовать слежку, подкараулить через два дня у метро, и начать прислоняться к человеку в надежде, что на карте окажется больше чем тысяч двадцать рублей? :)
Барышни часто кладут кредитку в кошелек, а кошелек в сумку. Притом в результате карта оказывается в пределах 5-10мм он наружной стороны сумки.
x86d0cent
09.10.2019 11:57Увязать всё это вместе — жутко сложная бюрократическая задача…
Которую должна решать полиция.
Захожу в магазин, прикупаю коробку шоколодных конфет, бутылку шампанского и пачку презервативов — оппа… это уже больше 1000руб.
Ну вы же сами выше признаете, что это нетипичная покупка, а в магазине «обычно стоят с тележками груженными».
Барышни часто кладут кредитку в кошелек, а кошелек в сумку.
А рядом с ним в сумку кладут те бутылку шампанского и палку брауншвейской из магазина, и со всем этим добром идут в толпу в метро? :)
Понимаете, все, что вы перечисляете, по отдельности действительно не проблема сделать. Можно у кого-то из впереди стоящих подсмотреть пин на кассе — есть те, кто не закрывает ввод. Есть люди, которые из магазина с бутылкой шампанского и презервативами идут в метро в вечерний час пик, в толпу. Есть те, кто носят кошелек в сумке/рюкзаке в 10 мм от наружной стороны. Есть люди, у которых в кошельке не бутерброд из трех карт, а только одна. Есть те, у кого на карте не 20 тысяч доступно для снятия, а 200.
Но если мы подумаем над тем, что это все это должно выполняться сразу для одного человека… Просто попробуйте продумать более или менее детальный план для злоумышленника в таком сценарии, и вы поймете, что по любому из перечисленных пунктов есть вероятность неудачи, и по некоторым она достаточно велика. И, похоже, суммарная вероятность неудачи получатся настолько велика, что такой сценарий преступникам просто неинтересен.d-stream
09.10.2019 12:23Которую должна решать полиция.
напоминает упорство пешехода перед грузовиком — «он должен меня пропустить»)
Ну вы же сами выше признаете, что это нетипичная покупка, а в магазине «обычно стоят с тележками груженными».
Я? Нет.
Я чаще вечерами закупаюсь и вижу немалое количество народа прикупающего «набор на ужин», переваливающий за 1000р и зачастую умещающийся в руках.
А рядом с ним в сумку кладут те бутылку шампанского и палку брауншвейской из магазина, и со всем этим добром идут в толпу в метро? :)
Я надеюсь вы только заради дискуссионного азарта смешали все из разных предложений, а в голове у вас это все-таки в соответствии с разными предложениями?
Но если мы подумаем над тем, что это все это должно выполняться сразу для одного человека…
Случайно попадалась мне цифра — м.Новогиреево — в среднем 20000 человек в час (это было лет 15 назад)
И, похоже, суммарная вероятность неудачи получатся настолько велика, что такой сценарий преступникам просто неинтересен.
Надо убедить в этом преступников. А то вон шлющих смс «мама пополни этот телефон потом все объясню» все убеждают что дураков уже не осталось и никто не купится, а они усмехаются и шлют)))))x86d0cent
09.10.2019 12:37напоминает упорство пешехода перед грузовиком — «он должен меня пропустить»)
Вы это к чему?
Я? Нет.
Как нет? Разве не вы писали, что «в очереди обычно стоят с тележками груженными»? Вы уж тогда определитесь что ли…
Я надеюсь вы только заради дискуссионного азарта смешали все из разных предложений
Исключительно «заради» того, чтобы продемонстрировать, что преступникам мало отдельного пункта из перечисляемых вами. Им надо все сразу. И чтобы покупка была — не бутылка воды, и чтобы кошелек был там, где к нему можно приложится, и чтобы человек потом пошел туда, где к нему можно приложиться два раза, вызвав не слишком много недоумения. И еще несколько пунктов. По отдельности — не катит.
м.Новогиреево — в среднем 20000 человек в час
Ок. И что? :)
Надо убедить в этом преступников.
Так в том-то и дело, что как-то и некого убеждать конкретно по этому вопросу :) Шлющих смс — полно, а вот про прислоняющихся с nfc-удлинителями — как-то не слышно совсем…d-stream
09.10.2019 13:00Вы это к чему?
К процитированной фразе.
Как нет? Разве не вы писали, что «в очереди обычно стоят с тележками груженными»? Вы уж тогда определитесь что ли…
Так и хочется попросить посмотреть еще раз внимательно)
Исключительно «заради» того, чтобы продемонстрировать, что преступникам мало отдельного пункта из перечисляемых вами.
Им не мало.
МЕТРО (который магазин), IKEA, MEGA еще кучки гипермаркетов — там как правило толчея+суммы поболее 1000р
Ок. И что? :)
Если так вопрос ставится — нет. Ничего.
x86d0cent
10.10.2019 01:16К процитированной фразе.
Потрудитесь, пожалуйста, пояснить, как ваши грузовики относятся к обсуждаемой теме. Если, конечно, относятся.
Так и хочется попросить посмотреть еще раз внимательно)
Я лишь процитировал ваши же слова.
Им не мало.
Кому «им»? Вам известен хотя бы один случай, когда «они» использовали описываемую вами схему с прислонением?
МЕТРО (который магазин), IKEA, MEGA еще кучки гипермаркетов — там как правило толчея+суммы поболее 1000р
Толчея там если и есть, то перед кассой. Да и то не настолько, чтоб жаться друг к другу — все же не трамвай в час-пик. А после того, как товар оплачен, покупатели достаточно свободно идут с теми самыми «гружеными тележками» (о которых вы выше писали) к своим машинам.
Если так вопрос ставится — нет. Ничего.
Именно, количество пассажиров на какой-то там станции метро само по себе в данном контексте — просто ничего.d-stream
10.10.2019 10:44Потрудитесь, пожалуйста, пояснить, как ваши грузовики относятся к обсуждаемой теме. Если, конечно, относятся.
Они относятся к конкретной фразе «которую должна решать полиция». Аналогия с грузовиком очень близкая: пешеход может бычиться на грузовик и увещевать что грузовик должен его пропустить… но победит грузовик.
Я лишь процитировал ваши же слова.
поэтому еще раз рекомендую внимательно перечитать цитаты и наконец понять, что процитированы не мои слова.
skrimafonolog
07.10.2019 17:08Человеку, который прислонился к кому то в метро — даже поймать за руку не получится. И предъявить нечего.
Когда есть четкое понимание того, кто прислонился, есть записи с камер наблюдения с его лицом, с хронометражем, и есть время проведения транзакций, совпадающее с моментом прислонения, да еще если не по одному, а по нескольким эпизодам — думаю, следователь сообразит, кому что предъявлять, если желание будет.
Вы за «оруэлл»?
Камеры на каждом углу + централизованно синхронизированные?x86d0cent
07.10.2019 17:09Речь шла конкретно про метро. И там камеры зачастую действительно на каждом углу.
A1054
07.10.2019 19:56Когда есть четкое понимание того, кто прислонился, есть записи с камер наблюдения с его лицом, с хронометражем, и есть время проведения транзакций, совпадающее с моментом прислонения, да еще если не по одному, а по нескольким эпизодам — думаю, следователь сообразит, кому что предъявлять, если желание будет.
Скорее всего не будет)
oq0po
07.10.2019 16:15Причем в магазинах камеры часто размещены прямо над кассами, поэтому СБ все эти ПИНы (да и скрины тоже) просто на жесткий диск пишет… Вот такие дела. Сохранять номера карт в приложении кассы не проблема, сопоставить по временным меткам с записью СБ еще проще.
d-stream
08.10.2019 10:52Притом обращаю внимание, что онлайн с этих камер выведено на экран охранника у входа… который сам больше смахивает на жулика/бандита)
x67
07.10.2019 20:47Ну пришла смс жертве. И что?) В сбер ему обращаться чтоли?) Мошенники деньги получили, а большего им и не надо.
Это лайт версия гоп стопа. Если раньше для этого применяли грубую силу в отношении жертвы, то сейчас мошеннические действия могут вызывать одно лишь недоумение, соответственно это достаточно безопасно для тех, кто решил зарабатывать деньги нечестным путем)
А про пин, людям пофиг что там рекомендованно, большинство особо не скрывают эту процедуру. А значит плодородное поле для мошенников есть.
x86d0cent
07.10.2019 23:35Ну пришла смс жертве. И что?) В сбер ему обращаться чтоли?)
Ну то есть потерся мужик в метро о жертву. Два раза. С интервалом секунд в 15. О грудь (если кошелек в нагрудном кармане). Вызвал у жертвы то самое «недоумение», о котором вы пишете. А через 5 секунд жертве СМС — «снятие наличных». И, конечно, жертва ничего не заподозрит.
Мошенники деньги получили, а большего им и не надо.
Не-а. Им надо не «получили» один раз, а надо постоянно получать. Ради одного раза заморачиваться и выстраивать схему они не будут. И еще им надо, чтобы их после не вычислили и не поймали. И тут еще большой вопрос, что безопаснее — кошелек незаметно вытащить, или вот так с карты деньги снять, о чем жертва будет оповещена через несколько секунд.
Повторюсь, разговоры про якобы плодородное поле для мошенников в сфере бесконтактных платежей ходят уже достаточно давно. Технологии тоже появились не вчера. А про реальные случаи и использованием подобных вещей как-то не особо слышно.
JerleShannara
07.10.2019 19:29От проблемы «атака пока карта в кармане штанов» я избавился до безобразия простым способом — ещё четыре карты тогоже частотного диапазона в одном кармане(в Москве это легко сделать кинув четыре метрошных ультралайта) — удачи тем, кто сможет обойти возникающие в таком бутерброде коллизии.
Tomasina
07.10.2019 20:37И это работает? По стандарту, кто первым из стопки карт ответил, тот и ведет транзакцию.
JerleShannara
08.10.2019 01:52Насколько помню — из современных «считывателей» только один (гидра или кто-то около вроде) умеет нормально работать с бутербродом из трех карт, из четырех уже кажется никто не мог.
x86d0cent
07.10.2019 23:41Кстати да, наличие нескольких бесконтактных карт (а 2-3 карты — имхо вполне обычное дело сегодня) — еще одна сложность на пути у тех, кто захочет легко и непринужденно снимать деньги, прижимаясь к добропорядочным гражданам.
vmarunin
08.10.2019 02:27Платить надо телефоном через Apple/Google/Samsung и прочие Pay
Там вводится другой пин (или вообще палец), телефон в неактивном состоянии неактивен, на ридер не отзовётся, а в активном сразу квакнет владельцу.
DrMefistO
07.10.2019 10:34Не рассказано ничего нового. Атаки только ради баловства.
«Опасный» способ, указанный в статье заключается в установке отрицательного числа (лучше — 0xFFFFFFFF) для различных счётчиков: номер сессии, кол-во попыток и т.д., через уменьшение либо прямую установку значения.Alert1234
07.10.2019 12:42+2Ничего нового именно для вас. Но здесь все таки ресурс общепопулярный.
Я вот встретил и с интересом прочитал, спасибо автору.
dromaniak
07.10.2019 11:02PayPass – M/Chip Technical Specifications Version 1.3 — September 2005
5.11 VERIFY Command Processing
The card shall not support the VERIFY command. The card shall return the
status bytes ‘6D00’ (Instruction code not supported) whenever the VERIFY
command is received.shape
07.10.2019 22:06+ Спасибо, дорогой. А то, глядишь, VERIFY APDU для оффлайновых пинов на бесконтактную карту шлют.
dromaniak
08.10.2019 08:23Что вы имели в виду?
В статье речь ведь идет о бесконтактной DoS атаке посредством команды VERIFY (быстрый способ), но по спецификации данная команда не должна поддерживаться.
cuamckuu
09.10.2019 16:04Ниже ответил, что не все карты имеют такое ограничение, а если и имеют, то не все его соблюдают.
Тот же МИР позволяет вызывать VERIFY в бесконтактном режиме и понижать PIN Try Counter.
fruit_cake
07.10.2019 12:391. использую iPhone для бесконтактной оплаты т.к. есть хоть какой-то контроль в виде отпечатка пальца, если телефон будет утерян или украден, проблематично будет пойти и просто набрать покупок в ближайшем супермаркете;
2. на просьбу выдать обычную карту, в банке заявили что прекратили выпуск и выдали безконтактную, у которой мной была обрезана антенна, недавно рассказали как раз случай мной предсказываемый несколько лет назад: вор украл из офиса рюкзак с безконтактной картой и сразу же пошёл совершать покупки, но на его беду на счету не было денег вообще, а так если на терминале оплаты не стоит ограничение с вводом пин кода, сумма оплаты ограничена банковским ежесуточным лимитом, который у всеми любимого банка составляет 100К и уменьшить нельзя, к слову на бизнес карте с расчётным счётом можно ставить лимит, Л — логика;
3. оплату на сайтах произвожу через пайпал, стараюсь минимизировать оплату через что-то другое, да и вообще меньше заказывать через интернет, и так барахла дома всякого накопилось;
4. страдаю паранойей по любому поводу, ибо время такое настало, теперь уже нейронные сети могут тебе позвонить голосом родственников и начать просить денег, сейчас конечно этим заняты только профи, но с развитием технологий это дойдёт и до обычных лохотронщиков, когда-то и мобильные телефоны были диковинкой.x86d0cent
07.10.2019 13:26а так если на терминале оплаты не стоит ограничение с вводом пин кода, сумма оплаты ограничена банковским ежесуточным лимитом, который у всеми любимого банка составляет 100К и уменьшить нельзя
Сумма оплаты по бесконтакту без пина в РФ ограничена сверху тремя тысячами рублей для визы и одной тысячей для мастеркарда. Это правила платежных систем и от банков не зависят.
Это если мы говорим о бесконтактном пластике, а не всяких эппл/гугл-пеях.balamutang
07.10.2019 13:40Нет. Меня это и раньше удивляло в карточках банка робота Олега, но после того как я оплатил 60000 руб без пина меня уже ничем не удивить. Благо через приложение можно оперативно крутить месячный лимит, им и страхуюсь.
x86d0cent
07.10.2019 14:22в карточках банка робота Олега
Тинькофф? Да, один из немногих, кто допускает авторизацию по подписи вместо пина. Так что более точно было бы написать не «без пина» а «без авторизации». Но тут бесконтакт как таковой опять же ни при чем — та же авторизация по подписи у Тинькова будет и если украденную карту в магазине по полосе катать, например. И обрезанная антенна тут уже никак не поможет.
А касаемо бесконтакта, повторюсь, на территории РФ у мастеркарда транзакции свыше 1000 рублей требуют дополнительной авторизации. Как правило это ПИН, у некоторых банков — подпись (но у них и при другом способе оплаты возможна авторизация по подписи).
fruit_cake
07.10.2019 13:51А кто мешает зайти в несколько магазинов и тратить до 3 тысяч и до того момента пока карту не заблокирует владелец или не будет превышен лимит в 100 тысяч? Плюс можно вернуться к тому же терминалу и совершить покупку ещё раз не превышая 3 тысячи.
x86d0cent
07.10.2019 14:40Насколько я помню, лимиты на последовательно проводимые бесконтактные транзакции тоже есть, и после определенного их количества запросит авторизацию.
Ну и держателю карты, наверное, следует блокировать сразу карты, а не дожидаться, пока вор совершит возможные покупки по максимуму…fruit_cake
07.10.2019 15:13Пока будете соображать, пару покупок уже можно совершить, а далее поход в банк и весь сопутствующий геморой с восстановлением карты.
x86d0cent
07.10.2019 17:02далее поход в банк и весь сопутствующий геморой с восстановлением карты.
Так если карту украли — это в любом случае ожидает. Совершенно независимо от того, бесконтактной она была или контактной.fruit_cake
07.10.2019 18:08Раньше если воровали, то спецы всякие, сейчас любой клоун может позарится. Зачем они нужны вообще при таком раскладе не очень понимаю, если есть телефон хоть с какой-то защитой.
x86d0cent
07.10.2019 19:09Раньше вообще была магнитная полоса (или импринтер) и подпись. А кошельки всегда воровали спецы по краже кошельков.
Телефон — да, неплохой вариант. «Если есть». В реальности у большинства нет nfc в телефоне. Плюс карта гарантированно никогда не разрядится (в отличие от), карту несколько сложнее разбить или утопить… В общем, в более или менее длительную поездку с одним телефоном и без карт я бы лично не поехал.fruit_cake
07.10.2019 20:39Так карта если обычная без антенны, то какая проблема то? Я же говорю про безконтактные, а не вообще карты как таковые. Обычные карты для карманников бесполезны в общем. Мне не нравится что меня насильно на это переводят, так же как хотят всех на биометрию переводить, на контроль голосом (что сейчас с развитием нейронок вообще бред).
x86d0cent
08.10.2019 00:00Мне кажется, я несколько потерял нить… Полезна она ему или нет (с обычными картами в ряде случаев тоже можно операции провести без пина) — вряд ли он ее из украденного кошелька вынет и обратно принесет. Все равно «поход в банк и весь сопутствующий геморой с восстановлением карты». Эта проблема никуда не денется.
А дополнительных рисков по бесконтактным — на ту самую пару операций (для мастеркард/мир по тысяче рублей максимум) в случае кражи. На фоне кражи кошелька и всего геморроя, с этим связанного, в общем-то совсем небольшая сумма.
Но зато если мы не вводим пин при покупке бутылки воды — ниже вероятность, что его кто-то ухитрится подсмотреть и потом кошелек вытащит с целью обналичить карту. Так что я бы тут еще подумал, что будет безопаснее в целом.fruit_cake
08.10.2019 10:45я лишь говорю о том, что для обычных воров бесконтактные карты стали ценной вещью как и наличка, раньше обычные карты их не интересовали в виду необходимости пинкода, если бы на бесконтактных был сканер отпечатка пальцев то другое дело, может вообще карманные кражи исчезли бы в виду их бессмысленности, за редким исключением когда жертва под наблюдением спецов
x86d0cent
09.10.2019 12:05Пинкод был необходим не всегда, не для всех операций, да и сейчас не для всех карт необходим (в т.ч. для «контактных» платежей). То есть не нужно думать, что бесконтактные платежи что-то прямо вот кардинально изменили в этом плане, хотя, наверное, возможностей у карманников в этом плане стало действительно несколько больше.
fruit_cake
09.10.2019 13:44при появлении у нас банковских карт, вообще паспорт просили предъявить при оплате, для заказа через интернет раньше были схемы которые сейчас в общем побороли, просто банк тебе впаривает карту эту без возможности выбора, возможно хотят всё обслуживание перевести на бесконтакт, только с безопасностью как всегда у нас будут проблемы, а то и просто с работой этих систем, новая карта у меня например не работала с банкоматами по бесконтакту, хотя в другом отделении банкоматы принимали её, другая карта работала везде
x86d0cent
10.10.2019 01:39Я, конечно, не знаю, «у вас» — это где именно, но я в РФ лет 15 назад платил картой, у которой была только магнитная полоса и приоритет подписи. А паспорт просили не везде — можно было найти место, где не просят.
Кстати, в вопросе безопасности есть ведь вторая сторона. Да, злоумышленник теперь легко может отоварить некоторую (зачастую относительно небольшую) сумму без авторизации. Но какие у нас альтернативы, если мы говорим именно об оплате картой? Либо авторизация по пину каждый раз (и тогда по факту мы чаще рискуем, что кто-то подсмотрит пин, а потом украдет кошелек и обналичит в банкомате вообще все, при этом вероятность возврата денег через ПС отсутствует). Либо авторизация по подписи (но тогда и злоумышленник сможет купить по подписи дорогостоящий товар, а вероятность возврата средств через чарджбэк если и будет, то небольшой).
В общем, на мой взгляд, не все так однозначно в плане безопасности — есть как минусы, так и плюсы.
u_skin
08.10.2019 10:03Лимиты может и есть, но похоже не у всех.
Недавно был случай у нас. 16 операций на сумму около 1000 рублей, не отходя от кассы, за 10 минут почти 15000 рублей. Причем ещё и пару других покупателей пропустил между своими чеками.
Даже если владелец карты вовремя увидит и сообразит, что по карте проходят левые платежи, пока найдет номер телефона банка, пока пройдет диалог с роботом на той стороне и наконец заблокирует карту половину з/п уйдет.x86d0cent
08.10.2019 11:24Вполне возможно, что не у всех. Мне, если память не изменяет, подобная информация попадалась где-то в документации мастеркарда. Не знаете, какой платежной системы была карта?
пока пройдет диалог с роботом на той стороне и наконец заблокирует карту
За все банки не скажу, но у тех, которыми пользуюсь, робот обычно начинает с фразы «Вас приветствует банк… Блокировка карты — нажмите 1».u_skin
09.10.2019 11:42Не знаете, какой платежной системы была карта?
Visa, Сбербанк.
За все банки не скажу, но у тех, которыми пользуюсь, робот обычно начинает с фразы «Вас приветствует банк… Блокировка карты — нажмите 1».
А после нажатия «1» какой квест будет? Я думаю спросит последние 4 цифры карты :)
Пример показывает, что простой человек, не успеет среагировать быстро, а злоумышленнику достаточно 10 минут, чтобы увести неплохую сумму денег.x86d0cent
09.10.2019 12:10Visa
Вот про Визу не скажу — их картами мало очень пользуюсь. Вероятно, тут тоже есть какие-то отличия с мастеркардом (как и в плане лимита одной операции).
А после нажатия «1» какой квест будет? Я думаю спросит последние 4 цифры карты :)
Доводилось пользоваться один раз, и еще пару-тройку раз по ошибке попадал в этот пункт, для разных банков. Сразу отвечал живой человек.
rinaty
07.10.2019 14:04Я просто ограничеваю риски, на карте держу сумму на повседневные расходы, а если нужна крупная покупка то пополняю ее перед этим со счета.
Для оплаты в интернете виртуальные карты, в том же тинькове удобно. Кстати с удивлением обнаружил что виртуальную карту можно к гуглопей подключить и платить телефоном, очень выручило когда потерял карту.fruit_cake
07.10.2019 16:16Если поехать в отпуск, нужно будет что-то с собой иметь, карту или наличные, вот и могут украсть карту. Плюс банки навязывают карты всем людям при открытии счёта, чтобы активнее тратили, ну а те не заморачиваются на безопасность. Вообще всё время нужно вырабатывать схемы поведения и быть в курсе схем преступников. Чёрт с тем что государство следит за тобой, везде слышишь «кому ты нужен», может спецслужбам ты не нужен пока не перешёл дорогу сильным мира сего, но обычным преступникам ты всегда нужен. Моим родственникам уже звонили с темой «из-за меня человек пострадал, перешлите деньги» когда я уезжал в другой город, т.е. какие-то соседи или знакомые сообщили этим уркам о том что меня нет в городе, только с городом они не угадали где я был, при наличии открытых страниц соц сетей, это сразу бы было понятно.
Tomasina
07.10.2019 15:29Платежные NFC-кольца и брелки аналогичны, или чем-то отличаются архитектурно/аппаратно?
cuamckuu
09.10.2019 16:02В карты зашита прошивка поддерживающая стандарт EMV (или более специфичный, в зависимости от карты) и ключи безопасности, для предотвращения создания клонов.
Скопировать пластиковую карту на кольцо или брелок скорее всего не выйдет.Tomasina
09.10.2019 19:04Я не про клонирование, а про официальные платежные кольца с чипом NFC. Некоторые банки их уже давно предлагают.
Zverg77
08.10.2019 10:03-2Ну вообще, полная хрень. Энтузиазм в каком то смысле понятен, конечно.
Персонаж демонстрирует пример ответа на первый SELECT, в котором фигурирует AID карты Visa (A0000000031010).
После чего люто "срывает покровы", предъявляя публике "фрагмент данных, извлеченных из записей карты". Но при этом, почему то, демонстрируется кусок профиля _КОНТАКТНОЙЧИПОВОЙ карты "Мир" (tag 5A = 22xx).
Тут необходимо отметить, что ни одна бесконтактная карта не хранит кардхолдер-нейм (tag 5F20), соот-но, ни о какой "привязке в некоторых онлайн-магазинах" речи идти не может.
p.s. Про не имеющие практического смысла переполнения ATC и PTL даже писать неинтересно.
p.p.s. Сразу не обратил внимания, цитата: "VERIFY // Пока карта не заблокируется"… VERIFY на БЕСКОНТАКТНУЮ КАРТУ! Пассажиру нужно идти читать EMV Book...
Romka02rus
09.10.2019 12:48Вообще cardholder name не только в 5f20 содержится.
Zverg77
09.10.2019 15:03Да. Ещё может хранится в 9f0b у C-7, например. Но суть от этого не меняется — из бесконтактной Visa извлечь cardholder name невозможно. По причине его отсутствия.
cuamckuu
09.10.2019 16:00_КОНТАКТНОЙЧИПОВОЙ карты «Мир» (tag 5A = 22xx).
Банковская карта сбербанка, выданная вузом.
ни одна бесконтактная карта не хранит кардхолдер-нейм
Считать имя держателя удавалось с MacterCard и с МИРа, возможно есть и карты Visa, которые хранят имя держателя.
На самом деле при привязке в онлайн-магазинах имя обычно даже не проверяется и можно вбить любые данные, так что если имя не получится считать с карты, это не так критично.
VERIFY на БЕСКОНТАКТНУЮ КАРТУ! Пассажиру нужно идти читать EMV Book...
Как раз в этом и смысл, не все карты соблюдают стандарт и многие согласны обрабатывать VERIFY даже в бесконтактном режиме.Zverg77
09.10.2019 17:48По имени держателя, повторю: это фантастика. Ни одно персобюро ни одного эмитента не выпустит такой бесконтактный профиль. Потосу что ни один CPV-сервис ни одной ПС такой профиль не валидирует.
По VERIFY: это также фантастика, поскольку команда используется для проверки оффлайн-пина. В cvm-листе любой бесконтактной карты оффлайн-пин отсутствует как класс.
Romka02rus
08.10.2019 10:03Хм, так допустим если знать специфику работы протоколов то и cvv можно вытащить. Если да то все, считай все есть
cuamckuu
09.10.2019 15:52+1CVV код не хранится в электронном виде, он указан только на обороте банковской карты
mmMike
То что Вы рассказали, тем кто работает в теме и так известно. И набор утилит у тех кто с этим работает, как самописных, так и платных специализированных не мал.
Я понимаю, восторг "первооткрывателя", но стоило ли выкладывать на Github?
Дали инструмент школоте и кууул хацкерам делать гадости. Зря… на мой взгляд.
И, кстати, атаками это названо чересчур громко.
Да можно сделать мелкие гадости людям. Например соседу по школьной парте.
Особенно с блокировкой PIN.
Хотя PIN карты легко разблокировать выбрав смену PIN (увы, если поддерживает) банкомате (там on-line PIN + EMV скрипт). Но не все знают и для них будет неприятно когда карта перестанет работать в POS.
Блокировка по ATC — слишком долго карту нужно мучить (хотя… некоторые, не буду показывать пальцем, ставят в профили персонализации меньшее значение, чем 0xFFFF. Типа безопаснее для криптоанализа ключей карты).
Не просто так, кстати, PSE — опционально по EMV. И по факту, часто на картах остутствует.
CVV2 только графически персонализируется. Покажите, pls, один из "некоторых онлайн-магазинах" который не требует CVV2 и при этом не использует 3D.
MiXei4
В статье есть пример — Amazon, но, кажется, они единственные не требуют его.
skrimafonolog
Нет, мне несколько встречались, как правило это крупные магазины/крупные операторы услуг, которые, видимо, прошли PCI DSS как следует и им доверяют.
Насколько я помню — CVV запрашивать или нет — дело самого магазина, это его страховка от жуликов.
cuamckuu
В статье есть ссылки на инструменты, которые лежат в открытом доступе. На мой взгляд, они все обладают проблемами, поэтому и было решено создать что-то своё.
Я считаю, что понижение входного порога это хорошо. Кратковременная вспышка «школоты и кулхацкеров» может поспособствовать улучшению протоколов безопасности банковских карт, чтобы решить описанные в статье недостатки.
Словарь это хорошее решение для банкомата, но не для утилиты подобного рода. Для проведения «атаки» лучше попытаться считать PSE, если он есть — хорошо, нет — ничего страшного.
Список магазинов без CVV гуглится, а про 3D в статье ничего не было сказано. Можно считать, что для атаки потребуется дополнительный шаг.
Также можно попробовать брутить CVV в разных магазинах, можно будет проверить около 100-200 вариантов до блокировки карты, в зависимости от типа карты и самих магазинов.