Содержание статьи
- Устройство банкомата
- Уровень пользователя (устройства ввода и приложение-киоск)
- Уровень ОС
- Сетевой уровень
- Уровень прошивки
- Классификация атак на банкоматы
- Сценарии логических атак на банкоматы
- Атаки с внешним управлением диспенсером (black box)
- Получение доступа к ОС банкомата (обход режима киоска)
- Атаки на уязвимости управляющего ПО
- Эксплуатация недостатков настроек сети
- Подмена инфраструктурных элементов
- Будущее атак на банкоматы
- Обход новых способов аутентификации
- Банкомат как звено в мошеннических схемах
- Сетевые атаки через банковскую инфраструктуру
- Атаки на криптовалютные банкоматы
- Выводы
Статья подготовлена аналитиками из PT Cyber Analytics. Эта команда сопровождает проекты Red Team: разбирает результаты, описывает деятельность этичных хакеров и оценивает критичность обнаруженных угроз и уровень защищенности компаний, также дает рекомендации по устранению уязвимостей и мониторингу инфраструктуры. В основе статьи — экспертиза, полученная в ходе исследований в области анализа защищенности банкоматов. В подготовке материала помогали и другие сотрудники Positive Technologies — специалисты по безопасности банковских систем и реверс‑инженеры из отдела анализа приложений.
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
Устройство банкомата
Чтобы лучше понимать векторы атак, нужно иметь представление о том, как устроен банкомат и какие операции происходят при его нормальной работе. В этой статье мы рассматриваем процесс взаимодействия пользователя с банкоматом на примере конфигурации, представленной на схеме ниже.

Эта схема описывает частный случай, затронутый в статье, и не отображает конфигурацию по умолчанию, которая может меняться от устройства к устройству. Разберем все этапы, начиная с предъявления карты и заканчивая снятием или внесением денег. Представим, что каждый из них — отдельный уровень работы банкомата, которому отведены свои задачи.
Уровень пользователя (устройства ввода и приложение-киоск)
Для удобства можно считать, что отдельные компоненты и внутренние процессы банкомата функционируют на разных уровнях.
Взаимодействие пользователя с устройством ограничивается предъявлением карты и выбором операции. Раньше начать работу с банкоматом можно было только одним способом — вставив карту в картридер. Тогда были широко распространены атаки на перехват данных, такие как скимминг и шимминг. Злоумышленники использовали украденную информацию для изготовления дубликатов платежных карт. В России такие методы почти утратили актуальность. В банкоматы внедрили дополнительные защитные механизмы, и доля устройств, уязвимых к этим атакам, снизилась.
С распространением бесконтактных карт на банкоматах появились считыватели, работающие по технологии NFC (near-field communication). А некоторые устройства позволяют обойтись без карты. Вместо нее используется одноразовый QR-код, который либо генерируется на экране банкомата и сканируется в мобильном приложении банка, либо создается в приложении и считывается аппаратом.
Чтобы защитить пользователя от несанкционированного доступа к карте, банкомат дополнительно запрашивает PIN-код. Для ввода пароля используется шифрующая панель (или пинпад). Она состоит из клавиатуры и криптографического модуля. Таким образом, PIN-код не передается и не хранится в открытом виде. PIN-блок (зашифрованное значение пароля) проверяется процессинговым центром. При этом современные банкоматы, выполняющие функции мини‑офиса (подробнее об этом ниже), перед началом работы могут дополнительно подтверждать личность клиента — например, с использованием биометрических модулей технологии распознавания лица.
После верификации личности банкомат предлагает выбрать операцию: снятие наличных, просмотр баланса, перевод средств или другое. Внутри устройства — обычный компьютер, но пользователь не может взаимодействовать с ним в полном объеме. Клиент получает доступ ко всем необходимым функциям только через полноэкранное банковское приложение, запущенное в режиме киоска.
Уровень ОС
Разберемся, какие процессы происходят в компьютере, который находится внутри устройства. Эта часть банкомата называется сервисной зоной. Она отделена от внешнего мира непрочной дверцей, закрытой на простой замок. Кроме того, в устройствах одной серии часто используется единый ключ, который можно свободно приобрести на интернет‑площадках.

Кроме системного блока, в сервисной зоне находится сетевое оборудование и проходят подключения периферийных устройств: картридера, считывателей, пинпада и диспенсера. Связь между этой аппаратурой и системным блоком осуществляется по интерфейсам USB, Ethernet, PCI или COM.
Чаще всего компьютер банкомата работает под управлением Windows. Раньше в основном применялась Windows Embedded, сейчас чаще Windows IoT (она основана на Windows 10 и используется во встраиваемых системах). Кроме того, в рамках импортозамещения многие банкоматы переводят на Linux.

