Поиск и эксплуатация уязвимостей в POS-терминалах

Добрый день!

Нашел на хабре очень увлекательное чтиво от самой известной в Росии и  странах ближнего зарубежья компании Positive Technologies, под названием “Ради денег: поиск и эксплуатация уязвимостей в мобильных платежных терминалах” и решил ее просто перепостить, ведь многих может заинтересовать эта тема.

Поиск и эксплуатация уязвимостей в POS-терминалах

Карточные платежи становятся все более популярными. Мобильные платежные терминалы (mPOS-терминалы) способствуют развитию этой тенденции, снижая барьеры входа на рынок карточных платежей для небольших фирм и частных предпринимателей. При этом при определенных условиях операции все еще можно осуществлять во множестве стран (включая Россию) при помощи магнитной полосы. Каждый новый виток технологического прогресса ставит под угрозу платежную экосистему. К каким проблемам безопасности может привести облегчение доступа на рынок карточных платежей? И чем мы рискуем, продолжая полагаться на старые карточные технологии, в частности на магнитную полосу?

За последние годы число операций, осуществляемых с помощью mPOS-терминалов, существенно возросло. Острая конкуренция среди поставщиков mPOS привела к тому, что получить такой платежный терминал стало чрезвычайно просто. Подписание договора занимает меньше пяти минут, а сами mPOS-терминалы зачастую предоставляются бесплатно. Теперь их можно увидеть повсюду. Как и обычные POS-терминалы, они являются конечным звеном платежной инфраструктуры. Это делает их интересными и легко доступными для злоумышленников. 

Область исследования

Мы провели оценку продукции ведущих поставщиков mPOS-терминалов: PayPal, Square, iZettle и SumUp. Некоторые из них предоставляют услуги в нескольких регионах мира. Мы постарались получить доступ к услугам в разных регионах, где это было возможно, поскольку процесс платежа, приложения и устройства, а так же настройки безопасности отличаются в зависимости от локации.

ПоставщикПроизводительТерминалРегион
SquareSquareТерминал для бесконтактных
карт и карт с чипом Square (S8)
США
SquareSquareТерминал для магнитных карт
Square (S4)
США
SquareSquareТерминал для бесконтактныхкарт и карт с чипом Square (S8)Европа
SquareSquareТерминал для магнитных карт Square (S4)Европа
SquareMiura SystemsMiura M010США
SumUp(not public)AIR1 E001Европа
iZettleDATECSYRWCRONEЕвропа
PayPalMiura SystemsMiura M010Европа

Производители и поставщики mPOS-терминалов

Поиск и эксплуатация уязвимостей в POS-терминалах

mPOS-терминалы 

Мы провели анализ безопасности устройств по пяти категориям:

  • коммуникация между телефоном и сервером платежной системы;
  • коммуникация между телефоном и mPOS-терминалом;
  • механизмы физической защиты mPOS-терминала;
  • мобильное приложение;
  • дополнительные факторы, влияющие на безопасность, в частности проверка при регистрации.

Поиск и эксплуатация уязвимостей в POS-терминалах

Основные направления исследования

Процесс оплаты

Мы подробно изучили векторы атак и проблемы безопасности карточных платежей. Обнаруженные нами уязвимости ставят под угрозу основные функциональные возможности mPOS-терминала.

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

Поиск и эксплуатация уязвимостей в POS-терминалах

Процесс оплаты через mPOS-терминал

Риски при оплате картой

Существуют различные способы карточных платежей. Они зависят от платежной системы, эмитента и страны выпуска. В ходе транзакции карта передает список поддерживаемых методов верификации владельца карты (CVM), который описывает поддерживаемые методы и их приоритет. CVM также регулирует, что должно произойти, если выбранный метод не сработает. В терминале хранится файл конфигурации, в котором так же описаны поддерживаемые методы верификации. Терминал сравнивает эти два файла и пытается осуществить транзакцию с помощью первого по приоритету способа. Приоритетный способ должен обеспечивать высокую степень гарантии того, что держатель карты присутствовал при выполнении операции.

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

Принятие стандарта EMV

