Тестовое задание с вирусом: чему учит взлом Binance и как проверять приглашение на собеседование
В конце октября у Binance похитили криптоактивы примерно на $6,34 млрд. 3 ноября биржа опубликовала предварительную схему атаки: в ней есть поддельный работодатель, несколько собеседований и репозиторий с «тестовым заданием», который инженер запустил на рабочем компьютере. Эта история полезна не только владельцам криптовалюты. Она показывает, почему привычная проверка «я видел рекрутера по видео» уже не защищает рабочий ноутбук.
Что установлено, а что пока заявляет сама компания
Согласно предварительному отчёту Binance, злоумышленники в сентябре связались с инженером через настоящую площадку поиска работы. Сначала прошло видеособеседование с человеком, представившимся HR, затем беседа с «руководителем» вымышленной компании. В конце кандидату предложили скачать проект для тестового задания. Вредоносный код сработал на этапе его настройки. Атакующие получили доступ к рабочему устройству, внутренним инструментам и в итоге к сервису, подтверждавшему переводы из кошельков биржи.
Это версия компании, а не окончательное независимое расследование. Биржа сообщила, что её проверка ещё продолжается и сторонняя экспертиза впереди. ФБР отдельно заявило, что связывает похищение активов с северокорейской группой TraderTraitor. Само по себе это заявление не подтверждает каждую техническую деталь отчёта Binance.
Binance обещает покрыть потери своими средствами. В отчёте на 3 ноября компания оценивала затронутые активы примерно в $6,34 млрд, сообщала о пополнении 98% затронутых токенов и заморозке или перехвате около $2,85 млрд. Это разные показатели: заморозка украденных активов и пополнение резервов не означают, что атаки не было или что деньги уже окончательно возвращены.
Почему собеседование выглядело убедительно
В цепочке не было одного подозрительного письма от незнакомца. Контакт пришёл через обычную платформу вакансий, собеседник показался по видео и некоторое время поддерживал разговор. Доверие выстраивалось до просьбы запустить код. Поэтому полезно проверять не только личность рекрутера, но и следующее действие, которого он добивается.
Предупреждение ФБР для криптоиндустрии прямо относит просьбы запустить неизвестные пакеты, скрипты и репозитории во время «предварительного теста» к признакам опасного сценария. Предупреждение опубликовано раньше атаки на Binance; это проверка самого приёма, а не доказательство конкретного эпизода.
Три проверки перед тестовым заданием
- Свяжитесь с компанией независимо от сообщения рекрутера. Откройте её официальный сайт вручную и проверьте вакансию и контакт через опубликованный там канал. Профиль на площадке вакансий и видеозвонок сами по себе не подтверждают работодателя.
- Спросите, зачем нужно запускать чужой проект и какие команды требуются. Просмотр кода и запуск приложения — разные действия. Установка зависимостей, подготовка окружения и скрипты сборки могут выполнять команды до того, как кандидат увидит результат задания. GitHub описывает установочные скрипты как распространённый путь кражи учётных данных.
- Не используйте для неизвестного задания рабочий компьютер с доступом к почте, внутренним системам, ключам и корпоративной сети. Если задание действительно нужно, согласуйте с работодателем безопасную отдельную среду. Отказ запускать неизвестный код на рабочем устройстве — нормальное профессиональное условие.
Если проект уже запускался и что-то кажется странным, одной смены пароля может быть недостаточно: сообщите в службу безопасности работодателя, сохраните ссылку и время контакта, проверьте рабочее устройство и выданные ему токены доступа по процедурам компании. Не пытайтесь тайно «почистить» ноутбук: так можно уничтожить следы для расследования.
Главный вывод этой истории не в том, что любое тестовое задание вредоносно. Риск возникает в точке, где неизвестный код получает доступ к устройству с рабочими полномочиями. Собеседование не снижает технические права такого кода.
Короткую сводку инцидента мы опубликовали в «Сигнал найден»; здесь разобран практический сценарий для кандидатов и команд.