A implementação da autenticação de dois fatores no PyPI levou a um incidente de remoção de um pacote popular.

Os desenvolvedores do repositório de pacotes Python PyPI publicaram um plano para a implementação obrigatória da autenticação de dois fatores para pacotes que se enquadram na categoria de importância crítica. A importância é determinada pelo número de downloads, e a mudança se aplicará às contas dos mantenedores e proprietários de projetos relacionados a 1% dos pacotes que lideram em número de downloads nos últimos 6 meses. Considerando que o repositório PyPI atualmente inclui mais de 350 mil pacotes, a autenticação de dois fatores será aplicada a aproximadamente 3.500 pacotes. Uma página especial foi preparada para verificar se uma conta está na lista. A data exata para a implementação obrigatória da autenticação de dois fatores ainda não foi definida, mas espera-se que ocorra nos próximos meses.

Diferentemente da transição para a autenticação de dois fatores nos projetos RubyGems, NPM e GitHub, a PyPI introduzirá inicialmente um esquema que sugere o uso desejável de um token de hardware com chaves de acesso. A razão para a recomendação do uso de tokens e do protocolo WebAuthn é mencionada como sendo a maior segurança em comparação com a geração de senhas temporárias (a possibilidade de usar TOTP em vez de tokens estará disponível como uma opção).

Os tokens poderão ser obtidos gratuitamente — a empresa Google patrocinou a iniciativa e disponibilizou 4.000 chaves Titan para o projeto. Cada mantenedor pode solicitar gratuitamente dois tokens com interface USB-C ou USB-A. O segundo token é enviado como reserva para o caso de falha ou perda do token principal, a fim de minimizar o risco de perda de acesso ao repositório e livrar os desenvolvedores da necessidade de passar por um complicado processo de recuperação de acesso.

Infelizmente, os tokens só podem ser enviados para Áustria, Bélgica, Canadá, França, Alemanha, Itália, Japão, Espanha, Suíça, Reino Unido e Estados Unidos. Os mantenedores de outros países podem adquirir tokens compatíveis com a especificação FIDO U2F por conta própria, como os tokens Yubikey e Thetis. Como alternativa, também é possível usar aplicativos de autenticação baseados em senhas temporárias que suportem o protocolo TOTP, como Authy, Google Authenticator e FreeOTP.

A iniciativa não ocorreu sem incidentes. O autor do pacote Atomicwrites, que tem 6 milhões de downloads por mês e 38 milhões em 6 meses, não quis ativar a autenticação em duas etapas e, para tentar excluir seu pacote da lista de críticos, tentou redefinir o contador de downloads. Para isso, ele primeiro removeu o pacote e depois carregou uma nova versão. Esperava-se que essa manipulação apenas zerasse o contador, mas, para a surpresa do desenvolvedor, todas as versões antigas foram removidas do repositório, causando problemas nos projetos dependentes da biblioteca, que alguns desenvolvedores compararam ao incidente resultante da remoção do pacote left-pad no NPM.

O problema se agravou porque, após a remoção, o autor do atomicwrites não conseguiu carregar as versões antigas, que só puderam ser recuperadas no dia seguinte, após a intervenção dos administradores do PyPI. Após o ocorrido, o autor do pacote decidiu interromper o desenvolvimento do atomicwrites e classificar o pacote como obsoleto. Ele mencionou como razão que desenvolve o projeto como um hobby em seu tempo livre e que o surgimento de requisitos adicionais, que complicam o trabalho, não valem o tempo gasto no suporte gratuito a um pacote tão popular. O autor do atomicwrites afirma que preferiria apenas programar por diversão, e as preocupações com a proteção adicional contra a apreensão por invasores poderiam ser assumidas por quem paga por isso.

A biblioteca atomicwrites contém cerca de 200 linhas de código e oferece funções para gravação atômica de arquivos. Como alternativa, é possível usar as chamadas padrão os.replace e os.rename (a operação consiste em gravar em um arquivo com um nome temporário e renomeá-lo para o arquivo de destino após estar pronto).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster