A equipe da Python Software Foundation (PSF) invalidou todos os tokens do PyPI que foram roubados durante o ataque à cadeia de suprimentos GhostAction, ocorrido no início de setembro.
Felizmente, ficou confirmado que os cibercriminosos não utilizaram esses tokens para publicar malware.
Esses tokens têm papel crucial, pois são utilizados para publicar pacotes no Python Package Index (PyPI), o repositório oficial que serve como fonte padrão para as ferramentas de gerenciamento de pacotes Python e hospeda centenas de milhares de pacotes.
De acordo com Mike Fiedler, administrador do PyPI, um funcionário da empresa de segurança GitGuardian detectou, em 5 de setembro, fluxos de trabalho maliciosos no GitHub Actions (como o FastUUID) tentando exfiltrar tokens do PyPI para servidores remotos.
No mesmo dia, outro pesquisador da GitGuardian enviou um e-mail para o time de segurança do PyPI com mais descobertas, mas a mensagem foi parar na caixa de spam, atrasando a resposta ao incidente até 10 de setembro.
Assim que o escopo completo do ataque foi identificado, a GitGuardian abriu issues em mais de 570 repositórios impactados no GitHub e notificou os times de segurança do GitHub, npm e PyPI.
Diversos mantenedores de projetos reagiram rapidamente: revisaram ou removeram os workflows afetados no GitHub Actions e rotacionaram seus tokens do PyPI após serem alertados pela GitGuardian.
Embora a equipe do PyPI não tenha encontrado evidências de comprometimento direto nos repositórios durante a investigação, todos os tokens de publicação vulneráveis foram invalidados e os proprietários dos projetos foram contatados para reforçarem a segurança de suas contas.
A GitGuardian estimou que, na campanha GhostAction, foram roubados mais de 33.000 secrets, incluindo tokens de PyPI, npm, DockerHub, GitHub, além de chaves de API da Cloudflare, credenciais da AWS e dados de banco de dados.
“Essa análise revelou tokens comprometidos em diversos ecossistemas de pacotes, como Rust crates e pacotes npm”, afirmou a GitGuardian.
“Várias empresas tiveram seu portfólio completo de SDKs comprometido, com workflows maliciosos afetando simultaneamente repositórios em Python, Rust, JavaScript e Go.”
Na última terça-feira, Fiedler recomendou aos mantenedores de pacotes PyPI que utilizam GitHub Actions a substituição dos tokens longos por tokens curtos chamados Trusted Publishers, que oferecem maior proteção contra esse tipo de ataque.
Ele também aconselhou a revisão do histórico de segurança das contas para identificar qualquer atividade suspeita.
“Após confirmar que nenhuma conta do PyPI foi comprometida, em 15 de setembro entrei em contato com os mantenedores dos projetos afetados para notificá-los, informar que seus tokens haviam sido invalidados e recomendar o uso do Trusted Publishers com GitHub Actions, garantindo maior segurança futura aos seus projetos”, declarou Fiedler.
“Os atacantes miraram uma grande variedade de repositórios, muitos dos quais armazenavam tokens do PyPI como segredos no GitHub, modificando seus workflows para enviar esses tokens a servidores externos.
Embora tenham conseguido exfiltrar alguns tokens, não há evidências de uso desses tokens no PyPI.”
Vale lembrar que, em agosto, outra falha em um workflow do GitHub Actions do repositório Nx, um sistema de build e gerenciamento de monorepos muito popular — foi explorada em um ataque à cadeia de suprimentos conhecido como s1ngularity.
Esse ataque afetou 2.180 contas e 7.200 repositórios.
Um mês antes, a Python Software Foundation havia alertado a comunidade sobre uma campanha de phishing que tentava roubar credenciais por meio de um site falso do Python Package Index (PyPI).
Esses episódios reforçam a importância de práticas rigorosas de segurança em pipelines de CI/CD e gerenciamento de secrets keys, especialmente em ecossistemas tão amplamente utilizados como o Python.
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...