Статья Призраки в машине: как принтер HP за $200 чуть не обрушил мировую экономику

1752507092093.webp

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

4 февраля 2016 года, 20:39 по местному времени, Дакка, Бангладеш

Зубайр Бин Худа нервно курил возле окна, когда услышал странный звук из соседней комнаты. Принтер HP LaserJet работал уже третий час подряд, но печатал только пустые листы. Бумага заканчивалась с пугающей скоростью. Он подошел к машине и увидел горы белых листов, рассыпанных по полу. Ни одной строчки текста. Ни одной цифры. Только бесконечные пустые страницы, словно призрак пытался что-то сказать, но не мог найти слов. Через три дня Зубайр поймет, что стал свидетельством самого дерзкого ограбления в истории человечества.

Операция "Невидимая рука"


Октябрь 2014 года
В засекреченном здании Разведывательного главного управления полковник Пак Чин Хек изучал карту мировой банковской системы. На стене висели фотографии зданий центральных банков десятков стран. Красным маркером были обведены самые уязвимые цели. Северная Корея задыхалась под международными санкциями. Ядерная программа пожирала последние ресурсы. Нужны были деньги. Много денег. И Пак знал, где их взять. Он указал на фотографию скромного здания в Дакке: "Начинаем с них. У них самая слабая защита, но прямой доступ к Федеральному резерву США." Так началась операция, которая чуть не обрушила мировую финансовую систему.

Год тишины перед бурей

Январь 2015 года, Дакка
Мохаммад Рахман, системный администратор Bangladesh Bank, открыл очередное письмо от "коллег" из международной банковской ассоциации. Тема выглядела безобидно: "Обновление протоколов SWIFT - срочно ознакомиться". Он кликнул на вложение. В эту секунду в систему проник цифровой паразит, который полтора года будет изучать каждое движение банковских сотрудников. Кейлоггер записывал каждое нажатие клавиш. Сканнер сети картографировал архитектуру системы. Модуль шпионажа отправлял отчеты на сервер в Египте каждые несколько часов. Хакеры изучали банк как анатомы изучают тело перед операцией. Они знали расписание каждого сотрудника, пароли каждого компьютера, алгоритмы каждой системы.

Малоизвестный факт: Счета в филиппинском банке RCBC были открыты еще 15 мая 2015 года - за девять месяцев до ограбления. Хакеры подготовили "отмывочную машину" задолго до самой кражи.

Анатомия цифрового убийства


Ноябрь 2015 года, секретная лаборатория

Программист по прозвищу "Призрак" вглядывался в дизассемблированный код на экране монитора. Перед ним лежала распечатка технической документации SWIFT Alliance Access - программы, которую используют банки для отправки международных переводов на триллионы долларов. Задача была дьявольски сложной: создать вредонос под названием evtdiag.exe, который не просто украдет деньги, но и сделает кражу абсолютно невидимой.

Хирургическая точность в машинном коде​

"Призрак" нашел уязвимость в самом сердце системы - в файле liboradb.dll. Этот критически важный модуль отвечал за:
  • Чтение пути к базе данных Alliance из реестра
  • Запуск функций резервного копирования и восстановления SWIFT
  • Аутентификацию доступа к базе данных Oracle
Изучив дизассемблированный код, он обнаружил ключевой участок:

Код:
85 C0    test eax, eax     ; критическая проверка авторизации
75 04    jnz failed        ; если провалена - перейти к 'failed'
33 C0    xor eax, eax      ; иначе установить результат 0 (успех)
EB 17    jmp exit          ; и выйти

failed:
B8 01 00 00 00  mov eax, 1  ; установить результат 1 (провал)

Гениальность была в простоте. Изменив всего два байта - 0x75 0x04 на 0x90 0x90 - можно было превратить условный переход JNZ в две инструкции NOP (no operation):

Код:
85 C0    test eax, eax     ; критическая проверка авторизации 
90       nop               ; "ничего не делать" вместо 0x75
90       nop               ; "ничего не делать" вместо 0x04
33 C0    xor eax, eax      ; ВСЕГДА устанавливать результат 0 (успех)
EB 17    jmp exit          ; и выйти

failed:
B8 01 00 00 00  mov eax, 1  ; НИКОГДА не достигается

Представьте замок, который всегда говорит "да", независимо от того, подходит ключ или нет.

Цифровая схема сокрытия улик

Но самым гениальным была система сокрытия следов. Malware использовал зашифрованный конфигурационный файл gpca.dat, который содержал ключевые фразы для поиска:
  • "FIN 900 Confirmation of Debit"
  • "20: Transaction"
  • "Convertible Currency"
  • "Available Currency"
  • "Client Credentials"
  • Авторизационные коды Bangladesh Bank (BBHOBDDH)
Когда вредонос обнаруживал соответствующее SWIFT-сообщение, он извлекал критические данные и формировал SQL-запросы для удаления следов:
SQL:
-- Поиск уникального ID сообщения
SELECT MESG_S_UMID FROM SAAOWNER.MESG_%s
WHERE MESG_SENDER_SWIFT_ADDRESS LIKE '%%%s%%'
AND MESG_TRN_REF LIKE '%%%s%%';

-- Удаление транзакции из базы данных
DELETE FROM SAAOWNER.MESG_%s WHERE MESG_S_UMID = '%s';
DELETE FROM SAAOWNER.TEXT_%s WHERE TEXT_S_UMID = '%s';

-- Манипуляция суммами в балансных отчетах
UPDATE SAAOWNER.MESG_%s SET MESG_FIN_CCY_AMOUNT = '%s'
WHERE MESG_S_UMID = '%s';

Каждый SWIFT-перевод автоматически отправлялся на принтер для создания бумажного следа. "Призрак" написал код, который перехватывал эти подтверждения и заменял их фальшивками.
Банк видел бы поддельные отчеты, где все выглядело нормально, пока настоящие миллионы утекали на другой конец света.

Цифровая анестезия

Январь 2016 года, Bangladesh Bank
Система безопасности Bangladesh Bank была катастрофой, ждущей своего часа. Четыре компьютера и четыре сервера, подключенных к SWIFT. Никакого файрвола. Подержанные сетевые коммутаторы за $10 каждый. Прямое подключение к интернету.
Это было все равно что оставить ключи от банковского хранилища в замке зажигания автомобиля на оживленной улице.
Когда хакеры установили свой вредонос, система даже не заметила вторжения. Malware регистрировался как обычная системная служба и начинал свою работу.
Технический детектив: Malware регистрировался как системная служба Windows и начинал сканировать все запущенные процессы, ища liboradb.dll. Найдя целевой модуль, он выполнял хирургически точное вмешательство в память:
  1. Поиск и захват: Перебор всех процессов и загруженных модулей
  2. Идентификация цели: Обнаружение liboradb.dll в адресном пространстве процесса
  3. Хирургическое вмешательство: Перезапись двух байтов по конкретному смещению
  4. Маскировка: Сохранение оригинальной структуры кода
Теперь любая программа, пытающаяся получить доступ к базе данных SWIFT, получала зеленый свет, независимо от валидности учетных данных.

Ночь длинных переводов

4 февраля 2016 года, 21:00 по местному времени
В мрачном бункере (а может квартире с розовыми обоями) "Призрак" потер усталые глаза и взглянул на часы. В Дакке была уже ночь пятницы. Банк закрыт до понедельника. Идеальное время для самого дерзкого ограбления в истории.
Он открыл зашифрованное соединение с зараженным компьютером Bangladesh Bank и начал активацию финальной фазы.

Цифровая алхимия краж

Malware начал свою работу, мониторя каждое SWIFT-сообщение на предмет ключевых строк из файла gpca.dat. Система работала как цифровой пылесос, высасывающий информацию из потока финансовых сообщений:

