Хочете будувати кар’єру в Data Science та AI? Vodafone Big Data Lab відкриває новий набір —>
Наталя ХандусенкоРобота
17 серпня 2026, 12:18
2026-08-17
«Мав бути спокійний день, а в результаті чищу ноут»: фейкова співбесіда ледве не коштувала українському розробнику даних
ReactJs / Native Developer Анатолій Шумов під час пошуку роботи зіткнувся з кібератакою, маскованою під звичайне тестове завдання від іноземної компанії. Замість звичного перевірочного коду в отриманому репозиторії виявився прихований шкідливий скрипт, призначений для викрадення персональних даних та отримання віддаленого доступу до пристрою.
ReactJs / Native Developer Анатолій Шумов під час пошуку роботи зіткнувся з кібератакою, маскованою під звичайне тестове завдання від іноземної компанії. Замість звичного перевірочного коду в отриманому репозиторії виявився прихований шкідливий скрипт, призначений для викрадення персональних даних та отримання віддаленого доступу до пристрою.
Підозрілий swagger.js та загроза у 15 КБ
Після кількох днів перемовин потенційні роботодавці надіслали Анатолію посилання на приватний репозиторій із базовою структурою фулстек-застосунку (Node.js API + React frontend). Зовні все виглядало абсолютно стандартно, однак перед запуском розробник вирішив перевірити вміст файлів.
«Сьогодні мав бути спокійний день, а в результаті зараз чищу ноут, — поділився Анатолій у LinkedIn. — Перш ніж щось запускати, я за звичкою переглянув код. І у файлі middlewares/swagger.js — там, де мала бути звичайна конфігурація Swagger-документації — знайшов близько 15 KB важко обфускованого JavaScript».
Детальний аналіз показав, що виявлений шкідливий код працював за схемою повноцінного дроппера:
виконується одразу при підключенні файлу (require), ще до запуску сервера та навіть без виконання npm install$
створює секретну папку в домашній директорії та записує туди додатковий payload;
без відома користувача завантажує axios, better-sqlite3, node-machine-id та socket.io-client;
модуль better-sqlite3 використовується для читання баз даних Chrome, Brave та Firefox, де зберігаються паролі, cookies й автозаповнення. Водночас socket.io-client підтримує постійний зв’язок із C2-сервером хакерів для віддаленого виконання команд;
наприкінці файл експортує порожню middleware-функцію, аби застосунок працював без помилок і не викликав підозр.
Описана комбінація дій збігається з хакерськими кампаніями, про які повідомляли дослідники на кшталт ESET під назвою «DeceptiveDevelopment» (раніше — кластер «Contagious Interview»). Мета таких атак — викрадення паролів, SSH/хмарних ключів та криптогаманців у розробників. Після викриття рекрутер одразу видалив переписку та свій профіль у LinkedIn.
«У моєму випадку все закінчилося повним перевстановленням системи, зміною паролів і відкликанням старих ключів. Нічого критичного, здається, вкрадено не встигло, але осад лишився», — зазначив фахівець.
Поради для айтівців: як не потрапити у пастку
Аби захистити свій робочий пристрій від подібних загроз, Анатолій Шумов радить дотримуватися кількох правил кібергігієни.
Перевіряйте код ДО запуску: завжди переглядайте вміст файлів репозиторію перед виконанням npm install чи запуском самого застосунку.
Аналізуйте невідповідності: звертайте увагу на файли, чия назва суперечить вмісту (наприклад, swagger.js без функціоналу Swagger — це прямий червоний прапорець).
Використовуйте ізольоване середовище: тестові завдання від незнайомих компаній безпечніше відкривати у віртуальній машині (VM) або Docker-контейнері, а не на основному робочому ПК.
Не ігноруйте обфускацію: наявність заплутаного або зашифрованого JS-коду в звичайному проєкті — це привід зупинити роботу й розібратися, а не списувати це на стиль автора.
«Канадська компанія», підозрілий офер і підписка за $7. Українські дизайнери розповіли про ймовірну шахрайську схему під час працевлаштування в IT-компанію CarrotDevs