Підозрілий 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-коду в звичайному проєкті — це привід зупинити роботу й розібратися, а не списувати це на стиль автора.
/
ReactJs / Native Developer Анатолій Шумов під час пошуку роботи зіткнувся з кібератакою, маскованою під звичайне тестове завдання від іноземної компанії. Замість звичного перевірочного коду в отриманому репозиторії виявився прихований шкідливий скрипт, призначений для викрадення персональних даних та отримання віддаленого доступу до пристрою.




