O repositório de pacotes Python PyPI (Python Package Index) oferece um novo método seguro de publicação de pacotes, permitindo evitar o armazenamento de senhas fixas e tokens de acesso à API em sistemas externos (por exemplo, no GitHub Actions). O novo método de autenticação é chamado de ‘Trusted Publishers’ e tem como objetivo resolver o problema da publicação de atualizações maliciosas que ocorrem devido à compromização de sistemas externos e ao acesso indevido a senhas ou tokens pré-definidos.
O novo método de autenticação é baseado no uso do padrão OpenID Connect (OIDC), que implica a utilização de tokens de autenticação com tempo limitado, os quais são trocados entre serviços externos e o diretório PyPI para confirmar a operação de publicação do pacote, em vez de usar o método tradicional de login/senha ou tokens de acesso à API gerados manualmente. A possibilidade de uso do mecanismo ‘Trusted Publishers’ já foi implementada para os manipuladores executados no GitHub Actions. Espera-se que no futuro a suporte aos Trusted Publishers seja estendido para outros serviços externos.
Pacotes acompanhados poderão, do lado do PyPI, atribuir um sinal de confiança aos identificadores fornecidos por provedores externos OpenID (IdP, Provedor de Identidade OpenID), que o serviço externo utilizará para solicitar ao PyPI tokens efêmeros. Os tokens gerados pelo OpenID Connect confirmam a relação entre o projeto e o manipulador, permitindo ao PyPI realizar verificações adicionais dos metadados, por exemplo, verificando se o pacote publicado se relaciona a um determinado repositório. Os tokens não são armazenados, são vinculados a APIs específicas e expiram automaticamente após um curto período de validade.
Adicionalmente, destaca-se o relatório da empresa Sonatype com informações sobre a detecção de 6933 pacotes maliciosos no diretório PyPI em março de 2023. Desde 2019, o número total de pacotes maliciosos identificados no PyPI ultrapassou 115 mil. A maioria dos pacotes maliciosos se disfarça como bibliotecas populares por meio de typosquatting (atribuição de nomes semelhantes, com variações em caracteres, como exampl em vez de example, djangoo em vez de django, pyhton em vez de python, etc.) — os criminosos esperam que usuários desatentos, que cometem erros de digitação ou não percebem as diferenças nos nomes durante a pesquisa, sejam enganados. As ações maliciosas geralmente envolvem o envio de dados confidenciais coletados no sistema local devido à identificação de arquivos típicos com senhas, chaves de acesso, carteiras criptográficas, tokens, cookies de sessão e outras informações sensíveis.
Fonte: opennet.ru