Помимо банковского приложения, запущенного в режиме киоска, в ОС функционирует управляющее ПО банкомата, а также средства защиты, например:
- антивирусы;
- средства контроля запуска ПО, такие как Windows AppLocker (ограничивают выполнение посторонних программ);
- VPN-клиент (организует безопасное соединение с удаленными узлами во внутренней сети банка).
Ключевой компонент на уровне ОС — управляющее программное обеспечение (УПО). Раньше его разрабатывали производители банкоматов. Это порождало проблемы с совместимостью при использовании аппаратов разных вендоров в одном парке устройств. Однако с распространением стандарта управления оборудованием CEN/XFS (дальше расскажем подробнее) появились универсальные решения для контроля устройств различных производителей. Сейчас в большей части банкоматов используется мультивендорное УПО на основе CEN/XFS. Это обеспечивает наилучшую совместимость и позволяет обслуживать разнородный парк устройств по единому стандарту.
Основные функции УПО — управление периферийным оборудованием и взаимодействие с процессинговым центром. Однако в зависимости от реализации у него могут быть дополнительные возможности. К примеру, в его состав может входить ПО для сервера мониторинга, откуда удаленно управляется сеть устройств самообслуживания. Для облегчения физического сопровождения банкомата дополнительные возможности (например, быстрый вызов диагностических утилит из отдельного меню) могут быть реализованы в режиме супервизора. Он доступен только техническому персоналу.
Сетевой уровень
На этом уровне происходит обмен данными с процессинговым центром и сервером удаленного мониторинга.
Пользователь выбрал операцию — нужно проверить возможность ее выполнения. За принятие решения отвечает процессинговый центр — сервер во внутренней сети банка. Он проверяет:
- данные карты и корректность введенного PIN-кода, который запрашивается повторно перед выполнением операции;
- отсутствие ограничений по выбранной карте;
- баланс средств пользователя.
Чтобы предотвратить перехват и модификацию ответов процессингового центра, обмен данными между ним и банкоматом защищается шифрованием, чаще всего с использованием VPN-соединения. В роли протокола обмена сообщениями часто используются NDC или DDC. Они стали негласным стандартом для коммуникации с процессинговым центром еще до появления мультивендорного УПО. Кроме того, нередко применяется стандарт ISO 8583 и его модификации. При этом вендоры УПО могут разрабатывать собственные протоколы для связи с процессинговым центром, сохраняя поддержку стандартных наборов правил для обеспечения обратной совместимости.
Банкомат также может взаимодействовать с сервером мониторинга, который используется для удаленного управления, контроля состояния устройства и загрузки обновлений. Однако такая коммуникация зачастую не защищается шифрованием.
Уровень прошивки
Получив подтверждение от процессингового центра, УПО связывается с диспенсером (он выдает деньги) или с модулем приема наличных — зависит от выбранной операции. На этом уровне задействуются устройства, которые в большинстве банкоматов размещены в сейфовой зоне — это самая защищенная часть. Кроме диспенсера, в сейфе может находиться модуль рециркуляции. В некоторых вариантах это оборудование располагается частично в сервисной зоне вместе с остальным периферийным оборудованием. Сейфовая часть сделана из более прочных материалов, чем сервисная, и имеет отдельный ключ.

Управление оборудованием происходит по стандарту CEN/XFS, который описывает клиент‑серверную архитектуру. Она включает в себя менеджер оборудования (XFS Manager) — API для него обеспечивает УПО. В архитектуру также входят сервисные провайдеры (Service Provider) — драйверы, содержащие набор стандартных функций для управления периферийными устройствами и получения информации о них. Такими устройствами могут быть диспенсеры, картридеры и модули приема наличных.

Для выдачи денег диспенсер выбирает необходимое количество купюр из кассет банкомата, перемещает их в специальный лоток и открывает шаттер (створку). Данные, передающиеся между УПО и диспенсером, могут шифроваться. Перед началом обмена информацией проверяется подлинность устройств, чтобы не было возможности подмены. Алгоритмы шифрования и аутентификации запускают встроенное программное обеспечение (прошивку) диспенсера.
При внесении наличных валидатор проверяет подлинность купюр. Это особенно важно для банкоматов с функцией рециркуляции — их больше всего в парке устройств. В отличие от традиционных аппаратов, работающих только на выдачу наличных, такие банкоматы могут использовать купюры, внесенные другими пользователями.
Классификация атак на банкоматы
Теперь рассмотрим угрозы, актуальные для банкоматов. Вариантов не так много. Этот перечень можно разделить на две большие группы в зависимости от объекта и действий злоумышленника: физические и логические.

Атаки из первой группы предполагают непосредственное физическое воздействие на банкомат или его компоненты. Цель — получить деньги или вмешаться в нормальную работу устройства без использования программных методов. Это традиционные атаки, которым банкоматы подвергались задолго до появления узконаправленного вредоносного ПО. Здесь не требуются особые знания, и часть умений связана не с самим банкоматом, а с его пользователями.

