
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.
Нагадаємо, що раніше dev.ua розповідав про російських хакерів Sandworm, які полюють на українських ІТ-фахівців через фейкові співбесіди.
«У моєму випадку все закінчилося повним перевстановленням системи, зміною паролів і відкликанням старих ключів. Нічого критичного, здається, вкрадено не встигло, але осад лишився», — зазначив фахівець.
Поради для айтівців: як не потрапити у пастку
Аби захистити свій робочий пристрій від подібних загроз, Анатолій Шумов радить дотримуватися кількох правил кібергігієни.
- Перевіряйте код ДО запуску: завжди переглядайте вміст файлів репозиторію перед виконанням
npm installчи запуском самого застосунку. - Аналізуйте невідповідності: звертайте увагу на файли, чия назва суперечить вмісту (наприклад,
swagger.jsбез функціоналу Swagger — це прямий червоний прапорець). - Використовуйте ізольоване середовище: тестові завдання від незнайомих компаній безпечніше відкривати у віртуальній машині (VM) або Docker-контейнері, а не на основному робочому ПК.
- Не ігноруйте обфускацію: наявність заплутаного або зашифрованого JS-коду у звичайному проєкті — це привід зупинити роботу й розібратися, а не списувати це на стиль автора.



