Исследователи кибербезопасности обнаружили сложную кампанию, включающую 36 вредоносных пакетов в реестре npm (Node Package Manager). Эти пакеты были обманчиво замаскированы под легитимные плагины для популярной системы управления контентом Strapi. Однако их истинная цель была гораздо более зловещей: эксплуатация уязвимостей в базах данных Redis и PostgreSQL, развертывание обратных оболочек для удаленного доступа, сбор конфиденциальных учетных данных и, в конечном итоге, установка постоянного бэкдор-импланта на скомпрометированные системы. Это открытие подчеркивает растущую угрозу атак на цепочку поставок программного обеспечения, когда злоумышленники отравляют широко используемые репозитории для распространения вредоносного ПО среди ничего не подозревающих разработчиков.
Анализ выявляет последовательную и модульную структуру атаки. Каждый вредоносный пакет содержал три основных файла: `package.json`, `index.js` и `postinstall.js`. Примечательно, что пакеты не имели стандартных метаданных, таких как описания или ссылки на репозитории, что является распространенным признаком вредоносных загрузок. Скрипт `postinstall.js` является основным вектором атаки, выполняющимся автоматически при установке пакета. Его функциональность многогранна. Во-первых, он пытается подключиться к локальному серверу Redis, используя учетные данные по умолчанию или слабые. В случае успеха он может выполнять произвольные команды через команду Redis `EVAL`, что потенциально приводит к полной компрометации сервера. Одновременно скрипт сканирует подключения к базе данных PostgreSQL, стремясь похитить учетные данные и выполнить вредоносные SQL-запросы для установления персистентности.
Конечная цель кампании — развертывание постоянного, безфайлового импланта, известного как "Krut". Это сложное вредоносное ПО находится в памяти, что затрудняет его обнаружение традиционными антивирусными решениями, сканирующими файлы. Krut предназначен для поддержания долгосрочного доступа к зараженным системам, позволяя злоумышленникам проводить дальнейшую разведку, эксфильтрацию данных или развертывать дополнительные полезные нагрузки. Использование легитимных платформ, таких как Strapi, в качестве приманки особенно эффективно, поскольку разработчики постоянно ищут плагины для расширения функциональности, что делает их более склонными устанавливать эти троянизированные пакеты без тщательной проверки.
Этот инцидент служит критическим напоминанием для организаций и разработчиков о необходимости внедрения надежных практик безопасности цепочки поставок программного обеспечения. Ключевые рекомендации включают: тщательную проверку всех сторонних зависимостей, особенно тех, которые имеют минимальные метаданные или недавние даты создания; использование инструментов анализа состава программного обеспечения (SCA) для обнаружения известных уязвимостей и вредоносного кода; и применение строгой сетевой сегментации для ограничения доступа к таким службам баз данных, как Redis и PostgreSQL, из ненужных сетевых сегментов. Бдительность и стратегия глубокой эшелонированной обороны необходимы для снижения рисков, создаваемых такими скрытыми и постоянными угрозами в экосистеме открытого исходного кода.



