Зловмисне ПЗ на NPM: гайд по типах атак👾

Екосистема Node.js побудована на довірі, але зловмисники активно її підривають! За останній рік кількість шкідливих пакетів на npm різко зросла. Від грубих PoC до хитрих бекдорів — ці пакети маскуються під легітимні бібліотеки, викрадаючи дані чи виконуючи код.

Що виявили?

-PoC (local_editor_top, ccf-identity): Прості пакети від дослідників, що використовують lifecycle hooks (preinstall/postinstall) для витоку даних, як-от файлу /etc/passwd.
-Імпостери (requests-promises): Пакети, що імітують легітимні бібліотеки, але містять шкідливі скрипти (наприклад, rq.js), які викрадають дані браузерів чи криптогаманців.
-Обфускатори (chickenisgood): Використовують заплутаний код для приховування збору системної інформації та виконання віддалених команд.
-Трікстери (htps-curl): Ховають шкідливий код у пробілах, завантажуючи та виконуючи файли через WebSocket.
-Надмірно корисні (consolidate-logger): Логери, які здаються безпечними, але виконують приховані HTTP-запити для завантаження шкідливого коду.

Як захиститися?

-Перевіряйте lifecycle hooks у package.json.
-Звіряйте назви пакетів із їхніми репозиторіями (увага на помилки в назві).
-Уникайте пакетів із обфускованим кодом чи base64.
-Використовуйте інструменти, як-от Aikido Intel, для виявлення підозрілих пакетів.
-Фіксуйте залежності через package-lock.json.
-Налаштуйте приватне дзеркало реєстру (Artifactory, Snyk Broker).

Довіра до npm може бути небезпечною. Перевіряйте пакети та захищайте свої проєкти!