Все больше платежей в мире осуществляется по стандарту EMV (Europay, Mastercard, Visa), то есть с помощью чиповых карт. Однако принятие стандарта в некоторых регионах происходит медленнее, чем в других. В США операции по стандарту EMV составляют менее половины всех транзакций. Большинство операций все еще осуществляется с использованием магнитной полосы. В Европе около 90% всех операций проводится по стандарту EMV.

Результаты исследования

Манипуляция с устройством: отправка произвольных команд

Злоумышленник может подключиться к устройству через Bluetooth и осуществлять произвольные операции. Для этого ему нужна информация о Bluetooth сервисах, запущенных на устройстве, а также соответствующих характеристиках и функциях. Эту информацию можно получить с помощью реверс-инжиниринга до проведения атаки. Злоумышленнику потребуется лишь доступ к mPOS-терминалу, телефон, который поддерживает регистрацию событий интерфейса хост-контроллера (HCI), и мобильное приложение. С помощью регистрации событий HCI злоумышленник попытается получить информацию об основных функциях mPOS-терминала. Для этого он будет проводить пробные операции, используя разные способы оплаты и сравнивая результаты. Когда необходимая информация будет получена, злоумышленник с помощью Wireshark проанализирует коммуникацию между телефоном и mPOS-терминалом. Эта информация, а также данные мобильного приложения, позволят сопоставить функции с их командами и идентификаторами. На рисунке 5 показана отправка сообщения «Вставьте (проведите) карту» на дисплей mPOS-терминала.

Поиск и эксплуатация уязвимостей в POS-терминалах

Сообщение «Вставьте (проведите) карту» отправлено на дисплей

Если карта вставлена неправильно, на дисплее появляется сообщение об ошибке «Пожалуйста, заберите карту». В журнале HCI мы видим, какой UUID отвечает за отображение текста и пример отправляемых данных.

Поиск и эксплуатация уязвимостей в POS-терминалах

Сообщение «Пожалуйста, заберите карту» на дисплее mPOS-терминала

Поиск и эксплуатация уязвимостей в POS-терминалах

Первый пакет Bluetooth отвечает за отправку сообщения «Пожалуйста, заберите карту»

Поиск и эксплуатация уязвимостей в POS-терминалах

Второй пакет Bluetooth отвечает за отправку сообщения «Пожалуйста, заберите карту» (сообщение разделено на два пакета из-за небольшого максимального размера одного пакета Bluetooth Low Energy).

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

Поиск и эксплуатация уязвимостей в POS-терминалах

Элементы двух пакетов, отвечающие за отправку сообщения «Пожалуйста, заберите карту»

В следующем примере терминал использует Bluetooth Classic для коммуникации с телефоном. Мы видим сообщение «Вставьте (проведите) карту», отправленное на дисплей терминала.

Поиск и эксплуатация уязвимостей в POS-терминалах

Сообщение «Вставьте (проведите) карту» на дисплее mPOS-терминала

Поиск и эксплуатация уязвимостей в POS-терминалах

Пакет Bluetooth (в окне Wireshark), отвечающий за отправку сообщения «Вставьте (проведите) карту» на дисплей mPOS-терминала

На рисунке ниже видно, что эти данные состоят из трех частей: префикс, сообщение и контрольная сумма. Префикс так же содержит счетчик, ID команды и размер полезной нагрузки. Сообщение содержит значение «Вставьте (проведите) карту» в кодировке ASCII. Контрольная сумма — XOR всех байтов сообщения.

Поиск и эксплуатация уязвимостей в POS-терминалах

Элементы пакета, отвечающие за отправку сообщения «Вставьте (проведите) карту»

С помощью этой информации можно создать произвольную команду и отправить ее на дисплей mPOS-терминала. Три из протестированных нами устройств оказались уязвимы для этого вектора атаки.

ПоставщикПроизводительСчитывательРегион
SumUp(not public)AIR1 E001Европа
iZettleDATECSYRWCRONEЕвропа
SquareSquareSquare (S8)США

Список терминалов, уязвимых для отправки произвольных команд. Несмотря на то что считыватель Square (S8) не имеет дисплея, злоумышленник может отправлять другие произвольные команды.

Этот вектор атаки может использоваться совместно с эксплуатацией других уязвимостей, чтобы предложить клиенту менее безопасные типы операций, например по магнитной полосе. Этот сценарий описан на рисунках 14–16. Кроме того, злоумышленник может отправить сообщение «Платеж отклонен», чтобы вынудить держателя карты провести несколько транзакций.