А вот логические атаки требуют от исполнителя специализированных навыков и высокой технической подготовки. Они строятся на эксплуатации недостатков в ПО банкомата и его сетевом окружении. Несмотря на сложность, такие атаки привлекают меньше внимания и позволяют многократно возвращаться к скомпрометированному банкомату для повторного получения прибыли. Это делает их наиболее опасными для банков.
Задача специалистов по анализу защищенности — выявлять программные уязвимости, которые позволяют провести логическую атаку. Дальше мы на них и остановимся. Они подразделяются на две категории: системные и сетевые.
Системные атаки эксплуатируют функции или изменяют логику приложений, функционирующих на уровне ОС банкомата. Цель — получить деньги или обойти защитные механизмы. Отдельное место занимают атаки с внешним управлением диспенсером (black box). Они подразумевают подключение устройства злоумышленника напрямую к механизму выдачи купюр, в то время как большая часть системных атак требует от хакера предварительного получения доступа к ОС. Техники black box могут применяться и в отношении других периферийных устройств банкомата (например, валидатора банкнот). Дальше мы рассмотрим взаимодействие именно с диспенсером.

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

Для проведения большей части системных и сетевых атак необходимо иметь доступ к оборудованию в сервисной зоне. В рамках анализа защищенности ИБ‑специалисты по умолчанию имеют этот доступ — хакер же может получить его, проделав отверстие в корпусе банкомата или вскрыв замок на дверце сервисной зоны. Не стоит забывать и о том, что ключ от этой части в ряде случаев можно купить в интернете или получить от инсайдера — например, технического инженера, занимающегося обслуживанием банкомата.
Лишь часть описанных атак приводит к выдаче купюр, остальные воздействия — промежуточные шаги, ведущие к этой цели. Так, злоумышленник может получить доступ к удаленному управлению банкоматом по сети, чтобы действовать на уровне ОС уже методами системных атак. Проследить взаимосвязь можно с помощью матрицы, которая отражает возможные переходы между разными видами атак с целью украсть деньги.
Ниже представлен пример такой матрицы. Стрелка в строке указывает на переход к атаке в соответствующем столбце, а галочка отражает возможность получения купюр.

Вот как можно использовать матрицу для построения сценария выдачи денег:
- Выход из режима киоска сам по себе не приводит к выдаче купюр, но становится промежуточным шагом. За ним может следовать эксплуатация уязвимостей ОС и ПО, обход локальных политик безопасности или эксплуатация недостатков сетевых настроек. К примеру, хакер может попробовать выгрузить конфиг VPN-клиента после получения доступа к ОС.
- В свою очередь, эксплуатация уязвимостей ОС и ПО способна привести к выдаче денег — к примеру, если в УПО есть недостатки. Эта атака может стать и промежуточным шагом: например, если есть уязвимость в используемом VPN-клиенте, у злоумышленника появляется шанс получить доступ к защищенному сетевому трафику и перехватывать передаваемые данные.
В некоторых столбцах отсутствуют стрелки — это значит, что для атаки хакеру достаточно иметь доступ к сервисной зоне банкомата. Например, для получения доступа к жесткому диску не нужны дополнительные процедуры: это действие может стать первым шагом полноценного вектора хищения денег.

Матрица дает общее представление о возможных сценариях выдачи купюр, но самое интересное кроется в деталях. Далее мы подробно разберем наиболее распространенные сценарии атак, которые выявили наши исследователи безопасности банковских систем.
Сценарии логических атак на банкоматы
Во время анализа защищенности ИБ‑специалисты по возможности находят все уязвимости конкретного банкомата, которые можно использовать в атаках. Затем аналитики совместно с исследователями безопасности формируют полноценные сценарии выдачи денег: от получения доступа к банкомату до извлечения нужного числа купюр. Ниже представлена статистика по результатам наших исследований, которая отражает наиболее популярные уязвимости, приводящие к краже денег.

Уязвимости, которые будут упоминаться далее, приводятся с идентификаторами вида PT-ATM-XXX: они используются в открытом сборнике логических атак на банкоматы — его подготовили наши специалисты. Сборник содержит описания проверок и подробные рекомендации по устранению уязвимостей. Будет полезен как инженерам, обеспечивающим безопасность банкоматов, так и специалистам по анализу защищенности. Ознакомиться с материалами можно на GitHub — они доступны на четырех языках.
Атаки с внешним управлением диспенсером (black box)
Во всех исследованных конфигурациях банкоматов были обнаружены уязвимости прошивки диспенсера, позволяющие провести атаку типа black box. Такие атаки получили свое название из‑за того, что злоумышленник использует внешнее устройство (своего рода черный ящик) для управления диспенсером напрямую.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
