Знаете, что самое прекрасное в банкоматах? Они стоят на улицах, набитые наличкой, и охраняются примерно так же надёжно, как ваш почтовый ящик. Внутри них крутится Windows — да, тот самый Windows, на котором ваша бабушка смотрит сериалы. И вот в 2014 году группа восточноевропейских гениев посмотрела на всё это великолепие и сказала: «А почему бы и нет?»

Пролог: Человек, который научил банкоматы кричать «ДЖЕКПОТ!»

Но прежде чем мы доберёмся до наших героев, нужно вернуться в 2010 год. На конференции Black Hat в Лас-Вегасе новозеландский исследователь Барнаби Джек вышел на сцену с двумя банкоматами. То, что произошло дальше, вошло в историю кибербезопасности под названием «jackpotting».

Джек подключился к первому банкомату удалённо. На экране появилось слово «JACKPOT», заиграла музыка, и машина начала выплёвывать купюры. Зал встал. Аплодисменты не стихали минуты.

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

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

Действие первое: Tyupkin выходит на сцену

Четыре года спустя, в марте 2014-го, кто-то очень внимательно посмотрел презентацию Джека. И решил монетизировать полученные знания.

Специалисты Kaspersky Lab обнаружили новый вид вредоносного ПО, которое они назвали Backdoor.MSIL.Tyupkin. Название — это не какой-то сложный акроним. «Тюпкин» — просто русская фамилия, которую авторы малвари вписали в код. То ли из чувства юмора, то ли от природной самоуверенности.

И вот тут начинается самое интересное.

Как это работало: Мастер-класс для злодеев

Шаг первый: Физический доступ

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

Главный критерий отбора поражает своей простотой: отсутствие сигнализации. Если банкомат орёт при попытке его вскрыть — идём дальше. Если молчит — бинго.

Открыть верхнюю часть корпуса? Элементарно. Производители банкоматов используют стандартные замки с мастер-ключами. Один ключ — тысячи машин. Эти ключи можно купить в интернете. Или просто попросить у знакомого техника. Или даже найти в мусорке возле сервисного центра.

Шаг второй: Загрузочный CD — да, в 2014 году

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

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

Tyupkin был написан на .NET — это как если бы взломщик сейфов использовал отмычку из конструктора LEGO. Не элегантно, зато работает.

Шаг третий: Гениальность в деталях

А вот здесь авторы Tyupkin показали, что они не просто талантливые кодеры, но и неплохие психологи.

Расписание работы. Малварь принимала команды только по воскресеньям и понедельникам, причём только ночью. Всю остальную неделю она спала, не проявляя никакой активности. Почему? Потому что именно в эти часы в банках минимум персонала, который мог бы заметить странную активность. А ещё потому что инкассация обычно происходит в другие дни — кассеты полные.

Двухуровневая аутентификация. Нельзя было просто подойти к заражённому банкомату и начать грести деньги. Система генерировала случайный код из восьми цифр. Чтобы получить сессионный ключ, оператор должен был позвонить «старшему» — человеку, который знал алгоритм генерации ответного кода.

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

Отключение антивируса. Первым делом Tyupkin вырубал McAfee Solidcore — стандартный антивирус для банкоматов. Как? Просто отправлял ему команду на отключение. McAfee послушно выключался. Никаких хитростей, никакого взлома защиты — антивирус сам разрешал себя отключить, если попросить вежливо.

Обрыв связи. Перед выдачей денег малварь отключала сетевое соединение банкомата. Даже если в банке сидел бдительный администратор, наблюдающий за машинами удалённо, он не мог ничего сделать. Соединение обрывалось, деньги выдавались, соединение восстанавливалось. К тому моменту, когда банк понимал, что что-то не так, преступники уже были далеко.

Шаг четвёртый: Сбор урожая

Оператор подходил к банкомату, вводил специальную последовательность клавиш на PIN-паде:

  • 111111 — скрыть интерфейс малвари (на случай любопытных прохожих)
  • 222222 — показать интерфейс
  • 333333 — самоудаление (на случай провала)
  • 555555 — продлить время активности

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

Масштаб катастрофы

