На LinkedIn мне, как, думаю, и многим из вас, часто пишут. Чаще всего, это бывают либо рекрутеры низшего уровня, которые особо не вдаются в детали моей специализации и спамят просто "на удачу". Либо, это те, кто пытается предложить мне услуги, которые, ха-ха, я и сам предоставляю (всяческое R&D).

Первым делом, эти ребята, конечно, просят добавить их в контакты. Чаще всего, я на это никак не реагирую, чтобы не тратить время. Но иногда, я захожу глянуть профиль, особенно, если указано, что это, возможно, мой настоящий коллега-разработчик или какой-то иной живой человек. В этот раз, мне написал некий Гильермо, из Бразилии. В профиле написано - DevOps, а девопсов я уважаю, поэтому и жамкнул на "добавить в контакты".

Что было дальше

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

Тем временем, Гильермо мне рассказывает про свой проект всяческие подробности, дает ссылки, включая страницу с описанием зарплатных вилок (ага, так я и поверил) и даже макеты их "будущего продукта" в Figma. Ну, думаю, ваша открытость ребята, а точнее, уровень подготовки для "прогрева" - достойны всяческого восхищения. То есть, так не бывает. Но от того мне становится все любопытнее. Думаю, на это у них и расчет.

И вот, мне предлагают выбрать удобную дату для созвона в Google Meet. Я выбираю, и мне на почту приходит подтверждение, но от другого чувака, с которым в LinkedIn я не общался. На этот раз, это некий Демиан. Разумный человек тут сразу задастся вопросом: а почему ты, Демиан, сразу не писал мне лично? Ну ладно, думаю, давай созвонимся, послушаем как бразильцы говорят по английски.

К звонку я готовился. С одной стороны - лишний опыт самопрезентации никогда не повредит, а с другой - на той стороне тоже должны почувствовать мою "подготовку". Ну и, вдруг, мне, действительно, хотят платить много денег? Ведь я этого, действительно, достоин!

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

Ну и вот она, наша кульминация: Демиан просит ссылку на мой профиль на GitHub и дает мне доступ к их репозиторию. Заходи, говорит, со своего компа, расшаривай экран, клонируй репу, жамкай npm install... Я отвечаю: - не, лучше ты. Он: - я не могу, я с телефона. Я отвечаю: - я тоже не могу, без проверки безопасности я на свой рабочий комп чужой код никак пустить не могу. Только в изолированный контейнер какой-нибудь и то с кучей оговорок. Он отвечает: респект, понимаю, проверяй конечно, эту свою безопасность. Я объясняю, что аудит безопасности штука небыстрая, и это точно никак не возможно сделать во время созвона. Демиан, сперва, включает дурака, говорит что-то типа: ничего-ничего, я подожду, но потом до него доходит, что рыба сорвалась и особого смысла в дальнейших препирательствах нет. Говорит, что ждет от меня сигнала, и когда я все проверю - он будет договариваться с CTO о нашем дальнейшем общем созвоне. На этом, собственно, все.

Немного дополнительных деталей и "красных флагов"

  • Слишком высокая зарплата для указанной позиции

  • Слишком легко делятся информацией, которая, в нормальных условиях, считается конфиденциальной и всегда следует только за подписанием соглашения о неразглашении

  • Пускают кого попало в свой "рабочий" репозиторий

  • Репа весит более 10-ти мегабайт, без!!! папки node_modules. С таким объемом кода искать вектор атаки забесплатно - вообще не хочется. Можно было бы перебрать все файлы с помощью ИИ - как вариант, для начала...

  • При этом, в package.json - минимум зависимостей, как у самого простого прототипа. И конечно же, ничего опасного на первый взгляд.

  • В репозитории история на 23 вялых коммита, что никак не похоже на активную разработку

  • В организации на GitHub нет публичных профилей членов организации

  • Нет вообще никаких ссылок на профили разработчиков или каких-либо дополнительных артефактов реальной разработки

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

  • Интервьюер явно торопился и не особо внимательно слушал, что крайне подозрительно, когда ты собеседуешь человека на ТАКУЮ позицию и ТАКУЮ зарплату

  • Ребята явно делают упор на тех, кто так или иначе связан с блокчейном и разработкой под Web3. Целью, очевидно, являются непустые крипто-кошельки

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

А читателям я хочу порекомендовать НИКОГДА не устанавливать и не запускать код, которому вы полностью не доверяете на своем компьютере, сколько бы денег вам не предлагали. Кстати, делать какие-то операции с Git - тоже опасно, помните о Git-хуках.

Спасибо за внимание.

