BT

Último incidente com Npm revela vulnerabilidade de segurança

| por Sergio De Simone Seguir 17 Seguidores , traduzido por Diogo Carleto Seguir 39 Seguidores em 06 mar 2018. Tempo estimado de leitura: 2 minutos |

Recentemente o npm-registry teve um incidente que deixou uma grande quantidade de pacotes altamente dependentes, como o require-from-string, indisponíveis. Embora o incidente tenha sido relativamente simples de resolver, descobriu-se uma grande vulnerabilidade de segurança que poderia ter sido explorada para injetar código malicioso em projetos usando o npm.

De acordo com o relatório oficial, a causa raiz deste incidente foi um erro de decisão ao remover o usuário floatdrop e tornar todos os seus pacotes indisponíveis e bloqueados. Esta decisão foi impulsionada pela publicação de um pacote contendo spam que também incluiu o README para um pacote legítimo do floatdrop. Devido aos READMEs iguais, o sistema anti-spam do npm marcou o floatdrop como spammer, o que levou à remoção do usuário e de todos os seus pacotes.

A equipe do npm rapidamente descobriu que floatdrop era um usuário legítimo e que alguns de seus pacotes eram muito utilizados agindo rapidamente para restaurá-los. Porém, no espaço de tempo necessário para isso, vários pacotes com o mesmo nome que os removidos foram publicados e instalados um número de vezes não especificado.

Ainda que a equipe do npm tenha confirmado que estes pacotes não eram maliciosos, incidentes assim poderiam ser explorados para injetar código malicioso em projetos usando npm. É importante lembrar que o npm tem uma política que previne a exclusão de pacotes em menos de 24 horas após a publicação visando tornar impossível o reuso dos nomes destes pacotes. Porém essa política não era aplicada a pacotes excluídos como spam. Isto tem como base o fato que os spammers não deveriam impedir que nomes legítimos fossem usados.

Em resposta a este incidente, a equipe do npm adotou uma série de medidas, a mais importante delas foi implementar uma espera de 24hs para a republicação de qualquer pacote removido, incluindo pacotes contendo spam. Com isso fica muito difícil a injeção de código malicioso através da substituição de um pacote removido, porém requer que a equipe do npm atue dentro de uma janela de 24hs para restaurar e tornar um pacote legítimo antes que alguém possa reutilizá-lo.

Adicionalmente, a equipe do npm estabelecerá uma série de diretrizes para tornar mais improvável que pacotes legítimos sejam removidos erroneamente.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

Segurança by Adrua te Ajuda

Para ver como toda a preocupação pela segurança, é pouca. Parabéns pelo artigo.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

1 Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT