Карточные платежи становятся все более популярными. Мобильные платежные терминалы (mPOS-терминалы) способствуют развитию этой тенденции, снижая барьеры входа на рынок карточных платежей для небольших фирм и частных предпринимателей. При этом при определенных условиях операции все еще можно осуществлять во множестве стран (включая Россию) при помощи магнитной полосы. Каждый новый виток технологического прогресса ставит под угрозу платежную экосистему. К каким проблемам безопасности может привести облегчение доступа на рынок карточных платежей? И чем мы рискуем, продолжая полагаться на старые карточные технологии, в частности на магнитную полосу?
За последние годы число операций, осуществляемых с помощью mPOS-терминалов, существенно возросло. Острая конкуренция среди поставщиков mPOS привела к тому, что получить такой платежный терминал стало чрезвычайно просто. Подписание договора занимает меньше пяти минут, а сами mPOS-терминалы зачастую предоставляются бесплатно. Теперь их можно увидеть повсюду. Как и обычные POS-терминалы, они являются конечным звеном платежной инфраструктуры. Это делает их интересными и легко доступными для злоумышленников.
Область исследования
Мы провели оценку продукции ведущих поставщиков mPOS-терминалов: PayPal, Square, iZettle и SumUp. Некоторые из них предоставляют услуги в нескольких регионах мира. Мы постарались получить доступ к услугам в разных регионах, где это было возможно, поскольку процесс платежа, приложения и устройства, а так же настройки безопасности отличаются в зависимости от локации.
Поставщик | Производитель | Терминал | Регион |
---|---|---|---|
Square | Square | Терминал для бесконтактных карт и карт с чипом Square (S8) |
США |
Square | Square | Терминал для магнитных карт Square (S4) |
США |
Square | Square | Терминал для бесконтактныхкарт и карт с чипом Square (S8) | Европа |
Square | Square | Терминал для магнитных карт Square (S4) | Европа |
Square | Miura Systems | Miura M010 | США |
SumUp | (not public) | AIR1 E001 | Европа |
iZettle | DATECS | YRWCRONE | Европа |
PayPal | Miura Systems | Miura M010 | Европа |
Производители и поставщики mPOS-терминалов
mPOS-терминалы
Мы провели анализ безопасности устройств по пяти категориям:
- коммуникация между телефоном и сервером платежной системы;
- коммуникация между телефоном и mPOS-терминалом;
- механизмы физической защиты mPOS-терминала;
- мобильное приложение;
- дополнительные факторы, влияющие на безопасность, в частности проверка при регистрации.
Основные направления исследования
Процесс оплаты
Мы подробно изучили векторы атак и проблемы безопасности карточных платежей. Обнаруженные нами уязвимости ставят под угрозу основные функциональные возможности mPOS-терминала.
Главное отличие mPOS от обычных POS-терминалов заключается в том, что продавец не связан напрямую с банком-эквайером. Вместо этого поставщики mPOS выступают в роли платежных агрегаторов, которые берут комиссию за осуществление транзакции. Такие платежные сервисы не всегда могут гарантировать уровень безопасности, который обеспечивает банк-эквайер. Поставщики mPOS минимизируют риски безопасности по-своему, зачастую перекладывая ответственность за фрод на банк-эквайер. Важно понимать, что такие платежные агрегаторы фактически сами являются продавцами, которые взаимодействуют с банком-эквайером.
Процесс оплаты через mPOS-терминал
Риски при оплате картой
Существуют различные способы карточных платежей. Они зависят от платежной системы, эмитента и страны выпуска. В ходе транзакции карта передает список поддерживаемых методов верификации владельца карты (CVM), который описывает поддерживаемые методы и их приоритет. CVM также регулирует, что должно произойти, если выбранный метод не сработает. В терминале хранится файл конфигурации, в котором так же описаны поддерживаемые методы верификации. Терминал сравнивает эти два файла и пытается осуществить транзакцию с помощью первого по приоритету способа. Приоритетный способ должен обеспечивать высокую степень гарантии того, что держатель карты присутствовал при выполнении операции.
Некоторые типы платежей, очевидно, более безопасны, чем другие. Оплата картой с чипом и с помощью ввода PIN-кода считается наиболее безопасным методом, потому что дает высокую степень гарантии, что операция была одобрена держателем карты. Магнитная полоса считается менее безопасной технологией, поскольку злоумышленник легко может клонировать магнитную полосу и хранящиеся на ней данные Track2 и подделать подпись держателя карты. Операции, проведенные с использованием магнитной полосы, не дают уверенности в том, что держатель карты действительно присутствовал при транзакции. В отличие от операций по картам, поддерживающим стандарт EMV, транзакции с использованием магнитной полосы проходят без криптограммы. Это означает, что такие операции не обеспечивают целостность и аутентичность транзакции при ее проведении.
Принятие стандарта EMV
Все больше платежей в мире осуществляется по стандарту EMV (Europay, Mastercard, Visa), то есть с помощью чиповых карт. Однако принятие стандарта в некоторых регионах происходит медленнее, чем в других. В США операции по стандарту EMV составляют менее половины всех транзакций. Большинство операций все еще осуществляется с использованием магнитной полосы. В Европе около 90% всех операций проводится по стандарту EMV.
Результаты исследования
Манипуляция с устройством: отправка произвольных команд
Злоумышленник может подключиться к устройству через Bluetooth и осуществлять произвольные операции. Для этого ему нужна информация о Bluetooth сервисах, запущенных на устройстве, а также соответствующих характеристиках и функциях. Эту информацию можно получить с помощью реверс-инжиниринга до проведения атаки. Злоумышленнику потребуется лишь доступ к mPOS-терминалу, телефон, который поддерживает регистрацию событий интерфейса хост-контроллера (HCI), и мобильное приложение. С помощью регистрации событий HCI злоумышленник попытается получить информацию об основных функциях mPOS-терминала. Для этого он будет проводить пробные операции, используя разные способы оплаты и сравнивая результаты. Когда необходимая информация будет получена, злоумышленник с помощью Wireshark проанализирует коммуникацию между телефоном и mPOS-терминалом. Эта информация, а также данные мобильного приложения, позволят сопоставить функции с их командами и идентификаторами. На рисунке 5 показана отправка сообщения «Вставьте (проведите) карту» на дисплей mPOS-терминала.
Сообщение «Вставьте (проведите) карту» отправлено на дисплей
Если карта вставлена неправильно, на дисплее появляется сообщение об ошибке «Пожалуйста, заберите карту». В журнале HCI мы видим, какой UUID отвечает за отображение текста и пример отправляемых данных.
Сообщение «Пожалуйста, заберите карту» на дисплее mPOS-терминала
Первый пакет Bluetooth отвечает за отправку сообщения «Пожалуйста, заберите карту»
Второй пакет Bluetooth отвечает за отправку сообщения «Пожалуйста, заберите карту» (сообщение разделено на два пакета из-за небольшого максимального размера одного пакета Bluetooth Low Energy).
На рисунке ниже видно, что значение, отправленное на mPOS-терминал, состоит из пяти частей. Оно включает в себя префикс, содержащий идентификатор команды, значение счетчика отправленных команд и размер полезной нагрузки, основной текст в виде символов ASCII, а так же постфикс, значение контрольной суммы и завершающий байт.
Элементы двух пакетов, отвечающие за отправку сообщения «Пожалуйста, заберите карту»
В следующем примере терминал использует Bluetooth Classic для коммуникации с телефоном. Мы видим сообщение «Вставьте (проведите) карту», отправленное на дисплей терминала.
Сообщение «Вставьте (проведите) карту» на дисплее mPOS-терминала
Пакет Bluetooth (в окне Wireshark), отвечающий за отправку сообщения «Вставьте (проведите) карту» на дисплей mPOS-терминала
На рисунке ниже видно, что эти данные состоят из трех частей: префикс, сообщение и контрольная сумма. Префикс так же содержит счетчик, ID команды и размер полезной нагрузки. Сообщение содержит значение «Вставьте (проведите) карту» в кодировке ASCII. Контрольная сумма — XOR всех байтов сообщения.
Элементы пакета, отвечающие за отправку сообщения «Вставьте (проведите) карту»
С помощью этой информации можно создать произвольную команду и отправить ее на дисплей mPOS-терминала. Три из протестированных нами устройств оказались уязвимы для этого вектора атаки.
Поставщик | Производитель | Считыватель | Регион |
---|---|---|---|
SumUp | (not public) | AIR1 E001 | Европа |
iZettle | DATECS | YRWCRONE | Европа |
Square | Square | Square (S8) | США |
Список терминалов, уязвимых для отправки произвольных команд. Несмотря на то что считыватель Square (S8) не имеет дисплея, злоумышленник может отправлять другие произвольные команды.
Этот вектор атаки может использоваться совместно с эксплуатацией других уязвимостей, чтобы предложить клиенту менее безопасные типы операций, например по магнитной полосе. Этот сценарий описан на рисунках 14–16. Кроме того, злоумышленник может отправить сообщение «Платеж отклонен», чтобы вынудить держателя карты провести несколько транзакций.
Держатель карты пытается вставить карту
Сообщение «Пожалуйста, проведите карту», отправленное на дисплей терминала, вынуждает держателя карты использовать магнитную полосу
Операция проведена успешно – для проведенной операции с использованием магнитной полосы требуется оставить подпись.
Подделка суммы
Существуют разные способы перехвата трафика между mPOS-терминалом и сервером платежной системы. Мы уже описали один из них — регистрация событий HCI на мобильном телефоне и анализ полученных результатов. Для этого необходимо включить разработчика (Android Developer Mode). Злоумышленник может пойти другими путями, например перехватить HTTPS-трафик между мобильным приложением и сервером платежной системы. Это возможно, потому что в большинстве случаев сервер платежной системы генерирует команды и отправляет их на mPOS-терминал. Чтобы защитить мобильное приложение от перехвата HTTPS, все поставщики протестированных нами терминалов используют SSL-пиннинг.
На рисунке ниже пример инициализированного платежа, перехваченный двумя разными методами. Мы смогли перехватить HTTPS-трафик с помощью атаки «человек посередине» (man-in-the-middle), а так включили режим отладки. Сумма операции приведена в незашифрованном виде. Значение 0100 соответствует 1,00 ?.
Инициализированный платеж, проведенный с помощью mPOS-терминала
Перехватив HTTPS-трафик, мы можем изменить сумму транзакции. Затем необходимо пересчитать контрольную сумму. После этого мы можем отправить измененное значение суммы серверу платежной системы для подтверждения транзакции. Мы обнаружили пять терминалов, уязвимых для модификации суммы при операциях с использованием магнитной полосы.
Поставщик | Производитель | Считыватель | Регион |
---|---|---|---|
SumUp | AIR1 E001 | Европа | |
iZettle | DATECS | YRWCRONE | Европа |
Square | Miura | Miura M010 | США |
Miura | Miura M010 | США | |
PayPal | |||
Square | Square | Square | США/Европа |
Magstripe Reader (S4) |
mPOS-терминалы, уязвимые для подделки суммы
Недобросовестный продавец может обманным путем заставить владельца карты подтвердить операцию на гораздо большую сумму. В ходе операции продавец выводит на дисплей считывателя одну сумму, но при этом сервис провайдеру mPOS-терминала для подтверждения отправляется бо?льшая сумма. Эта атака показана на рисунке ниже.
Слева: сумма, отправленная серверу платежной системы (1,23 ?). Справа: сумма, которую видит держатель карты (1 ?)
Этой уязвимости подвержены терминалы, поддерживающие операции с использованием магнитной полосы. В ходе операций терминал отправляет только зашифрованные данные Track2; сама операция при этом не заверяется. Этот вектор атаки не сработает, если операция проводится по стандарту EMV, потому что в подобных операциях информация о сумме хранится внутри криптограммы. Бесконтактные платежи PayPass и payWave, которые поддерживают работу в Legacy режимах (PayPass MAGSTRIPE и PayWave MSD) не обеспечивают такого уровня защиты, поскольку информация о сумме так же не защищена криптограммой.
Чтобы понять масштаб проблемы, достаточно вспомнить, что менее 50% транзакций в США осуществляются по стандарту EMV. Кроме того, у проверенных нами сервис провайдеров установленные лимиты на одну операцию с использованием магнитной полосы в Европе и США невероятно высок и составляет 50 000 € и 50 000 $ соответственно.
Эту атаку можно предотвратить путем использования криптографического контроля целостности полей суммы и валюты и сравнения суммы и валюты операции на считывателе с суммой, подтверждаемой сервис провайдером. Важно отметить, что стандарт PCI DSS (текущая версия 3.2.1), который регулирует хранение, обработку и передачу данных карты, не требует проведения таких проверок в случае операций с использованием магнитной полосы. Для проведения операции требуется лишь передача данных Track2.
Удаленное выполнение кода
Два из протестированных нами терминалов оказались уязвимы для удаленного выполнения кода. Эксплуатация этой уязвимости обеспечивает злоумышленнику полный доступ к операционной системе терминала. После того как злоумышленник получит полный доступ к операционной системе, он сможет перехватить данные Track2 до шифрования или включить незашифрованный режим (для отправки команду) на клавиатуре терминала для перехвата PIN-кода.
Поставщик | Производитель | Считыватель | Регион |
---|---|---|---|
Square | Miura | Miura M010 | США |
PayPal | Miura | Miura M010 | США |
Список терминалов, уязвимых для удаленного выполнения кода
Ролик Nyan Cat на дисплее терминала Miura M010. Удаленное выполнение кода открывает злоумышленнику полный доступ к операционной системе терминала
Физическая защита
Физические механизмы защиты большинства mPOS-терминалов достаточно надежны. Считыватель магнитных карт Square (S4) не гарантирует уровня безопасности и технологической сложности, характерных для считывателей бесконтактных и чип-карт. Однако это должно быть стандартным требованием к устройству, которое предоставляется продавцу на бесплатной основе. Остальные терминалы обеспечивают должный уровень физической защиты, поддерживают механизмы, препятствующие вскрытию, и прочие меры для предотвращения взлома аппаратного обеспечения.
Механизмы анти-тамперинга
Системы анти-тамперинга помогают предотвратить вскрытие терминала с помощью дрели и прочих инструментов. При попытке вскрытия происходит разрыв электрической цепи, и устройство прекращает работать. Кроме того, большинство считывателей функционируют на основе патентованных стандартов. Без доступа к документации разработчика получить ценную информацию путем физического вскрытия устройства невозможно.
Внутреннее устройство iZettle YRWCRONE
Система для обнаружения попыток вскрытия iZettle YRWCRONE
Заключение
Мы обнаружили, что больше половины mPOS-терминалов уязвимы для атак, при этом в целом уязвимыми оказались все проанализированные нами поставщики mPOS-терминалов. Мы зарегистрировали многочисленные серьезные проблемы безопасности, в частности уязвимость для выполнения произвольных команд, подделке суммы и выполнению удаленного кода.
Аппаратные механизмы защиты терминалов в большинстве случаев надежны и развиты. Однако другие аспекты, например, связанные с мобильным приложением и процедура регистрации, защищены гораздо слабее.
Разработчики mPOS-терминалов подчеркивают простоту регистрации и использования устройств. Это ключевые элементы бизнес-модели, но она не учитывает, что снижение барьеров входа на рынок карточных платежей должно сопровождаться существенным увеличением безопасности. Нет никаких сомнений в том, что мошеннические действия продавцов останутся серьезной проблемой поставщиков mPOS-терминалов. Необходимо разработать серьезный подход к проблеме безопасности, включая проверку в ходе регистрации и строгий мониторинг платежей.
Авторы: Ли-Энн Галлоуэй, Тимур Юнусов, Артем Ивачев, Марк Кэрни, Алексей Стенников | Positive Technologies
motpac
Если не сложно, смоделируйте ситуацию от начала оплаты до вывода ворованных средств с расчетного счета злоумышленника. Какую угрозу несут данные уязвимости для покупателей, которым будет предложенно оплатить покупку скомпрометированным терминалом? Получая на руки слип, смс о платеже или чек будет виден подлог рано или поздно. Оспорить такую операцию будет несложно. И я уже не говорю о том, что используется безналичный способ, который требует наличие расчетного счета, а значит и полную верификацию собственника терминала.
DrunkBear
+1.
Вот я плачу телефоном, вот через 10 секунд мне приходит чек на большую сумму или 2 чека, вот я фотографирую бумажный чек на руках, делаю скриншот чека с телефона, начинаю разборки и звоню в поддержку банка — всё это займёт минуты полторы максимум.
А где здесь профит злоумышленников?
PS случай с тройной оплатой был прошлой зимой, какая-то проблема с транзакциями у ВТБ была. Деньги за 2 дополнительные оплаты вернули через сутки после обращения в поддержку.
NeiroNx
Тут скорее всего покупка чего либо за бесплатно — терминал покажет успешную операцию а продавец поймет что что-то не так когда покупатель будет уже вне зон досягаемости.
DrunkBear
Продавец в любом случае должен отдать покупателю чек ( с цифровой подписью от банка), а взламывается только текст на терминале.
Если хакеры смогут генерировать валидные коды подтверждения от банков — вряд ли они станут тырить мелочь по магазинам.