Срочные новостиНизкий

Обход защит NPM Shai-Hulud через зависимости Git: уязвимости цепочки поставок

3 мин чтенияИсточник: BleepingComputer

Исследователи выявили критические уязвимости в защите цепочки поставок NPM, позволяющие злоумышленникам обходить меры безопасности Shai-Hulud с помощью зависимостей Git. Узнайте о рисках и способах защиты.

Обход защит NPM Shai-Hulud через зависимости Git

Исследователи в области кибербезопасности обнаружили критические уязвимости в системе защиты цепочки поставок NPM, внедренной после резонансных атак Shai-Hulud. Злоумышленники могут обходить меры безопасности, эксплуатируя зависимости Git. Результаты исследования подчеркивают сохраняющиеся риски в экосистеме управления зависимостями JavaScript.

Основные выводы

В 2021 году NPM внедрила усиленные меры безопасности после атак на цепочку поставок Shai-Hulud, в ходе которых вредоносные пакеты компрометировали приложения, использующие их. Однако исследователи продемонстрировали, что злоумышленники могут обходить эти защиты, используя зависимости на основе Git — пакеты, размещенные непосредственно в репозиториях Git, а не в реестре NPM.

В отличие от традиционных пакетов NPM, зависимости Git не проходят те же проверки безопасности, верификацию подписей или валидацию метаданных. Это создает слепую зону, позволяющую злоумышленникам:

  • Внедрять вредоносный код в зависимости без обнаружения.
  • Эксплуатировать доверительные отношения в проектах с открытым исходным кодом.
  • Обходить автоматизированные проверки безопасности NPM, включая подписание пакетов и проверку происхождения (provenance).

Технические детали

После атак Shai-Hulud NPM внедрила следующие меры защиты:

  • Подписание пакетов для проверки подлинности издателя.
  • Проверку происхождения (provenance) для валидации источников пакетов.
  • Автоматизированное сканирование на вредоносное ПО для пакетов, размещенных в реестре.

Однако зависимости Git, указанные через URL в файле package.json (например, git+https://github.com/user/repo.git), не проходят через эти защитные механизмы. Злоумышленники могут:

  1. Размещать вредоносные пакеты в публичных или частных репозиториях Git.
  2. Обманывать разработчиков, используя методы тайпсквоттинга (typosquatting) или социальной инженерии.
  3. Выполнять произвольный код во время установки, компрометируя среды сборки.

Анализ влияния

Уязвимость подвергает организации следующим рискам:

  • Атакам на цепочку поставок, нацеленным на CI/CD-конвейеры.
  • Утечке данных или установке бэкдоров через скомпрометированные зависимости.
  • Репутационному ущербу для проектов, неосознанно распространяющих вредоносный код.

Зависимости Git широко используются в корпоративных и open-source проектах, что усиливает риски. Известные библиотеки или инструменты с транзитивными зависимостями от пакетов, размещенных в Git, могут непреднамеренно распространять угрозы.

Рекомендации

Командам безопасности и разработчикам следует:

  1. Проводить аудит файлов package.json на наличие зависимостей Git и заменять их на альтернативы из реестра, где это возможно.
  2. Внедрять инструменты сканирования зависимостей (например, GitHub Dependabot, Snyk) для обнаружения вредоносных ссылок на Git.
  3. Ужесточать политики код-ревью для зависимостей на основе Git, включая ручную валидацию источников репозиториев.
  4. Использовать флаг NPM --omit=dev при установке, чтобы исключить зависимости для разработки, которые могут скрывать риски.
  5. Мониторить аномальное поведение в системах сборки, например, неожиданные сетевые запросы или изменения файлов.

Следующие шаги

NPM пока не выпустила патч или меры по смягчению этой уязвимости. Организациям рекомендуется применять стратегии глубокой защиты (defense-in-depth), включая:

  • Изолированные среды сборки, чтобы ограничить влияние скомпрометированных зависимостей.
  • Генерацию SBOM (Software Bill of Materials) для отслеживания источников зависимостей.
  • Принципы нулевого доверия (Zero Trust) для управления зависимостями, рассматривая весь внешний код как потенциально небезопасный по умолчанию.

Это открытие подчеркивает необходимость постоянной бдительности в обеспечении безопасности цепочек поставок с открытым исходным кодом, особенно в условиях, когда злоумышленники меняют тактики, эксплуатируя упущенные векторы атак.

Поделиться

TwitterLinkedIn