Компания
306,28
рейтинг
25 ноября 2014 в 17:59

Разработка → Атака на банкомат с помощью Raspberry Pi

image

Что только не делают с банкоматами: их выдирают из стены, привязав тросом к автомобилю, сверлят, взрывают и режут (иной раз в здании Госдумы). По статистике EAST, преступники стали реже использовать скимминг, предпочитая траппинг и физические диверсии. Немало хлопот специалистам по безопасности доставляет и еще один новый тренд — вирусные атаки на банкоматы. Тут и Trojan.Skimer, и Backdoor.Ploutus, и совсем свежий зловред Tyupkin, и другие «приложения», известные и не очень. Малварь загружается в компьютер банкомата, как правило с внешних носителей, и используется для несанкционированной выдачи денег или перехвата карточных данных. Еще один способ атаки описали эксперты Positive Technologies Ольга Кочетова и Алексей Осипов на конференции по компьютерной безопасности Black Hat Europe 2014, проходившей в октябре в Амстердаме.

Для проверки защищенности тестового банкомата, пережившего три форума Positive Hack Days, был выбран популярный миниатюрный контроллер Raspberry Pi. Устройство легко прячется внутри корпуса и не привлекает внимания технического персонала, который, к примеру, меняет бумагу во встроенных принтерах и потому имеет ключи от сервисной зоны.

Найти документацию с описанием интерфейсов банкоматов не так сложно, и об этом еще пять лет назад писал Алексей Лукацкий в своих «Мифах информационной безопасности». Оборудование АТМ и платежных терминалов, независимо от производителя, имеет общий API для доступа и управления различными модулями и работает на платформе Windows в соответствии с единым стандартом «расширений для финансовых услуг» (XFS).

Зная API, можно получить контроль над хост-компьютером банкомата и напрямую управлять различными периферийными устройствами, установленными внутри шкафа ATM, — картридером, клавиатурой для набора PIN-кода, сенсорным дисплеем, диспенсером банкнот и т. п. Не стоит забывать также об уязвимостях операционной системы банкомата, а их у Windows на много лет вперед припасено.



Слабое место


Прежде чем установить Raspberry Pi и подключить устройство к портам Ethernet, USB или RS-232, банкомат необходимо вскрыть. В верхней части ATM находится сервисная зона. Именно здесь расположен компьютер, управляющий устройствами банкомата, сетевое оборудование (в том числе плохо защищенные GSM/GPRS-модемы). Сервисная зона практически не контролируется, так как используется обслуживающим персоналом для различных работ. Получить к ней доступ значительно проще, чем к сейфу с деньгами, расположенному внизу. Ее можно открыть несложными в изготовлении ключами или совсем простыми подручными средствами.



Но просто открыть мало — надо сделать это быстро и незаметно.

На конференции Black Hat исследователи Positive Technologies продемонстрировали, сколько времени потребуется злоумышленникам, чтобы установить микрокомпьютер в сервисную зону ATM для использования его в роли сниффера — перехватчика PIN-кода и номера кредитной карты — или аппаратного скиммера, который не оставляет следов на внешнем виде банкомата. Понадобилось две минуты, чтобы разблокировать корпус банкомата, интегрировать микрокомпьютер, замаскировать и подключить его к интернету.

В процессе подготовки к выступлению Raspberry Pi был запрограммирован для управления периферийными модулями ATM. К микрокомпьютеру подключался Wi-Fi-адаптер, к которому можно было подключиться с любого устройства, со смартфона например. Команды на выдачу денег в диспенсер отправлялись посредством специально реализованного веб-интерфейса. В качестве примера была показана выдача нескольких банкнот, а после некоторой доработки отправляемого кода банкомат сразу же расставался со всеми заложенными купюрами. К слову, в каждой кассете типичного ATM помещается от двух до трех тысяч купюр, и таких кассет обычно четыре — для нескольких номиналов.

image

Надо ли говорить, что в ходе эксперимента банкомат выдавал купюры, не оставляя никаких записей в своем компьютере, а встроенная видеокамера банкомата хоть и работала, но, как и другие устройства внутри захваченного ATM, контролировалась с помощью Raspberry Pi.

Можно ли защититься


Обеспечить безопасность банкоматов нелегко. Многое зависит от сценария атаки. К примеру, НИЦ «Охрана» МВД рекомендует производителям использовать дымогенератор, ультразвуковой барьер и ксеноновый стробоскоп, а специалисты британской LINK — запретить стандартные замки для доступа в сервисную зону и активнее применять веб-камеры.

