kluge_kinder (kluge_kinder) wrote,
kluge_kinder
kluge_kinder

Categories:
КАК УКРАСТЬ МИЛЛИАРД

Распишу-ка, если кому интересно, как именно хакнули Бангладешский Центробанк и чуть было не попёрли миллиард баксов.

Краткое содержание будущих серий: злоумышленниками были введены в SWIFT 35 инструкций о переводах на 951 млн долларов, которые все пошли через Федрезерв США где хранились бангладешские копейки. Из них 5 были выполнены: 20 млн ушли в Шри-Ланку и 80 - на Филиппины. Но на Шри-Ланке бдительный клерк увидел грамматическую ошибку в слове "арганизация" (“fandation”), залочил деньги на общем счёте банка (т.е. не перевёл на счёт получателя) и немедленно позвонил в Нью-Йорк. Там заблокировали оставшиеся 30 транзакций. 80 миллионов были откэшены в крутом районе Манилы в банке Rizal Commercial Banking Corp по разрешению управляющей Maia Deguito, которая была уволена банком немедленно когда всё всплыло. Далее её трясли как грушу в Парламенте страны на тему подозрительных счетов что она открыла, потом она вроде как крыла матом президента банка, которого в последствие тоже уволили, он подал на неё в суд за враньё ("perjury", не путать с "dafamation"), затем арест в шоппинг-молле, отпуск под залог и т.п. Это отдельная история, главное что непонятно как, но 18 миллионов всё-таки удалось вернуть.

-----

А вообще пост про техническую часть. (Немного в сторону: общая тема для моих постов это "а как такое вообще могло произойти где это просто невозможно?", т.е. джеймс-бондовским историям, в данном случае - "как вообще можно вскрыть [центро]банк?")

Злоумышленники скорее всего смогли получить доступ к какому-то компьютеру и поставить софт, который записывает все нажатия клавиш на клавиатуре (либо уборщик воткнул маааленькую такую штучку, типа флэшки, между клавиатурой и десктопом - до 2 млн нажатий запоминает). И после того как на компьютере (возможно их было много) кто-то набрал сисадминский пароль, они получили доступ к серверу и в какой-то момент и к оракловской базе данных.

Однако всё же не было доступа к SWIFT-софту. Непреодолимое препятствие! Но зачем же его преодолевать? "Умный в гору не пойдёт, умный гору обойдёт!" В общем запущенный софт постоянно мониторил какие программы запускаются и если среди них улавливал подгруженную библиотеку под названием "liboradb.dll" (это и есть код от SWIFT), то тут же в ней менял байты 0x75 и 0x04 на 0x90 и 0x90 (это ж надо знать где они находятся!), в результате чего программа исполняла вместо инструкции "аутентификация провалена, вход воспрещён" инструкцию "ничего не делать, ничего не делать". Это позволило заставлять программу переводить сумасшедшие суммы денег, однако как именно всё же непонятно.

Однако, "прежде чем совершать кражу надо знать как тебя будут искать" (с). Преступникам (из видимо очень большого количества стран) нужно время чтобы откэшится и чем больше тем лучше, а для этого вообще хорошо было бы подтереть следы при самой краже. Но вот проблема: их система оставляет немало: сохраняет в файлах *.prc и *.fal сообщения SWIFT Financial Application (FIN) messages, пишет в базу данных, и... отправляет документы на принтер, который выбрасывает листок каждый раз когда миллионы уезжают в прекрасное далёко только за тем чтобы клерк взглянул на них своими ясными очами.

Софт каждые 5 секунд запрашивал базу данных на тему не залогинился ли кто-то. Если залогинился - проверяло "а нет ли у подателя сего сумм денег в размерах достаточно крупных и кое-кому более нужных?" и если они оказывались, то тут же и происходил перевод с тех счетов "куда надо".

При этом приложение постоянно парсило файлы *.prc и *.fal, и как только находило свои же "левые" транзакции по уникальным сочетаниям букв и цифр, использовавшимся при отправке, то из лога выцепляло SWIFT unique message ID, сгенерённый во время отправки, и используя его удаляло информацию об отравке из оракловской базы данных.

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

-----

Вот так вот чуть было не попёрли миллиард баксов люди смогшие привлечь на свою сторону хороших программистов, но которым отмывочные конторы предоставили список компаний с банальнейшей грамматической ошибкой. Хочешь что-то сделать хорошо - сделай это сам!

Но идея была классная: чего ломать софт если в нём можно поменять одну инструкцию которая проверяет можно ли софтом пользоваться или нет ;)
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 1 comment