Поиск и эксплуатация уязвимостей в POS-терминалах

Держатель карты пытается вставить карту

Поиск и эксплуатация уязвимостей в POS-терминалах

Сообщение «Пожалуйста, проведите карту», отправленное на дисплей терминала, вынуждает держателя карты использовать магнитную полосу

Поиск и эксплуатация уязвимостей в POS-терминалах

Операция проведена успешно – для проведенной операции с использованием магнитной полосы требуется оставить подпись.

Подделка суммы

Существуют разные способы перехвата трафика между mPOS-терминалом и сервером платежной системы. Мы уже описали один из них — регистрация событий HCI на мобильном телефоне и анализ полученных результатов. Для этого необходимо включить разработчика (Android Developer Mode). Злоумышленник может пойти другими путями, например перехватить HTTPS-трафик между мобильным приложением и сервером платежной системы. Это возможно, потому что в большинстве случаев сервер платежной системы генерирует команды и отправляет их на mPOS-терминал. Чтобы защитить мобильное приложение от перехвата HTTPS, все поставщики протестированных нами терминалов используют SSL-пиннинг.

На рисунке ниже пример инициализированного платежа, перехваченный двумя разными методами. Мы смогли перехватить HTTPS-трафик с помощью атаки «человек посередине» (man-in-the-middle), а так включили режим отладки. Сумма операции приведена в незашифрованном виде. Значение 0100 соответствует 1,00 £.

Поиск и эксплуатация уязвимостей в POS-терминалах

Инициализированный платеж, проведенный с помощью mPOS-терминала

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

ПоставщикПроизводительСчитывательРегион
SumUpAIR1 E001Европа
iZettleDATECSYRWCRONEЕвропа
SquareMiuraMiura M010США
MiuraMiura M010США
PayPal
SquareSquareSquareСША/Европа
Magstripe Reader (S4)

mPOS-терминалы, уязвимые для подделки суммы

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

Поиск и эксплуатация уязвимостей в POS-терминалах

Слева: сумма, отправленная серверу платежной системы (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-кода.

ПоставщикПроизводительСчитывательРегион
SquareMiuraMiura M010США
PayPalMiuraMiura M010США

Список терминалов, уязвимых для удаленного выполнения кода

Поиск и эксплуатация уязвимостей в POS-терминалах

Ролик Nyan Cat на дисплее терминала Miura M010. Удаленное выполнение кода открывает злоумышленнику полный доступ к операционной системе терминала

Физическая защита

Физические механизмы защиты большинства mPOS-терминалов достаточно надежны. Считыватель магнитных карт Square (S4) не гарантирует уровня безопасности и технологической сложности, характерных для считывателей бесконтактных и чип-карт. Однако это должно быть стандартным требованием к устройству, которое предоставляется продавцу на бесплатной основе. Остальные терминалы обеспечивают должный уровень физической защиты, поддерживают механизмы, препятствующие вскрытию, и прочие меры для предотвращения взлома аппаратного обеспечения.

Механизмы анти-тамперинга

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

Поиск и эксплуатация уязвимостей в POS-терминалах

Внутреннее устройство iZettle YRWCRONE

Поиск и эксплуатация уязвимостей в POS-терминалах

Система для обнаружения попыток вскрытия iZettle YRWCRONE

Заключение

Мы обнаружили, что больше половины mPOS-терминалов уязвимы для атак, при этом в целом уязвимыми оказались все проанализированные нами поставщики mPOS-терминалов. Мы зарегистрировали многочисленные серьезные проблемы безопасности, в частности уязвимость для выполнения произвольных команд, подделке суммы и выполнению удаленного кода.
Аппаратные механизмы защиты терминалов в большинстве случаев надежны и развиты. Однако другие аспекты, например, связанные с мобильным приложением и процедура регистрации, защищены гораздо слабее.

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

Поиск и эксплуатация уязвимостей в POS-терминалах

Авторы: Ли-Энн Галлоуэй, Тимур Юнусов, Артем Ивачев, Марк Кэрни, Алексей Стенников | Positive Technologies

Взято © https://habr.com