Однако основная проблема, по мнению наших исследователей, — это возможность инсталлировать в банкомат любые устройства или программы (вплоть до Angry Birds), что вызвано обилием критических уязвимостей в операционных системах. Ситуацию могла бы изменить совместная работа производителей банковского оборудования над новой открытой спецификацией, которая бы обеспечила безопасное взаимодействие и эффективную проверку подлинности компонентов ATM: чтобы любой желающий, раздобыв ключ от сервисной зоны, не смог так просто подключить к системе все что угодно.
Автор: @ptsecurity
Positive Technologies
рейтинг 306,28

Комментарии (29)

  • +28
    Будущее наступило!
    image
  • +6
    Открыли Америку!
    Еще 15 лет наза можно было подключить COM порт а теперь подключить USB к ноуту с установвленным софтом это теперь называется взлом!?!?
  • +3
    Я в шоке! Я думал что весь банкомат это надежный сейф. А его оказывается можно скрепкой открыть.
    И я предполагал что команду на выдачу денег невозможно выполнить чисто локальными средствами. Думал там происходит какой сложный обмен с банком, подтверждающий разрешение операции.
    Какая то защита от сквозняка и честных людей получается.
    • +2
      Конечно нельзя локально, но если получить системные привелегии в винде все можно.
      • 0
        Если получить системные привилегии везде все можно.
  • +3
    > установить микрокомпьютер в сервисную зону ATM для использования его в роли сниффера — перехватчика PIN-кода

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

      Пин-пад умеет работать в нескольких режимах. Это как минимум закрытый(защищенный), в котором данные о нажатиях, действительно, не возвращаются в открытом виде, а итогом работы является формирование пин-блока на ключах из клавиатуры. А еще существует открытый режим, и именно в нем вводится сумма платежа/номер телефона, на который нужно произвести платеж. И вот последние данные — никто не шифрует. Дальше продолжать, или вам не нужно объяснять, что может сделать активная MITM-атака, которая может подменять одни запросы к клавиатуре другими.

      И предвосхищая ваше замечание, что транзакция в данном случае не пройдет. С точки зрения жертвы – просто платеж не был принят, повторный ввод пин-кода злоумышленник может не блокировать, например.
    • 0
      А не просто ли это клавиатура? Точнее её кусок цифровой. С неё ведь не только пинкод вводится, а к примеру сумма с вложенного чека — тоесть она отдает компьютеру обычные цифры по нажатию на кнопки.

      ps. Уже прочел выше комментарий.
  • +2
    А зачем внутри такой утилитарной штуки как банкомат вообще OS общего назначения сидит?
    • +3
      Дешевле-проще-стандартней.
      • +4
        И видимо выгода от этой дешевизны пока еще покрывает убытки от взломов.
    • 0
      Имхо конкретная ОС значения не имеет. Была бы спец. ос, ломалась бы другими методами, но с тем же успехом.
      • –2
        С тем же успехом вряд ли. Например специализированные платы «ИГРОСОФТ» не особо сломаешь стандартными эксплоитами, на этих платах [насколько я понял из описания, «в живую» ни разу не видел] стоит свой ПЛИС, в котором всё что надо и зашито. К ним так просто не подключишься раз, да и микропрограмму этого ПЛИС (i.e. его далеко не «OS общего назначения») так просто не дизассемблируешь чтобы свой эксплоит к нему написать. А эти игровые терминалы тоже считай банкоматы, в них тоже деньги внутри лежат.
        • +1
          После того как я узнал про вирусы в контроллерах АЭС от Сименса, я уже ничему не удивлюсь.
          Да и распостраненность этих конкретных плат с АТМ терминалами сравнивать нельзя. АТМ стоят по всему миру, а производит их всего несколько вендоров.
          • +1
            Не совсем так. В самих контроллерах — никаких вирусов. Вирус на компьютерах с HMI (WinCC).
            Кроме того, тут очень странный момент: все про него слышали, но никто не видел.

            Странно в том контексте, что я занимаюсь проектами на этих самых контроллерах и знаком с большим количеством людей, которые занимаются тем же самым — в том числе, в самом сименсе.
            • 0
              Неужели Symantec, «Лаборатория Касперского» и ещё несколько антивирусных компаний просто договорились и выдумали Stuxnet, чтобы поднять себе рейтинги в социальных сетях? Поистине мировой заговор! Вы только посмотрите, какие подробные отчёты они выдумывают, хитрецы!
              securelist.ru/analysis/obzor/24277/stuxnet-pervye-zhertvy/
              • 0
                Почему сразу выдумали?

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

                PS ссылку я почитал. В любом случае, маловато информации про этот stuxnet. Прямо суслик, которого никто не видит, но он есть…
                • 0
                  >будь угроза реальной — Сименс выдал бы определённые рекомендации

                  Официальное признание компанией Siemens критических уязвимостей и публикация патчей для системы SIMATIC WinCC, которая работала (в частности) на иранских АЭС — это недостаточная рекомендация?

                  www.ptsecurity.ru/about/news/38773/

                  • 0
                    Спасибо, почитал это и другие источники. Был не прав.

                    С другой стороны, у меня на моих проектах практическая вероятность словить эту дрянь околонулевая — раз.
                    Во-вторых, я люблю сименс за его AS-OS Engineering и из-за этого готов прощать им некоторые косяки :)
    • +1
      Раньше, в «лихих 90-х» (я тогда ещё работал как раз с банкоматами) на старых банкоматах NCR стояла OS RMX, вот она не особо «OS общего назначения». На более новых NCR была OS/2 1.3, на банкоматах Diebold/IBM (AFAIR одни из первых которые стала ставить STB в московском метро) OS/2 2.0, на банкоматах Siemens, Olivetti, DEC вообще был DOS. После начался постепенный переход на Windows, все новые банкоматы (имеется в виду новые модели, а не «новые» старые модели которые просто изготовлены недавно) уже были расчитаны исключительно под Windows. Драйвера всех устройств банкомата (кардридер, принтеры [их как правило два, один чековый, печатает чек клиенту, второй внутренний, печатает сервисный лог], диспенсер, etc.) были изначально под Windows и просто так поменять OS не удалось бы при всём желании — драйверов для всей банкоматной периферии кроме как под Windows не существовало и не существует.

      Так что IMHO Windows, как тут правильно сказали, для простоты, унификации и стандартизации.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Бывает и такое.
        image
        P. S. При нажатии на кнопки издает стандартный виндовый звук «дынь-дынь». Экран, увы, обычный, не сенсорный.
  • +1
    Ну незнаю, кого-то это может быть и впечатлит, но при наличии доступа к аппаратным интерфейсам — мне на вскидку приходит в голову аж шесть очевидных и хорошо воспроизводимых векторов атак, которые могут быть использованы потенциальным злоумышленником. Т.е., если у нас есть general purpose hardware на котором крутиться general purpose operating system — то с точки зрения безопасности это вот просто с ходу game over. Хотя, демонстрация всего этого на практике — это, конечно, по-фану и по-угару ;)
    • 0
      Суть исследования была в протоколах внутреннего (и не только внутреннего взаимодействия) банкомата. Были найдены уязвимости (0day, понятно, что «мы нашли MS 08~069», это великая победа, ага), и в средствах защиты, и в клавиатурах и в… Забавно, но некоторые «железные» компоненты производитель поддерживает, как оказалось, несколько лет, а потом «извините, но эта версия уже не версия». Нормальный такой подход для железок с жизненным циклом в десятилетие.

      Что касается вектора с «малиной»да, это для «красоты» и наглядности. На самом деле вариантов более чем много. Hint: http://habrahabr.ru/company/pt/blog/243697/
  • +1
    Самый простой способ защитить банкомат от злоумышленника в сервисной зоне — это ставить сигнализацию, что делает например Сбербанк на всех своих банкоматах. Цена вопроса установки сигналки в банкомат, даже пусть это будет сирена, без связи с пультом, не так велика, если рассматривать в контексте стоимости самого банкомата, зато эффективность очень велика. Но к сожалению 90% банков не ставят сигнализацию => потенциально уязвимы.

    И для того чтобы украсть деньги из закрытого сейфа не нужно прилагать столько сил по написанию сниферов и вирусов или пихать в банкомат расбери, достаточно купить программу диагностики банкоматов ATMdesk — NCR ATM Diagnostic Solution, в ней есть режим тестирования диспенсера с выдачей любого количества денег из любой касеты, но есть пара но:
    1. Нужно попасть в сервисную зону и загрузиться со специальной флешки-ключа ATMdesk.
    2. При попытке выдать деньги программа попросит процедуру верификация путем передергивания одной из кассет в сейфе и реджект-кассеты, то есть у Вас будет 30 секунд чтобы это сделать, тем самым Вы докажите, что имеете доступ к сейфу и потом будут выданы деньги. Так вот, при знании устройства сейфа ничего не стоит сделать механическое устройство, которое можно всунуть в сейф через щель и передернуть кассеты, профи это легко сделает.
    3. Подозреваю ATMdesk не всем подряд продают, так что заполучить её будет не так просто, но можно.
    • +1
      достаточно купить программу диагностики банкоматов ATMdesk — NCR ATM Diagnostic Solution

      Для Сименсов аналогичная программа называется KDIAG. Со специальных флешек грузиться не надо, с обычной 3.5" дискеты, DOS. Для IBM/Diebold/Interbold тоже своя и тоже DOS'овская, вот только названия не помню.
      • 0
        KDIAG проверяет датчик открытия сейфовой двери. Если дверь закрыта то тестового набора не будет.
        • 0
          Да, проверяет. Родная не модифицированная версия проверяет. Но через hiew забить немного байт 0x90 никто не запретил и KDIAG перестанет это проверять. Это ведь обычная досовская DPMI программа, абсолютно без наворотов.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка