GitHub implementa autenticação 2FA e tokens granulares em resposta a vulnerabilidades do npm
- Cyber Security Brazil
- 24 de set. de 2025
- 3 min de leitura

Em um movimento estratégico para conter a crescente onda de ataques à cadeia de suprimentos de software, o GitHub anunciou uma série de mudanças significativas em suas políticas de autenticação e publicação para o ecossistema npm. As medidas, que serão implementadas "em um futuro próximo", visam fortalecer a segurança e restaurar a confiança dos desenvolvedores, especialmente após incidentes recentes como o ataque "Shai-Hulud".
A decisão do GitHub, de propriedade da Microsoft, é uma resposta direta às ameaças representadas pelo uso indevido de tokens de acesso e por malwares autorreplicantes que têm explorado vulnerabilidades no processo de publicação de pacotes npm. Entre as principais ações anunciadas estão a imposição da autenticação de dois fatores (2FA) para publicações locais, a introdução de tokens granulares com uma vida útil limitada de sete dias e a implementação da "publicação confiável" (trusted publishing), uma funcionalidade que promete revolucionar a forma como os pacotes são publicados.
A publicação confiável se destaca como uma das inovações mais importantes. Esta funcionalidade não apenas elimina a necessidade de tokens npm tradicionais, mas estabelece uma confiança criptográfica robusta. Ela autentica cada publicação usando credenciais de curta duração, específicas do fluxo de trabalho e que são impossíveis de serem extraídas ou reutilizadas por hackers. Mais crucialmente, a interface de linha de comando (CLI) do npm irá gerar e publicar automaticamente "atestados de procedência" para cada pacote.
"Todo pacote publicado por meio da publicação confiável incluirá prova criptográfica de sua origem e ambiente de construção", explicou o GitHub em julho de 2025. "Seus usuários poderão verificar onde e como seu pacote foi construído, aumentando a confiança em sua cadeia de suprimentos." Esta medida visa fornecer total transparência e verificabilidade, elementos essenciais para mitigar o risco de pacotes maliciosos.
Para viabilizar essas mudanças, o GitHub descontinuará os tokens clássicos legados e migrará os usuários da autenticação de dois fatores baseada em senha de uso único (TOTP) para a mais segura 2FA baseada em FIDO. Além disso, limitará a expiração de tokens granulares, definirá o acesso à publicação para proibir tokens por padrão – incentivando o uso de editores confiáveis ou a publicação local com 2FA obrigatória – e removerá a opção de ignorar a 2FA para publicação de pacotes locais. A empresa também planeja expandir a lista de provedores qualificados para a publicação confiável.
As novas diretrizes vêm à tona apenas uma semana após o ataque "Shai-Hulud", um incidente na cadeia de suprimentos que injetou um worm autorreplicante em centenas de pacotes npm. Este worm escaneava as máquinas de desenvolvedores em busca de segredos confidenciais, transmitindo-os para um servidor controlado pelo invasor. "Ao combinar a autorreplicação com a capacidade de roubar vários tipos de segredos, esse worm poderia ter permitido um fluxo infinito de ataques se não fosse pela ação oportuna do GitHub e dos mantenedores de código aberto", alertou Xavier René-Corail, do GitHub.
O movimento do GitHub reflete uma tendência internacional de fortalecimento da segurança. Dias antes, o repositório de pacotes NuGet .NET adicionou suporte para publicação confiável, e a Ruby Central anunciou novas medidas para reforçar a segurança da cadeia de suprimentos no RubyGems.org, limitando o acesso administrativo apenas a engenheiros empregados ou contratados pela organização.
Paralelamente a essas mudanças, a empresa de segurança de software Socket revelou a identificação de um pacote npm malicioso, o "fezbox", que demonstra a engenhosidade dos hackers. Este pacote, que se apresentava como um utilitário JavaScript comum, foi capaz de coletar senhas de navegadores utilizando uma nova técnica de esteganografia.
Segundo a pesquisadora de segurança Olivia Brown, o invasor (com o alias npm janedu) executava uma carga útil escondida dentro de um código QR. Este código QR era buscado de uma URL remota, analisado e seu conteúdo JavaScript executado para roubar credenciais de nome de usuário e senha de cookies do navegador, enviando-as para um servidor externo.
"O uso de um código QR para ofuscação adicional é uma estratégia criativa do invasor. Essa técnica demonstra como os invasores continuam aprimorando suas técnicas de ofuscação e por que ter uma ferramenta dedicada para verificar suas dependências é mais importante do que nunca", ressaltou Brown. O pacote fezbox já foi removido do npm.
Essas iniciativas do GitHub e a vigilância de empresas de segurança são cruciais para proteger a vasta rede de desenvolvedores e usuários que dependem da integridade da cadeia de suprimentos de software. A batalha contra os hackers está em constante evolução, exigindo que as plataformas e a comunidade se adaptem e fortaleçam suas defesas continuamente.
Via - THN


