Тестовое задание с сюрпризом: как рекрутер прислал разработчику вредонос в Git-хуках
Инженер Appaji рассказал, как обычное предложение о работе в LinkedIn обернулось знакомством с продуманной вредоносной кампанией. Рекрутер написал ему напрямую, предложив удалённую контрактную позицию Python-разработчика с оплатой $10 000–15 000 в месяц. Слишком щедрое предложение, названная зарплата ещё до собеседования и упоминание известного YC-стартапа насторожили автора, но он решил продолжить, сохраняя бдительность.
Спрятано в скрытых папках
После одобрения резюме соискателю прислали тестовое задание: ZIP-архив и вполне убедительный PDF с инструкциями об улучшении кодовой базы, архитектурных правках и — что важно — операциях с Git. Сам проект выглядел как обычный бэкенд на FastAPI и SQLAlchemy, а requirements.txt был чист.
Привычка, выработанная на CTF, спасла положение: автор запустил tree -a и обнаружил в каталоге .git/hooks набор заранее подготовленных хуков. Скрипт pre-commit определял операционную систему жертвы (macOS, Linux, Windows) и молча скачивал с сервера по «сырому» IP-адресу соответствующую полезную нагрузку. Отсюда и требование выполнить Git-команды в задании — чтобы гарантированно сработал хук.
Многоступенчатая цепочка
Первый скрипт загружал вторичную нагрузку, маскировал её в каталоге ~/Documents под именем tokenlinux.sh и запускал в фоне через nohup. Следующий этап тихо устанавливал Node.js, подтягивал package.json, parser.js и зависимости, после чего запускал обфусцированный парсер.
Параметр id=402 в запросах, по мнению автора, служил для присвоения уникального идентификатора каждой жертве — на разные ID сервер отдавал разные скрипты. Список зависимостей в package.json выдавал намерения: доступ к буферу обмена (clipboardy), файловой системе, а также hardhat — среда разработки для Ethereum. Автор предполагает, что цель — поиск и опустошение криптокошельков.
Детали и ирония
Попытка деобфусцировать parser.js через ИИ дала любопытный результат: Claude отказался анализировать код, сработала защита, тогда как Gemini охотно всё разобрал. Расширение .npl у промежуточного файла указало на известный почерк северокорейских группировок.
Атака оказалась массовой: другим кандидатам присылали варианты с папкой .vscode, где команды запускались просто при открытии каталога в редакторе. Исходный проект злоумышленники украли из невинного публичного репозитория на GitHub. Nmap-сканирование их сервера показало OpenSSH 9.6p1 на свежей Ubuntu без известных уязвимостей — с OPSEC у авторов дела шли лучше, чем с маскировкой самого вредоноса.
После того как автор публично раскрыл схему, аккаунт «рекрутера» исчез. Главный вывод прост: всегда проверяйте скрытые каталоги, прежде чем запускать чужой код.
Источник: Hacker News
Комментарии
Войдите, чтобы комментировать.