У 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 c устараненнем праблемы. Шкоднасныя версіі былі апублікаваны толькі ў выглядзе пакетаў у 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 'RU|UA|BY|KZ') IP» ] … загрузка і запуск выкананага файла fi

Як відаць з кода, скрыпт спачатку правяраў IP-адрас у сэрвісе freegeoip.app і не запускаў шкоднасны дадатак для карыстальнікаў з Расіі, Украіны, Беларусі і Казахстана.

Крыніца: opennet.ru

Дадаць каментар