• Добро пожаловать на сайт - Forumteam.bet !

    Что бы просматривать темы форума необходимо зарегестрироваться или войти в свой аккаунт.

    Группа в телеграме (подпишитесь, что бы не потерять нас) - ForumTeam Chat [Подписатся]
    Связь с администратором - @ftmadmin

GitHub внедряет двухфакторную аутентификацию для публикации пакетов в npm

Article Publisher

Публикатор
Команда форума
Регистрация
05.02.25
GitHub усиливает защиту npm после многочисленных атак на цепочки поставок. Теперь публикацию пакетов можно подтверждать посредством двухфакторной аутентификации (2ФА), и разработчикам доступны отдельные флаги для управления нестандартными источниками установки.

Разработчики представили новую систему staged publishing («поэтапная публикация») для npm, которая должна усложнить жизнь атакующим, компрометирующим CI/CD-пайплайны и аккаунты разработчиков. Теперь публикация пакета может проходить в два этапа: сначала готовый tarball отправляется в специальную очередь, а затем мейнтейнер должен вручную подтвердить релиз, используя 2ФА. Только после этого пакет станет доступен на npmjs.com.


В компании объясняют, что новая система добавляет «proof of presence» — подтверждение реального присутствия человека — даже для автоматизированных пайплайнов и trusted publishing с использованием OpenID Connect (OIDC). То есть компрометации CI/CD уже будет недостаточно для атаки: злоумышленнику понадобится пройти еще и 2ФА-проверку.

Функция уже стала общедоступной, однако воспользоваться ей смогут не все. Для staged publishing пакет должен уже существовать в реестре npm, разработчик должен иметь права на публикацию, и для аккаунта необходимо активировать двухфакторную аутентификацию.

Для отправки пакета используется команда npm stage publish, но для этого потребуется npm CLI версии 11.15.0 или новее. В GitHub рекомендуют комбинировать поэтапную публикацию с trusted publishing через OIDC, чтобы дополнительно защитить цепочку поставок.

Одновременно с этим в npm появились и новые механизмы контроля установки пакетов. Речь идет о трех флагах: --allow-file, --allow-remote и --allow-directory. Они работают по тому же принципу, что и уже существующий --allow-git, и позволяют явно разрешать установку зависимостей только из определенных источников.

Так, --allow-file отвечает за локальные файлы и tarball-архивы, --allow-remote — за удаленные URL и HTTPS-архивы, а --allow-directory контролирует установку из локальных директорий.

По сути, разработчики GitHub внедряют allowlist-подход для всех нестандартных способов установки пакетов. Это должно снизить риск атак через зависимости, вредоносные архивы и скомпрометированные сторонние источники.

Новые меры защиты появились на фоне резкого роста числа атак на опенсорсные цепочки поставок. В частности, одна из крупнейших волн атак связана с группировкой TeamPCP, которая массово компрометирует популярные пакеты и использует самовоспроизводящихся червей для поддержания цикла заражений.
 
Сверху Снизу