Комментарии (20)


  1. bromium
    14.08.2025 21:47

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


    1. i360u Автор
      14.08.2025 21:47

      Я, честно говоря, долго думал, копать дальше или нет. В итоге решил, что нет особого смысла, атаки ведь могут меняться, и прилетает опасная зависимость динамически, скорее всего. Главное - предупредить, чтобы никто не попадался на эту удочку, независимо от того, что там внутри на самом деле.

      Ну и интервьюерам на заметку, если кто, возможно, без злого умысла решит, что это нормальная практика...


    1. Mr_FatCat
      14.08.2025 21:47

      Проблема в том, что опасное может быть не в репе, а на стороне. Код может подтянуть вредонос через зависимость только в момент, когда автор на той стороне решит это активировать, например, во время созвона. До этого там может быть вообще ничего подозрительного. Вот такие атаки и страшнее всего.


  1. savostin
    14.08.2025 21:47

    Да, ссылка на репу, возможно, многое прояснила. А так, может и нет ничего, мало ли чего забыли в .gitignore добавить, PDF какойнить.... Плохой английский сегодня вряд ли может быть доказательством плохого умысла, у меня самого такой :)


    1. i360u Автор
      14.08.2025 21:47

      Репа же приватная. Доступ они дают прямо во время интервью. Ну и распространять ссылки на опасный код - не самая хорошая идея, наверное.


      1. savostin
        14.08.2025 21:47

        npm i <классная либа на сайте по первой ссылке из Google>

        потенциально настолько же опасно...


      1. johnsqurrel
        14.08.2025 21:47

        распространять ссылки на опасный код - не самая хорошая идея

        после явного не2смысленного предупреждения о мошонниках ? не согласен с вами.
        умные расковыряют сами и еще напишут в чем там прикол и куда идет слив, а дураков не жаль.

        ps: надо было выставить "бразильцам" встречное предложение: я анализирую ваше cryptoscumware
        и дорабатываю его, а вы мне платите 2000 баксов, предоплата 50%.


        1. Mr_FatCat
          14.08.2025 21:47

          Код может быть рассчитан на умных ковыряльщиков. Репозиторий может быть чистым, а вредоносный код подтягиваться по команде. Например он появится только в момент созвона или в рамках многоуровневой атаки. Поэтому умный не будет тратить на это время. 2К? - это для школьников...


          1. johnsqurrel
            14.08.2025 21:47

            Код может быть рассчитан на умных ковыряльщиков.

            а может и не быть.

            Репозиторий может быть чистым,

            а может и не быть.

            а вредоносный код подтягиваться по команде.

            против этого фаерволл есть.

            но смысла гадать я не вижу, а что там внутре мы никогда не узнаем,
            потому что автор зажилил ссылку.

            2К? - это для школьников...

            смысл - кинуть кидал на предоплату.
            если цена неправдоподобна, назначайте свою.

            ps: минусовали те кого не жаль. хехе.


  1. al01555
    14.08.2025 21:47

    А читателям я хочу порекомендовать НИКОГДА не устанавливать и не запускать код, которому вы полностью не доверяете на своем компьютере, сколько бы денег вам не предлагали.


    У тебя на компьютере вообщего ничего не стоит, только голая ОС? И то под вопросом - как ты всё в ней проверил. А если стоит, то что почему доверяешь этому коду? Даже если есть причина доверять, код от этого не становится безопасным.

    И код запускать можно, как ты и сам написал - в контейнере. Или на виртуалке. Всё равно есть опасность, да, но уже не такая. А если это код от таких интервьюверов, то, можно сказать, безопасно.

    Поэтому - странный совет.


    ----

    Поищи в репозитории по http, https - возможно, найдёшь тот код. Со мной такой интервьювер тоже связывался, на апВорке. Я слонировал репу и нашёл часть кода, который они вставили. Он был с бооооооооооольшим отступом от левой границы, примерно в 500 знаков. Я записал видео, но не про то, как запускаю код, а что нашёл их код.

    Он - "а что это?"
    Я - "как что? malicious код, который ты хотел, чтобы я запустил"



    1. i360u Автор
      14.08.2025 21:47

      Поэтому - странный совет.

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


  1. randomsimplenumber
    14.08.2025 21:47

    Странный вектор атаки. Очень узконаправленный. А если тот код посмотрят но не запустят? Просмотрят статическим анализатором? Посмотрит ИИ? Попросят расшарить экран и запустить? Запустят но в песочнице?


  1. panzerfaust
    14.08.2025 21:47

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


    1. Gromilo
      14.08.2025 21:47

      Эта гадость высасывает всё что есть на компе: кредитные карты, крипто-кошельки. Айтишники могут быть весьма жирными и всё окупается.


      1. panzerfaust
        14.08.2025 21:47

        Ну как следует из статьи, айтишник поопытнее (и побогаче) не попался. Попадется лихой джун, которому хоть тушкой хоть чучелом работа нужна. Он и npm install и rm rf радостно выполнит. Только что с него взять?

        Все равно похоже на рыбалку на удочку с ржавой блесной там, где все ловят сетями.


        1. Gromilo
          14.08.2025 21:47

          Я отношусь к этому так: если занимаются, значит окупается. Это уже, кстати, вторая статья на хабре про такую атаку, первая содержала разбор самого зловреда.


  1. Cheater
    14.08.2025 21:47

    "У вас нет контейнера для запуска гадости или вы не можете его создать за 5 минут, вы нам не подходите, прощайте".


    1. Mr_FatCat
      14.08.2025 21:47

      Контейнер можно запустить за 30 сек, минуту, 5 минут, но толку от этого мало. Если атака управляется на стороне, код будет выглядеть чистым до последней секунды, а нужный кусок подтянется только во время созвона. Атака может быть откулючена на момент просмотра в контейнере. Тут дело не в технической возможности, а в том, что нет смысла играть по их правилам.


  1. 3draven
    14.08.2025 21:47

    Жаль репу не склонил просто, приложил бы к публикации или просто где выложил. Любопытно.


  1. Gromov32lvl
    14.08.2025 21:47

    Забавно, что до сих пор находятся те, кто верит в "подарочные" тестовые задания с доступом к репе.