Миллионы PoS-терминалов уязвимы к краже данных банковских карт

Миллионы PoS-терминалов уязвимы к краже данных банковских карт

Миллионы PoS-терминалов уязвимы к краже данных банковских карт

В платежных терминалах двух крупнейших производителей — Verifone и Ingenico — выявлены множественные уязвимости, облегчающие кражу банковских реквизитов. Обновления, устраняющие проблемы, уже вышли; их следует получить и установить, направив запрос вендору, банку или сервис-провайдеру.

Уязвимости обнаружила команда экспертов Positive Technologies. Масштабное исследование было запущено два года назад; его результаты были представлены на только что завершившейся конференции Black Hat Europe, которая в этом году проводилась как сугубо виртуальное мероприятие.

В PoS-терминалах Telium 2 производства Ingenico исследователи обнаружили десять уязвимостей разной степени угрозы; самая опасная из них, CVE-2018-17773, получила 8,3 балла по шкале CVSS. Она вызвана некорректной реализацией протокола NTPT3, провоцирующей появление ошибки переполнения буфера. Злоумышленник может использовать эту ситуацию для получения максимальных привилегий в системе.

Остальные уязвимости в Telium 2 связаны с наличием вшитого в код пароля, возможностью обхода ограничений на чтение файлов, выполнения произвольного кода. Эксплуатация большинства из них, по словам экспертов, требует наличия физического доступа к устройству. Некоторые бреши можно использовать удаленно, а в связке все они позволяют получить полный контроль над устройством. Патчи включены в состав обновления Telium 2 SDK v9.32.03 patch N.

В кассовых терминалах Verifone найдено восемь уязвимостей; самая опасная из них (CVE-2019-14711) оценена в 8,8 балла по CVSS. Она вызвана ошибкой состояния гонки и позволяет обойти контроль доступа на основе ролевой модели (Role Based Access Control, RBAC). Остальные проблемы связаны с наличием вшитых паролей, ошибками переполнения буфера, возможностью повышения привилегий, обхода шифрования, внедрения вредоносного кода.

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

Обнаруженные уязвимости актуальны для устройств Verifone серий MX, VX и UX. Комментируя свои находки для Forbes, исследователи представили доказательство возможности полной компрометации PoS-терминала:

 

По оценке экспертов, найденные ими уязвимости затрагивают миллионы платежных терминалов. Согласно внутренней статистике, Verifone ведет деловые операции более чем в 150 странах. Ее PoS-системы ежегодно обрабатывают 7,6 млрд транзакций. Другой лидер рынка, Ingenico, ежегодно производит более 12 млн PoS-устройств; в настоящее время пользовательская база компании охватывает свыше 40 млн установок. Услугами Ingenico пользуются 160 тыс. торгово-сервисных предприятий и более 1 тыс. банков-эквайеров.

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

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

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

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru