GitHub e o Python Package Index (PyPI) passaram a adotar um mecanismo baseado em tempo para se proteger contra ataques à supply chain e limitar seus impactos.
No caso do Dependabot, o GitHub anunciou um novo período de espera que faz a ferramenta aguardar pelo menos três dias após a publicação de uma versão antes de abrir uma solicitação de alteração. O padrão de três dias se aplica apenas a atualizações de versão, criadas para manter as dependências de software atualizadas. As atualizações de segurança continuarão sendo aplicadas imediatamente, permitindo que o Dependabot emita um alerta e abra uma solicitação de alteração para levar o projeto à versão corrigida.
“A opção de configuração de período de espera no arquivo dependabot.yml ainda controla o comportamento, então é possível escolher um parâmetro diferente que se adapte ao projeto”, afirmou a subsidiária da Microsoft. A empresa disse ainda que três dias foi escolhido como ponto de equilíbrio ideal. “Três dias como padrão equilibra dois objetivos: empurra você para além da janela em que a maioria desses ataques acontece e não segura as dependências por mais tempo do que o necessário”, acrescentou.
Com isso, o GitHub busca lidar com cenários em que um threat actor consiga publicar uma versão adulterada de um pacote popular, que acaba sendo rapidamente adotada por projetos dependentes antes de ser removida do repositório. Embora esses pacotes trojanized tenham vida curta, o tempo em que permanecem acessíveis é suficiente para ampliar o impacto de um ataque à supply chain.
Ao mesmo tempo, a plataforma destacou que esse controle deve ser apenas uma camada de defesa entre várias outras, incluindo travar dependências com arquivos de bloqueio, desativar scripts de instalação em integrações contínuas, limitar o escopo dos tokens nos pipelines de build e revisar as atualizações antes da incorporação ao código. O GitHub também observou que o cooldown do Dependabot tem limitações diante de compromissos de longo prazo e recomendou o uso de lockfiles para fixação de dependências, tokens com escopo restrito e a desativação de scripts de instalação desnecessários no CI.
Já o PyPI vai rejeitar novos arquivos enviados para versões publicadas há mais de 14 dias. A medida foi criada para impedir que atacantes que comprometam tokens de publicação ou fluxos de trabalho adulterem versões antigas e confiáveis. Segundo a plataforma, apenas uma parcela muito pequena dos projetos envia arquivos legitimamente mais de duas semanas depois da publicação de uma versão. A plataforma também ressaltou que nenhum ataque conhecido anterior ao PyPI foi confirmado como uso dessa técnica de adulteração de versões que a nova medida bloqueia.
A medida foi anunciada após os dois ecossistemas de desenvolvimento terem sido alvo de diversos ataques de grande repercussão ao longo do último ano. Entre os casos mais conhecidos estão os ataques “chalk” e “debug”, a operação “s1ngularity”, a campanha Shai-Hulud e o ataque à supply chain GhostAction.
No mês passado, o GitHub já havia informado mudanças para enfrentar ameaças à supply chain, e o processo de reforço de segurança avança agora com essas novas medidas. Vale lembrar que controles semelhantes baseados em período de espera foram anunciados em diferentes ecossistemas de pacotes ao longo do último ano, incluindo Microsoft Visual Studio Code (VS Code), Ruby, Bun, npm, pnpm e Yarn.
A defesa baseada em tempo do GitHub surge no momento em que os mantenedores do PyPI anunciam planos para impedir que mantenedores adicionem novos arquivos a uma versão de pacote após 14 dias da publicação. “A medida foi pensada para impedir que atacantes que comprometam tokens de publicação ou fluxos de trabalho envenenem versões antigas e confiáveis”, observou o PyPI.
Publicidade
Vibecoding cria 10x mais sistemas, 20x mais vulneráveis. E quem ganha com isso é a galera do hacking ético e pentest. Quer ser pago para invadir sistemas? Então você tem que aprender com a Solyd que são os melhores do Brasil. Saiba mais...