К октябрю 2014 года, когда Kaspersky опубликовала отчёт, Tyupkin был обнаружен на более чем 50 банкоматах в Восточной Европе. Но судя по данным VirusTotal, география заражений была куда шире: США, Индия, Китай, Израиль, Франция, Малайзия.

В Малайзии за три дня сентября 2014-го с 18 банкоматов украли около миллиона долларов.

Общий ущерб? Точных цифр никто не называет. «Миллионы долларов» — максимально конкретная оценка от Kaspersky и Интерпола.

Техническая часть: Для тех, кто хочет подробностей

Tyupkin использовал библиотеку MSXFS.dll — это стандартный Windows-интерфейс для работы с финансовым оборудованием, известный как Extension for Financial Services (XFS). Проблема в том, что Microsoft не публикует документацию по этой библиотеке. Она проприетарная и секретная.

Откуда же авторы малвари узнали, как с ней работать?

Исследователи из F-Secure выяснили, что API-вызовы в Tyupkin в точности соответствуют NCR APTRA XFS Programmer's Reference Manual — техническому руководству от крупнейшего производителя банкоматов NCR. Этот документ был «случайно» слит на китайский файлообменник электронных книг.

Вот так утечка PDF-документа привела к многомиллионным кражам по всему миру.

Финал: Румынский рассвет

В январе 2016 года румынская полиция при поддержке Европола арестовала восемь человек, связанных с операциями Tyupkin. Расследование показало, что банда координировалась с подельниками в Молдове, которые занимались разведкой — искали уязвимые банкоматы в плохо охраняемых местах.

Их метод был прост до гениальности:

  1. Найти банкомат NCR не внутри стены банка
  2. Проверить наличие CD-привода (открыть крышку универсальным ключом)
  3. Убедиться, что нет сигнализации
  4. Если есть датчик вскрытия — заклеить его изолентой (да, серьёзно)
  5. Заразить, уйти, вернуться ночью за деньгами

С декабря 2014 по октябрь 2015 банда украла 200 000 евро с банкоматов в Румынии, Венгрии, Чехии, Испании и России. По 960 долларов за операцию, 40 купюр за раз.

Не самый большой улов в истории киберпреступности. Но и не самый маленький для группы из восьми человек с загрузочным CD-диском и изолентой.

Мораль истории

Tyupkin стал поворотной точкой в истории ATM-безопасности. До него банки считали, что физическая защита банкомата — это достаточно. После — началась гонка вооружений.

Но знаете, что самое показательное? Уязвимости, которые эксплуатировал Tyupkin, существовали годами. Windows XP. Стандартные замки. CD-приводы. Антивирусы, которые можно отключить по команде. Всё это было известно. Всё это можно было исправить.

Барнаби Джек показал эти проблемы на Black Hat в 2010-м. Его презентацию посмотрели миллионы людей на YouTube. Банки кивали, соглашались, обещали исправить.

Четыре года спустя Tyupkin доказал, что обещания так и остались обещаниями.

P.S. Что пришло после Tyupkin

Tyupkin был первым, но далеко не последним:

  • Ploutus (2013, Мексика) — текстовые сообщения заставляли банкомат выдавать деньги
  • GreenDispenser (2015, Мексика) — самоудаляющаяся малварь
  • Suceful (2015) — захватывал карты клиентов и выдавал их по команде
  • Ripper (2016, Таиланд) — использовался для кражи 12 миллионов бат
  • Cutlet Maker (2017) — продавался как сервис за 5000 долларов

А Барнаби Джек? Он умер в июле 2013 года — за неделю до выступления на Black Hat, где должен был показать, как взломать кардиостимуляторы и убить человека удалённо. Ему было 35 лет.

Банкоматы до сих пор работают на Windows. Замки до сих пор стандартные. И где-то прямо сейчас кто-то изучает документацию NCR, случайно найденную на китайском файлообменнике.

Добро пожаловать в мир финансовой безопасности.

Источники

  • Kaspersky Lab, Securelist: «Tyupkin: Manipulating ATM Machines with Malware» (2014)
  • INTERPOL Global Alert (2014)
  • Европол, DIICOT: Пресс-релизы об арестах (2016)
  • F-Secure, Symantec: Технические анализы PadPin/Tyupkin
  • Black Hat USA 2010: Barnaby Jack, «Jackpotting Automated Teller Machines»