Технологии, деньги и рынки — первымиНаписать в редакциюСтудия Dilami LabDilami Lab

Фейковый рекрутер отправлял разработчикам архив с вредоносной настройкой Git

Разработчику написали в LinkedIn от имени компании Cryptic Heaven и прислали ZIP-архив с репозиторием Git. Внутри была ловушка, которая запускала стороннюю программу уже при обычном git status, без install.sh и сборки проекта.

Фейковый рекрутер отправлял разработчикам архив с вредоносной настройкой Git
Иллюстрация: habr.com

Главное в цифрах

  • Срабатывание: обычный git status или переключение ветки, без install.sh и сборки
  • Домен в архиве для удаленного кода: vercelscript.vercel.app

Исследователь получил сообщение в LinkedIn от рекрутера компании Cryptic Heaven, которая якобы разрабатывает финансовую систему для пользователей криптовалютных кредитных карт. Ему предложили вакансию Smart Contract Developer и ссылку на договор, которая вела на ZIP-архив Contract-2026.zip.

В архиве находились README.md, шаблон договора с незаполненными полями и полноценный каталог .git с историей, ветками и нестандартной локальной конфигурацией. Обычно разработчики получают репозиторий через git clone, а не в виде архива с служебной директорией.

По данным автора исследования, ловушка использует штатные возможности Git. Хук post-checkout запускается после переключения ветки, а параметр core.hooksPath позволяет указать каталог с хуками, отличный от стандартного .git/hooks.

Как работает атака

Вторая часть атаки связана с пользовательским фильтром ltr в .git/config. Clean-фильтр Git обычно нормализует содержимое файлов, и Git применяет его к файлам, описанным в .gitattributes или .git/info/attributes. Звездочка в настройках означает, что фильтр назначается всем подходящим файлам.

Чтобы определить, изменилось ли содержимое файлов, git status может пропускать данные через clean-фильтр. Поэтому обычная команда способна запустить стороннюю программу. Автор проверил это на безопасном тестовом репозитории, заменив фильтр скриптом, который только записывал факт вызова в лог.

Скрипт фильтра использует временные метки и каталог-блокировку, чтобы не запускать несколько копий сразу. После паузы он пытается определить операционную систему, скачивает с удаленного сервера дополнительный код и немедленно его выполняет: через sh для Linux и macOS или через PowerShell для Windows. Адрес сервера в архиве находился на поддомене vercelscript.vercel.app. Вывод и ошибки перенаправлялись в /dev/null, поэтому пользователь мог ничего не заметить.

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

Нашли ошибку или есть что добавить? Напишите редакции
Источник: habr.com
0 новых новостей