Историята с премахването на три зловредни пакета от репозитория на 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 и Verizon.
Атаката е извършена чрез хакване на акаунта на разработчика на проекта, който осъзна, че нещо не е наред след необичайна вълна от спам, заляла пощенската му кутия. Как точно е бил хакнат акаунтът на разработчика не се уточнява. Нападателите създадоха версии 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 'BG') if [ -z "$IP" ] … изтегляне и стартиране на изпълнимия файл fi
Както личи от кода, скриптът първо проверява IP адреса в услугата freegeoip.app и не стартира злонамерено приложение за потребителите от България.
Източник: opennet.ru
