November 6, 2018

Как украсть деньги с бесконтактной оплаты или Apple Pay.

В статье разбиремся в популярных мифах и сценариях мошенничества с бесконтактными системами оплаты, на примере настоящего POS-терминала, карт PayPass/payWave и телефонов с функцией Google Pay/Apple Pay.

Рассматриваемые темы:

  • Можно ли НА САМОМ ДЕЛЕ украсть деньги, прислонившись POS-терминалом к карману? — мы попытаемся полностью воспроизвести этот сценарий мошенничества от начала до конца, с использованием настоящего POS-терминала и платежных карт в реальных условиях.
  • В чем разница между физическими и виртуальными картами Apple Pay? — как происходит связывание физической карты и токена Apple Pay, и почему Apple Pay во много раз безопаснее обычной карты.
  • Используем аппаратный NFC-сниффер (ISO 14443A) — воспользуемся устройством HydraNFC для перехвата данных между POS-терминалом и картой. Рассмотрим, какие конфиденциальные данные можно извлечь из перехваченного трафика.
  • Разбираем протокол EMV — какими данными обменивается карта с POS-терминалом, используемый формат запросов, механизмы защиты от мошенничества и replay-атак.
  • Исследуем операции без карты (CNP, MO/TO) — в каких случаях на самом деле(!) можно украсть деньги с карты, имея только реквизиты, считанные бесконтактно, а в каких нельзя.

Внимание!

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

Материалы в статье представлены исключительно в ознакомительных целях. Все сцены демонстрации мошенничества инсценированы и выполнены с согласия участвующих в них лиц. Все списанные деньги с карт были возвращены их владельцам. Воровство денег с карт является уголовным преступлением и преследуется по закону.

Как это работает?

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

Этапы транзакции при оплате через POS-терминал

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

  1. Покупатель прикладывает/проводит/вставляет карту в POS-терминал;
  2. POS-терминал по интернету передает данные в банк-эквайер;
  3. Банк-эквайер через международную платежную систему (МПС) обращается в банк-эмитент и запрашивает, может ли конкретный держатель карты оплатить покупку;
  4. Банк-эмитент подтверждает или отклоняет покупку, после чего печатается слип (второй чек).

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

Продавец (Merchant) — лицо или организация, предоставляющая товары или услуги

Банк-эквайер (Acquiring bank) — банк, который предоставляет продавцу услуги приема платежей через банковские карты. В этом банке, обычно, находится расчетный счет продавца, куда зачисляются списанные с карты деньги.

Банк-эмитент (Issuing bank) — банк, выпустивший карту. В нем находится счет владельца карты, у которого списываются деньги.

Международная платежная система (МПС) — международная система-посредник между банками по всему миру, позволяющая банкам производить расчеты между собой без заключения договора с каждым банком по отдельности. Все банки, подключенные к МПС, соглашаются работать по одним правилам, что значительно упрощает взаимодействие. Например, Visa, MasterCard, UnionPay, American Express, МИР (нет, МИР не работает заграницей).

Владелец карты (Cardholder) — человек, заключивший с банком-эмитентом договор обслуживания карты.

Чем отличается обычная карта от Apple Pay или Google Pay?

Процедура привязки банковской карты к системе Apple Pay или Google Pay из-за непонятности процесса часто порождает заблуждения даже у профессионалов в IT. Мне приходилось слышать много разных мифов об этой технологии.

Популярные мифы об Apple Pay

  • Карта копируется в телефон
  • Это не так, в микропроцессорной карте содержится защищенная область памяти с криптографической информацией, которая после выпуска карты не может быть извлечена. Из-за этого чипованную карту нельзя скопировать, никак, вообще. Справедливости ради нужно сказать, что подобные атаки возможны, но стоимость их превышает суммарное количество денег, которые потратят за всю жизнь большинство читателей этой статьи.
  • Телефон каждый раз подключается к интернету во время оплаты
  • Google Pay/Apple Pay не подключаются к интернету во время оплаты через POS-терминал. Вся нужная информация хранится локально в телефоне.
  • На каждую оплату генерируется новый номер карты (PAN)
  • Так может показаться, если читать пресс-релизы Apple о технологии Apple Pay. Но это ошибочное трактование понятия токена. На самом деле, реквизиты виртуальной карты остаются неизменными достаточно долго, вы можете это проверить по последним цифрам номера карты в слипе (банковском чеке) при оплате покупок.
  • При оплате через Apple Pay/Google Pay взымается дополнительная комиссия
  • Это не так, вы заплатите ровно столько, сколько указано на ценнике, и согласно условиям вашего договора с банком-эмитентом, чью карту вы привязали.
  • Деньги могут списаться два раза
  • Этот миф касается не только Google Pay/Apple Pay, но и обычных банковских карт. Полагаю, что он появился из-за систем оплаты общественного транспорта, в которых терминал списывает деньги с проездного билета каждый раз при поднесении, так что можно списать средства два или более раз, если неаккуратно поднести карту. В случае с POS-терминалами этого риска не существует, так как терминал прекращает обмен с картой, как только получил нужные данные.

