stihl не предоставил(а) никакой дополнительной информации.
Сегодня разберем устройство банкоматов и расскажем об основных видах атак на них. Затем в деталях рассмотрим те сценарии хищения денег, которые нам удалось обнаружить, и дадим рекомендации, как их предотвратить.
Статья подготовлена аналитиками из PT Cyber Analytics. Эта команда сопровождает проекты Red Team: разбирает результаты, описывает деятельность этичных хакеров и оценивает критичность обнаруженных угроз и уровень защищенности компаний, также дает рекомендации по устранению уязвимостей и мониторингу инфраструктуры. В основе статьи — экспертиза, полученная в ходе исследований в области анализа защищенности банкоматов. В подготовке материала помогали и другие сотрудники Positive Technologies — специалисты по безопасности банковских систем и реверс‑инженеры из отдела анализа приложений.
Выражаем благодарность с помощью в подготовке статьи Людмиле Осиповой.
Схема работы банкомата
Эта схема описывает частный случай, затронутый в статье, и не отображает конфигурацию по умолчанию, которая может меняться от устройства к устройству. Разберем все этапы, начиная с предъявления карты и заканчивая снятием или внесением денег. Представим, что каждый из них — отдельный уровень работы банкомата, которому отведены свои задачи.
Взаимодействие пользователя с устройством ограничивается предъявлением карты и выбором операции. Раньше начать работу с банкоматом можно было только одним способом — вставив карту в картридер. Тогда были широко распространены атаки на перехват данных, такие как скимминг и шимминг. Злоумышленники использовали украденную информацию для изготовления дубликатов платежных карт. В России такие методы почти утратили актуальность. В банкоматы внедрили дополнительные защитные механизмы, и доля устройств, уязвимых к этим атакам, снизилась.
С распространением бесконтактных карт на банкоматах появились считыватели, работающие по технологии NFC (near-field communication). А некоторые устройства позволяют обойтись без карты. Вместо нее используется одноразовый QR-код, который либо генерируется на экране банкомата и сканируется в мобильном приложении банка, либо создается в приложении и считывается аппаратом.
Чтобы защитить пользователя от несанкционированного доступа к карте, банкомат дополнительно запрашивает PIN-код. Для ввода пароля используется шифрующая панель (или пинпад). Она состоит из клавиатуры и криптографического модуля. Таким образом, PIN-код не передается и не хранится в открытом виде. PIN-блок (зашифрованное значение пароля) проверяется процессинговым центром. При этом современные банкоматы, выполняющие функции мини‑офиса (подробнее об этом ниже), перед началом работы могут дополнительно подтверждать личность клиента — например, с использованием биометрических модулей технологии распознавания лица.
После верификации личности банкомат предлагает выбрать операцию: снятие наличных, просмотр баланса, перевод средств или другое. Внутри устройства — обычный компьютер, но пользователь не может взаимодействовать с ним в полном объеме. Клиент получает доступ ко всем необходимым функциям только через полноэкранное банковское приложение, запущенное в режиме киоска.
Для просмотра ссылки Войдиили Зарегистрируйся
Кроме системного блока, в сервисной зоне находится сетевое оборудование и проходят подключения периферийных устройств: картридера, считывателей, пинпада и диспенсера. Связь между этой аппаратурой и системным блоком осуществляется по интерфейсам USB, Ethernet, PCI или COM.
Чаще всего компьютер банкомата работает под управлением Windows. Раньше в основном применялась Windows Embedded, сейчас чаще Windows IoT (она основана на Windows 10 и используется во встраиваемых системах). Кроме того, в рамках импортозамещения многие банкоматы переводят на Linux.
Банкомат под управлением Windows, изображение с Reddit
Помимо банковского приложения, запущенного в режиме киоска, в ОС функционирует управляющее ПО банкомата, а также средства защиты, например:
Основные функции УПО — управление периферийным оборудованием и взаимодействие с процессинговым центром. Однако в зависимости от реализации у него могут быть дополнительные возможности. К примеру, в его состав может входить ПО для сервера мониторинга, откуда удаленно управляется сеть устройств самообслуживания. Для облегчения физического сопровождения банкомата дополнительные возможности (например, быстрый вызов диагностических утилит из отдельного меню) могут быть реализованы в режиме супервизора. Он доступен только техническому персоналу.
Пользователь выбрал операцию — нужно проверить возможность ее выполнения. За принятие решения отвечает процессинговый центр — сервер во внутренней сети банка. Он проверяет:
Банкомат также может взаимодействовать с сервером мониторинга, который используется для удаленного управления, контроля состояния устройства и загрузки обновлений. Однако такая коммуникация зачастую не защищается шифрованием.
Диспенсер (без кассет) в сейфе банкомата, изображение из LiveJournal sravniru
Управление оборудованием происходит по стандарту CEN/XFS, который описывает клиент‑серверную архитектуру. Она включает в себя менеджер оборудования (XFS Manager) — API для него обеспечивает УПО. В архитектуру также входят сервисные провайдеры (Service Provider) — драйверы, содержащие набор стандартных функций для управления периферийными устройствами и получения информации о них. Такими устройствами могут быть диспенсеры, картридеры и модули приема наличных.
Архитектура стандарта CEN/XFS
Для выдачи денег диспенсер выбирает необходимое количество купюр из кассет банкомата, перемещает их в специальный лоток и открывает шаттер (створку). Данные, передающиеся между УПО и диспенсером, могут шифроваться. Перед началом обмена информацией проверяется подлинность устройств, чтобы не было возможности подмены. Алгоритмы шифрования и аутентификации запускают встроенное программное обеспечение (прошивку) диспенсера.
При внесении наличных валидатор проверяет подлинность купюр. Это особенно важно для банкоматов с функцией рециркуляции — их больше всего в парке устройств. В отличие от традиционных аппаратов, работающих только на выдачу наличных, такие банкоматы могут использовать купюры, внесенные другими пользователями.
Для просмотра ссылки Войдиили Зарегистрируйся
Атаки из первой группы предполагают непосредственное физическое воздействие на банкомат или его компоненты. Цель — получить деньги или вмешаться в нормальную работу устройства без использования программных методов. Это традиционные атаки, которым банкоматы подвергались задолго до появления узконаправленного вредоносного ПО. Здесь не требуются особые знания, и часть умений связана не с самим банкоматом, а с его пользователями.
Разновидности физических атак на банкоматы
А вот логические атаки требуют от исполнителя специализированных навыков и высокой технической подготовки. Они строятся на эксплуатации недостатков в ПО банкомата и его сетевом окружении. Несмотря на сложность, такие атаки привлекают меньше внимания и позволяют многократно возвращаться к скомпрометированному банкомату для повторного получения прибыли. Это делает их наиболее опасными для банков.
Задача специалистов по анализу защищенности — выявлять программные уязвимости, которые позволяют провести логическую атаку. Дальше мы на них и остановимся. Они подразделяются на две категории: системные и сетевые.
Системные атаки эксплуатируют функции или изменяют логику приложений, функционирующих на уровне ОС банкомата. Цель — получить деньги или обойти защитные механизмы. Отдельное место занимают атаки с внешним управлением диспенсером (black box). Они подразумевают подключение устройства злоумышленника напрямую к механизму выдачи купюр, в то время как большая часть системных атак требует от хакера предварительного получения доступа к ОС. Техники black box могут применяться и в отношении других периферийных устройств банкомата (например, валидатора банкнот). Дальше мы рассмотрим взаимодействие именно с диспенсером.
Разновидности системных атак на банкоматы
Сетевые атаки направлены на сетевые компоненты банкомата. Хакеры могут попытаться перехватить или подделать передаваемые по сети данные, воспользоваться ими иным образом либо получить удаленный доступ к управлению банкоматом. Наиболее опасны атаки, цель которых — взаимодействие с процессинговым центром. Если защита слабая, злоумышленник может подделывать ответы, передаваемые на банкомат, и получать деньги, даже если операции были отклонены на стороне процессинга.
Разновидности сетевых атак на банкоматы
Для проведения большей части системных и сетевых атак необходимо иметь доступ к оборудованию в сервисной зоне. В рамках анализа защищенности ИБ‑специалисты по умолчанию имеют этот доступ — хакер же может получить его, проделав отверстие в корпусе банкомата или вскрыв замок на дверце сервисной зоны. Не стоит забывать и о том, что ключ от этой части в ряде случаев можно купить в интернете или получить от инсайдера — например, технического инженера, занимающегося обслуживанием банкомата.
Лишь часть описанных атак приводит к выдаче купюр, остальные воздействия — промежуточные шаги, ведущие к этой цели. Так, злоумышленник может получить доступ к удаленному управлению банкоматом по сети, чтобы действовать на уровне ОС уже методами системных атак. Проследить взаимосвязь можно с помощью матрицы, которая отражает возможные переходы между разными видами атак с целью украсть деньги.
Ниже представлен пример такой матрицы. Стрелка в строке указывает на переход к атаке в соответствующем столбце, а галочка отражает возможность получения купюр.
Матрица переходов между атаками
Вот как можно использовать матрицу для построения сценария выдачи денег:
Пример использования матрицы переходов
Матрица дает общее представление о возможных сценариях выдачи купюр, но самое интересное кроется в деталях. Далее мы подробно разберем наиболее распространенные сценарии атак, которые выявили наши исследователи безопасности банковских систем.
Для просмотра ссылки Войдиили Зарегистрируйся
Уязвимости, которые будут упоминаться далее, приводятся с идентификаторами вида PT-ATM-XXX: они используются в открытом сборнике логических атак на банкоматы — его подготовили наши специалисты. Сборник содержит описания проверок и подробные рекомендации по устранению уязвимостей. Будет полезен как инженерам, обеспечивающим безопасность банкоматов, так и специалистам по анализу защищенности. Ознакомиться с материалами можно Для просмотра ссылки Войдиили Зарегистрируйся — они доступны на четырех языках.
Для реализации сценария нужен доступ к сервисной зоне банкомата, в которой располагается подключение диспенсера к системному блоку (далее — ПК). Подключив соответствующий кабель к собственному устройству вместо ПК, хакер получает возможность отправлять управляющие команды напрямую на диспенсер. При условии, что не реализована достаточно эффективная защита встроенного ПО.
Большая часть уязвимостей, используемых в атаках типа black box, связана с недостатками встроенного шифрования диспенсера, но встречаются и другие проблемы (общий рейтинг представлен ниже).
Рейтинг уязвимостей прошивки диспенсера
К недостаткам из этой категории также относится использование несовершенного механизма генерации случайных чисел, применение жестко закодированных ключей шифрования и другие проблемы, требующие от злоумышленника изучения исходного кода прошивки. Так, в ходе исследований мы вывели такой сценарий выдачи денег:
Сценарий выдачи денег, возможный из‑за использования слабого алгоритма генерации псевдослучайных чисел и жестко закодированных значений для хранения секретов
Цель аутентификации — проверка подлинности источника управляющего трафика, который поступает на диспенсер. Для этого используются сведения, позволяющие однозначно идентифицировать ПК банкомата как подлинный. Аутентификационные данные могут представлять собой статические значения, сформированные на основе характеристик ПК или подключенных к нему устройств. Это позволяет атакующему, получившему доступ к сервисной зоне, воспроизвести необходимые значения в результате анализа конфигурации ПК.
Кроме того, аутентификационные данные зачастую присутствуют во время не защищенного шифрованием обмена информацией. Это позволяет извлечь их из USB-трафика между ПК и диспенсером путем прослушивания. В этом случае атака black box будет выглядеть так:
Сценарий выдачи денег вследствие использования предсказуемых данных для аутентификации и слабого алгоритма шифрования
Другой способ обхода встроенных механизмов безопасности прошивки — переполнение буфера. Передав на прошивку диспенсера специально сформированный пакет данных, размер которого превышает максимально допустимый, злоумышленник может перезаписать данные в стеке функции своими значениями.
Таким способом исследователям удалось обойти встроенную проверку имитовставки, добавляемой к наиболее значимым командам. Для этого они отправили пакет данных, размер которого превышает заданный лимит в байтах. Это позволило передать необходимый запрос на диспенсер и беспрепятственно извлечь деньги.
Для небезопасного обновления прошивки или переполнения буфера хакеру достаточно подключить свое оборудование к диспенсеру и выполнить специально сформированный программный сценарий.
Сценарий выдачи денег вследствие переполнения буфера или небезопасного обновления прошивки
Для просмотра ссылки Войдиили Зарегистрируйся
Простой пример получения доступа к ОС: при исследовании содержимого нешифрованного жесткого диска мы обнаружили BAT-файл, запускаемый после полной загрузки системы при включении банкомата. В файл была добавлена строка start cmd.exe — в результате после перезагрузки банкомата запускался интерпретатор командной строки. Таким образом, атакующий мог получить возможность выполнять команды ОС.
Изменение BAT-файла после подключения жесткого диска
Запуск интерпретатора командной строки в результате выполнения сценария
Однако это еще не все возможности, которые открываются злоумышленнику после получения прямого доступа к жесткому диску. Например, хакер может разместить на нем ВПО или изменить конфигурационные файлы для обхода средств защиты. Так, для обхода ограничений средств контроля над запуском ПО злоумышленнику достаточно внести изменения в реестр Windows. Его файлы можно найти в папке C:\Windows\System32\config\.
Сценарий хищения денег из банкомата с таким недостатком может выглядеть так:
Сценарий вывода денег при отсутствии шифрования жесткого диска
Кроме того, доступ к жесткому диску может стать и промежуточным шагом в более сложных сценариях хищения денег. Например, для эксплуатации уязвимостей в УПО банкомата необходимо иметь сведения о принципе его работы. Внешнему злоумышленнику получить исходный код УПО будет трудно. Более доступный вариант — изучить исполняемые файлы при помощи специализированного декомпилятора. Отсутствие шифрования жесткого диска позволяет хакеру скопировать исполняемые файлы УПО на свой компьютер для дальнейшего анализа в более комфортной обстановке.
Несмотря на то что отсутствие шифрования жесткого диска — опасный недостаток, статистика по нему не улучшается в течение нескольких лет. Использование шифрования может не только закрыть самый простой сценарий выдачи денег, но и усложнить проведение других атак, связанных с эксплуатацией уязвимостей УПО и обходом средств защиты.
Один из недостатков, напрямую связанный с подключением клавиатуры к банкомату, — возможность выхода из режима киоска сочетанием клавиш. Часто срабатывают даже наиболее известные комбинации и позволяют получить доступ к приложению, которое не должно быть открыто для пользователя в нормальном режиме работы банкомата. К примеру, браузер по умолчанию (Internet Explorer, Edge и другие) можно использовать для вызова проводника Windows и последующего запуска интерпретатора командной строки.
Но даже если наиболее известные хоткеи заблокированы, это не значит, что хакер не сможет выйти из режима киоска после пары нажатий. Сложная последовательность получения доступа к командной строке может выглядеть так (отметим, что каждое из действий выполняется с помощью горячих клавиш):
Выбор страницы поддержки (панель управления HD-графикой Intel)
Выбор директории для просмотра загрузок (браузер Internet Explorer)
Управление горячими клавишами в интерфейсе проводника
Запуск интерпретатора командной строки из проводника с помощью горячих клавиш
Суть атаки заключается в том, что через установленную в слот DMA-плату (например, на базе ПО PCILeech или аналогичного инструмента) можно получить доступ к памяти устройства напрямую, минуя механизмы защиты операционной системы. Это позволяет считывать данные из памяти, включая передаваемую на банкомат платежную информацию, а также внедрять произвольный код напрямую в память. Фактически атака DMA позволяет злоумышленнику выполнять команды ОС с привилегиями ядра. Это дает хакеру еще больше возможностей для несанкционированных действий.
Для примера на рисунке ниже показан дамп оперативной памяти, содержащий номер банковской карты (PAN) — последовательность из 16 цифр, выделенную желтым цветом.
Дамп оперативной памяти атакуемого устройства, полученный с помощью PCILeech
Способы получения доступа к ОС банкомата для злоумышленника, находящегося в непосредственной близости от устройства, можно представить в виде следующей схемы.
Сценарии получения доступа к ОС банкомата
Поскольку УПО управляет периферийным оборудованием банкомата по известному стандарту (CEN/XFS), открытая природа этого стандарта может стать угрозой, если есть проблемы с контролем целостности исполняемых и конфигурационных файлов.
В наших исследованиях небезопасная реализация контроля целостности файлов УПО обнаружилась в большинстве рассмотренных конфигураций. Проявляться этот недостаток может по‑разному — например, если в УПО:
Атаки с использованием рефлексии — вещь непростая и требует от злоумышленника определенного уровня квалификации. Ведь ему потребуется написать эксплоит для конкретной реализации УПО, а перед разработкой эксплоита еще нужно будет изучить принцип работы УПО. При отсутствии исходного кода приложения используются специализированные декомпиляторы и отладчики, такие как Для просмотра ссылки Войдиили Зарегистрируйся (в случае с C#). При анализе злоумышленник получает сведения об элементах программы, взаимодействие с которыми необходимо для выдачи купюр. Эта информация включает в себя:
Пример низкоуровневой функции, реализующей соответствующий интерфейс CEN/XFS
Пример высокоуровневого вызова для управления соответствующим интерфейсом
Фрагменты выше взяты из УПО, разработанного для демонстрационного стенда.
После анализа ПО хакер может разработать сценарий, который загружает в домен приложения необходимые сборки. Затем злоумышленник инициализирует определенные объекты и реализует логику выдачи денег. Чтобы извлечь купюры, нарушитель копирует условия стандартного пользовательского случая: формирует необходимые данные, создает обычную среду для работы функции и приводит объекты в готовность. После этого вызывается сама функция.
Атака на рефлексию позволяет изменить логику работы УПО, непосредственно взаимодействующего с оборудованием, и пропустить этап коммуникации с процессинговым центром. Однако, чтобы достичь успеха, злоумышленник должен предварительно получить возможность выполнения команд ОС, а также передать на банкомат файл с полезной нагрузкой (например, с помощью USB-носителя).
Сценарий вывода денег в результате атаки на управляющее ПО, вариант 1
Так выглядит наиболее оптимистичный для злоумышленника сценарий. Однако в реальных конфигурациях намного чаще есть ограничения, затрудняющие атаку на разных этапах.
Например, возможность чтения файлов с USB-носителей в большей части устройств требует административных привилегий. А выходу из режима киоска с использованием сочетаний клавиш могут препятствовать локальные политики безопасности. В таком случае более реалистичный сценарий, включающий уже описанные уязвимости, может выглядеть так:
Сценарий вывода денег в результате атаки на управляющее ПО, вариант 2
Часто блокировка запуска определенного ПО (например, интерпретаторов командной строки cmd.exe и powershell.exe) выполняется по принципу черного списка, в который вносятся стандартные пути к исполняемым файлам. Первый очевидный недостаток этого способа — возможность запустить стороннее ПО, которое не входит в черный список, но при этом может быть вредоносным. Еще один недостаток: обход блокировки сводится к запуску исполняемого файла из альтернативного расположения. В самом простом случае для этого достаточно воспользоваться проводником Windows.
В качестве демонстрации мы рассмотрели вариант с использованием AppLocker для запрета на запуск PowerShell из директории C:\Windows\System32\Windows\PowerShell\v1.0. Чтобы обойти блокировку, мы скопировали исполняемый файл powershell.exe на рабочий стол сервисного пользователя, а затем запустили файл из нового расположения.
Блокировка запуска PowerShell в соответствии с правилом AppLocker
Запуск PowerShell из нестандартного расположения
Иногда запуск проводника Windows из его стандартного расположения тоже может быть запрещен. В таком случае можно вернуться к примеру с получением доступа к проводнику при помощи Internet Explorer. Кроме того, браузер позволяет выполнить необходимые действия и без проводника: исследователи описали способ взаимодействия с файловой системой через технологию ActiveX. Они сперва получили доступ к браузеру, а затем выполнили в консоли разработчика код на JavaScript (с его помощью файл powershell.exe копируется в новую директорию, после чего запускается). Для обращения к файловой системе Windows и запуска исполняемого файла использовались объекты Scripting.FileSystemObject и WScript.Shell соответственно.
Этот пример показывает: блокировка запуска ПО по принципу черного списка с указанием стандартных путей заведомо небезопасна, так как для каждого последующего запрета найдется способ обхода. Если на устройстве одновременно заблокирован запуск проводника и браузера по их стандартным путям, доступ к браузеру можно получить, например, вызвав справку в любом приложении, где есть такая возможность. Например, можно открыть Internet Explorer из текстового редактора notepad.exe.
Для просмотра ссылки Войдиили Зарегистрируйся
Вызов браузера Internet Explorer, notepad.exe
Вернемся к наиболее простому сценарию выдачи денег, разобранному в этом разделе, и добавим в него обход средств контроля над запуском ПО. С учетом описанных вариантов обхода он будет выглядеть примерно так:
Сценарий вывода денег в результате атаки на управляющее ПО, вариант 3
Запуск произвольного ПО на банкомате
Опасность могут представлять и избыточные права сервисного пользователя на доступ к файлам. К примеру, злоумышленник может модифицировать исполняемый файл сервиса, запускаемого с правами системы, и получить возможность выполнять произвольный код с максимальными привилегиями.
Иногда функция организации VPN-соединения возлагается на отдельное сетевое устройство. К примеру, в такой конфигурации шифрование трафика может выполняться на коммутаторе, который подключен к порту Ethernet. Это позволяет атакующему с доступом к сервисной зоне переподключить кабель, соединяющий ПК и коммутатор, к собственному устройству (например, ноутбуку). В результате будет получен доступ к нешифрованному трафику.
При использовании VPN-клиента на уровне ОС хакер может попробовать отключить его, но это действие часто требует административных привилегий. К примеру, во время исследований мы переименовали ряд драйверов и отключили связанные с VPN-клиентом службы, от чего он перестал работать.
Возможен редкий вариант, в котором защита соединения с процессинговым центром осуществляется средствами УПО, а не отдельного VPN-решения. Так, исследователям попалось УПО, в котором параметры защищенного соединения определялись ключами реестра Windows. Одним из таких ключей был Protocol, определяющий используемый для соединения протокол передачи данных. Мы изменили значение ключа Protocol с https на http, что привело к отключению проверки подлинности сервера клиентом и позволило реализовать атаку с подменой процессингового центра.
Изменение используемого протокола с HTTPS на HTTP
Многие исследованные конфигурации разрешали устанавливать корневые сертификаты от имени сервисного пользователя. Этот недостаток позволяет хакеру добавить в системное хранилище самоподписанный сертификат и выдать его за доверенный. При использовании такого сертификата для установления HTTPS-соединения атакующий сможет вмешаться во взаимную проверку подлинности (например, mTLS) и получить доступ к трафику между банкоматом и процессинговым центром.
Самоподписанный сертификат на банкомате
В рамках исследований наши специалисты проанализировали принцип работы одной из таких сетевых служб. Они выяснили, что приложение работает по протоколу .NET Remoting и позволяет удаленно выполнять код без аутентификации. Работает это с использованием метода, принимающего в качестве параметра путь к исполняемому файлу на банкомате для его последующего запуска. Мы разработали сценарий, который обращается к сетевой службе и вызывает нужный метод, передавая в качестве аргумента C:\Windows\System32\cmd.exe. В результате злоумышленник, имеющий сетевой доступ к банкомату, может выполнять команды ОС.
Запуск интерпретатора командной строки в результате выполнения сценария
Для просмотра ссылки Войдиили Зарегистрируйся
Один из недостатков, позволяющих похитить деньги путем подмены процессингового центра, — возможность отключить необходимые проверки от имени сервисного пользователя. Например, исследуя вариант реализации УПО, специалисты обнаружили возможность запуска служебной утилиты, используемой для изменения его настройки. Модифицировав флаги безопасности, они отключили проверку подписи сообщений процессингового центра. Это позволило использовать эмулятор для отправки команд на банкомат.
В другом варианте была обнаружена возможность отключать дополнительные проверки безопасности при взаимодействии с процессинговым центром. Например, чтобы отключить проверку криптограммы, на запрос банкомата отправляется модифицированный HTTP-ответ со стороны эмулятора процессингового центра. В ответе параметр, отвечающий за проверку, имеет значение false. Это позволяет ввести произвольный PIN-код при предъявлении карты, после чего эмулятор сразу отправляет банкомату запрос на выдачу денежных средств, пропуская этап проверки введенных данных.
Результат выполнения запроса на выдачу денег в логах эмулятора
Полный сценарий выдачи денежных средств путем подмены процессингового центра может выглядеть так:
Сценарий выдачи денежных средств путем подмены процессингового центра, вариант 1
Одна из рассмотренных реализаций сервера мониторинга позволяла загружать ZIP-архивы на банкомат, а также удаленно выполнять плагины определенного формата. Это может позволить хакеру с доступом к сети банкомата передавать на него вредоносы под видом плагинов с необходимым расширением и инициировать их удаленное выполнение.
Результат загрузки и удаленного выполнения плагина
Возможны варианты ПО для удаленного мониторинга, позволяющего выполнять произвольные команды ОС — например, моментально перезагрузить банкомат с помощью команды shutdown. Изучая подобное ПО, мы выяснили, что для быстрой перезагрузки банкомата серверу мониторинга передается путь к исполняемому файлу shutdown.exe и параметры для его выполнения. После этого файл запускается с использованием метода CommandExecute (название изменено).
Так как ПО не проверяет подлинность конечного узла, с которым банкомат устанавливает соединение, специалисты разработали эмулятор сервера мониторинга. Опираясь на ранее обнаруженный принцип использования сторонних утилит, мы передали необходимому объекту путь к исполняемому файлу cmd.exe, после чего запустили файл с помощью метода CommandExecute. В результате мы получили доступ к выполнению команд ОС.
В первом рассмотренном сценарии атаки с подменой процессингового центра хакеру требуется предварительно обойти режим киоска. А описанная уязвимость, в свою очередь, позволяет получить первоначальный доступ к ОС альтернативным способом при наличии у злоумышленника сетевого доступа. Вот, например, один из реализованных исследователями сценариев:
Сценарий выдачи денег путем подмены процессингового центра, вариант 2
Похожий пример встречался и в мировой практике. В 2023 году исследователи из Synack Red Team выявили критически опасные уязвимости в программном обеспечении Для просмотра ссылки Войдиили Зарегистрируйся, предназначенном для удаленного мониторинга и управления банкоматами. Четыре уязвимости открывали любому внешнему злоумышленнику доступ к веб‑интерфейсу администрирования. Система позволяла удаленно перезагрузить банкомат, загрузить на него файлы и изменить конфигурацию устройств.
Исправлять уязвимости УПО в силу его узкой специализации могут достаточно долго. Стоит применять компенсационные меры, не дожидаясь исправлений: так, использование VPN-клиента затрудняет сетевые атаки, а правильно настроенный файрвол позволит защитить порты, используемые сетевыми службами.
Банкоматы с функцией распознавания лица (слева) и рисунка вен в пальце (справа). Источники: CaixaBank и The Guardian
Это особенно опасно с учетом того, что в некоторых устройствах биометрическая аутентификация заменяет ввод PIN-кода. Например, в 2020 году испанский банк CaixaBank Для просмотра ссылки Войдиили Зарегистрируйся, не требующие проверки PIN-кода при успешном распознавании лица.
или Зарегистрируйся нововведением, адаптировав под него стандартную схему социальной инженерии. Жертвам сообщают о выдуманной несанкционированной операции и убеждают прислать QR-код, чтобы отменить ее. В реальности аферисты сканируют полученный код на банкомате и снимают деньги со счета жертвы.
Банкомат с функцией снятия наличных по QR-коду
В атаках на банкоматы используется и модифицированное ПО Для просмотра ссылки Войдиили Зарегистрируйся. Подобные кампании фиксируются в России с октября 2024 года. Финальной стадией таких атак становится перехват и ретрансляция NFC-трафика между картой пользователя и его устройством на смартфон злоумышленника. Затем хакер прикладывает свое устройство к бесконтактному считывателю и выводит деньги со счета жертвы. По данным за первый квартал 2025 года, ущерб от таких атак уже превысил 432 миллиона рублей.
или Зарегистрируйся) сдвиг в векторах логических атак: вместо вмешательств, требующих физического доступа к сервисной зоне, злоумышленники все чаще получают доступ к банкоматам из сети банка. При недостаточной сегментации сети компрометация внутренней инфраструктуры банка позволяет злоумышленникам развивать атаки на подключенные банкоматы.
Один из примеров — Для просмотра ссылки Войдиили Зарегистрируйся, зафиксированный в конце 2016 года. Злоумышленники, получив доступ к корпоративной сети банка, скомпрометировали сервер, используемый для доставки обновлений, и через него загрузили ВПО на ряд банкоматов. В этом же году в Тайване Для просмотра ссылки Войди или Зарегистрируйся привела к хищению около 80 миллионов новых тайваньских долларов (примерно 2,5 миллиона долларов США). Злоумышленники также использовали доступ к сети банка для доставки ВПО, которое позволило организовать удаленное управление банкоматами по протоколу Telnet.
или Зарегистрируйся: к 2024 году их количество выросло на 3%, достигнув 37,7 тысячи устройств по всему миру. Криптобанкоматы (или криптоматы) позволяют как приобретать, так и продавать криптовалюту. Для начала работы с терминалом достаточно указать адрес кошелька, отсканировав его QR-код с экрана мобильного устройства.
Для просмотра ссылки Войдиили Зарегистрируйся
Для просмотра ссылки Войдиили Зарегистрируйся с криптоматами во многом напоминает атаки с использованием QR-кодов, актуальные для обычных банкоматов, но с ключевым отличием: жертва не передает мошеннику код. Вместо этого злоумышленник присылает ей заранее сгенерированный QR-код, содержащий адрес криптокошелька, и под предлогом срочной необходимости — например, перевода средств на безопасный счет — убеждает внести наличные через ближайший криптобанкомат. Внесенные средства автоматически конвертируются в криптовалюту и поступают на кошелек преступника. Особенно опасными эти схемы делает то, что операции с криптовалютой труднее отследить, а украденные средства — сложнее вернуть.
Готовые решения, предлагаемые на теневых торговых площадках, доступны злоумышленникам с низкой квалификацией. Несмотря на это, фокус в безопасности банкоматов по‑прежнему смещен в сторону физической защиты сейфа и сетевой безопасности. В результате устройства остаются уязвимыми к простым, но эффективным сценариям хищения денег.
С развитием технологий будет появляться все больше сценариев логических атак. Современные устройства перестали быть просто машинами для выдачи наличных — это полноценные мини‑офисы, через которые можно оплатить услуги, перевести деньги, погасить кредиты. Использование карты тоже уже не обязательно благодаря NFC-модулям, биометрии и оплате по QR-коду: для начала работы достаточно смартфона или вообще одной только улыбки. Вероятно, вместо хищения наличных мы все чаще будем встречать перевод средств на счет хакера, а кража карточных данных уступит обходу биометрической аутентификации и атакам на NFC-модуль.
В статье мы затронули наиболее распространенные сценарии хищения денег из банкоматов и уязвимости, которые приводят к таким последствиям. Не следует недооценивать вероятность этих сценариев в реальных условиях просто потому, что логические атаки сложнее в сравнении с обычными способами кражи денег. Некоторые из описанных схем занимают не более десяти минут, при этом оперативно обнаружить их значительно труднее.
Что можно посоветовать для защиты? В первую очередь наше исследование показало важность мониторинга системных событий, которые могут сигнализировать о получении нежелательного доступа к ОС банкомата. Помимо этого, необходимо оперативно обновлять установленное на устройстве ПО, а также взаимодействовать с вендорами оборудования для получения патчей при обнаружении недостатков встроенного программного обеспечения.
Важен комплексный подход к защите устройства. Он должен в одинаковой степени приоритизировать как сетевую безопасность и защиту на локальном уровне, так и физическое ограничение доступа к сервисной зоне банкомата, который используется злоумышленниками для подключения сторонних устройств к встроенному компьютеру.
Статья подготовлена аналитиками из 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-клиент (организует безопасное соединение с удаленными узлами во внутренней сети банка).
Основные функции УПО — управление периферийным оборудованием и взаимодействие с процессинговым центром. Однако в зависимости от реализации у него могут быть дополнительные возможности. К примеру, в его состав может входить ПО для сервера мониторинга, откуда удаленно управляется сеть устройств самообслуживания. Для облегчения физического сопровождения банкомата дополнительные возможности (например, быстрый вызов диагностических утилит из отдельного меню) могут быть реализованы в режиме супервизора. Он доступен только техническому персоналу.
Сетевой уровень
На этом уровне происходит обмен данными с процессинговым центром и сервером удаленного мониторинга.Пользователь выбрал операцию — нужно проверить возможность ее выполнения. За принятие решения отвечает процессинговый центр — сервер во внутренней сети банка. Он проверяет:
- данные карты и корректность введенного PIN-кода, который запрашивается повторно перед выполнением операции;
- отсутствие ограничений по выбранной карте;
- баланс средств пользователя.
Банкомат также может взаимодействовать с сервером мониторинга, который используется для удаленного управления, контроля состояния устройства и загрузки обновлений. Однако такая коммуникация зачастую не защищается шифрованием.
Уровень прошивки
Получив подтверждение от процессингового центра, УПО связывается с диспенсером (он выдает деньги) или с модулем приема наличных — зависит от выбранной операции. На этом уровне задействуются устройства, которые в большинстве банкоматов размещены в сейфовой зоне — это самая защищенная часть. Кроме диспенсера, в сейфе может находиться модуль рециркуляции. В некоторых вариантах это оборудование располагается частично в сервисной зоне вместе с остальным периферийным оборудованием. Сейфовая часть сделана из более прочных материалов, чем сервисная, и имеет отдельный ключ.
Управление оборудованием происходит по стандарту CEN/XFS, который описывает клиент‑серверную архитектуру. Она включает в себя менеджер оборудования (XFS Manager) — API для него обеспечивает УПО. В архитектуру также входят сервисные провайдеры (Service Provider) — драйверы, содержащие набор стандартных функций для управления периферийными устройствами и получения информации о них. Такими устройствами могут быть диспенсеры, картридеры и модули приема наличных.
Для выдачи денег диспенсер выбирает необходимое количество купюр из кассет банкомата, перемещает их в специальный лоток и открывает шаттер (створку). Данные, передающиеся между УПО и диспенсером, могут шифроваться. Перед началом обмена информацией проверяется подлинность устройств, чтобы не было возможности подмены. Алгоритмы шифрования и аутентификации запускают встроенное программное обеспечение (прошивку) диспенсера.
При внесении наличных валидатор проверяет подлинность купюр. Это особенно важно для банкоматов с функцией рециркуляции — их больше всего в парке устройств. В отличие от традиционных аппаратов, работающих только на выдачу наличных, такие банкоматы могут использовать купюры, внесенные другими пользователями.
Классификация атак на банкоматы
Теперь рассмотрим угрозы, актуальные для банкоматов. Вариантов не так много. Этот перечень можно разделить на две большие группы в зависимости от объекта и действий злоумышленника: физические и логические.Для просмотра ссылки Войди
Атаки из первой группы предполагают непосредственное физическое воздействие на банкомат или его компоненты. Цель — получить деньги или вмешаться в нормальную работу устройства без использования программных методов. Это традиционные атаки, которым банкоматы подвергались задолго до появления узконаправленного вредоносного ПО. Здесь не требуются особые знания, и часть умений связана не с самим банкоматом, а с его пользователями.
А вот логические атаки требуют от исполнителя специализированных навыков и высокой технической подготовки. Они строятся на эксплуатации недостатков в ПО банкомата и его сетевом окружении. Несмотря на сложность, такие атаки привлекают меньше внимания и позволяют многократно возвращаться к скомпрометированному банкомату для повторного получения прибыли. Это делает их наиболее опасными для банков.
Задача специалистов по анализу защищенности — выявлять программные уязвимости, которые позволяют провести логическую атаку. Дальше мы на них и остановимся. Они подразделяются на две категории: системные и сетевые.
Системные атаки эксплуатируют функции или изменяют логику приложений, функционирующих на уровне ОС банкомата. Цель — получить деньги или обойти защитные механизмы. Отдельное место занимают атаки с внешним управлением диспенсером (black box). Они подразумевают подключение устройства злоумышленника напрямую к механизму выдачи купюр, в то время как большая часть системных атак требует от хакера предварительного получения доступа к ОС. Техники black box могут применяться и в отношении других периферийных устройств банкомата (например, валидатора банкнот). Дальше мы рассмотрим взаимодействие именно с диспенсером.
Сетевые атаки направлены на сетевые компоненты банкомата. Хакеры могут попытаться перехватить или подделать передаваемые по сети данные, воспользоваться ими иным образом либо получить удаленный доступ к управлению банкоматом. Наиболее опасны атаки, цель которых — взаимодействие с процессинговым центром. Если защита слабая, злоумышленник может подделывать ответы, передаваемые на банкомат, и получать деньги, даже если операции были отклонены на стороне процессинга.
Для проведения большей части системных и сетевых атак необходимо иметь доступ к оборудованию в сервисной зоне. В рамках анализа защищенности ИБ‑специалисты по умолчанию имеют этот доступ — хакер же может получить его, проделав отверстие в корпусе банкомата или вскрыв замок на дверце сервисной зоны. Не стоит забывать и о том, что ключ от этой части в ряде случаев можно купить в интернете или получить от инсайдера — например, технического инженера, занимающегося обслуживанием банкомата.
Лишь часть описанных атак приводит к выдаче купюр, остальные воздействия — промежуточные шаги, ведущие к этой цели. Так, злоумышленник может получить доступ к удаленному управлению банкоматом по сети, чтобы действовать на уровне ОС уже методами системных атак. Проследить взаимосвязь можно с помощью матрицы, которая отражает возможные переходы между разными видами атак с целью украсть деньги.
Ниже представлен пример такой матрицы. Стрелка в строке указывает на переход к атаке в соответствующем столбце, а галочка отражает возможность получения купюр.
Вот как можно использовать матрицу для построения сценария выдачи денег:
- Выход из режима киоска сам по себе не приводит к выдаче купюр, но становится промежуточным шагом. За ним может следовать эксплуатация уязвимостей ОС и ПО, обход локальных политик безопасности или эксплуатация недостатков сетевых настроек. К примеру, хакер может попробовать выгрузить конфиг VPN-клиента после получения доступа к ОС.
- В свою очередь, эксплуатация уязвимостей ОС и ПО способна привести к выдаче денег — к примеру, если в УПО есть недостатки. Эта атака может стать и промежуточным шагом: например, если есть уязвимость в используемом VPN-клиенте, у злоумышленника появляется шанс получить доступ к защищенному сетевому трафику и перехватывать передаваемые данные.
Матрица дает общее представление о возможных сценариях выдачи купюр, но самое интересное кроется в деталях. Далее мы подробно разберем наиболее распространенные сценарии атак, которые выявили наши исследователи безопасности банковских систем.
Сценарии логических атак на банкоматы
Во время анализа защищенности ИБ‑специалисты по возможности находят все уязвимости конкретного банкомата, которые можно использовать в атаках. Затем аналитики совместно с исследователями безопасности формируют полноценные сценарии выдачи денег: от получения доступа к банкомату до извлечения нужного числа купюр. Ниже представлена статистика по результатам наших исследований, которая отражает наиболее популярные уязвимости, приводящие к краже денег.Для просмотра ссылки Войди
Уязвимости, которые будут упоминаться далее, приводятся с идентификаторами вида PT-ATM-XXX: они используются в открытом сборнике логических атак на банкоматы — его подготовили наши специалисты. Сборник содержит описания проверок и подробные рекомендации по устранению уязвимостей. Будет полезен как инженерам, обеспечивающим безопасность банкоматов, так и специалистам по анализу защищенности. Ознакомиться с материалами можно Для просмотра ссылки Войди
Атаки с внешним управлением диспенсером (black box)
Во всех исследованных конфигурациях банкоматов были обнаружены уязвимости прошивки диспенсера, позволяющие провести атаку типа black box. Такие атаки получили свое название из‑за того, что злоумышленник использует внешнее устройство (своего рода черный ящик) для управления диспенсером напрямую.Для реализации сценария нужен доступ к сервисной зоне банкомата, в которой располагается подключение диспенсера к системному блоку (далее — ПК). Подключив соответствующий кабель к собственному устройству вместо ПК, хакер получает возможность отправлять управляющие команды напрямую на диспенсер. При условии, что не реализована достаточно эффективная защита встроенного ПО.
Большая часть уязвимостей, используемых в атаках типа black box, связана с недостатками встроенного шифрования диспенсера, но встречаются и другие проблемы (общий рейтинг представлен ниже).
Слабый алгоритм шифрования и другие недостатки криптографических правил (PT-ATM-204)
Среди частых недостатков, связанных с шифрованием трафика между ПК и диспенсером, — использование слабого алгоритма. Атакующий может эксплуатировать известные уязвимости алгоритмов, чтобы восстановить части защищенного трафика и извлечь из него важную информацию.К недостаткам из этой категории также относится использование несовершенного механизма генерации случайных чисел, применение жестко закодированных ключей шифрования и другие проблемы, требующие от злоумышленника изучения исходного кода прошивки. Так, в ходе исследований мы вывели такой сценарий выдачи денег:
- Проникнув в сервисную зону банкомата, хакер получает данные, необходимые для последующей аутентификации.
- Нарушитель подключает свое оборудование (например, ноутбук) к диспенсеру с использованием USB-кабеля.
- Атакующий получает секретные значения, используемые для шифрования трафика между ПК и диспенсером, путем их перебора или извлечения из реестра Windows и последующей расшифровки. Для второго варианта требуется предварительно получить доступ к ОС, например в результате выхода из режима киоска. Это возможно из‑за применения слабого алгоритма генерации псевдослучайных чисел, а также использования жестко закодированных значений для хранения секретов в реестре.
- Используя информацию, полученную на шагах 1 и 3, хакер реализует обмен данными между ПК и диспенсером. Так он получает возможность отправлять диспенсеру запросы на выдачу денег.
Предсказуемые данные для аутентификации (PT-ATM-203)
Другой распространенный недостаток прошивки диспенсера — использование предсказуемых данных для аутентификации, выполняемой перед началом обмена информацией между ПК и диспенсером.Цель аутентификации — проверка подлинности источника управляющего трафика, который поступает на диспенсер. Для этого используются сведения, позволяющие однозначно идентифицировать ПК банкомата как подлинный. Аутентификационные данные могут представлять собой статические значения, сформированные на основе характеристик ПК или подключенных к нему устройств. Это позволяет атакующему, получившему доступ к сервисной зоне, воспроизвести необходимые значения в результате анализа конфигурации ПК.
Кроме того, аутентификационные данные зачастую присутствуют во время не защищенного шифрованием обмена информацией. Это позволяет извлечь их из USB-трафика между ПК и диспенсером путем прослушивания. В этом случае атака black box будет выглядеть так:
- Получив доступ к сервисной зоне банкомата, хакер определяет кабель, с помощью которого подключен диспенсер, и подсоединяет к нему свое оборудование (например, ноутбук).
- Он перехватывает USB-трафик между ПК и диспенсером и извлекает из него информацию, необходимую, чтобы выдать свое оборудование за подлинный ПК.
- Атакующий выполняет обмен данными между ПК и диспенсером для прохождения аутентификации, а также запускает алгоритм формирования ключей шифрования. После этого нарушитель получает возможность отправлять диспенсеру запросы на выдачу денег.
Другие уязвимости в ПО диспенсера (PT-ATM-206)
Одна из распространенных проблем, связанных с прошивкой диспенсера, — небезопасный механизм доставки и проверки подлинности обновлений. В большинстве исследованных конфигураций эти механизмы были признаны ненадежными. Злоумышленник может внедрить в них произвольный управляющий код. Загрузка такого обновления в прошивку способна привести как к выдаче денег, так и к отключению встроенных защитных механизмов. Например, для ряда изученных конфигураций это позволило отключить проверки подписи команд, передаваемых на диспенсер.Другой способ обхода встроенных механизмов безопасности прошивки — переполнение буфера. Передав на прошивку диспенсера специально сформированный пакет данных, размер которого превышает максимально допустимый, злоумышленник может перезаписать данные в стеке функции своими значениями.
Таким способом исследователям удалось обойти встроенную проверку имитовставки, добавляемой к наиболее значимым командам. Для этого они отправили пакет данных, размер которого превышает заданный лимит в байтах. Это позволило передать необходимый запрос на диспенсер и беспрепятственно извлечь деньги.
Для небезопасного обновления прошивки или переполнения буфера хакеру достаточно подключить свое оборудование к диспенсеру и выполнить специально сформированный программный сценарий.
Рекомендации по защите от атак типа black box
- Использовать для передачи данных стойкие алгоритмы шифрования — например, AES в режиме, предусматривающем аутентификацию (таком как GCM или CCM).
- Применять надежные механизмы аутентификации, хранения и передачи паролей между ОС и диспенсером. К примеру, современные XFS-платформы поддерживают физическую аутентификацию, при использовании которой передача ключей возможна только при подтвержденном доступе к сейфу.
- Использовать надежные механизмы формирования ключей шифрования, исключить жестко закодированные секреты и предсказуемые инициализирующие значения для генератора псевдослучайных чисел.
- Внедрить механизм проверки файлов обновления прошивки. Например, могут использоваться асимметричные криптоалгоритмы: в устройстве хранится публичный ключ, а файл обновления содержит подпись, которая проверяется в процессе обновления. Каждое обновление прошивки должно быть подписано разработчиком.
- Строго проверять длину и формат входящих запросов к диспенсеру, чтобы снизить вероятность возникновения бинарных уязвимостей. Кроме того, следует дополнительно использовать механизмы защиты от переполнения буфера.
- Внедрить средства аппаратной защиты от подключения к информационной шине диспенсера, например ATM Keeper, Cerber Lock или «ЗУБ‑Р». Они располагаются в сейфовой зоне банкомата, защищенной от злоумышленников. Неожиданное отключение диспенсера от ПК, равно как и незапланированная перезагрузка банкомата, должны расцениваться как потенциальное вторжение и сопровождаться срабатыванием сигнализации.
Получение доступа к ОС банкомата (обход режима киоска)
Перед тем как перейти к описанию следующих сценариев хищения наличных, нужно поговорить о способах получения доступа к ОС банкомата. Если речь идет не об атаках black box, для которых достаточно прямого подключения, без этого шага не обойтись. Обычный пользователь не может взаимодействовать с банкоматом в полном объеме. Он ограничен интерфейсом, который предлагает ему приложение в режиме киоска. Ниже описаны уязвимости, которые позволяют хакеру обойти режим киоска и выполнять команды ОС на банкомате, имея доступ только к сервисной зоне.Отсутствие шифрования жесткого диска (PT-ATM-231)
Отсутствие шифрования жесткого диска занимает отдельное место среди недостатков, открывающихся злоумышленнику с доступом только к сервисной зоне. Во‑первых, это один из наиболее распространенных изъянов и он может быть использован для получения первоначального доступа к ОС. Во‑вторых, недостаток позволяет реализовать самый простой сценарий хищения денег, занимающий не больше десяти минут.Для просмотра ссылки Войди
Простой пример получения доступа к ОС: при исследовании содержимого нешифрованного жесткого диска мы обнаружили BAT-файл, запускаемый после полной загрузки системы при включении банкомата. В файл была добавлена строка start cmd.exe — в результате после перезагрузки банкомата запускался интерпретатор командной строки. Таким образом, атакующий мог получить возможность выполнять команды ОС.
Однако это еще не все возможности, которые открываются злоумышленнику после получения прямого доступа к жесткому диску. Например, хакер может разместить на нем ВПО или изменить конфигурационные файлы для обхода средств защиты. Так, для обхода ограничений средств контроля над запуском ПО злоумышленнику достаточно внести изменения в реестр Windows. Его файлы можно найти в папке C:\Windows\System32\config\.
Сценарий хищения денег из банкомата с таким недостатком может выглядеть так:
- Проникнув в сервисную зону банкомата, хакер получает доступ к содержимому жесткого диска. Для этого он отключает жесткий диск от ПК и подключает его к собственному устройству (например, к ноутбуку), используя подходящий адаптер.
- Хакер заменяет одну из программ в списке автозапуска исполняемым файлом с вредоносным кодом. Это можно сделать, добавив или изменив ключи в соответствующей ветке реестра Windows.
- Атакующий перезагружает банкомат. После загрузки ОС вредоносный файл запускается автоматически.
Кроме того, доступ к жесткому диску может стать и промежуточным шагом в более сложных сценариях хищения денег. Например, для эксплуатации уязвимостей в УПО банкомата необходимо иметь сведения о принципе его работы. Внешнему злоумышленнику получить исходный код УПО будет трудно. Более доступный вариант — изучить исполняемые файлы при помощи специализированного декомпилятора. Отсутствие шифрования жесткого диска позволяет хакеру скопировать исполняемые файлы УПО на свой компьютер для дальнейшего анализа в более комфортной обстановке.
Несмотря на то что отсутствие шифрования жесткого диска — опасный недостаток, статистика по нему не улучшается в течение нескольких лет. Использование шифрования может не только закрыть самый простой сценарий выдачи денег, но и усложнить проведение других атак, связанных с эксплуатацией уязвимостей УПО и обходом средств защиты.
Недостаточный контроль подключения USB-устройств (PT-ATM-004) и небезопасная конфигурация белого списка клавиш (PT-ATM-001)
На подключение USB-носителей к банкомату стали чаще накладывать ограничения (например, на некоторых устройствах это действие доступно только для администраторов). А подключение сторонних USB-клавиатур, напротив, по большей части не запрещается. Это значит, что к банкомату потенциально можно подсоединить и другие устройства, которые компьютер относит к классу USB HID, например компактные Rubber Ducky и Flipper Zero. Тем не менее на схемах сценариев все эти устройства будут обозначаться как USB-клавиатура.Один из недостатков, напрямую связанный с подключением клавиатуры к банкомату, — возможность выхода из режима киоска сочетанием клавиш. Часто срабатывают даже наиболее известные комбинации и позволяют получить доступ к приложению, которое не должно быть открыто для пользователя в нормальном режиме работы банкомата. К примеру, браузер по умолчанию (Internet Explorer, Edge и другие) можно использовать для вызова проводника Windows и последующего запуска интерпретатора командной строки.
Но даже если наиболее известные хоткеи заблокированы, это не значит, что хакер не сможет выйти из режима киоска после пары нажатий. Сложная последовательность получения доступа к командной строке может выглядеть так (отметим, что каждое из действий выполняется с помощью горячих клавиш):
- Вызов панели управления HD-графикой Intel.
- Открытие страницы поддержки в браузере Internet Explorer.
- Выбор директории для просмотра загруженных из браузера файлов.
- Вызов интерпретатора командной строки в открывшейся вкладке проводника Windows.
Прямой доступ к памяти (PT-ATM-232)
Итак, подключиться к системному блоку банкомата можно по USB, Ethernet, PCI и COM. Если на материнской плате банкомата есть свободный слот PCI, злоумышленник может попробовать провести атаку с использованием прямого доступа к памяти (direct memory access, DMA).Суть атаки заключается в том, что через установленную в слот DMA-плату (например, на базе ПО PCILeech или аналогичного инструмента) можно получить доступ к памяти устройства напрямую, минуя механизмы защиты операционной системы. Это позволяет считывать данные из памяти, включая передаваемую на банкомат платежную информацию, а также внедрять произвольный код напрямую в память. Фактически атака DMA позволяет злоумышленнику выполнять команды ОС с привилегиями ядра. Это дает хакеру еще больше возможностей для несанкционированных действий.
Для примера на рисунке ниже показан дамп оперативной памяти, содержащий номер банковской карты (PAN) — последовательность из 16 цифр, выделенную желтым цветом.
Способы получения доступа к ОС банкомата для злоумышленника, находящегося в непосредственной близости от устройства, можно представить в виде следующей схемы.
Рекомендации по предотвращению получения доступа к ОС
- Применять аппаратное или программное шифрование жесткого диска. Важно обеспечить безопасное хранение ключа шифрования — например, с использованием аппаратного модуля TPM (Trusted Platform Module). Категорически не рекомендуется хранить ключ в нешифрованном разделе диска.
- Ограничить USB-устройства, подключаемые в нормальном режиме работы банкомата. Для этого можно использовать политики Windows и (или) средства защиты класса Device Control.
- Ограничить применение распространенных комбинаций клавиш, не требующихся в нормальном режиме работы банкомата (таких как Win-F1, Alt-F4, Ctrl-Win-Enter, Alt-Tab, Ctrl-Alt-F12). Кроме того, следует запретить использование жестов для сенсорных экранов, если это актуально для конкретной конфигурации банкомата.
- Включить защиту от DMA-атак. Например, для Windows доступны следующие способы:
- открыть параметры безопасности Windows (Windows Settings → Privacy & security → Windows Security) и перейти к настройкам изоляции ядра (Device security → Core isolation details). Выставить в положение On параметр Memory integrity и убедиться в наличии Memory Access Protection в списке доступных функций безопасности;
- выставить значение On параметра Kernel DMA Protection через приложение System Information (msinfo32.exe).
- Отслеживать и анализировать события вне времени штатного обслуживания (технических работ или инкассации), которые могут указывать на несанкционированный доступ к ОС банкомата:
- открытие корпуса банкомата или незапланированный переход в режим обслуживания;
- отключение питания банкомата с последующим включением, несмотря на наличие стабильного источника;
- перезагрузка ОС или выход пользователя из системы без зафиксированных причин или ошибок в журналах действий на банкомате, а также редактирование журналов действий на жестком диске.
Атаки на уязвимости управляющего ПО
Небезопасная реализация контроля целостности файлов управляющего ПО (PT-ATM-417)
Обойдя режим киоска, хакер получает возможность совершать действия от лица сервисного пользователя. Это учетная запись, которая используется УПО для выполнения разных функций, например для запуска банковского приложения в режиме киоска. Атакующий может попытаться вывести наличные, используя вредоносные инструменты, воздействующие на УПО банкомата.Поскольку УПО управляет периферийным оборудованием банкомата по известному стандарту (CEN/XFS), открытая природа этого стандарта может стать угрозой, если есть проблемы с контролем целостности исполняемых и конфигурационных файлов.
В наших исследованиях небезопасная реализация контроля целостности файлов УПО обнаружилась в большинстве рассмотренных конфигураций. Проявляться этот недостаток может по‑разному — например, если в УПО:
- есть встроенная возможность отключения проверки файлов приложения;
- возможна модификация функции, используемой для вычисления хеш‑суммы файлов. В случае неправильного вычисления проверка целостности может быть выполнена с ошибками, что позволит злоумышленнику модифицировать файлы;
- проверка целостности выполняется только один раз при запуске приложения и затрагивает файлы с расширениями из заданного списка. Если злоумышленник использует пейлоад с расширением, не входящим в список, проверка целостности будет успешно пройдена.
Недостаточная защита от атак с применением рефлексии (PT-ATM-417)
Исследованное специалистами УПО было написано на языках с JIT-компиляцией. Некоторые из них, включая C#, имеют возможности рефлексии: программа способна анализировать свою структуру во время выполнения, динамически вызывать методы, изменять состояние объектов и получать доступ к метаданным типов. Злоумышленники могут воспользоваться рефлексией: недостаточная проверка целостности исполняемых файлов позволяет провести успешную атаку. Большая часть исследованных конфигураций оказалась уязвима.Атаки с использованием рефлексии — вещь непростая и требует от злоумышленника определенного уровня квалификации. Ведь ему потребуется написать эксплоит для конкретной реализации УПО, а перед разработкой эксплоита еще нужно будет изучить принцип работы УПО. При отсутствии исходного кода приложения используются специализированные декомпиляторы и отладчики, такие как Для просмотра ссылки Войди
- классы, объекты которых должны быть инициализированы перед взаимодействием с оборудованием;
- методы, которые представляют реализацию определенного интерфейса CEN/XFS или вызывают соответствующие ему низкоуровневые методы.
Фрагменты выше взяты из УПО, разработанного для демонстрационного стенда.
После анализа ПО хакер может разработать сценарий, который загружает в домен приложения необходимые сборки. Затем злоумышленник инициализирует определенные объекты и реализует логику выдачи денег. Чтобы извлечь купюры, нарушитель копирует условия стандартного пользовательского случая: формирует необходимые данные, создает обычную среду для работы функции и приводит объекты в готовность. После этого вызывается сама функция.
Атака на рефлексию позволяет изменить логику работы УПО, непосредственно взаимодействующего с оборудованием, и пропустить этап коммуникации с процессинговым центром. Однако, чтобы достичь успеха, злоумышленник должен предварительно получить возможность выполнения команд ОС, а также передать на банкомат файл с полезной нагрузкой (например, с помощью USB-носителя).
Так выглядит наиболее оптимистичный для злоумышленника сценарий. Однако в реальных конфигурациях намного чаще есть ограничения, затрудняющие атаку на разных этапах.
Например, возможность чтения файлов с USB-носителей в большей части устройств требует административных привилегий. А выходу из режима киоска с использованием сочетаний клавиш могут препятствовать локальные политики безопасности. В таком случае более реалистичный сценарий, включающий уже описанные уязвимости, может выглядеть так:
- Получив доступ к сервисной зоне банкомата, хакер устанавливает в доступный PCI-слот устройство для проведения DMA-атаки. Далее он использует общедоступное ПО, такое как PCILeech, и получает возможность выполнять команды ОС с привилегиями пользователя NT AUTHORITY\SYSTEM.
- Атакующий меняет пароль администратора и в результате получает доступ к учетной записи, права которой позволяют подключать сторонние USB-носители.
- Злоумышленник передает эксплоит через USB-носитель и подключает к банкомату клавиатуру для дальнейшего взаимодействия с программой.
- Атакующий запускает эксплоит через интерпретатор командной строки и получает возможность выдавать деньги.
Обход средств контроля над запуском стороннего ПО (PT-ATM-019)
Еще одним возможным препятствием могут стать ограничения на запуск ПО. Например, запрет использования интерпретаторов командной строки — с их помощью злоумышленники взаимодействуют с вредоносными программами. На банкоматах под управлением Windows для блокировки часто применяются такие решения, как AppLocker, или политики ограниченного использования программ (software restriction policies, SRP). Кроме того, возможно применение сторонних решений класса Application Control.Часто блокировка запуска определенного ПО (например, интерпретаторов командной строки cmd.exe и powershell.exe) выполняется по принципу черного списка, в который вносятся стандартные пути к исполняемым файлам. Первый очевидный недостаток этого способа — возможность запустить стороннее ПО, которое не входит в черный список, но при этом может быть вредоносным. Еще один недостаток: обход блокировки сводится к запуску исполняемого файла из альтернативного расположения. В самом простом случае для этого достаточно воспользоваться проводником Windows.
В качестве демонстрации мы рассмотрели вариант с использованием AppLocker для запрета на запуск PowerShell из директории C:\Windows\System32\Windows\PowerShell\v1.0. Чтобы обойти блокировку, мы скопировали исполняемый файл powershell.exe на рабочий стол сервисного пользователя, а затем запустили файл из нового расположения.
Иногда запуск проводника Windows из его стандартного расположения тоже может быть запрещен. В таком случае можно вернуться к примеру с получением доступа к проводнику при помощи Internet Explorer. Кроме того, браузер позволяет выполнить необходимые действия и без проводника: исследователи описали способ взаимодействия с файловой системой через технологию ActiveX. Они сперва получили доступ к браузеру, а затем выполнили в консоли разработчика код на JavaScript (с его помощью файл powershell.exe копируется в новую директорию, после чего запускается). Для обращения к файловой системе Windows и запуска исполняемого файла использовались объекты Scripting.FileSystemObject и WScript.Shell соответственно.
Этот пример показывает: блокировка запуска ПО по принципу черного списка с указанием стандартных путей заведомо небезопасна, так как для каждого последующего запрета найдется способ обхода. Если на устройстве одновременно заблокирован запуск проводника и браузера по их стандартным путям, доступ к браузеру можно получить, например, вызвав справку в любом приложении, где есть такая возможность. Например, можно открыть Internet Explorer из текстового редактора notepad.exe.
Для просмотра ссылки Войди
Вернемся к наиболее простому сценарию выдачи денег, разобранному в этом разделе, и добавим в него обход средств контроля над запуском ПО. С учетом описанных вариантов обхода он будет выглядеть примерно так:
- Хакер подключает к ПК банкомата USB-носитель с предварительно сохраненным на него эксплоитом.
- Подключает стороннюю клавиатуру и обходит режим киоска. Запускает стороннее приложение, не запрещенное локальными политиками безопасности, и вызывает контекстную справку. Это дает ему возможность получить доступ к браузеру.
- Атакующему необходимо скопировать исполняемый файл интерпретатора командной строки по новому пути. Для этого он может получить доступ к проводнику из браузера либо воспользоваться консолью разработчика для взаимодействия с файловой системой через объекты ActiveX.
- Хакер получает доступ к выполнению команд ОС и запускает эксплоит с помощью интерпретатора командной строки, воспользовавшись отсутствием ограничения на запуск сторонних исполняемых файлов.
Недостаточно эффективная настройка политики безопасности пользователя (PT-ATM-003)
Зачастую сервисный пользователь может обладать избыточными привилегиями, которые позволяют выполнять несанкционированные действия на банкомате без обхода ограничений. Так, полное отсутствие ограничений на запуск ПО, позволяющего осуществлять команды ОС и вносить изменения в конфигурацию системы, было обнаружено в половине исследованных устройств.
Опасность могут представлять и избыточные права сервисного пользователя на доступ к файлам. К примеру, злоумышленник может модифицировать исполняемый файл сервиса, запускаемого с правами системы, и получить возможность выполнять произвольный код с максимальными привилегиями.
Рекомендации для защиты от атак на управляющее ПО
- Внедрить меры защиты УПО от атак, использующих механизм рефлексии (реализация будет зависеть от языка разработки). Чтобы усложнить злоумышленнику задачу по анализу приложения, следует использовать обфускацию исходного кода.
- Ограничить привилегии сервисного пользователя, оставив минимальный набор прав для работы.
- Использовать более гибкие политики в средствах контроля над запуском приложений — например, применять блокировку по хеш‑сумме или издателю приложения.
- Настроить средства контроля над запуском приложений по принципу белого списка (разрешить запуск только тех утилит, которые необходимы для функционирования банкомата в штатном режиме). Это поможет предотвратить запуск стороннего ПО на банкомате.
- Регулярно обновлять используемое на банкомате ПО.
Эксплуатация недостатков настроек сети
Изменение параметров защищенного соединения (PT-ATM-415)
На большинстве банкоматов доступ к сетевым портам извне ограничен за счет использования VPN-клиента. VPN-решения не только затрудняют внешнее взаимодействие с сетевыми службами банкомата, но и препятствуют вмешательству в обмен данными между устройством и процессинговым центром. Внесение изменений в их настройки как раз может стать одной из задач злоумышленника, получившего доступ к ОС.Иногда функция организации VPN-соединения возлагается на отдельное сетевое устройство. К примеру, в такой конфигурации шифрование трафика может выполняться на коммутаторе, который подключен к порту Ethernet. Это позволяет атакующему с доступом к сервисной зоне переподключить кабель, соединяющий ПК и коммутатор, к собственному устройству (например, ноутбуку). В результате будет получен доступ к нешифрованному трафику.
При использовании VPN-клиента на уровне ОС хакер может попробовать отключить его, но это действие часто требует административных привилегий. К примеру, во время исследований мы переименовали ряд драйверов и отключили связанные с VPN-клиентом службы, от чего он перестал работать.
Возможен редкий вариант, в котором защита соединения с процессинговым центром осуществляется средствами УПО, а не отдельного VPN-решения. Так, исследователям попалось УПО, в котором параметры защищенного соединения определялись ключами реестра Windows. Одним из таких ключей был Protocol, определяющий используемый для соединения протокол передачи данных. Мы изменили значение ключа Protocol с https на http, что привело к отключению проверки подлинности сервера клиентом и позволило реализовать атаку с подменой процессингового центра.
Многие исследованные конфигурации разрешали устанавливать корневые сертификаты от имени сервисного пользователя. Этот недостаток позволяет хакеру добавить в системное хранилище самоподписанный сертификат и выдать его за доверенный. При использовании такого сертификата для установления HTTPS-соединения атакующий сможет вмешаться во взаимную проверку подлинности (например, mTLS) и получить доступ к трафику между банкоматом и процессинговым центром.
Эксплуатация уязвимостей в сетевых службах банкомата (PT-ATM-401)
Совместно с УПО на устройстве работают сетевые службы — обычно это сервисы, позволяющие удаленно управлять банкоматом или загружать обновления. Эта функциональность привлекает хакеров, так как позволяет получить доступ к ОС банкомата при наличии только сетевого доступа.В рамках исследований наши специалисты проанализировали принцип работы одной из таких сетевых служб. Они выяснили, что приложение работает по протоколу .NET Remoting и позволяет удаленно выполнять код без аутентификации. Работает это с использованием метода, принимающего в качестве параметра путь к исполняемому файлу на банкомате для его последующего запуска. Мы разработали сценарий, который обращается к сетевой службе и вызывает нужный метод, передавая в качестве аргумента C:\Windows\System32\cmd.exe. В результате злоумышленник, имеющий сетевой доступ к банкомату, может выполнять команды ОС.
Рекомендации по устранению недостатков сетевых настроек
- Ограничить доступ к сетевым портам, разрешив подключение только для доверенных процессов, требующих этого в нормальном режиме работы.
- Использовать для защиты взаимодействия с процессинговым центром отдельные (не входящие в состав УПО) VPN-решения, устойчивые к нештатным ситуациям, таким как:
- загрузка банкомата в безопасном режиме;
- незапланированное выключение устройства;
- отключение или переподключение сетевого оборудования (в случае если шифрование выполняется отдельным устройством);
- подключение несанкционированного сетевого оборудования или потеря связи с целевым устройством при активности VPN-клиента.
- Ограничить привилегии сервисного пользователя — оставить минимальный набор прав, которых будет достаточно для работы. Например, для систем под управлением Windows целесообразно ввести следующие ограничения:
- запретить запуск стандартных утилит для работы с хранилищем сертификатов;
- оставить разрешение только на чтение для критически значимых ветвей реестра — подветвей HKEY_LOCAL_MACHINE\Software, относящихся к УПО банкомата, а также ветви HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates.
Подмена инфраструктурных элементов
Подмена процессингового центра (PT-ATM-421)
Изменив настройки защищенного соединения, злоумышленник может вмешаться в обмен данными между банкоматом и процессинговым центром. Для этого используется эмулятор, который подключается к системному блоку или сетевому оборудованию при помощи коммутационного кабеля и позволяет отправлять произвольные ответы на запросы банкомата. При этом легитимный процессинговый центр даже не получает запросы от устройства. Это позволяет выводить желаемые суммы без списаний с карты злоумышленника.Для просмотра ссылки Войди
Один из недостатков, позволяющих похитить деньги путем подмены процессингового центра, — возможность отключить необходимые проверки от имени сервисного пользователя. Например, исследуя вариант реализации УПО, специалисты обнаружили возможность запуска служебной утилиты, используемой для изменения его настройки. Модифицировав флаги безопасности, они отключили проверку подписи сообщений процессингового центра. Это позволило использовать эмулятор для отправки команд на банкомат.
В другом варианте была обнаружена возможность отключать дополнительные проверки безопасности при взаимодействии с процессинговым центром. Например, чтобы отключить проверку криптограммы, на запрос банкомата отправляется модифицированный HTTP-ответ со стороны эмулятора процессингового центра. В ответе параметр, отвечающий за проверку, имеет значение false. Это позволяет ввести произвольный PIN-код при предъявлении карты, после чего эмулятор сразу отправляет банкомату запрос на выдачу денежных средств, пропуская этап проверки введенных данных.
Полный сценарий выдачи денежных средств путем подмены процессингового центра может выглядеть так:
- Получив доступ к сервисной зоне банкомата, атакующий подключает к нему USB-клавиатуру.
- Атакующий выходит из режима киоска и получает возможность выполнять команды ОС.
- Атакующий меняет одно из используемых УПО значений реестра Windows, чтобы модифицировать параметры защищенного соединения. После этого банкомат перезагружается для гарантированного сохранения внесенных изменений.
- Атакующий подключает банкомат к собственной рабочей станции с развернутой инфраструктурой с эмуляторами.
- Атакующий эмулирует банковский процессинг для атакуемого банкомата. В это же время он или его подельник прикладывает банковскую карту к бесконтактному считывателю и получает деньги.
Подмена сервера мониторинга (PT-ATM-417)
Другой пример сетевой атаки — подмена сервера мониторинга, используемого для удаленной диагностики и загрузки обновлений. Более чем в половине исследованных конфигураций УПО устанавливало соединение с сервером мониторинга, не проверяя легитимность узла, к которому происходило подключение. Это позволяет злоумышленнику создать и использовать его эмулятор для удаленного выполнения кода на банкомате.Одна из рассмотренных реализаций сервера мониторинга позволяла загружать ZIP-архивы на банкомат, а также удаленно выполнять плагины определенного формата. Это может позволить хакеру с доступом к сети банкомата передавать на него вредоносы под видом плагинов с необходимым расширением и инициировать их удаленное выполнение.
Возможны варианты ПО для удаленного мониторинга, позволяющего выполнять произвольные команды ОС — например, моментально перезагрузить банкомат с помощью команды shutdown. Изучая подобное ПО, мы выяснили, что для быстрой перезагрузки банкомата серверу мониторинга передается путь к исполняемому файлу shutdown.exe и параметры для его выполнения. После этого файл запускается с использованием метода CommandExecute (название изменено).
Так как ПО не проверяет подлинность конечного узла, с которым банкомат устанавливает соединение, специалисты разработали эмулятор сервера мониторинга. Опираясь на ранее обнаруженный принцип использования сторонних утилит, мы передали необходимому объекту путь к исполняемому файлу cmd.exe, после чего запустили файл с помощью метода CommandExecute. В результате мы получили доступ к выполнению команд ОС.
В первом рассмотренном сценарии атаки с подменой процессингового центра хакеру требуется предварительно обойти режим киоска. А описанная уязвимость, в свою очередь, позволяет получить первоначальный доступ к ОС альтернативным способом при наличии у злоумышленника сетевого доступа. Вот, например, один из реализованных исследователями сценариев:
- Злоумышленник с доступом к сети банкомата эмулирует сервер мониторинга и получает возможность выполнять команды на исследуемом устройстве.
- Атакующий изменяет одно из используемых УПО значений реестра, чтобы отключить проверку подписи сообщений. После этого банкомат перезагружается для гарантированного сохранения изменений.
- Хакер эмулирует банковский процессинг для атакуемого банкомата. В это же время он или его подельник прикладывает банковскую карту к бесконтактному считывателю и получает денежные средства.
Похожий пример встречался и в мировой практике. В 2023 году исследователи из Synack Red Team выявили критически опасные уязвимости в программном обеспечении Для просмотра ссылки Войди
Исправлять уязвимости УПО в силу его узкой специализации могут достаточно долго. Стоит применять компенсационные меры, не дожидаясь исправлений: так, использование VPN-клиента затрудняет сетевые атаки, а правильно настроенный файрвол позволит защитить порты, используемые сетевыми службами.
Рекомендации по защите от подмены инфраструктурных элементов
- Реализовать контроль целостности запросов к процессинговому центру, чтобы исключить возможность их модификации, — например, путем добавления к запросу имитовставки или с помощью MAC (Message Authentication Code).
- Выполнять дополнительную проверку возвращаемых процессинговым центром данных. Отключение проверок безопасности, выполняемых на стороне банкомата, не должно быть возможным как со стороны процессингового центра, так и локально от имени сервисного пользователя.
- Реализовать механизмы аутентификации и авторизации для сетевых служб банкомата:
- запросы к сетевым службам банкомата должны выполняться с использованием цифровой подписи — в особенности это касается служб, в штатную функциональность которых входят запись и выполнение файлов;
- удаленная диагностика и установка обновлений на банкомат должна быть доступна только со специально отведенного инсталляционного сервера (jump server), доступ к которому имеет ограниченное число сотрудников.
Будущее атак на банкоматы
Рассмотренные сценарии логических атак показывают, как могут взламывать банкоматы здесь и сейчас. При этом технологическое развитие не обходит стороной эти устройства — они приобретают новые функции, и это приводит к появлению дополнительных векторов атак. Попробуем сделать несколько прогнозов того, как будут выглядеть атаки на банкоматы уже в ближайшее время.Обход новых способов аутентификации
Все более популярными становятся банкоматы, предлагающие аутентификацию с использованием биометрии: применяются технологии распознавания лиц, отпечатков пальца и даже рисунка вен. Если раньше была распространена кража карточных данных с использованием накладных и закладных устройств, то теперь целью становится сбор и последующее использование биометрических данных. Банковскую карту можно перевыпустить в случае компрометации. А при утечке биометрических данных, например в результате взлома банковской инфраструктуры, пользователь не сможет изменить неотъемлемые физические характеристики.
Это особенно опасно с учетом того, что в некоторых устройствах биометрическая аутентификация заменяет ввод PIN-кода. Например, в 2020 году испанский банк CaixaBank Для просмотра ссылки Войди
Банкомат как звено в мошеннических схемах
Банкоматы все чаще становятся не столько прямыми целями, сколько промежуточным звеном в мошеннических схемах. В некоторых случаях пользователю для снятия денег достаточно сгенерировать QR-код в мобильном приложении банка и отсканировать его на банкомате. Мошенники уже Для просмотра ссылки Войди
В атаках на банкоматы используется и модифицированное ПО Для просмотра ссылки Войди
Сетевые атаки через банковскую инфраструктуру
Еще в 2017 году компания Trend Micro совместно с Европолом отметила в отчете (Для просмотра ссылки ВойдиОдин из примеров — Для просмотра ссылки Войди
Атаки на криптовалютные банкоматы
С ростом интереса к криптовалютам продолжает увеличиваться и число Для просмотра ссылки ВойдиДля просмотра ссылки Войди
Для просмотра ссылки Войди
Выводы
Рост числа новых вредоносов для банкоматов и снижение порога входа для злоумышленников привели к тому, что логические атаки на эти устройства стали как никогда актуальны. Раньше внимание злоумышленников было сосредоточено на краже карточных данных с помощью техник, не затрагивающих логику работы устройства. Это приносило разовую выгоду. Теперь всего одна логическая атака может сразу же обеспечить злоумышленнику большую сумму наличных.Готовые решения, предлагаемые на теневых торговых площадках, доступны злоумышленникам с низкой квалификацией. Несмотря на это, фокус в безопасности банкоматов по‑прежнему смещен в сторону физической защиты сейфа и сетевой безопасности. В результате устройства остаются уязвимыми к простым, но эффективным сценариям хищения денег.
С развитием технологий будет появляться все больше сценариев логических атак. Современные устройства перестали быть просто машинами для выдачи наличных — это полноценные мини‑офисы, через которые можно оплатить услуги, перевести деньги, погасить кредиты. Использование карты тоже уже не обязательно благодаря NFC-модулям, биометрии и оплате по QR-коду: для начала работы достаточно смартфона или вообще одной только улыбки. Вероятно, вместо хищения наличных мы все чаще будем встречать перевод средств на счет хакера, а кража карточных данных уступит обходу биометрической аутентификации и атакам на NFC-модуль.
В статье мы затронули наиболее распространенные сценарии хищения денег из банкоматов и уязвимости, которые приводят к таким последствиям. Не следует недооценивать вероятность этих сценариев в реальных условиях просто потому, что логические атаки сложнее в сравнении с обычными способами кражи денег. Некоторые из описанных схем занимают не более десяти минут, при этом оперативно обнаружить их значительно труднее.
Что можно посоветовать для защиты? В первую очередь наше исследование показало важность мониторинга системных событий, которые могут сигнализировать о получении нежелательного доступа к ОС банкомата. Помимо этого, необходимо оперативно обновлять установленное на устройстве ПО, а также взаимодействовать с вендорами оборудования для получения патчей при обнаружении недостатков встроенного программного обеспечения.
Важен комплексный подход к защите устройства. Он должен в одинаковой степени приоритизировать как сетевую безопасность и защиту на локальном уровне, так и физическое ограничение доступа к сервисной зоне банкомата, который используется злоумышленниками для подключения сторонних устройств к встроенному компьютеру.
