Voltar
Como o Fastify realiza releases de pacotes sem tokens npm

Fastify Adota GitHub Actions e npm Trusted Publishers para Releases Seguras

Aprofundamento CEVIU

Aprofundamento

A decisão do projeto Fastify de automatizar suas releases usando GitHub Actions e npm Trusted Publishers representa um marco significativo em segurança para o desenvolvimento de software de código aberto. Até então, o Fastify mantinha um processo de release manual justamente por priorizar a segurança, evitando os riscos associados a tokens npm de longa duração em ambientes de CI/CD. Essa abordagem, que exigia uma pessoa para decidir o momento do release e outra para aprovar, sem o uso de tokens que pulassem o 2FA, era um padrão rigoroso. A questão era como escalar isso para cerca de 100 repositórios sem comprometer os princípios de segurança. O dilema era claro: eficiência da automação versus controle de segurança.

A resposta veio com a evolução do ecossistema. A integração do OIDC (OpenID Connect) com GitHub Actions, que fornece tokens de curta duração vinculados estritamente ao ambiente de execução, resolveu o problema do token de longa duração. Complementar a isso, a funcionalidade de npm Trusted Publishers permite que um pacote declare exatamente de qual workflow e repositório ele pode ser publicado, fechando ainda mais as brechas. A configuração do `npm trust github` (disponível a partir do npm 11.15.0) combinada com a API de ambientes do GitHub, permitiu que o Fastify aplicasse essa configuração a todos os seus repositórios de forma programática. Além disso, a prática de `SHA-pinning` nos workflows reutilizáveis adiciona uma camada de defesa contra ataques de cadeia de suprimentos, garantindo que o código executado seja exatamente o esperado.

O que mudou

Anteriormente, o Fastify evitava a automação de releases por não conseguir garantir os mesmos níveis de segurança de um processo manual, principalmente em relação ao uso de tokens npm de longa duração e a ausência de um segundo par de olhos que fosse imposto pela plataforma. A equipe do Fastify, conforme antecipado na cobertura do CEVIU News em maio de 2026 sobre a publicação faseada do npm, esperava por recursos como os npm Trusted Publishers. Agora, o ecossistema amadureceu com a adoção generalizada de OIDC em plataformas como GitHub Actions (conforme noticiado pelo CEVIU News em 3 de agosto de 2026, com o Docker), e o comando `npm trust github`, permitindo a automação segura que antes era inviável. A notícia anterior, de 24 de agosto de 2026, sobre a Semgrep implementando `SHA-pinning` após um incidente, também mostra o avanço das práticas de segurança que Fastify agora incorpora.

Por que isso importa

Essa iniciativa do Fastify estabelece um novo padrão para a segurança da cadeia de suprimentos em projetos de código aberto. Ao eliminar a necessidade de tokens de autenticação de longa duração e impor aprovações humanas através de ambientes restritos do GitHub, o Fastify minimiza drasticamente a superfície de ataque para um projeto com milhões de downloads. A proveniência garantida dos pacotes, através do `provenance` do npm, aumenta a confiança do consumidor. Para empresas e desenvolvedores que dependem do Fastify, isso significa maior tranquilidade em relação à integridade dos componentes que utilizam. O modelo demonstra que é possível conciliar automação com segurança rigorosa, um imperativo na era atual de crescentes ataques à cadeia de suprimentos.

Linha do tempo

  1. Publicação Staged e novos controles de install-time para npm

  2. GitHub introduz publicação faseada e controles de instalação para npm

  3. Npm 12 Reforça Segurança da Cadeia de Suprimentos ao Desabilitar Scripts de Instalação

  4. Docker Adota OIDC no GitHub Actions para Melhorar Segurança e Autenticação

  5. Semgrep Fortalece Segurança em GitHub Actions Após Incidente Crítico na Cadeia de Suprimentos

  6. GitHub eleva automação de repositórios com Workflows Agentic impulsionados por IA

  7. Fastify Adota GitHub Actions e npm Trusted Publishers para Releases Seguras

Perguntas frequentes

O que são npm Trusted Publishers?

npm Trusted Publishers permitem que um pacote declare quais repositórios e workflows específicos no GitHub (ou outras plataformas) estão autorizados a publicá-lo. Isso significa que o npm só aceitará um novo release se ele vier de uma fonte autorizada e verificada, usando um token OIDC de curta duração.

Como os tokens OIDC de curta duração aumentam a segurança?

Ao contrário dos tokens de longa duração, que poderiam ser roubados e usados indefinidamente, os tokens OIDC são gerados na hora por provedores de identidade (como o GitHub) com um tempo de vida muito limitado. Eles são estritamente vinculados ao contexto de execução (workflow, repositório, ambiente), reduzindo drasticamente o risco de uso indevido caso sejam interceptados.

Qual a importância do SHA-pinning na nova estratégia do Fastify?

O SHA-pinning garante que, ao usar workflows reutilizáveis ou ações de terceiros no GitHub Actions, a versão exata do código-fonte seja especificada por um hash SHA. Isso impede que alterações maliciosas em uma dependência externa sejam introduzidas no processo de release, mitigando o risco de ataques à cadeia de suprimentos, um ponto já reforçado pela cobertura do CEVIU News em 24 de agosto de 2026.

Por que o Fastify resistia à automação de releases no passado?

O Fastify resistia à automação devido a preocupações com a segurança dos tokens de publicação npm. Processos automatizados típicos exigiam tokens de longa duração que ignoravam a autenticação de dois fatores, criando uma vulnerabilidade potencial. A equipe não estava disposta a comprometer a segurança da comunidade para ganhar alguns minutos por release, aguardando uma solução que permitisse automação sem sacrificar esses controles.

Fontes

Avalie este artigo:
Categoria
CEVIU Segurança da Informação
Publicado
05 de outubro de 2026
Editoria
CEVIU Segurança da Informação

Quer receber mais sobre CEVIU Segurança da Informação?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser