O GitHub lançou novos controles para o npm com o objetivo de aumentar a segurança da cadeia de suprimentos de software.
A mudança dá aos mantenedores a possibilidade de aprovar explicitamente uma versão antes que os pacotes fiquem disponíveis publicamente para instalação.
Chamado de publicação em etapas, o recurso agora está geralmente disponível no npm.
Ele exige que um mantenedor humano conclua um desafio de autenticação em dois fatores (2FA) para aprovar um pacote antes que ele seja enviado ao npmjs[.]com.
“Em vez de uma publicação direta, que torna imediatamente uma versão do pacote disponível para os consumidores, o arquivo tar pré-compilado é enviado para uma fila de etapas, onde um mantenedor precisa aprová-lo explicitamente antes que ele possa ser instalado”, afirmou o GitHub.
A subsidiária da Microsoft disse que a mudança garante “prova de presença” em cada publicação, incluindo aquelas originadas de fluxos de trabalho não interativos de CI/CD e de publicação confiável com autenticação OpenID Connect (OIDC).
Antes de usar a publicação em etapas, os mantenedores de pacotes precisam atender aos seguintes critérios:
- ter permissão de publicação para o pacote;
- o pacote já deve existir no registro do npm, ou seja, um pacote totalmente novo não pode ser colocado em etapas;
- a 2FA precisa estar ativada na conta.
Os desenvolvedores podem usar o comando `npm stage publish` a partir do diretório raiz do pacote para enviá-lo a uma área de preparação.
Para usar esse comando, é necessário atualizar para o npm CLI 11.15.0 ou superior.
Para proteção ideal, o GitHub recomenda combinar a publicação em etapas com a publicação confiável usando OIDC.
A segunda atualização do npm trata da introdução de três novas flags de fonte de instalação, além da flag `--allow-git` já existente:
- `--allow-file`: controla instalações a partir de caminhos de arquivos locais e tarballs locais;
- `--allow-remote`: controla instalações a partir de URLs remotas, incluindo tarballs HTTPS;
- `--allow-directory`: controla instalações a partir de diretórios locais.
Segundo o GitHub, as flags permitem aos desenvolvedores “aplicar a mesma abordagem de lista de permissão explícita a cada fonte de instalação que não seja o registro”.
A mudança ocorre em meio a um forte aumento de ataques à cadeia de suprimentos de software contra ecossistemas de código aberto nos últimos meses.
Um grupo criminoso conhecido como TeamPCP tem se destacado ao envenenar pacotes populares em uma escala sem precedentes, por meio de um ciclo autorrenovável de comprometimentos.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...