Еще одна вредоносная библиотека была обнаружена в реестре NPM, ориентированном на JavaScript, что подчеркивает сохраняющуюся хрупкость сегодняшней цепочки поставок программного обеспечения.

Яндекс

Как и другие реестры программных пакетов — репозитории библиотек кода для конкретных задач — NPM, приобретенный в прошлом году Microsoft GitHub, оказался эффективным механизмом распространения вредоносного ПО. Разработчики склонны доверять модулям, которые они загружают из таких сервисов, и обычно включают их в свои проекты без особой проверки.

В среду компания ReversingLabs, занимающаяся анализом безопасности программного обеспечения, заявила, что обнаружила код для кражи паролей в nodejs_net_server пакет распространяется через NPM.

Пакет, поддерживаемый автором, идентифицированным как «chrunlee», дебютировал как выпуск 1.0.0 28 февраля 2019 года. Согласно ReversingLabs, проект расширился, включив в следующие несколько версий функции удаленной оболочки, и в конце прошлого года получил пароль — возможности кражи с выпуском 1.1.0.

«В декабре 2020 года автор сделал обновление до версии 1.1.0, добавив скрипт для загрузки. [a password access tool called ChromePass] размещены на их личном веб-сайте с указанием URL-адреса hxxps://chrunlee.cn/a.exe«, — пояснила компания в своем блоге.

Это длилось около трех недель до выпуска версии 1.1.1 24 декабря 2020 года, когда вредоносный скрипт был изменен для запуска. TeamViewer.exe. ReversingLabs предполагает, что это могло быть сделано для того, чтобы вредоносное ПО не указывало на лично связанный веб-сайт.

Скрипт 1.1.0 получил файл с именем a.exe, переименованная версия утилиты ChromePass, инструмента Windows для доступа к паролям, хранящимся в веб-браузере Chrome.

Читайте также:
В то время как по-настоящему беспилотные автомобили наверняка не за горами, теперь вот система раннего предупреждения ИИ для вашей полуавтономной езды.

ReversingLabs отмечает, что chrunlee, похоже, по ошибке захватил личные учетные данные во время работы с вредоносным ПО. Версии 1.1.1 и 1.1.2 nodejs_net_server включить учетные данные для входа, которые, по всей видимости, были получены в результате тестирования ChromePass на компьютере автора вредоносной программы. Обнаруженный текстовый файл содержал 282 учетных данных, некоторые из которых могли оставаться действительными, как предположила охранная компания, отметив, что некоторые из них состоят из неудобных паролей, таких как «asd123» и «111».

С момента его первой публикации в конце февраля 2019 года было зарегистрировано 1283 загрузки пакета. Хотя только версия 1.1.0 включала компонент кражи паролей, предыдущие версии с функцией удаленной оболочки также представляют собой повод для беспокойства.

Хитрый кодер

Автор хитроумного кода выбрал необычный способ заставить цели запустить вредоносный исполняемый файл — вместо того, чтобы прибегать к обычной тактике типосквоттинга, злоумышленник злоупотребил механизмом конфигурации NPM, чтобы перезаписать популярный пакет тестирования. jstest (скачано более 36000 раз), чтобы активировать вредоносный исполняемый файл.

«Пакеты NPM предоставляют способ установки одного или нескольких исполняемых файлов в PATH, предоставляя bin поле внутри package.json «, — объясняет ReversingLabs.» После установки пакета NPM создаст символическую ссылку на этот файл на prefix/bin папка для глобальных установок или ./node_modules/.bin/ папка для локальных установок «.

«Этим исполняемым файлам можно присвоить любое имя, и в случае, если модуль с таким именем уже существует, он будет перезаписан и сопоставлен со сценарием, предоставленным вредоносной программой».

Читайте также:
Apple почти завершила разработку приставки Apple TV 5.

Для глобальных установок NPM требуется специальный флаг для принудительного выполнения операции, но это не требуется для локальной установки пакетов.

ReversingLabs сообщает, что уведомила НПМ о своих выводах 2 июля 2021 г., и что по состоянию на 15 июля 2021 г. проблемный пакет все еще был доступен. В настоящее время он больше не доступен. Другой пакет, приписываемый «chrunlee», называется tempdownloadtempfile, также был удален, потому что он также включал удаленный код оболочки.

Атаки цепочки поставок на реестры программных пакетов стали частым явлением в последние несколько лет. NPM подвергся многочисленным атакам такого рода, как и индекс пакетов Python (PyPI) и RubyGems.

В феврале разработчик Алекс Бирсан сообщил, что в прошлом году ему удалось взломать цепочки поставок программного обеспечения 35 компаний, загрузив нефункциональное вредоносное ПО в эти различные пакетные сервисы. Неоднократные демонстрации хрупкости карточного домика реестра пакетов привели к советам Microsoft и инструментам смягчения последствий от Google.

«Повторное обнаружение вредоносных пакетов в этих репозиториях доказало, что существует растущая потребность в решениях безопасности, которые могут обеспечить надежную идентификацию и защиту от этих типов атак», — сказал ReversingLabs, явно стремясь быть в числе тех, кто продает средства безопасности.

Даже в этом случае разработчики могут раздражаться, когда такие инструменты безопасности, как npm audit оказаться больше проблем, чем они того стоят. ®