В 2025 году атаки на цепочку поставок программного обеспечения приобретают новые масштабы и формы, становясь все более опасными для экосистем программного обеспечения с открытым исходным кодом. Многие разработчики, организации и крупные компании сталкиваются с угрозами, касающимися безопасности зависимостей и автоматизированных процессов интеграции и доставки приложений. В данной статье подробно рассматриваются недавние инциденты, выявленные с помощью современных инструментов защиты, связанных с популярными менеджерами пакетов PyPI и NPM, а также затрагиваются аспекты атак в рамках CI/CD-процессов. Все это помогает лучше понять стратегию злоумышленников, их методы и пути противодействия. Одним из ключевых игроков в обнаружении вредоносных пакетов в 2025 году стала платформа Xygeni с инструментом Malware Early Warning (MEW).
Она обнаружила сразу несколько интересных случаев, связанных с размещением поддельных и вредоносных пакетов в реестрах PyPI и NPM. Особенно выделяются два пакета – graphalgo на PyPI и express-cookie-parser на NPM. Оба пакета действовали по схожему сценарию, что позволило специалистам предположить участие одного и того же хакерского коллектива. Одним из приемов, используемых злоумышленниками, стала атака типа «типоскуотинг», когда имя вредоносного пакета намеренно подобрано таким образом, чтобы напоминать название популярного, доверенного и легитимного проекта. В случае с graphalgo на PyPI шла попытка имитировать известный пакет graphdict, тогда как express-cookie-parser буквально копировал имя и документацию пакета cookie-parser, широко используемого в экосистеме Node.
js. Такая маскировка вводит разработчиков в заблуждение и повышает вероятность инсталляции вредоносного кода. Кроме имен злоумышленники применяли слои обфускации для сокрытия вредоносного поведения. Вложенный в пакеты код был закодирован через комбинацию сжатия и base64-кодирования, что затрудняет его анализ и выявление при статическом сканировании. Однако инструменты MEW успешно расшифровали и декомпилировали этот слой, выявив «дроппер» – зловред, который служит отправной точкой для дальнейших действий злоумышленников.
Особенность обеих угроз заключалась в использовании общих внешних ресурсов, так называемых seed-файлов, расположенных по URL-адресу на GitHub. Этот факт свидетельствует о том, что оба пакета получили исходные параметры и некоторые данные с одного и того же сервера злоумышленников, что говорит об общей инфраструктуре и стратегии кампании. Одним из самых современных и хитроумных тактических приемов стала реализация алгоритма генерации доменов (DGA) на основе хеширования содержимого seed-файла с использованием SHA256. Такой механизм позволяет вредоносному ПО динамически находить текущий адрес командного и управляющего сервера (C2), часто меняющийся, что значительно усложняет работу служб безопасности. В частности, в npm-варианте пакета DGA основан на зафиксированном хеше 496AAC7E, что раскрывает еще одну деталь тайной работы злоумышленников.
Для закрепления контроля и получения долговременного доступа на компрометированных системах злоумышленники внедряли вредоносные сценарии startup.py для Python и startup.js для JavaScript. Эти файлы размещались в системных директориях, связанных с пользовательскими данными Google Chrome на разных операционных системах, гарантируя автоматический запуск и скрытое исполнение кода с последующими командами от C2-серверов. Сложность угрозы дополнялась этапом «маскировки» и очистки следов после выполнения основных действий.
Вредоносные пакеты автоматически удаляли свои первичные исполняемые файлы и изменяли стандартные пакеты, чтобы стереть признаки присутствия вредоносного кода. Такие меры усложняют своевременную детекцию и расследование инцидентов. Для разработчиков и специалистов по безопасности крайне важно предпринимать комплексные меры по защите своего программного обеспечения и инфраструктуры. Во-первых, при выявлении подозрительных зависимостей, таких как graphalgo или express-cookie-parser, необходимо немедленно удалить их из проектов с помощью стандартных инструментов управления пакетами – pip uninstall и npm uninstall соответственно. Также рекомендуется провести тщательное исследование и очистку систем, особенно проверяя упомянутые директории Google Chrome на наличие подозрительных файлов startup.
py и startup.js. Такие меры позволят минимизировать риск сохранения вредоносных компонентов на устройствах разработчиков и серверов. Важным шагом защиты является интеграция в рабочие процессы специализированных средств безопасности. Системы анализа состава программного обеспечения (SCA), инструменты раннего предупреждения, такие как MEW от Xygeni, становятся неотъемлемой частью DevOps и CI/CD.
Их применение способствует автоматическому выявлению аномалий и гарантирует проверку новых зависимостей до их попадания в производство. Еще одним уровнем обороны является практика использования принципа наименьших привилегий при работе с системами разработки и CI/CD. Это ограничивает потенциальное влияние компромисса и снижает вероятность масштабных атак. Не менее важна организация мониторинга сетевых коммуникаций. Отслеживание подозрительных соединений, особенно которые могут указывать на использование алгоритмов DGA и аномальные C2-связи, помогает в раннем выявлении атак и принятии своевременных ответных мер.
Анализ кейсов 2025 года ясно демонстрирует, как сложные и скоординированные атаки на цепочку поставок программного обеспечения становятся реальной угрозой для открытых экосистем и компаний, использующих сторонние зависимости и автоматизированные процессы поставки приложений. Злоумышленники активно адаптируют свои методы, используя техники социальной инженерии, технические хакерские приемы и обфускацию для обхода традиционной защиты. Вместе с тем борьба с такими угрозами возможна и требует совместных усилий разработчиков, менеджеров безопасности и поставщиков инфраструктуры защиты. Ключевые принципы включают проактивность, постоянную проверку пакетов, внедрение специализированных инструментов защиты, а также поддержку культуры безопасности на всех уровнях разработки и эксплуатации ПО. Новые кейсы с вредоносными пакетами graphalgo и express-cookie-parser служат телефоном тревоги, сигнализируя о продолжающейся опасности и необходимости повышенного внимания.
Уроки, извлеченные из этих эпизодов, помогут сформировать более надежные методы обнаружения и предупреждения атак на цепочку поставок в будущем. В 2025 году становится очевидно, что обеспечение безопасности ПО – непрерывный процесс, где стандарты и технологии должны отвечать вызовам современного цифрового мира. Только системный подход и внедрение лучших практик безопасности способны снизить риски и обеспечить надежность программных продуктов и сервисов, которые ежедневно используются миллионами людей по всему миру.