GitHub Fortalece o npm com Publicação em Estágio e Controles Granulares de Instalação
**GitHub** introduziu a publicação em estágio para o **npm**, exigindo aprovação do mantenedor via autenticação de dois fatores antes que os pacotes estejam publicamente disponíveis. Esta atualização visa fortalecer a segurança da cadeia de suprimentos de software, garantindo prova de presença para cada publicação. Adicionalmente, novas flags de origem de instalação fornecem aos desenvolvedores controle mais granular sobre as instalações de pacotes.

### Publicação em Estágio Agora Geralmente Disponível
**GitHub** lançou a publicação em estágio, um novo recurso de segurança para o **npm** projetado para aprimorar a segurança da cadeia de suprimentos de software. Este recurso concede aos mantenedores a capacidade de aprovar explicitamente uma release antes que os pacotes sejam disponibilizados publicamente para instalação.
A publicação em estágio está agora geralmente disponível no **npm**. Ela exige que um mantenedor humano passe por um desafio de autenticação de dois fatores (2FA) para aprovar um pacote antes que ele seja enviado para npmjs[.]com.
"Em vez de uma publicação direta que imediatamente torna uma versão de pacote disponível para os consumidores, o tarball pré-compilado é carregado em uma fila de estágio onde um mantenedor deve aprová-lo explicitamente antes que ele se torne instalável", disse o **GitHub**.
A subsidiária de propriedade da **Microsoft** afirmou que essa mudança garante a "prova de presença" para cada publicação, incluindo aquelas originadas de fluxos de trabalho CI/CD não interativos e publicação confiável com autenticação OpenID Connect (OIDC).
### Pré-requisitos para Publicação em Estágio
Antes de aproveitar a publicação em estágio, os mantenedores de pacotes devem atender aos seguintes critérios:
* Ter acesso de publicação ao pacote.
* O pacote já deve existir no registro **npm**; pacotes totalmente novos não podem ser colocados em estágio.
* 2FA deve estar habilitado para a conta.
Os desenvolvedores podem usar o comando `npm stage publish` do diretório raiz do pacote para enviá-lo para uma área de estágio. Para usar este comando, é essencial atualizar para **npm** CLI 11.15.0 ou mais recente. Para proteção ideal, o **GitHub** recomenda emparelhar a publicação em estágio com a publicação confiável usando OIDC.
### Flags Granulares de Origem de Instalação
Uma segunda atualização focada no **npm** introduz três novas flags de origem de instalação, juntamente com a flag existente `-allow-git`:
* `--allow-file`: Controla instalações de caminhos de arquivo locais e tarballs locais.
* `--allow-remote`: Controla instalações de URLs remotas, incluindo tarballs https.
* `--allow-directory`: Controla instalações de diretórios locais.
Essas flags permitem que os desenvolvedores "apliquem a mesma abordagem explícita de lista de permissões a cada origem de instalação não relacionada ao registro", de acordo com o **GitHub**.
### Abordando Ataques à Cadeia de Suprimentos
Este desenvolvimento surge em meio a um aumento em ataques à cadeia de suprimentos de software visando ecossistemas de código aberto. Atividades recentes, incluindo os comprometimentos do **TeamPCP**, ressaltam a necessidade de medidas de segurança aprimoradas dentro do ecossistema **npm**.