Три версии npm-пакета node-ipc были признаны заражёнными вредоносным ПО, что ставит под угрозу безопасность множества исполняемых программ. Версии node-ipc@9.1.6, node-ipc@9.2.3 и node-ipc@12.0.1 содержат бекдору, предназначенную для сбора секретов разработчиков.
Проблема безопасности в npm-пакетах
Исследователи из Socket и StepSecurity предупреждают, что новые версии этого популярного пакета обфусцируют вредоносные функции. Когда эти версии вызываются в рамках проекта, они начинают собирать данные о системе, включая 90 категорий учетных данных, таких как AWS, Google Cloud, Microsoft Azure и ключи SSH. Эти данные затем сжимаются и передаются на сервер управления командой, находящийся по адресу sh.azurestaticprovider.net.
Примечательно, что счётчик загрузок этого пакета был довольно высоким, и его взлом произошёл после 21-го месячного бездействия, что ставит под сомнение безопасность аккаунта, из которого были опубликованы вредоносные версии. Автор, под псевдонимом atiertant, не имеет истории публикаций в этом пакете и может быть мошенником, который подменил последнюю версию с целью атаки.
Как работает вредоносный код
Данная вредоносная программа функционирует, не полагаясь на жизненные циклы npm, а вместо этого добавляет код как Immediately Invoked Function Expression (IIFE) в файл node-ipc.cjs. Это означает, что вредоносный код срабатывает всякий раз, когда require('node-ipc') вызывается в проекте. Более того, программа выполняет сложную проверку SHA-256 с использованием заранее вычисленных значений хешей, чтобы убедиться, что она сработает только на заданных проектах или системах.
Кроме того, этот вредоносный код использует вторичный канал для передачи данных, перекрывая системный DNS-сервер и отправляя частичные данные в виде записей DNS TXT, чтобы избежать обнаружения. Этот метод позволяет обойти локальные средства защиты, так как запросы никогда не проходят через публичные DNS-серверы.
Последствия для разработчиков
Для разработчиков, особенно в мире открытого кода, эта угроза говорит о необходимости внимательно следить за зависимостями и не спешить обновлять пакеты без дополнительной проверки их безопасности. Компании, использующие эти версии, рискуют утечкойconfidentiality данных и нарушением безопасности. Рекомендуем провести аудит ваших зависимостей и немедленно удалить опасные версии node-ipc.
Следующий шаг для разработчиков — убедиться, что их проекты защищены от таких угроз и рассмотреть возможность использования альтернативных инструментов для обеспечения безопасности своих систем.