SQL:
-- Мониторинг логинов в реальном времени
SELECT * FROM (SELECT JRNL_DISPLAY_TEXT, JRNL_DATE_TIME
FROM SAAOWNER.JRNL_%s
WHERE JRNL_DISPLAY_TEXT LIKE '%%LT BBHOBDDHA: Log%%'
ORDER BY JRNL_DATE_TIME DESC) A
WHERE ROWNUM = 1;

Каждый час malware отправлял на C&C-сервер в Египте закодированные отчеты:
  • "---O" если произошел Login (открытие сессии)
  • "---C" если произошел Logout (закрытие сессии)
  • "---N" если никаких событий не было
Малоизвестный факт: BBHOBDDH - это официальный SWIFT-код Bangladesh Bank в Дакке. Malware искал именно эту строку в логах системы.

Теперь "Призрак" мог вводить команды как законный пользователь системы. 35 SWIFT-переводов. На общую сумму $951 миллион. Каждый перевод выглядел абсолютно легитимно для Федерального резерва в Нью-Йорке - ведь запрос приходил с официальных серверов центрального банка Бангладеш, подписанный правильными ключами и прошедший все проверки.
Но "Призрак" не знал об одной детали, которая разрушит весь план.

Роковая ошибка

5 февраля 2016 года, 9:30 утра, Нью-Йорк
Джейн Коннолли, аналитик Deutsche Bank, просматривала входящие SWIFT-сообщения за выходные. Большинство было рутинными, но один перевод привлек ее внимание. "Shalika Fandation" - получатель $20 миллионов. Джейн нахмурилась. Что-то было не так с этим названием. Она нашла оригинальный документ организации: "Shalika Foundation". "Fandation" вместо "foundation". Опечатка в $20 миллионов. Она подняла трубку и позвонила коллеге: "У нас проблема. Кто-то пытается украсть деньги Bangladesh Bank." Эта единственная буква "а" вместо "ou" спасла мир от финансового коллапса.

Малоизвестный факт: Из 35 переводов 30 были заблокированы из-за слова "Jupiter" в названии банка-получателя. Это слово случайно совпало с именем организации, находящейся под международными санкциями, и автоматически заблокировало транзакции.

Утро истины

6 февраля 2016 года, 8:00 утра, Дакка
Зубайр Бин Худа вошел в офис и сразу увидел море белых листов возле принтера. За выходные машина не переставая печатала пустые страницы. Он попытался войти в SWIFT-терминал, но система выдавала ошибки.
Когда доступ наконец восстановился, на экране появилось три сообщения от Федерального резерва Нью-Йорка: "Подтвердите инструкции о переводе на общую сумму почти один миллиард долларов".
Зубайр почувствовал, как земля уходит из-под ног.

Гонка за призраками

Февраль-март 2016 года, международное расследование

Команды кибердетективов из FireEye's Mandiant и World Informatix работали круглосуточно. Каждая строка кода, каждый IP-адрес, каждый цифровой отпечаток был подвергнут микроскопическому анализу.
Сергей Шевченко из BAE Systems изучал образец вредоноса evtdiag.exe, который кто-то анонимно загрузил на сайт для анализа malware. Код был изящен и смертелен, как японский меч.

Цифровая археология​

Анализ показал пугающий уровень технической изощренности:

Структура malware:
  • Основной модуль: evtdiag.exe (взаимодействие с SWIFT)
  • Конфигурация: gpca.dat (зашифрованные целевые строки)
  • SQL-генератор: Динамическое создание запросов для Oracle DB
  • Принтер-перехватчик: Подмена подтверждающих документов
Техника работы с базой данных:

SQL:
-- Создание временных SQL-файлов с префиксом
set heading off;
set linesize 32567;
SET FEEDBACK OFF;
SET ECHO OFF;
SET FEED OFF;
SET VERIFY OFF;

-- Поиск и удаление мошеннических транзакций
SELECT MESG_FIN_CCY_AMOUNT FROM SAAOWNER.MESG_%s
WHERE MESG_S_UMID = '%s';

