Вскрытый корпус банкомата на антистатическом мате: JTAG-зонд подключён к отладочному разъёму платы XFS, диагностический экран светится в темноте, руки в перчатках держат UART-адаптер.


В 2024–2025 годах по США прокатилась волна jackpotting - преступники обналичивали содержимое кассет без единой карты и без стандартной транзакции. FBI и Secret Service выпускали предупреждения о всплесках jackpotting-атак с малварью Ploutus, аресты шли в нескольких штатах. По оценке SISA, восстановление одного заражённого банкомата обходится свыше $25 000 - форензика, переустановка ОС, сертификационное тестирование и простой. Для SOC-команды финансовой организации вывод простой: detection-стек для ATM-сегмента давно не опционален.

Я провожу авторизованные тесты банкоматов под управлением XFS-стека, разбирал Ploutus и Tyupkin в лабе на реальном железе, подключался к шине диспенсера через сервисный порт. Ниже - синтез offensive-практики и конкретных detection-рекомендаций для тех, кто строит мониторинг банкоматной инфраструктуры.

Поверхность атаки банкомата: физический и логический уровни​

Физический доступ к верхней панели​

Банкомат конструктивно делится на две части: бронированный сейф (кассеты с наличными, диспенсер) и верхняя панель - «top hat» в терминологии NCR/Diebold Nixdorf/Wincor. Top hat защищён стандартным замком и содержит системный блок, сетевые интерфейсы, кардридер, чековый принтер.

Замки верхних панелей серийного производства часто используют одинаковые ключи на всю партию. При black-box пентесте атакующий открывает top hat сервисным ключом или обходит замок, получая доступ к USB-портам и жёсткому диску. Времени - 2-5 минут. Преступники маскируются под техников обслуживания, что делает визуальное обнаружение почти невозможным.

Контекст применимости: физический вектор актуален для ATM в слабоконтролируемых зонах - торговые центры, АЗС, вестибюли без круглосуточной охраны. Банкоматы в отделениях банков с видеоаналитикой и охраной - другой профиль риска.

Что видит SOC: ничего - если нет интеграции с физической безопасностью. Алерт на вскрытие корпуса от тамперного датчика должен идти как P1 в SIEM с автоматическим блокированием сетевого порта ATM через NAC. Без этой связки между физическим и логическим мониторингом - слепая зона размером с весь ATM-парк.

Уязвимости банкоматов XFS: архитектурная слабость​

Extensions for Financial Services (XFS) - стандартный API для управления периферией банкомата: диспенсером, кардридером, пинпадом, чековым принтером. XFS работает поверх Windows (XP Embedded, 7, 10 IoT) и даёт единый интерфейс для банковского ПО независимо от вендора оборудования.

Архитектурная проблема: XFS-команды на уровне middleware не требуют аутентификации конечного пользователя. Получив возможность выполнять произвольный код на ОС банкомата, атакующий отправляет WFSExecute к диспенсеру напрямую - минуя банковское приложение и бэкенд-авторизацию процессинга. Именно эту слабость эксплуатируют все известные семейства ATM-малвари.

По данным SISA, Ploutus подменяет или модифицирует легитимные XFS-библиотеки (в частности msxfs.dll), чтобы генерировать rogue-команды выдачи. Команды исходят от доверенного middleware, поэтому бэкенд не видит аномалии - для процессинга операция просто не существует.

Атаки на банкоматы: jackpotting двумя методами​

Малварный jackpotting: Ploutus и Tyupkin​

По данным SISA, Ploutus остаётся одним из наиболее технически зрелых семейств ATM-малвари с вариантами Ploutus-D и Ploutus-Z. Типичная цепочка атаки:
  1. Физический доступ - вскрытие top hat, загрузка с USB или подмена внутреннего накопителя
  2. Персистентность - модификация ключа реестра Windows Userinit для автозапуска. Это Boot or Logon Autostart Execution (T1547, Persistence/Privilege Escalation по MITRE ATT&CK)
  3. Перехват XFS - подмена msxfs.dll и связанных библиотек для генерации rogue-команд WFSExecute к диспенсеру. По MITRE ATT&CK - Compromise Host Software Binary (T1554, Persistence) и Transmitted Data Manipulation (T1565.002, Impact)
  4. Активация - ранние варианты Ploutus использовали SMS-активацию через подключённый GSM-модем; Ploutus-D, доминирующий с 2017 года, активируется через внешнюю USB-клавиатуру и mule-коды, генерируемые master-PIN. Скрытый интерфейс показывает содержимое кассет
  5. Выдача - скорость превышает 100 купюр в минуту
  6. Очистка - удаление артефактов XFS-активности и операционных логов. Indicator Removal (T1070, Defense Evasion)
Tyupkin (Padpin) использует похожий подход, но активируется через секретные PIN-комбинации без сотового канала. Оба семейства впервые задокументированы в середине 2010-х, но продолжают эволюционировать.

Инсайдерский вектор: на нескольких проектах я видел сценарий, где скомпрометированный сотрудник подрядчика по обслуживанию ATM устанавливал малварь при плановом визите. Легитимный доступ, легитимные инструменты, единственный человек у банкомата - detection на уровне СКУД и dual-control тут критичен.

Ограничения техники в современных средах: ATM с TPM и Secure Boot блокируют загрузку с неподписанного USB. Application whitelisting (Kaspersky Embedded Systems Security, Trellix Application Control) при корректной настройке предотвращает запуск неизвестных бинарей. Шифрование XFS-канала между middleware и диспенсером (реализовано в последних поколениях NCR) делает перехват команд невозможным без валидных ключей.

Black-box атака на диспенсер банкомата​

Black-box не требует компрометации ОС. Атакующий отключает штатный системный блок от диспенсера, подключает собственное устройство (одноплатник, ноутбук) напрямую к шине и шлёт команды выдачи, имитируя легитимный контроллер.

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

Применимость: black-box эффективен против legacy-банкоматов без шифрования канала компьютер-диспенсер. ATM с end-to-end encryption (E2EE) на уровне диспенсера делают эту атаку значительно сложнее - устройство атакующего не пройдёт криптографическое рукопожатие.

Физический vs логический пентест ATM: когда что применять​

КритерийФизический пентест (black-box)Логический пентест (white-box)
Что проверяетЗамки, USB-порты, тамперы, шина диспенсераXFS-стек, whitelist, сетевая сегментация
Модель злоумышленникаКриминал с физическим доступомИнсайдер или APT с сетевым доступом
ИнструментыJTAG/UART адаптеры, одноплатникиATMdesk, Wireshark, фаззинг XFS-команд
Время на один ATM10-30 минутЧасы и дни (анализ конфигурации)
Применимо кLegacy ATM без E2EE и Secure BootЛюбое поколение ATM
Когда НЕ подходитСовременные ATM с TPM/E2EEОценка физической защиты периметра

Shimming и безопасность POS-терминалов​

Shimming - эволюция skimming для EMV-чипов. Тонкая плата (shim) помещается внутрь картоприёмника и перехватывает данные между чипом карты и терминалом. Полученных данных недостаточно для клонирования EMV-чипа (динамическая аутентификация), но хватит для клона магнитной полосы при fallback-транзакциях или для card-not-present фрода.

Для POS-терминалов на базе Linux или Windows CE (встречаются в рознице) актуальны дополнительные векторы:
  • UART-доступ - через контакты TX/RX/GND на плате можно получить root-шелл. На многих legacy-терминалах UART открыт без аутентификации
  • Дефолтные учётные данные - root:root, admin:admin, пустые пароли - первое, что проверяется при физическом пентесте
  • Незащищённые сетевые интерфейсы - открытые Telnet/SSH, веб-интерфейсы управления без аутентификации
Ограничения: современные POS с сертификацией PCI PTS используют P2PE (point-to-point encryption), Secure Boot и аппаратные HSM. Атаки на физические интерфейсы актуальны преимущественно для legacy-оборудования без P2PE.

Detection-чеклист для банкоматной сети: IOC и правила корреляции​

Разбор атаки без detection-части - пустая трата времени для Blue Team. Ниже конкретные IOC и правила корреляции, привязанные к TTP из предыдущих разделов.
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Тестирование безопасности банкоматов: hardening-чеклист​

