У NPM-пакет UAParser.js, що налічує 8 млн завантажень на тиждень, впроваджено шкідливе ПЗ

Історія з видаленням з репозиторію NPM трьох шкідливих пакетів, що копіювали код бібліотеки UAParser.js, отримала несподіване продовження — невідомі зловмисники захопили контроль над обліковим записом автора проекту UAParser.js і випустили оновлення, які містять код для крадіжки паролів та майнінг.

Проблема в тому, що бібліотека UAParser.js, яка пропонує функції для розбору HTTP-заголовка User-Agent, налічує близько 8 млн завантажень на тиждень і використовується як залежність у більш ніж 1200 проектах. Заявлено, що UAParser.js застосовується у проектах таких компаній, як Microsoft, Amazon, Facebook, Slack, Discord, Mozilla, Apple, ProtonMail, Autodesk, Reddit, Vimeo, Uber, Dell, IBM, Siemens, Oracle, HP та Verison.

Атака була здійснена через злом облікового запису розробника проекту, який зрозумів щось не так після незвичайної хвилі спаму, що впала в його поштову скриньку. Як саме було зламано обліковий запис розробника не повідомляється. Атакуючі сформували випуски 0.7.29, 0.8.0 та 1.0.0, впровадивши в них шкідливий код. Протягом кількох годин розробники повернули контроль над проектом та сформували оновлення 0.7.30, 0.8.1 та 1.0.1 з усуненням проблеми. Шкідливі версії були опубліковані лише у вигляді пакетів NPM-репозиторії. Git-репозиторій проекту на GitHub не постраждав. Всім користувачам, які встановили проблемні версії, при виявленні в Linux/macOS файлу jsextension, а у Windows файлів jsextension.exe і create.dll рекомендується вважати систему скомпрометованою.

Додані шкідливі зміни нагадували зміни, раніше запропоновані в клонах UAParser.js, які, зважаючи на все, були випущені для тестування функціональності перед здійсненням широкомасштабної атаки на основний проект. На систему користувача із зовнішнього хоста завантажувався та запускався виконуваний файл jsextension, який вибирався залежно від платформи користувача та підтримував роботу в Linux, macOS та Windows. Для платформи Windows крім програми для майнінгу криптовалюти Monero (використовувався майнер XMRig), зловмисниками також було організовано впровадження бібліотеки create.dll для перехоплення паролів та їх відправлення на зовнішній хост.

Код для завантаження був доданий до файлу preinstall.sh, в якому з'явилася вставка IP=$(curl -k https://freegeoip.app/xml/ | grep 'UA|UA|BY|KZ') IP» ] … завантаження та запуск виконуваного файлу fi

Як видно з коду, скрипт спочатку перевіряв IP-адресу у сервісі freegeoip.app і не запускав шкідливий додаток для користувачів з Росії, України, Білорусі та Казахстану.

Джерело: opennet.ru

Додати коментар або відгук