​Угнать миллион за пару сотен секунд
Атаки злоумышленников на банкоматы не прекращаются
Фото: Freepik

Сразу оговоримся, что все приведенные ниже сведения основаны исключительно на опыте экспертов компании Digital Security. Любые «работы по анализу защищенности банкоматов» без ведома самого банка противозаконны и уголовно наказуемы.

Цель — наличные

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

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

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

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

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

Типовые атаки на АТМ

Для рассматриваемой модели нарушителя можно выделить следующие типовые атаки на банкоматы.

BlackBox — подключение к шине диспенсера с целью отправки на него неавторизованных команд, направленных на вывод наличных средств.

Deposit Forgery — подделка валюты, номинала и количества внесенных злоумышленником средств через купюроприемник за счет перехвата и модификации сообщений. Эксплуатация возможна в режиме MitM шины данных купюроприемника.

ATM Malware Jackpotting — атака на хостовую часть банкомата с помощью вредоносного программного обеспечения (ВПО). Данное вредоносное ПО может быть использовано как в локальных атаках, так и в дистанционных, то есть со стороны сетевой инфраструктуры банка. Векторами для выполнения данной атаки при локальном доступе могут быть:

— Malformed-устройство — физический или виртуальный поддельный девайс, который эмулирует поведение реального периферийного, с целью эксплуатации уязвимостей в ПО (библиотеках или драйверах) производителя;

— User Input Emulation — эмуляция пользовательских носителей информации и устройств ввода, например клавиатуры, мыши, CD-привода, флеш-накопителя и тому подобного, с целью доставки на хост вредоносного программного обеспечения.

Реализация атаки на АТМ

Говоря о локальном воздействии, предполагается, что атакующий, подходя к банкомату, имеет крайне ограниченное количество времени (около 4—7 минут). Поэтому все атаки должны проводиться им быстро и четко. Если атака не стартовала в течение первой минуты — лучше уносить ноги!

Конечно же, 4—7 минут — это условность, поскольку в практике злоумышленников нередки случаи полного игнорирования со стороны охранных организаций факта взлома в течение нескольких часов. Благодаря этому «плохие парни» могут полностью обчистить несколько расположенных рядом банкоматов.

Конструктивные особенности АТМ

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

Такими критическими шинами данных, как было сказано ранее, являются шины от периферийных устройств банкомата до системного блока, шина данных диспенсера, шина данных купюроприемника.

Злоумышленник может получить информацию о конструктивных особенностях либо от доверенного лица из банка (инсайдера), либо купив аналогичную модель банкомата на просторах Интернета. Как показывает практика, поскольку лицевая панель банкомата выполнена в основном из пластика, получение доступа к шинам данных не составляет никакого труда.

Например, у банкоматов корпорации NCR самой уязвимой точкой в конструкции является пластиковая рекламная панель — единственная преграда между системным блоком и атакующим. То же можно сказать и о банкоматах Diebold. Банкоматы OKI и вовсе целиком выполнены из пластика, что только облегчает процесс деструктивного воздействия.

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

Выполнение атак методом прямого диспенса (BlackBox/Robbery/DrillBox)

Если есть возможность подключения к шине диспенсера, атакующий может провести атаку типа BlackBox.

В большинстве случаев производители банкоматов выносят системный блок в сервисную зону банкомата, то есть в его верхнюю часть. И все, что отделяет злоумышленника от системного блока, — это пластиковая панель, на которой обычно располагается реклама либо логотип банка.

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

Многие говорят о том, что BlackBox-атака уже давно неактуальна, поскольку между хостом и диспенсером используется шифрование с применением стойких криптографических алгоритмов. Но, как показывает практика, это не всегда так.

Например, в одном из самых распространенных банкоматов в России, произведенном NCR, действительно используется шифрование шины данных — AES-128. Но при этом в самом встраиваемом программном обеспечении (прошивке) диспенсера присутствует логическая уязвимость, которая заключается в отсутствии аутентификации хоста. Ее эксплуатация приводит к возможности сброса текущих ключей шифрования и установке произвольных. После чего злоумышленник имеет возможность отправлять диспенсеру любые команды, в том числе — и на выдачу наличных средств.

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

В ряде случаев, даже при наличии возможности использования шифрования канала, имеют место уязвимости класса конфигурирования (как программные, так и программно-аппаратные), связанные с принудительным отключением шифрования. В этих случаях злоумышленнику ничего не мешает выполнить BlackBox-атаку.

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

Реализация атаки типа Deposit Forgery

При наличии возможности подключения к шине купюроприемника реально провести атаку типа Deposit Forgery, которая позволяет выполнить подделку валюты, номинала и количества внесенных средств.

Для анализа возможности реализации данной атаки, как и в случае с атакой типа BlackBox, проводится исследование встраиваемого программного обеспечения купюроприемника и программного обеспечения на хостовой части, с целью изучения протокола взаимодействия.

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

Внесенные таким образом наличные средства позже могут быть выведены абсолютно легально.

Выполнение атак с использованием Malformed-устройств

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

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

Здесь необходимо отметить зачастую крайне низкое качество кода программного обеспечения периферийных устройств, многие компоненты которого были написаны лет десять назад и более. Отсутствуют встроенные механизмы защиты (/GS — stack cookies, /DYNAMICBASE для модулей), бывают отключены и системные механизмы защиты (DEP).

Успешное использование таких уязвимостей чаще всего приводит к исполнению своего кода с высокими привилегиями, поскольку эти компоненты расположены в системных сервисах и ядре ОС.

Выполнение атак методом User Input Emulation

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

Здесь могут возникнуть некоторые трудности с окном интерфейса банка, которое закрывает все остальные элементы управления ОС (kiosk-mode), но можно перепробовать множество тривиальных способов получить фокус для ввода, переключиться, вызвать какой-нибудь системный компонент (вроде «режима залипания клавиш»).

Выполнение атак с использованием вредоносного ПО

Получив возможность запуска произвольного кода на хостовой части в банкомате, атакующий уже близок к цели. Чтобы выполнить управление диспенсером с хостовой части — запросить выдачу наличных, существует и успешно применяется ряд инструментов. Есть как простейшие троянские программы (Alice), так и «замороченные» с функциями для контроля снятия наличных дропами (Tyupkin). Доступность и простота этих средств может недооцениваться. Подробные технические описания и семплы есть в блогах антивирусных компаний и публичных песочницах. Все это можно повторить или использовать.

В качестве примера можно привести один из последних продаваемых продуктов такого рода — троянскую программу Cutlet Maker. На ее официальном сайте есть детальное описание с картинками и видео уязвимых мест банкомата Wincor, подробная инструкция по использованию и прототип устройства для автоматизации атаки с использованием вектора User Input Emulation.

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

Обход средств защиты (Application Control)

При использовании в системе посторонних инструментов, как названные выше троянские программы, нужно иметь в виду разграничения и запреты, вносимые средствами защиты информации (СЗИ).

Помимо обычных функций выявления известных семейств троянских программ, широко используемой практикой является запрет запуска любых посторонних, то есть не добавленных заранее в белый список, программ и прочих компонентов. Например, в таких продуктах, как McAfee Solidcore, Kaspersky Embedded Systems Security, Safe'n'Soft TPSecure. Иногда детектирование вредоносных программ производится только статически, без поведенческого анализа, что не создаст препятствий для полиморфного кода. Что касается защиты типа белых списков программ, то такие системы защиты распространяют свой контроль не на все объекты, которые можно использовать для запуска своего кода. Кроме того, СЗИ усложняют эксплуатацию устройств и поэтому бывают отключены сервисными инженерами.

Бывает также, что защитные продукты вносят собственные уязвимости в систему. Например, уязвимость, найденная Дмитрием Турченковым из компании Embedi, — обход белых списков и повышение привилегий. Уязвимость, найденная Георгием Зайцевым из компании Positive Technologies, — обход белых списков.

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

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

Повышение привилегий

В случае если для обращения к устройству окажется недостаточно привилегий — например, при запуске «проводником» процесс наследует токен обычного пользователя, а устройство захвачено сервисным процессом — перед атакующим стоит необходимость повышения своих привилегий в системе. Есть отдельный класс эксплойтов, решающих эту задачу. Учитывая, что на машинах типа банкоматов чаще всего используется устаревшее, но стабильное ПО, можно хорошо поискать и воспользоваться чем-нибудь готовым для решения этой проблемы, если она возникнет.

Для повышения привилегий отлично подходят:

— уязвимости операционной системы;

— уязвимости стороннего программного обеспечения;

— уязвимости программного обеспечения производителя банкомата.

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

Взаимодействие с контроллером диспенсера

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

Выводы

Мы подробно описали реально существующие векторы атак на банкоматы, использующиеся в России, а также рассмотрели различные уязвимости машин для выдачи наличных денег. Для того чтобы обладать полной информацией о существующих проблемах с защитой таких устройств, банкам необходимо проводить регулярно комплексный анализ ПО и «железа», чтобы выявлять наиболее удобные подходы к его взлому. И затем на основе обнаруженных уязвимостей и векторов усиливать защиту соответствующих элементов устройства.

Роман БАЖИН, руководитель исследовательского центра Digital Security, для Banki.ru