Category: it

Category was added automatically. Read all entries about "it".

(no subject)

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

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

Краткое содержание будущих серий: злоумышленниками были введены в 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, сгенерённый во время отправки, и используя его удаляло информацию об отравке из оракловской базы данных.

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

-----

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

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

(no subject)

Доктор Курпатов: "Служба в вооружённых силах даёт многое — подлинное товарищество, умение работать в команде, навык самодисциплины, решительность, чувство ответственности, умение держать данное тобою слово".

Ничего хорошего нет в том что человек тратит своё время на шагистику вместо того чтобы профессионально расти (да хоть бы и буддизмом заниматься). Какой-то смысл появляется если за это платят деньги. Не такие смешные как в России, которые повышали в 2012-м году и которые уже съела инфляция (ежегодное повышение заморожено уже лет 5 или 7 как), а в более менее нормальной стране.

Так сколько же платят солдатику в стране Первого мира? Ответ: примерно как средней руки программисту (100К). Точнее наликом-то платят 70-80% от того, но кормят, одевают и компенсируют половину стоимости съёма жилья (примерно на 20К набегает). В общем и в целом примерно выходит как программисту, повторюсь - среднему. Но тому платят за мозги, а этому знай бегай и стреляй - и обезьяну можно научить. Так столько же такая работа должна стоить? Например дальнобойщику платят 50-60% от той же зарплаты программиста. Значит из всей радости что получает солдатик, 60% - это собственно за обезьяний труд, а 40% - за довольно изнашивающую дисциплину и риск. Вот такой вот расклад.

Основной вывод: есть смысл идти в контрактную армию если совсем уж ничего делать не умеешь.

(no subject)

Есть такая мысль что где-то в индустрии можно найти рабочее место где реально нужно "делать работающие продукты", а не "участвовать в проекте", т.е. дуть в уши начальству, изображать бурную деятельность и плодить отчёты. У некоторых электриков это прям рефрен и фетиш, и повод для гордости. Но давайте взглянем на вопрос со взрослой точки зрения...

-----------------------

Вообще таких мест где нужно написать проект чтобы "он работал" весьма мало. В любой компании на интервью спросить: эта система отчётов для высшего руководства - она просто в дополнение к имеющимся отчётам или стратегическое вложение? Ответ манаджерочка 1-2 звена выпучившего глазки и надувшего щёки всегда будет один и тот же: этот проект crucially important для нашей компании, давно уже ничего такого крупного не делали! Хотя вот у нас в компании на 10000 человек отчёты для 320 менеджеров, включая весь С-level, упали уже 16 раз за 25 недель, выдавая на гора failure rate в "каждые 1.5 недели". Вот пожалуйста: критический проект, но падение (отсутствие последних данных вследствие ошибки) в большинстве случаев незаметно (сами отчёты продолжают работать показывая вчерашние данные), и поэтому никто не заморачивается созданием реально работающего софта - требуется лишь такое качество чтобы "механик мог быстро починить". Можно сказать что это всё равно непорядок и непонятно почему большое начальство ничего не знает и не приказывает довести качество до хоть сколько-нибудь приемлемого уровня, а просто никто из заметивших "падение" менеджеров не открывает Incidents чтобы не портить отношения с айти-командой, а только лишь скидывают емэйл с вопросом "а почему цифры не совпадают с SAP?" Если бы такого замалчивания не происходило, то 16 Инцидентов заставили бы руководство задуматься о качестве результата и уж точно проект бы не закончился для прошлого тимлида повышением.

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

-----------------------

Другой аспект - количество работы, уровень ответственности и уровень оплаты на таких проектах. Каждый раз когда я работал на проектах которые "должны действительно работать" я работал с дымом из ушей. И каждый раз ожидалось что сделанный продукт вообще не будет падать - соответственно за каждое падение следовала череда болезненных упрёков. Ну и оплата была крайне низкая, процентов на 20-25 ниже, потому что оплата зависит от понтовости используемых инструментов, а тяжёлые задачи решаются всё тем же кодингом, который существует уже 20 лет и ничего гламурного в нём нет и то что его должны знать все по умолчанию не вызывает сомнения ни у одного менеджера (уровень сложности того "знания" во внимание не принимается). Если с т.н. large data (не путать c big data) один человек работает с помощью модного Spark, а другой с помощью двадцатилетнего T-SQL, то первый будет получать на 20% больше. И вообще наблюдение (а я работал на 25 работодателей за 11 лет в Австралии - хорошая выборка): каждый раз когда я работал больше всего мне платили меньше всего. Самые большие суммы мне платили строители и Рио Тинто, и там и там ничего путного делать не надо было, только врать и изворачиваться.

Вот и возникает взрослый вопрос: а нафига нужна куча ответственности, работа до изнеможения и всё это за плату на 20% меньшую? Можно было бы и повкалывать как следует, но в это время кто-то где-то (зачастую - через стенку) будет в потолок плевать получая на несколько сотен в день больше.

-------------------------------

Так что "проекты которые должны работать":
1) найти трудно,
2) они малооплачиваемые, и
3) они сопряжены с тяжёлой работой и неприятными наказаниями.

Так что если дистанцироваться от влажных детских мечт об идеальной работе с достойным заработком, то получается что есть много смысла оставаться на контрактах и/или в консалтинге хотя бы из-за денег.

(no subject)

Из-за срочного вопроса устроили немедленный конференц-звонок с Нью-Йорком. В Сиднее - 9 утра, там - 7 вечера. В тишине звонка, куча менеджеров молчит, американский программист бормочит себе под нос:

- И я к этому файлу, чтобы потом не перепутать, добавлю дату, и это 202008.... какое там сегодня?
Из Сиднея подсказывают:
- Двадцатое.
Программист дотягивается до своего календаря и открывает его.
- Да нет уж, пожалуй забью нашу дату... 20200819.
В трубке слышно сдавленное хмыканье полудюжины человек 😁

Буду взрыват!!



Увидел на ютубе прикол что можно пылесдувалкой заморозить навесной замок, а потом какой бы крепкости он ни был - херакс его молоточком и он вдребезги!

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

P.S. С удивлением оказалось что там не воздух, а херня какая-то, да ещё и горючая.
P.P.S. На балончике написано "не встряхивать!" - впервые вижу чтобы на балончике не было написано "хорошо встряхнуть!".
P.P.P.S. Балончик работает только в горизонтальном положении - специально чтобы в глаза не брызгали что-ли?
P.P.P.P.S. Пыль на полу он нихера не сдувает...