В современном мире разработки программного обеспечения открытые реестры пакетов, такие как npm и PyPI, являются неотъемлемой частью рабочей среды. Они позволяют разработчикам быстро интегрировать готовые решения и ускорять создание приложений. Однако вместе с удобством приходит и риск: злоумышленники все чаще внедряют вредоносный код прямо в популярные пакеты, которыми ежедневно пользуются тысячи программистов по всему миру. Последнее исследование команды Socket Threat Research выявило четыре пакета — три из npm и один из PyPI, которые снабжены сложным вредоносным ПО для слежения и кражи конфиденциальных данных. Эти пакеты суммарно скачали свыше 56 тысяч раз, и они продолжают оставаться доступными, потенциально угрожая целому поколению разработчиков и их проектам.
Суть опасности заключается в том, что после установки вредоносные пакеты начинают работать незаметно, собирая информацию из среды разработчика. Среди методов атаки обнаружены кейлоггеры, скрывающие ввод с клавиатуры, захват изображений с экранов и вебкамер, а также похищение учетных данных. Все эти данные затем отправляются на управляемые хакерами серверы с целью последующего использования в преступных схемах или проникновения внутрь корпоративных систем. Одна из наиболее примечательных особенностей этих пакетов — их многоуровневый подход к сбору информации и обходу систем обнаружения. Например, некоторые из них используют невидимые iframe-элементы внутри браузера для слежения за вводом пользователя без визуальных признаков присутствия.
Другие применяют сложную обфускацию кода и динамическую генерацию ссылок для передачи данных через легитимные платформы, такие как Slack, AWS, Gmail и сервис Burp Collaborator, что значительно затрудняет их выявление. Рассмотрим подробнее каждый из обнаруженных пакетов. dpsdatahub, размещенный в npm, маскируется под функционал управления данными, однако на самом деле содержит браузерный кейлоггер с использованием iframe-внедрения и направляет данные через AWS Lambda. Его код организует постоянный сбор нажатий клавиш, а также сбор подробной информации о браузере и оборудовании устройства жертвы. nodejs-backpack — это еще один npm-пакет, который маскируется под полезный инструмент для генерации схем и API.
Тем не менее, внутри кода скрыт функционал сбора системной информации — от имени пользователя до характеристик процессора и памяти. Все собранные данные аккуратно структурируются и отправляются в специальный канал Slack, созданный злоумышленниками. Чтобы не вызывать подозрений, пакет предоставляет реальный CLI с командами для разработки, что повышает доверие и вероятность установки. Особого внимания заслуживает m0m0x01d, который реализует слежение непосредственно на уровне вложенных iframe — например, в формах авторизации. С помощью Burp Collaborator данные отсылаются на промежуточные серверы, а затем – на конечный контролируемый злоумышленниками адрес.
Эта многоступенчатая инфраструктура помогает скрыть пути передачи и затрудняет обнаружение атаки. Отдельного рассмотрения заслуживает PyPI-пакет vfunctions. Его опасность в том, что вредоносные функции не активируются автоматически при установке, а требуют явного вызова. В этом и кроется его латентность: пользователь может не подозревать о наличии угрозы, пока не выполнит соответствующие команды. Вредоносная библиотека умеет делать фото с вебкамеры, инфицировать другие файлы и обеспечивать устойчивое присутствие, копируя себя в папку автозагрузки Windows.
Для отправки украденных данных она использует, например, SMTP с почтовым сервером Gmail. Все четыре вредоносных пакета являются примерами расширенных атак на цепочки поставок ПО. Они демонстрируют, что злоумышленники все активнее используют доверие к популярным реестрам и уязвимости в процессе управления зависимостями для проникновения в системы разработчиков и конечных пользователей. Слежка не ограничивается простой кражей паролей — собираются данные о системных настройках, поведении пользователя и подробные технические метаданные, позволяющие глубже изучить и потенциально контролировать жертву. Для борьбы с такими угрозами необходим комплексный подход к безопасности на всех этапах разработки.
Важно применять автоматизированные инструменты для анализа пакетов еще до их внедрения в проекты. Специализированные решения, подобные тем, которые предлагает компания Socket, включают в себя сканеры поведения, предупреждающие о подозрительной активности в зависимости во время установки, а также расширения браузеров, которые предупреждают о рисках при посещении и загрузке сомнительных ресурсов. Кроме того, необходимо регулярно обновлять политики безопасности и проводить обучение сотрудников, чтобы повысить осведомленность о возможных атакующих в цепочке поставок. Критично избегать установки неизвестных или слабо проверенных библиотек и внимательно изучать отзывы, репутацию и открытые исходные коды ранее чем интегрировать их в свои проекты. Подобные инциденты также подчеркивают важность прозрачности и ответственности поставщиков в экосистемах npm и PyPI.
Регистры пакетов должны усилить меры по детектированию и оперативному удалению вредоносных публикаций, а сообщества разработчиков — активно делиться информацией о новых угрозах и методах их нейтрализации. Нельзя забывать и о сложностях современной безопасности, связанных с тем, что злоумышленники используют легитимные инфраструктуры для передачи данных. Применение облачных функций AWS, сервисов Slack, Gmail и инфраструктуры Burp Collaborator позволяет вредоносным пакетам маскировать трафик под обычную активность, снижающую подозрения со стороны систем мониторинга. В заключение, открытые реестры npm и PyPI остаются ключевыми элементами инфраструктуры современной разработки, но они же выступают и престижной мишенью для киберпреступников. Выявленные пакеты dpsdatahub, nodejs-backpack, m0m0x01d и vfunctions представляют серьезную угрозу, демонстрируя широкий спектр скрытого слежения и кражи данных в одном из самых доверенных сегментов программного обеспечения.
Для разработчиков и компаний важно не только использовать инструменты проактивной защиты, но и оставаться бдительными, проверять зависимости и следовать передовым стандартам безопасности. Только так можно минимизировать риски внедрения в цепочку поставок таких вредоносных компонентов и сохранить надежность и безопасность программных продуктов в эпоху цифровой трансформации.