GitHub e PyPI adicionam defesas com atraso temporal contra ataques à cadeia de suprimentos

O GitHub e o Python Package Index (PyPI) introduziram esta semana defesas baseadas em tempo, com o objetivo de desacelerar ataques à cadeia de suprimentos que exploram a velocidade das atualizações automatizadas de dependências. O Dependabot do GitHub agora adota novas versões de pacotes com um atraso padrão de 72 horas, enquanto o PyPI passou a rejeitar novos uploads de arquivos para versões de pacotes com mais de 14 dias.
Ambas as mudanças atacam a mesma fragilidade subjacente: ferramentas de segurança podem sinalizar um pacote malicioso minutos após sua publicação, mas a detecção por si só não elimina a ameaça. Os mantenedores ainda precisam agir com base no alerta, e nesse meio-tempo, ferramentas automatizadas como o Dependabot podem puxar o pacote comprometido para a produção antes que alguém perceba.
Por que agora
As medidas vêm após uma série de incidentes de alto perfil em ambos os ecossistemas no último ano, incluindo as usurpações dos pacotes npm 'chalk' e 'debug' — que juntos afetaram pacotes com 2 bilhões de downloads semanais — a campanha de malware s1ngularity com tecnologia de Machine Learning que atingiu 2.180 contas do GitHub, o ataque Shai-Hulud que distribuiu pacotes maliciosos assinados disfarçados de bibliotecas TanStack e Mistral, e a campanha GhostAction que forçou o PyPI a invalidar tokens de publicação roubados. O GitHub já havia anunciado um conjunto mais amplo de mudanças de segurança para npm no mês passado; o cooldown do Dependabot desta semana estende esse esforço de endurecimento.
Como as defesas funcionam
O novo período de cooldown de 72 horas do Dependabot atrasa os Pull Requests que ele abre para novas versões de dependências, dando tempo para a comunidade de segurança detectar e sinalizar versões maliciosas antes que ferramentas automatizadas as adotem. O GitHub afirmou que três dias foram escolhidos como um equilíbrio entre segurança e manter-se atualizado com atualizações legítimas, e o atraso é configurável — mantenedores podem encurtá-lo ou prolongá-lo. O GitHub também recomendou combinar o cooldown com lockfiles para fixação de dependências, tokens de publicação com escopo restrito e desabilitar scripts de instalação desnecessários em pipelines de CI, já que o cooldown sozinho não defende contra comprometimentos de conta de longo prazo.
A mudança do PyPI ataca um padrão de ataque diferente: um invasor que compromete o token de publicação ou o workflow de CI de um mantenedor muito depois de uma versão de pacote ter sido lançada e ganhado a confiança dos desenvolvedores. Ao bloquear novos uploads de arquivos para qualquer versão com mais de 14 dias, o PyPI fecha a janela para esse tipo de "release poisoning", onde uma versão confiável e já adotada é silenciosamente modificada posteriormente. O PyPI observou que nenhum ataque passado confirmado usou essa técnica específica — a plataforma está agindo de forma preventiva, tendo descoberto que apenas uma pequena fração dos projetos faz uploads legítimos de arquivos mais de duas semanas após uma versão.
O que isso significa para desenvolvedores
Para a maioria dos projetos, o efeito prático é um pequeno atraso antes que Pull Requests automatizados de dependências apareçam, e a impossibilidade de corrigir versões antigas de pacotes após duas semanas. Nenhuma das mudanças exige ação do desenvolvedor para se beneficiar delas — ambas estão habilitadas por padrão no nível da plataforma — embora mantenedores com fluxos de lançamento incomuns possam precisar ajustar a configuração de cooldown do Dependabot se o padrão de 72 horas conflitar com sua cadência de atualização, conforme reportado primeiramente pelo BleepingComputer.
Originally reported by BleepingComputer. Read the original article for additional details.
View original source