Добавить в корзинуПозвонить
Найти в Дзене
IT без лобби

Доброго вечора, ми з Северной Кореи... или как меня атаковали парни Ким Чен Ына

Можно было подумать, что я сошёл с ума (это то так и есть), но это реальная история, случившаяся менее месяца назад. Несколько месяцев назад меня ушли с одного интересного проекта в виду его окончания, и теперь живу в спокойном почти пенсионном режиме: развиваю собственные идеи, а за одно подаю заявки на разные позиции — от engineering management до cybersecurity, red team и порой даже на frontend/backend-девелопера, тк в общем-то всё близко и ничего из этого не забывал, разве что management роли конечно очевидно могут похрамывать (ибо я разнесу любую команду европейцев-ленятем обожающих рефлексировать на рабочем месте, но да не о том рассказ). Очередной инвайт на собес, казалось бы, ничем не отличался. Web3, звонок, Google Meet с keiichisuzuki668@gmail.com, планирование через Calendly, Telegram контакт @whalebit07 (всё ещё активен). Название компании из серии "Decentrust". Вообще никакой публичности, но для crypto/web3-площадок это скорее норма. Внешне — стандартная кандидатская цепоч

Можно было подумать, что я сошёл с ума (это то так и есть), но это реальная история, случившаяся менее месяца назад.

Несколько месяцев назад меня ушли с одного интересного проекта в виду его окончания, и теперь живу в спокойном почти пенсионном режиме: развиваю собственные идеи, а за одно подаю заявки на разные позиции — от engineering management до cybersecurity, red team и порой даже на frontend/backend-девелопера, тк в общем-то всё близко и ничего из этого не забывал, разве что management роли конечно очевидно могут похрамывать (ибо я разнесу любую команду европейцев-ленятем обожающих рефлексировать на рабочем месте, но да не о том рассказ).

Очередной инвайт на собес, казалось бы, ничем не отличался. Web3, звонок, Google Meet с keiichisuzuki668@gmail.com, планирование через Calendly, Telegram контакт @whalebit07 (всё ещё активен). Название компании из серии "Decentrust".

Вообще никакой публичности, но для crypto/web3-площадок это скорее норма. Внешне — стандартная кандидатская цепочка. Хотя и с косяками. Но через несколько дней ясно: это не hiring. Это кибератака. А я в ней – одна из целей.

Технически атака была примитивной, но хорошо обёрнутой. Вместо "тестового задания" мне красиво прислали линк на GitHub-репозиторий с кодом, вызывая доверие. Даже Google Docs был с техническим описанием. Только код этот полное мдаааа.

Это был настоящий piece of shit: фронтенд на доисторическом React 16, web3-библиотеки с багами времён биткоина по 1000 долларов, сотни уязвимостей отражённых в npm audit. Естественно, запускать это Г напрямую, да ещё и вне изоляции я бы не стал никогда. Но посмотреть — стоило.

Я развернул эту микросервисную жвачку в изолированной докер-среде: три контейнера — приложение, база данных и внезапно... сервер Stripe. Всё привычно, но не совсем, страйп то вам зачем тут подумал я, но да ладно. На лету модернизировал под Node.js 22, обновил библиотеки, часть уязвимостей устранил. Решил пробежаться по коду, посмотреть кто/где и что, а заодно и в каком объеме. И вот тогда всплыло главное!

В достаточно значимом app/server/routes/index.js прятался обфусцированный участок кода — с виду безобидный, но сразу сработали и ChatGPT на анализе, забавно что почему-то Copilot пропустил, но на то мне и оркестрация.

Конечно же у меня сработал азарт: "Это что — такая ху-шутка-ня? Или часть тестового задания? Проверим.”

Не жалея чужого бюджета, затраченного на обфускацию - я тут же отправил фрагмент в VirusTotal. Результат: 1 из 120 движков что-то заметил. Один-единственный антивирус дал сработку — и, внезапно, это был Касперский. Честно говоря, я лет 5 как думаю, что это вечное просроченное говно, но нет! Оказывается, умеют работать парни!

Был ли этот троян частью теста или нет — уже не имело значения, в любом случае я его слил бы своим знакомым из GitHub за банально такую экстравагантную методику распространения! Кстати впоследстиве они мне рассказали, что это не редкость и гихаб плохо пасёт внутрянку кодов и точно не сканит её сплошником на сигнатуры.

Что сразу вызвало подозрения, что с кодом что-то не так

Сразу под подозрение попало использование устаревших библиотек с известными уязвимостями:

ethers 5.6.9, web3 1.0.0-beta.55, truffle 5.5.20.

Эти версии могли быть подвержены атакам при обработке транзакций и развертывании смарт-контрактов.

Кроме того, в проекте было подключение лишнего сервиса Stripe, который никак не требовался для выполнения задания, но вполне мог использоваться для кражи платёжных данных.

И, наконец — после сдачи задания “работодатель” просто исчез. Никто больше не вышел на связь. Да, это не оригинально такое уже случалось (кто только от меня не пропадал внезапно), но каждый раз вызывает у меня либо бурю эмоций.

Почему атака была обречена

Естественно, для любых Web3-проектов нормальные разработчики используют одноразовые кошельки, а всю работу ведут в виртуальных изолированных средах, никак не связанных с основной системой. Поэтому вероятность успешности такой атаки против senior-уровня инженеров и devops/web3-специалистов стремится к нулю.

Последствия и неожиданности

Спустя три дня после исчезновения "работодателя", я нашел пару минут написать в GitHub с кратким описанием инцидента. Больше всего меня поразило, что malware распространялся напрямую через GitHub, хотя может я и преувеличиваю возможности Microsoft.А ещё через три дня (совпадение – не думаю) со мной вышли на связь журналисты Thomson Reuters. Они, по каким-то своим каналам (давайте вместе подумаем по каким), уверенно заявили, что атака якобы была связана с Северной Кореей.

-2

Это меня, мягко говоря, удивило. Врагов у меня действительно хватает (можно полистать мой блог на ВС), но идеи Чучхе я вроде как никогда ещё не оскорблял, да и Ким у них забавный пухляш. Честно говоря, удивило даже не это, а то, зачем они вообще это сделали и как они рассчитывали на успех.

Спойлер: против разработчика senior-уровня в области DevOps и Web3 такая атака — просто не сработает, ну а у разрабов пониже и воровать то нечего обычно!

Сами журналисты немного поделились…

…что жертвы уже есть на фантастическу 1000 евро (отдельно смешно, понимая сколько может стоить подобная атака), а цель для них очевидна — хищение криптовалюты.

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

Моё мнение, что это была не атака, а репетиция

Если представить, что такая схема применяется против не-технических специалистов — юристов, финансистов, сотрудников с доступом к ключам или системам управления активами, — результат может быть катастрофическим.

Но зачем палить такой рабочий инструмент ради одиночного выстрела?

Ответ, как мне кажется, лежит в двух возможных целях этой операции:

1. Проверка реакции и работоспособности механизма — чтобы в следующий раз ударить по настоящим целям. Тогда потери будут измеряться миллионами долларов.

2. Сбор данных о специалистах, особенно тех, кто имел или имеет отношение к информационной безопасности, и, возможно, ранее работал с военными или стратегическими предприятиями.

Зачем всё это?

Такой способ атаки — это не массовая фишинговая рассылка, а точечная инженерия доверия.

-3

Под видом обычной вакансии создаётся целая инфраструктура:
• "рекрутер",
• календарь,
• Google Meet,
• тестовое задание,
• даже видимость open-source активности на GitHub.

Это позволяет злодеям-рисоедам:
• протестировать заражённый код в реальной среде на подготовленных специалистах,
• маскировать вредоносную активность под стандартную разработку,
• отследить реакцию антивирусов и ИИ-инструментов (Copilot, ChatGPT, VT и др.).

Что известно на сегодня (кому хочется - можете попросить прислать вам обновленные версии малвари):
• Telegram-аккаунт: @whalebit07 (активен)
• Email «рекрутера»: keiichisuzuki668@gmail.com
• Google Docs: документ всё ещё доступен (по состоянию на август 2025)
• Технические следы: обфусцированный JS-код, устаревшие библиотеки, подозрительная структура проекта

Лично я уверен, что это была не атака, а хорошая репетиция.

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

А вообще — не впервой

Это уже не первая попытка подобного рода с начала года.

До этого мне присылали архив на Mac, внутри которого лежал .exe-файл — но это уже совсем другой уровень кринжа, и, пожалуй, ещё более смешная история для другого выпуска.

PS: самое забавное, что видимо поняв моё прошлое, корреспондент Reuters тоже решил исчезнуть )))) чем какбы не удивил)