Стоящие на улицах города железные коробки с деньгами не могут не привлекать внимание любителей быстрой наживы. И если раньше для опустошения банкоматов применяли чисто физические методы, то теперь в ход идут все более искусные трюки, связанные с компьютерами. Сейчас наиболее актуальный из них — это «черный ящик» с одноплатным микрокомпьютером внутри. О том, как он работает, мы и поговорим в этой статье.
– Эволюция банкоматного кардинга
– Первое знакомство с «чёрным ящиком»
– Анализ банкоматных коммуникаций
– Откуда берутся «чёрные ящики»?
– «Последняя миля» и поддельный процессинговый центр
Начальник международной ассоциации производителей банкоматов (ATMIA) выделил «чёрные ящики» как наиболее опасную угрозу для банкоматов.
Типичный банкомат – это набор уже готовых электромеханических компонентов, размещённых в одном корпусе. Производители банкоматов строят свои железные творения из устройства выдачи банкнот, считывателя карт и других компонентов, – уже разработанных сторонними поставщиками. Этакий конструктор LEGO для взрослых. Готовые компоненты размещаются в корпусе банкомата, который обычно состоит из двух отсеков: верхний отсек («кабинет» или «зона обслуживания»), и нижний отсек (сейф). Все электромеханические компоненты подключены через порты USB и COM к системному блоку, который в данном случае выполняет роль хоста. На старых моделях банкоматов также можно встретить соединения через SDC-шину.
Эволюция банкоматного кардинга
Банкоматы с огромными суммами внутри, неизменно манят кардеров к себе. Сначала кардеры эксплуатировали только грубые физические недостатки защиты банкоматов – использовали скиммеры и шиммеры для кражи данных с магнитных полос; поддельные пин-пады и камеры для просмотра пинкодов; и даже поддельные банкоматы.
Затем, когда банкоматы начали оснащаться унифицированным софтом, работающим по единым стандартам, таким как XFS (eXtensions for Financial Services), – кардеры начали атаковать банкоматы компьютерными вирусами.
Среди них Trojan.Skimmer, Backdoor.Win32.Skimer, Ploutus, ATMii и другие многочисленные именованные и безымянные зловреды, которых кардеры подсаживают на хост банкомата либо через загрузочную флешку, либо через TCP-порт удалённого управления.
Процесс заражения банкомата
Захватив XFS-подсистему, малварь может отдавать команды устройству выдачи банкнот, без авторизации. Или отдавать команды картридеру: читать/писать магнитную полосу банковской карты и даже извлекать историю транзакций, хранящуюся на чипе EMV-карты. Особого внимания заслуживает EPP (Encrypting PIN Pad; шифрованный пинпад). Принято считать, что вводимый на нём пинкод, не может быть перехвачен. Однако XFS позволяет использовать EPP-пинпад в двух режимах: 1) открытый режим (для ввода различных числовых параметров, таких как сумма подлежащая обналичиванию); 2) безопасный режим (в него EPP переключается, когда надо ввести пинкод или ключ шифрования). Данная особенность XFS позволяет кардеру осуществлять MiTM-атаку: перехватить команду активации безопасного режима, которая отправляется с хоста на EPP, и затем сообщить EPP-пинпаду, что работу следует продолжить в открытом режиме. В ответ на это сообщение, EPP отправляет нажатия клавиш, открытым текстом.
Принцип действия «чёрного ящика»
В последние годы, по данным Европола, вредоносы для банкоматов заметно эволюционировали. Кардерам теперь не обязательно иметь физический доступ к банкомату, чтобы заразить его. Они могут заражать банкоматы посредством удалённых сетевых атак, используя для этого корпоративную сеть банка. По данным Group IB, в 2016 году в более чем 10 странах Европы, банкоматы были подвержены дистанционному нападению.
Атака на банкомат через удалённый доступ
Антивирусы, блокировка обновления прошивки, блокировка USB-портов и шифрование жёсткого диска – до некоторой степени защищают банкомат от вирусных атак кардеров. Но что если кардер не хост атакует, а напрямую к периферии подключается (через RS232 или USB) – к считывателю карт, пин-паду или устройству выдачи наличных?
Первое знакомство с «чёрным ящиком»
Сегодня технически подкованные кардеры поступают именно так, используя для кражи наличных из банкомата т.н. «чёрные ящики», – специфически запрограммированные одноплатные микрокомпьютеры, наподобие Raspberry Pi. «Чёрные ящики» опустошают банкоматы подчистую, совершенно волшебным (с точки зрения банкиров) образом. Кардеры подключают своё волшебное устройство напрямую к устройству выдачи банкнот; для извлечения из него всех имеющихся денег. Такая атака действует в обход всех программных средств защиты, развёрнутых на хосте банкомата (антивирусы, контроль целостности, полное шифрование диска и т.п.).
«Чёрный ящик» на базе Raspberry Pi
Крупнейшие производители банкоматов и правительственные спецслужбы, столкнувшись с несколькими реализациями «чёрного ящика», предупреждают, что эти хитроумные компьютеры побуждают банкоматы выплёвывать все доступные наличные; по 40 банкнот каждые 20 секунд. Также спецслужбы предупреждают, что кардеры чаще всего нацеливаются на банкоматы в аптеках, торговых центрах; и также на банкоматы, которые обслуживают автомобилистов «на ходу».
При этом, чтобы не светиться перед камерами, наиболее осторожные кардеры берут на помощь какого-нибудь не слишком ценного партнёра, мула. А чтобы тот не смог присвоить «чёрный ящик» себе, используют следующую схему. Убирают из «чёрного ящика» ключевую функциональность и подключают к нему смартфон, который используют в качестве канала для дистанционной передачи команд урезанному «чёрному ящику», по IP-протоколу.
Модификация «чёрного ящика», с активацией через удалённый доступ
Как это выглядит с точки зрения банкиров? На записях с видеокамер-фиксаторов происходит примерно следующее: некая личность вскрывает верхний отсек (зону обслуживания), подключает к банкомату «волшебный ящик», закрывает верхний отсек и уходит. Немного погодя несколько человек, на вид обычные клиенты, подходят к банкомату, и снимают огромные суммы денег. Затем кардер возвращается и извлекает из банкомата своё маленькое волшебное устройство. Обычно факт атаки банкомата «чёрным ящиком» обнаруживается только через несколько дней: когда пустой сейф и журнал снятия наличных – не совпадают. В результате сотрудникам банка остаётся только чесать затылки.
Анализ банкоматных коммуникаций
Как уже отмечалось выше, взаимодействие между системным блоком и периферийными устройствами осуществляется посредством USB, RS232 или SDC. Кардер подключается непосредственно к порту периферийного устройства и отправляет ему команды – в обход хоста. Это довольно просто, потому что стандартные интерфейсы не требуют каких-то специфических драйверов. А проприетарные протоколы, по которым периферия и хост взаимодействуют, не требуют авторизации (ведь устройство же внутри доверенной зоны находится); и поэтому эти незащищённые протоколы, по которым периферия и хост взаимодействуют – легко прослушиваются и легко поддаются атаке воспроизведения.
Т.о. кардеры могут использовать программный или аппаратный анализатор трафика, подключая его напрямую к порту конкретного периферийного устройства (например, к считывателю карт) – для сбора передаваемых данных. Пользуясь анализатором трафика, кардер узнаёт все технические подробности работы банкомата, в том числе недокументированные функции его периферии (например, функция изменения прошивки периферийного устройства). В результате кардер получает полный контроль над банкоматом. При этом, обнаружить наличие анализатора трафика довольно-таки трудно.
Прямой контроль над устройством выдачи банкнот означает, что кассеты банкомата – могут быть опустошены без какой-либо фиксации в логах, которые в штатном режиме вносит софт, развёрнутый на хосте. Для тех, кто не знаком с программно-аппаратной архитектурой банкомата, это действительно как магия может выглядеть.
Откуда берутся «чёрные ящики»?
Поставщики банкоматов и субподрядчики разрабатывают отладочные утилиты для диагностики аппаратной части банкомата, – в том числе электромеханики, отвечающей за снятие наличных. Среди таких утилит: ATMDesk, RapidFire ATM XFS. На рисунке ниже представлены ещё несколько таких диагностических утилит.
Панель управления ATMDesk
Панель управления RapidFire ATM XFS
Сравнительные характеристики нескольких диагностических утилит
Доступ к подобным утилитам в норме ограничен персонализированными токенами; и работают они только при открытой дверце банкоматного сейфа. Однако просто заменив в бинарном коде утилиты несколько байт, кардеры могут «протестировать» снятие наличных – в обход проверок, предусмотренных производителем утилиты. Кардеры устанавливают такие модифицированные утилиты на свой ноутбук или одноплатный микрокомпьютер, которые затем подключают непосредственно к устройству выдачи банкнот, для несанкционированного изъятия наличных.
«Последняя миля» и поддельный процессинговый центр
Прямое взаимодействие с периферией, без общения с хостом – это только один из эффективных приёмов кардинга. Другие приёмы полагаются на тот факт, что у нас есть широкое разнообразие сетевых интерфейсов, через которые банкомат связывается с внешним миром. От X.25 до Ethernet и сотовой связи. Многие банкоматы могут быть идентифицированы и локализованы посредством сервиса Shodan (наиболее лаконичная инструкция по его использованию представлена здесь), – с последующей атакой, паразитирующей на уязвимой конфигурации безопасности, лени администратора и уязвимых коммуникациях между различными подразделениями банка.
«Последняя миля» связи между банкоматом и процессинговым центром, богата самыми разнообразными технологиями, которые могут служить точкой входа для кардера. Взаимодействие может осуществляться посредством проводного (телефонная линия или Ethernet) или беспроводного (Wi-Fi, сотовая связь: CDMA, GSM, UMTS, LTE) способа связи. Механизмы безопасности могут включать в себя: 1) аппаратные или программные средства для поддержки VPN (как стандартные, встроенные в ОС, так и от сторонних производителей); 2) SSL/TLS (как специфичные для конкретной модели банкомата, так и от сторонних производителей); 3) шифрование; 4) аутентификация сообщений.
Однако похоже, что для банков перечисленные технологии представляются очень сложными, и поэтому они не утруждают себя специальной сетевой защитой; или реализуют её с ошибками. В лучшем случае банкомат связывается с VPN-сервером, и уже внутри приватной сети – подключается к процессинговому центру. Кроме того, даже если банкам и получится реализовать перечисленные выше защитные механизмы, – у кардера уже есть эффективные атаки против них. Т.о. даже если безопасность соответствует стандарту PCI DSS, банкоматы всё равно остаются уязвимыми.
Одно из основных требований PCI DSS: все конфиденциальные данные, когда они передаются через общедоступную сеть, должны быть зашифрованы. И ведь у нас действительно есть сети, которые изначально были спроектированы так, что в них данные полностью зашифрованы! Поэтому есть соблазн сказать: «У нас данные зашифрованы, потому что мы используем Wi-Fi и GSM». Однако многие из этих сетей не обеспечивают достаточной защиты. Сотовые сети всех поколений уже давно взломаны. Окончательно и бесповоротно. И даже есть поставщики, которые предлагают устройства для перехвата передаваемых по ним данных.
Поэтому либо в небезопасной коммуникации, либо в «приватной» сети, где каждый банкомат широковещает о себе другим банкоматам, может быть инициирована MiTM-атака «поддельный процессинговый центр», – которая приведёт к тому, что кардер захватит контроль над потоками данных, передаваемыми между банкоматом и процессинговым центром.
Таким MiTM-атакам потенциально подвержены тысячи банкоматов. На пути к подлинному процессинговому центру – кардрер вставляется свой, поддельный. Этот поддельный процессинговый центр даёт банкомату команды на выдачу банкнот. При этом кардер настраивает свой процессинговый центр таким образом, чтобы выдача наличных происходила вне зависимости от того, какая карта вставляется в банкомат – даже если срок её действия истёк, или на ней нулевой баланс. Главное, чтобы поддельный процессинговый центр «узнал» её. В качестве поддельного процессингового центра может быть либо кустарная поделка, либо симулятор процессингового центра, изначально разработанный для отладки сетевых настроек (ещё один подарок «производителя» – кардерам).
На следующем рисунке приведён дамп команд на выдачу 40 банкнот из четвёртой кассеты, – отправленных из поддельного процессингового центра и хранящихся в журналах ATM-софта. Они выглядят почти как настоящие.
Дамп команд поддельного процессингового центра