O controle de 4 projetos no PyPI foi comprometido

PyPI

Relatório de incidente: controle de conta de usuário

Sem dúvida, um dos grandes problemas enfrentados pelo repositório de pacotes Python (PyPI) É a questão da segurança. tanto na introdução de pacotes, quanto na segurança das contas dos desenvolvedores.

E o mais comum de se ouvir sobre esses problemas é a detecção de pacotes maliciosos, que anda de mãos dadas com a exploração de falhas no PyPI ou também por desenvolvedores de aplicativos.

A razão para falar sobre isso é que recentemente o Administradores PyPI anunciados por meio de uma postagem no blog Detalhes sobre como um invasor conseguiu assumir o controle da conta de um usuário PyPI e foi usado para remover a propriedade do usuário de 4 projetos.

Vale ressaltar que em relação a este incidente, agora não foi devido a nenhum tipo de problema de PyPI (vulnerabilidades), mas sim a conta do usuário não estava suficientemente protegida contra o controle de conta.

Sobre o incidente, É mencionado que o atacantee, que ganhou o controle dos projetos, foi rapidamente bloqueado e não teve tempo de fazer alterações e criar versões modificadas dos repositórios dos quais ganhou o controle.

Quanto aos detalhes de como o invasor obteve o controle da conta, é mencionado que o Aquisição foi realizada substituindo o proprietário do projeto (o invasor se adicionou como colaborador desses projetos e removeu o proprietário original).

A ordem cronológica dos movimentos o que o atacante fez, Eles descreveram abaixo:

Data: 2023-11-22

  • 08:42:33 nova conta de usuário dvolk criada
    A conta 08:44:55 meisnate12 convida dvolk para ser colaborador no arrapi
  • 08:47:25 dvolk aceita o convite
  • 08:47:35 dvolk remove meisnate12 como contribuidor no arrapi (repetido para tmdbapis, nagerapi, pmmutils)
  • 08:50:27 conta meisnate12 foi excluída 
    Nenhuma ação adicional foi vista por parte do dvolk após este ponto.
  • 14h33, admin@pypi.org recebe um e-mail do endereço associado à conta de meinstate12:

Tendo em conta a ordem cronológica, Faltavam apenas 5 horas para que os projetos fossem assumidos para que os administradores do PyPI recebessem uma mensagem do autor original sobre o ocorrido, bloquearam a conta do invasor e restauraram a propriedade dos projetos.

  • 14:46 Um administrador PyPI responde com:

    Obrigado pelo relatório. Congelamos a conta em questão enquanto investigamos isso.

  • 14:44 Administradores do PyPI discutem opções no canal PyPI Admins Slack com dois outros administradores do PyPI
  • 14:46 Um administrador PyPI desativa o dvolk conta

A causa do incidente foi identificada como uma segurança acesso inadequado à conta e falha no uso de autenticação de dois fatores, o que permitiu ao invasor determinar parâmetros de login para o usuário “meisnate12” e tomar ações em seu nome.

Nós nos integramos ao HaveIBeenPwned para verificar a senha de um usuário em seu serviço em cada login. Infelizmente, a senha em questão não havia aparecido anteriormente. em uma violação da qual HaveIBeenPwned tem conhecimento, então isso não evitou o ataque.

2fa
Artigo relacionado:
PyPI já implementou suporte 2FA

É devido a esses tipos de incidentes que oOs administradores do PyPI até o final deste ano pretendem transferir todas as contas de usuários apoiando pelo menos um projeto ou membros de organizações de supervisão ao uso obrigatório de autenticação de dois fatores. Desde o ano passado, devido a um incidente, esta decisão foi tomada e desde então os desenvolvedores vêm implementando gradativamente as mudanças para a implementação do 2FA

Artigo relacionado:
No PyPI eles já estão se preparando para autenticação de dois fatores e inicialmente um incidente já foi relatado

E com o uso da autenticação de dois fatores, os administradores do PyPI mencionam que isso fortalecerá a proteção do processo de desenvolvimento e protegerá os projetos contra alterações maliciosas como resultado de vazamento de credenciais, uso da mesma senha em sites comprometidos, hackeamento do local do desenvolvedor sistema ou uso de métodos de engenharia social.

Finalmente Se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.