Нумерованный чеклист для передачи в IT-подразделение или включения в отчёт по пентесту:
  1. Замена EOL-ОС - Windows XP Embedded, Windows 7 Embedded заменить на Windows 10 IoT Enterprise LTSC. Непатчимая ОС - открытая дверь для малвари
  2. Application whitelisting - Kaspersky Embedded Systems Security или Trellix Application Control. Проверить, что whitelist работает в enforce-режиме (на нескольких проектах я находил whitelist в audit mode с момента установки - стоит, но не защищает)
  3. Шифрование XFS-канала - E2EE между middleware и диспенсером. Без E2EE black-box атака тривиальна
  4. Блокировка USB-портов - физическая заглушка + device control в EDR. ID.AM-01 (NIST CSF v2.0) - инвентаризация аппаратных активов включает контроль интерфейсов
  5. Тамперные датчики - на top hat и сейфе, с алертом в SOC. Проверка работоспособности ежемесячно
  6. Сетевая сегментация - ATM-сегмент изолирован от корпоративной сети и интернета. Firewall с allow-list: только процессинг, только нужные порты
  7. BIOS/UEFI-пароль и Secure Boot - предотвращение загрузки с внешних носителей
  8. TPM - контроль целостности ОС и компонентов при загрузке
  9. Dual control - два авторизованных техника для USB-подключения или software-обновления. PR.AA-01 (NIST CSF v2.0) - управление идентификацией и доступом для авторизованных пользователей и оборудования
  10. FIM - мониторинг msxfs.dll, конфигураций XFS, системных библиотек с алертом в SIEM
  11. Индивидуальные замки - замена серийных замков top hat на электронные с аудит-логом
  12. Видеоаналитика - AI-детекция нетипичных действий у сервисной панели ATM
Для POS-терминалов - дополнительно:
  • P2PE для всех карточных транзакций
  • Анти-shimming вставки в картоприёмник
  • Изоляция POS от общей сети торговой точки (выделенный VLAN)
  • Регулярная ротация ключей шифрования

Kill chain ATM-атаки: место в общей картине​

Атака на банкоматную сеть может быть изолированным инцидентом (цель - наличные) или этапом масштабной операции. По данным SISA, Ploutus нередко распространяется латерально к branch-сетям или центральным ATM-контроллерам.

ЭтапATM-спецификаMITRE ATT&CK
Initial AccessФизический доступ к top hat, USB-загрузкаНе маппится (физический доступ)
PersistenceUserinit registry keyT1547
Defense EvasionУдаление логов, отключение мониторингаT1070
ImpactВыдача наличных без авторизацииT1565.002
Lateral MovementРаспространение к другим ATM и branchЧерез ATM controller

При пентесте банкоматной сети не ограничивайтесь одним устройством - проверяйте, может ли скомпрометированный ATM стать pivot-точкой для атаки на процессинг или core banking.

Финансовые и регуляторные последствия: помимо прямых потерь (по данным SISA - до сотен тысяч долларов с одного устройства при координированных атаках), инцидент jackpotting влечёт нарушение PCI-DSS, проблемы с AML-комплаенсом, штрафы регулятора. В российском контексте - Положение Банка России № 821-П (вступило в силу 01.04.2024) обязывает кредитные организации проводить тестирование на проникновение, а ГОСТ Р 57580.1-2017 конкретизирует требования к анализу защищённости на этапах ввода в эксплуатацию и сопровождения автоматизированных систем.

На проектах по оценке защищённости ATM я вижу один и тот же паттерн: банки вкладываются в бронирование сейфовой части и полностью игнорируют top hat. Замок верхней панели - одинаковый на сотнях банкоматов серии, application whitelist стоит в audit mode с момента установки, FIM на XFS-библиотеках отсутствует. Значительная часть ATM-парка работает на Windows 7 Embedded с истекшей поддержкой - банки знают, но миграция парка из тысяч устройств стоит сотни миллионов рублей и растягивается на годы.

SOC получает инфраструктуру, которую невозможно патчить, с недокументированными XFS-расширениями от трёх вендоров одновременно. Detection в таких условиях строится не от обновлений, а от жёсткого baseline: любое отклонение от зафиксированного состояния ATM - алерт P1 без исключений. Компромиссов тут быть не может. Атакующий с физическим доступом и десятью минутами в запасе не оставит ни одного шанса detection-стеку, настроенному на «средний» уровень чувствительности. Тематический тред с разбором detection-правил под банкоматный сегмент - на codeby.net.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab