Март 2026 года стал тревожным месяцем для глобальной безопасности программного обеспечения, продемонстрировав резкий всплеск целенаправленных атак на цепочку поставок. Злоумышленники скомпрометировали несколько ключевых инструментов, используемых разработчиками по всему миру, что поставило под угрозу тысячи организаций. Два наиболее масштабных инцидента связаны с библиотеками Axios для Node.js и LiteLLM для Python, которые ежедневно используются в миллионах проектов. Эти атаки не только привели к распространению вредоносного кода, но и раскрыли системные уязвимости в управлении доступом к популярным открытым репозиториям.
Описание
Первым и наиболее громким стало компрометирование пакета Axios в реестре NPM, произошедшее 30 марта. Axios - это широко распространённая библиотека для выполнения HTTP-запросов. Злоумышленники, которых аналитики связывают с северокорейской хакерской группировкой, получили контроль над учётной записью одного из ведущих сопровождающих проекта. Обойдя систему безопасности конвейера непрерывной интеграции и доставки (CI/CD) на GitHub Actions, они вручную опубликовали две вредоносные версии пакета: 1.14.1 и 0.30.4. Эти версии содержали скрытую зависимость от пакета "plain-crypto-js@4.2.1", который выполнял роль дроппера - программы, устанавливающей основное вредоносное ПО.
При установке скомпрометированной версии Axios через команду "npm install" автоматически запускался пост-инсталляционный скрипт. Его логика была кроссплатформенной и нацеливалась на системы macOS, Windows и Linux. Скрипт связывался с командным сервером злоумышленников для загрузки платформо-специфичной полезной нагрузки, представлявшей собой полнофункциональный троян удалённого доступа. После успешного внедрения вредоносный код удалял следы своего присутствия, подменяя файл "package.json" на чистую версию, что значительно осложняло обнаружение инцидента. По данным исследователей, основная цель атаки - получение долгосрочного контроля над рабочими станциями разработчиков и системами сборки для последующих операций.
Параллельно, 26 марта, была раскрыта атака на другой критически важный компонент - библиотеку LiteLLM, размещённую в реестре PyPI. LiteLLM представляет собой унифицированный интерфейс для работы с различными большими языковыми моделями через API в стиле OpenAI, и его ежедневно загружают около 3,4 миллиона раз. Группировка, известная как TeamPCP, смогла опубликовать две вредоносные версии пакета: 1.82.7 и 1.82.8. Судя по всему, атака была частью кампании по хищению высокочувствительных данных, таких как токены облачных платформ AWS, GCP и Azure, SSH-ключи и учётные данные Kubernetes. Команда реагирования PyPI оперативно среагировала, и пакеты были изолированы примерно через три часа после публикации, однако этого окна могло быть достаточно для заражения множества систем.
Механизмы внедрения в двух версиях LiteLLM отличались. Версия 1.82.7 содержала обфусцированный вредоносный код, закодированный в Base64, внутри файла "proxy_server.py", который выполнялся сразу при импорте библиотеки. Более изощрённой была версия 1.82.8: она включала файл с расширением ".pth" ("litellm_init.pth"), который автоматически исполняется интерпретатором Python при любом запуске на заражённом хосте, даже если сама библиотека LiteLLM не импортируется. Это обеспечивало постоянное закрепление в системе. Важно отметить, что отчёт специалистов подчёркивает, что вредоносное содержимое было легитимно опубликовано через скомпрометированные учётные данные сопровождающего, поэтому стандартные проверки целостности, такие как верификация хэшей в "pip", не смогли бы его обнаружить.
Оба инцидента имеют общие черты, характерные для современных атак на цепочку поставок. Во-первых, злоумышленники целенаправленно атакуют не код самих проектов, а учётные записи их сопровождающих, используя фишинг или кражу токенов. Во-вторых, они стремятся внедриться в инструменты, которые являются косвенными зависимостями для огромного числа проектов, что обеспечивает максимальный охват. В-третьих, вредоносная функциональность тщательно маскируется под легитимные процессы обновления зависимостей или конфигурации, что позволяет долгое время оставаться незамеченным. Последствия таких атак выходят далеко за рамки простого заражения: полученный доступ к системам сборки и облачным средам открывает путь для горизонтального перемещения по корпоративной сети, хищения интеллектуальной собственности и саботажа процессов разработки.
Эти события служат суровым напоминанием о хрупкости экосистемы открытого программного обеспечения, которая стала фундаментом для современной цифровой экономики. Угроза переместилась с поиска уязвимостей в коде на компрометацию процессов его поставки и людей, которые им управляют. Для организаций это означает необходимость пересмотра стратегии безопасности, сместив фокус с периметра сети на внутренние процессы разработки. Критически важными становятся практики, такие как строгое управление секретами и токенами, использование приватных прокси-реестров для зависимостей, анализ состава программного обеспечения и жёсткое ограничение прав доступа для систем сборки. Только комплексный подход, сочетающий технические меры контроля с повышением осведомлённости разработчиков, может снизить риски, которые сегодня стали новой нормой в киберпространстве.
Индикаторы компрометации
Domains
- checkmarx.zone
- models.litellm.cloud
MD5
- 04e3073b3cd5c5bfcde6f575ecf6e8c1
- 089e2872016f75a5223b5e02c184dfec
- 1b8615b9732833b4dd0a3e82326982fa
- 21d2470cae072cf2d027d473d168158c
- 2e3a4412a7a487b32c5715167c755d08
- 52f3311ceb5495796e9bed22302d79bc
- 759e597c3cc23c04cd39301bd93fc79f
- 7658962ae060a222c0058cd4e979bfa1
- 7a9ddef00f69477b96252ca234fcbeeb
- 7cac57b2d328bd814009772dd1eda429
- 85ed77a21b88cae721f369fa6b7bbba3
- 9663665850cdd8fe12e30a671e5c4e6f
- cde4951bee7e28ac8a29d33d34a41ae5
- db7f4c82c732e8b107492cae419740ab
- e56bafda15a624b60ac967111d227bf8
- f5560871f6002982a6a2cc0b3ee739f7