DELETE FROM SAAOWNER.MESG_%s WHERE MESG_S_UMID = '%s';
DELETE FROM SAAOWNER.TEXT_%s WHERE TEXT_S_UMID = '%s';
"Это не просто malware," - сказал Шевченко коллегам. "Это цифровое оружие массового поражения. Они буквально переписали валидацию в памяти, не оставив следов на диске."

Малоизвестный факт: Malware работал в цикле до 6 утра 6 февраля 2016 года - ровно через два дня после мошеннических переводов. Это показало, что хакеры точно знали временные рамки обнаружения.
В логах C2-сервера в Египте следователи нашли IP-адрес, который вел прямо в одну не большую страну. Впервые появилась прямая цифровая нить, связывающая группу Lazarus с режимом в одной маленькой стране.

Филиппинский лабиринт

8-15 февраля 2016 года, Манила
$81 миллион растворился в лабиринте филиппинских казино как дым. Деньги конвертировались в песо, превращались в фишки, снова в наличные, переводились через десятки подставных счетов.
Мизель Го, менеджер RCBC, знала, что происходит что-то подозрительное, но не понимала масштабов. Когда 8 февраля пришло сообщение от Bangladesh Bank с требованием заморозить счета, было уже поздно.
Китайский Новый год. Банки закрыты. Время играло против справедливости и в пользу преступников.

Революция после катастрофы

Ограбление Bangladesh Bank изменило мир кибербезопасности навсегда.
SWIFT, организация, которая десятилетиями считалась неприступной крепостью международных финансов, была вынуждена признать: система уязвима.
Новая эра безопасности:
Были введены обязательные стандарты изоляции SWIFT-систем от остальной IT-инфраструктуры. Каждый банк должен был внедрить принцип "нулевого доверия" - каждое действие проверяется, каждый пользователь аутентифицируется. Программа Customer Security Programme стала библией новой кибербезопасности. Многофакторная аутентификация, непрерывный мониторинг, регулярные пентесты - то, что раньше было роскошью, стало необходимостью выживания.

Малоизвестный факт: После атаки SWIFT потратила более $200 миллионов на модернизацию систем безопасности - больше, чем хакеры смогли украсть.

Эпилог: Призраки, которые все еще охотятся

Сегодня, где-то в киберпространстве
Группа Lazarus не исчезла после провала в Бангладеш. По оценкам экспертов, они попытались украсть в общей сложности $1.2 миллиарда, но получили только $122 миллиона. Банки в Эквадоре, Вьетнаме, Польше, Индии, Тайване, России - все стали мишенями этих кибервоинов.

В январе 2019 года Мизель Го была приговорена к 4-7 годам тюрьмы. Она стала единственным человеком, понесшим наказание за крупнейшее банковское ограбление в истории.
Сам "Призрак" и его команда остаются на свободе. Где-то в бункерах П.... они планируют следующую операцию. Изучают новые уязвимости. Пишут новый код.
По данным на 2018 год: Из $81 миллиона, переведенного на Филиппины, удалось вернуть только $18 миллионов. Остальные $63 миллиона растворились в теневой экономике и, вероятно, финансируют ядерную программу Северной Кореи.
Bangladesh Bank heist доказал страшную истину: в цифровую эпоху четыре незащищенных компьютера, принтер за $200 и один человек с правильными знаниями могут поставить на колени мировую экономику.
Призраки в машине все еще охотятся. И следующий удар может оказаться точнее.

Источники и дополнительные материалы​

Технические отчеты:
  • - детальный анализ malware evtdiag.exe
  • - связь с группой Lazarus
  • - атрибуция к маленькой стране
Официальные документы:
  • - обвинительное заключение против хакера
  • - заявление SWIFT о malware
Журналистские расследования:
  • - детали расследования
  • - подкаст с интервью экспертов
Академические исследования:
  • - хронология атаки
  • - анализ последствий для ИБ
Все технические детали, включая assembly-код, SQL-запросы и структуру malware, основаны на реальных данных из отчетов BAE Systems, Kaspersky Lab и других источников кибербезопасности.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab