O Python Package Index (PyPI) anunciou a introdução do "Project Archival", um novo sistema que permite aos publicadores arquivar seus projetos, indicando aos usuários que não devem esperar por atualizações.
Os projetos ainda serão hospedados no PyPI, e os usuários ainda poderão baixá-los, mas verão um aviso sobre o status de manutenção, para ajudá-los a tomar decisões informadas sobre suas dependências.
A nova funcionalidade busca melhorar a segurança da supply-chain, pois o sequestro de contas de desenvolvedores e envio de atualizações maliciosas para projetos amplamente usados, mas abandonados, é um cenário comum no espaço de código aberto.
Além de diminuir o risco para os usuários, isso também reduz solicitações de suporte dos usuários, garantindo uma comunicação clara do status do ciclo de vida do projeto.
De acordo com um blog mais detalhado da TrailofBits, desenvolvedora do novo sistema de arquivamento de projetos do PyPI, a funcionalidade oferece um status controlado pelo mantenedor que permite aos proprietários do projeto marcar seus projetos como arquivados, para sinalizar aos usuários que não haverá mais atualizações, correções ou manutenção.
O PyPI recomenda que os mantenedores lancem uma versão final antes de arquivar um projeto para incluir detalhes e explicações sobre o motivo por trás do arquivamento do projeto, embora isso não seja obrigatório.
Os mantenedores podem desarquivar seu projeto a qualquer momento no futuro, se optarem por retomar o trabalho nele.
Por debaixo dos panos, o novo sistema usa um modelo LifecycleStatus, originalmente desenvolvido para quarentena de projeto, que inclui uma máquina de estados que possibilita transições entre diferentes status.
Uma vez que o proprietário do projeto clica na opção "Arquivar Projeto" na página de configurações do PyPI, a plataforma atualiza automaticamente seus metadados para refletir o novo status.
A TrailofBits diz que há planos para adicionar mais status de projeto como "descontinuado", "completo em recursos" e "não mantido", dando aos usuários uma ideia mais clara sobre a condição do projeto.
O banner de aviso tem o objetivo de informar aos desenvolvedores que eles precisam procurar por dependências alternativas ativamente mantidas, em vez de continuar a depender de projetos desatualizados e potencialmente inseguros.
Além disso, é frequente que invasores visem pacotes abandonados, assumindo o controle de projetos não mantidos e injetando código malicioso por meio de uma atualização que pode chegar vários anos após a última.
Em outros casos, os mantenedores optam por deletar seus projetos quando planejam parar o desenvolvimento, o que leva a cenários como os ataques de "Revival Hijack".
Oferecer aos mantenedores uma opção de arquivamento é muito melhor do ponto de vista de segurança.
Em última análise, devido à natureza do código aberto, muitos projetos são abandonados sem aviso prévio, deixando os usuários na incerteza se ainda são mantidos.
O novo sistema deve melhorar a transparência na manutenção de projetos de código aberto, eliminando as suposições e fornecendo um sinal explícito sobre o status de um projeto.
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...