Системы, подобные Apple Pay, работают на основе EMV Payment Tokenisation Specification. Процедура связывания физической карты и телефона с Apple Pay не описана публично, поэтому разберем процесс на основе известных данных:

  1. Поставщик (Google, Apple, Samsung) получает информацию о карте;
  2. Через МПС поставщик запрашивает, поддерживает ли данная карта (данный банк-эмитент) работу с EMV Tokenisation;
  3. На стороне МПС генерируется виртуальная карта (токен), который загружается в защищенное хранилище в телефоне. Мне неизвестно, где именно генерируется приватный ключ от виртуальной карты, передается ли он по интернету или генерируется локально на телефоне, в данном случае это не имеет значения.
  4. В телефоне появляется сгенерированная виртуальная карта-токен, операции по которой банк-эмитент интерпретирует как операции по первой физической карте. В случае блокировки физической карты, токен тоже блокируется.

Apple Pay позволяет считать реквизиты виртуальной карты. PAN номер и expire date отличаются от привязанной карты российского Альфа-Банка. По BIN виртуальной карты (480099) определяется MBNA AMERICA BANK. 

При оплате телефоном, POS-терминал видит обычную карту VISA или MasterCard, и общается с ней точно так же, как и с физической картой. Виртуальная карта-токен содержит все атрибуты обычной карты: PAN-номер, срок действия и прочее. При этом номер виртуальной карты и срок действия отличаются от привязанной оригинальной карты.

Сценарий 1 — обычный POS-терминал

Мошенник, вооруженный POS-терминалом

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

Условия следующие:

  • У мошенника полностью рабочий обыкновенный POS-терминал, подключенный к банку-эквайеру, такой же, как в магазинах и у курьеров. Прошивка терминала не модифицирована. В нашем случае — Ingenico iWL250. Это портативный POS-терминал с GPRS модемом, который поддерживает бесконтактную оплату, работает от батарейки и полностью мобилен.
  • Мошенник не использует дополнительные технические средства, только POS-терминал
  • Списанные средства зачисляются на расчетный счет мошенника, по всем правилам банковских систем

Юридическое лицо

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

Цена компании на черном рынке с расчетным счетом колеблется от 20 до 300 тысяч рублей. Мне удалось найти несколько предложений ООО с POS-терминалом от 200 тысяч рублей. Такие компании оформлены на подставных лиц, и покупатель получает весь пакет документов, вместе с «кеш-картой» — это банковская карта, привязанная к расчетному счету подставной компании. С такой картой мошенник может обналичивать деньги в банкомате.

Для простоты будем считать, что ООО + расчетный счет + эквайринг и POS-терминал обойдутся мошеннику в 100 000 рублей. На самом деле больше, но мы упростим жизнь нашему гипотетическому мошеннику, снизив себестоимость атаки. Ведь чем ниже себестоимость атаки, тем проще ее реализовать.

Идем воровать деньги

Итак, мошенник получил POS-терминал и готов отправиться в людное место, чтобы прислоняться к жертвам и воровать деньги из карманов. В нашем эксперименте все жертвы были предварительно проинструктированы о наших намерениях, и все попытки списания денег проводились с их согласия. В случаях, когда испытуемые не имели собственных бесконтактных банковских карт, им предлагалось положить в кошелек нашу карту. Предварительно у испытуемых выяснялось, где именно и как они хранят свои карты, поэтому мошенник заранее знал, где в сумке/кармане находится бесконтактная карта.

В случае успешного списания, транзакция отменялась через меню терминала, и деньги возвращались на счет испытуемых. За все время эксперимента мы попытались «украсть» деньги у 20 испытуемых в здании торгового центра и на улице. Результат испытаний описан далее.

Проблема: Лимит на транзакции без PIN-кода

Лимит на максимальную сумму операции без подтверждения ПИН-кодом может быть установлен как на самом POS-терминале (CVM Required Limit), так и на стороне банка. В России это ограничение равно 1000₽.

UPD В настройках карты, может быть установлен тип авторизации Cardholder verification methods (CVMs) в виде росписи. В таком случае, бесконтактная транзакция пройдет на любую сумму без ПИН-кода. 

Наш мошенник принимает решение списывать по 999.99 рублей за раз. Если будет запрошена повторная попытка списания суммы ниже лимита в короткий временной промежуток, будет также запрошен ввод ПИН-кода и, в большинстве случаев, не получится несколько раз подряд списать по 999.99 рублей. Поэтому наиболее оптимальной стратегией будет не более одного списания с одной карты.

В России максимальная сумма списания без PIN-кода равна 1000 руб.

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

Проблема: Несколько карт в кошельке

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

Конкретно мой терминал Igenico iWL250 при обнаружении в поле действия более одной карты с SAK, обозначающим поддержку протокола 14443-4, возвращает ошибку: «предъявите одну карту».

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

Антиколлизии ISO 14443-3

Чтение одной конкретной карты из нескольких — непростая задача на физическом уровне. Для решения этой проблемы существует механизм антиколлизий. Он позволяет выбрать одну карту, если был получен ответ от нескольких карт сразу. Это самый первый этап установления связи с бесконтактной картой в протоколе ISO-14443A. На данном этапе считыватель не в состоянии выяснить, какая из представленных карт банковская. Единственный вариант — выбрать более-менее похожую на банковскую карту, на основании ответа SAK (Select Acknowledge).

Значение бит в ответе SAK 

Так, например, используемая в московском общественном транспорте карта «Тройка» (стандарта Mifare) имеет значение SAK=0x08 (b00001000), в котором шестой бит равен нулю. В то время как у всех банковских карт в ответах SAK шестой бит равен 1, что означает поддержку протокола ISO 14443-4.

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

Блок-схема работы протокола антиколлизий 

Из личного опыта: несмотря на наличие протокола антиколлизий, при наличии в кошельке хотя бы трех бесконтактных карт, считать успешно нужную карту КРАЙНЕ тяжело. Большинство попыток заканчивается ошибками чтения. Тем более сложно это сделать на бегу, прижимаясь к чужим карманам и сумкам.

Однако мы будем считать, что нашему мошеннику очень везёт, и это ограничение его не беспокоит.

Оффлайн vs Онлайн транзакции

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

Спецификации EMV допускают оффлайн-транзакции. В таком режиме списание происходит без онлайн-подтверждения со стороны банка-эмитента. Это работает, например, в общественном транспорте в Москве и Санкт-Петербурге. Чтобы не занимать очередь на входе в автобус, пока терминал выполнит онлайн-подтверждение, вас пропускают сразу, не проверяя, достаточно ли у вас денег на счету для оплаты проезда. В конце дня, когда на терминале появляется интернет, подписанные транзакции отправляются в банк-эмитент. Если окажется, что в этот момент у вас нет денег на оплату проезда, карта будет добавлена в стоп-лист на всех терминалах в городе. Долг можно погасить через личный кабинет по номеру карты. Подробнее об оплате проезда в автобуса Санкт-Петербурга.

Лично мне не удалось получить POS-терминал, поддерживающий такую функцию, поэтому в сценарии с обычным «гражданским» POS-терминалом мы не будем рассматривать возможность оффлайн-списаний. Это ничего не меняет, кроме того, что атакующему потребуется наличие интернета на терминале, поэтому атака, например, в метро, значительно усложняется.

Существуют модели терминалов, поддерживающие WiFi, и в теории наш мошенник мог бы использовать WiFi в метро, предварительно позаботившись о покупке доступа без рекламы для MAC-адреса своего POS-терминала, чтобы не нужно было выполнять аутентификацию через captive portal, так как на POS-терминале это сделать нельзя.

Подсчитываем прибыль

В нашем сценарии себестоимость атаки была 100 000 рублей. Это значит, что для того, чтобы хотя бы вернуть вложения, нашему герою нужно выполнить минимум 100 транзакций по 1 тысяче рублей. Представим, что он был достаточно проворным и весь день бегал по городу, прижимаясь ко всем подряд, так, что к концу для сделал 120 успешных списаний. Мы не будем учитывать комиссию эквайринга (в среднем 2%), комиссию на обналичивание (4-10%) и другие комиссии.

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

В реальности не все так просто. Зачисление денег на счет мошенника произойдет только через несколько дней! За это время, наш мошенник должен надеяться, что никто из ста двадцати жертв не оспорит транзакцию, что крайне маловероятно. Поэтому в реальности, счет мошенника будет заблокирован еще до зачисления на него денег.

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

Вывод

Себестоимость атаки в нашем сценарии — 100 000р. В действительности, она будет в несколько раз выше, поэтому мошеннику потребуется намного больше усилий для того, чтобы получить прибыль.

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

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

Из 20 испытуемых только у трех удалось списать деньги с карты, что составляет 15% успеха от всех попыток. Это были те искусственные случаи, когда в кармане находилась одна единственная карта. В случаях же с кошельком и несколькими картами, терминал возвращал ошибку. В сценарии с терминалом, который использует модифицированную прошивку и реализует механизм антиколлизий, процент успешных списаний, возможно, будет выше. Однако, даже в случае использования антиколлизий, в реальных условиях на бегу, считать одну карту из нескольких настолько сложно, что успешное списание в таких условиях можно считать везением. В реальности, доля успешных списаний будет едва ли выше 10% от числа попыток.

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

Будет вторая часть.