Знаете, что самое прекрасное в банкоматах? Они стоят на улицах, набитые наличкой, и охраняются примерно так же надёжно, как ваш почтовый ящик. Внутри них крутится 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. Расследование показало, что банда координировалась с подельниками в Молдове, которые занимались разведкой — искали уязвимые банкоматы в плохо охраняемых местах.
Их метод был прост до гениальности:
- Найти банкомат NCR не внутри стены банка
- Проверить наличие CD-привода (открыть крышку универсальным ключом)
- Убедиться, что нет сигнализации
- Если есть датчик вскрытия — заклеить его изолентой (да, серьёзно)
- Заразить, уйти, вернуться ночью за деньгами
С декабря 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»