Skip to main content

Backdoor de execução de código encontrada na biblioteca rest-client do Ruby

Escrito por
Headshot of Hayley Denbraver

Hayley Denbraver

backdoor discovered in Gem

21 de agosto de 2019

0 minutos de leitura

Em 19 de agosto de 2019, [rest-client](https://snyk.io/vuln/rubygems:rest-client), um cliente simples de HTTP e REST para Ruby, reportou uma nova ameaça à segurança. A conta RubyGem de um mantenedor foi comprometida, e um terceiro mal-intencionado instalou um backdoor de execução de código. A exploração afeta versões posteriores à 1.6.10 e anteriores à 1.7.0.rc1.

O que aconteceu?

O usuário do GitHub [juskoljo](https://github.com/juskoljo) abriu uma questão no repositório do rest-client em 19 de agosto. Ao analisar as diferenças entre as versões do pacote, o usuário descobriu que as versões entre 1.6.10 e 1.7.0.rc1 executavam código remoto hospedado em pastebin.com e enviavam informações para um site mal-intencionado. Com essa exploração, o invasor conseguiu obter a URL dos hosts infectados, variáveis de ambiente e outras informações confidenciais.

Vale a pena ler a discussão sobre a questão no GitHub. Ela mostra como um problema de segurança em código aberto foi tratado. O primeiro comentário menciona que foi solicitado um CVE, e o segundo informa que a versão comprometida foi removida e a conta do mantenedor foi bloqueada. Mais adiante, há uma discussão sobre as vantagens da autenticação de dois fatores em contas RubyGem.

É importante observar que a versão comprometida é bastante antiga. O rest-client está atualmente na série 2.x.x, então as versões exploradas estão várias versões principais atrás. Ainda assim, considerando os desafios da manutenção de código, sem dúvida há muitos projetos vulneráveis a essa exploração.

O que devo fazer agora?

Quem usa as versões infectadas deve atualizar o quanto antes. A versão 1.7.0.rc1 inclui uma correção. Você pode usar o Snyk para verificar se está usando as versões vulneráveis.

Se você usa nossa CLI, basta executar $ snyk test no diretório do projeto. Você verá uma lista de todas as vulnerabilidades nas dependências, incluindo as do rest-client.

Você também pode testar seu projeto pela nossa interface fácil de usar. Experimente hoje mesmo.

Também recomendo que você aprenda com essa exploração e ative a autenticação de dois fatores em todas as contas que oferecem esse recurso.

O que podemos aprender?

Essa vulnerabilidade mostra como é importante ativar a autenticação de dois fatores na conta do gerenciador de pacotes. Na verdade, mantenedores que se preocupam com a segurança devem considerar exigir esse recurso de quem tem acesso para enviar alterações.

Além disso, essa vulnerabilidade mostra por que é uma boa ideia manter as dependências relativamente atualizadas. As atualizações automáticas também podem causar problemas, mas está claro que o invasor queria, por assim dizer, “passar despercebido” ao atacar uma versão antiga.

Uma última lição desse caso é a importância de agir rapidamente para corrigir esse tipo de problema. Talvez o problema não afete muitos usuários, mas o impacto para quem for afetado pode ser enorme. É importante divulgar o ocorrido para que essas pessoas possam resolver o problema o mais rápido possível.

Esperamos que esta publicação ajude a divulgar o caso. Se você está preocupado com a possibilidade de estar usando uma versão infectada do rest-client, experimente o Snyk hoje mesmo! Ao executar um teste do Snyk, você pode descobrir se seu projeto inclui versões infectadas do rest-client e identificar outras vulnerabilidades conhecidas nas suas dependências.

Pacotes mal-intencionados em repositórios populares de código aberto estão se tornando cada vez mais comuns. Se você acredita ter encontrado um pacote potencialmente mal-intencionado, pode denunciá-lo ao Snyk por meio da nossa política de divulgação de pacotes de código aberto: https://snyk.io/vulnerability-disclosure/

Comece a jogar Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.

Leia mais

blog feature snyk container custom base recommendations
Blog

Conheça o Evo Agentic AppSec: segurança que acompanha o ritmo do desenvolvimento com IA

O desenvolvimento impulsionado por IA está avançando mais rápido do que os fluxos de trabalho de segurança tradicionais. O AppSec agentivo da Snyk usa agentes de segurança para encontrar, corrigir e verificar vulnerabilidades continuamente, enquanto as pessoas definem os critérios.

Blog

Modelos de ponta encontraram as vulnerabilidades. Só o atacante encontrou as cadeias.

A análise estática encontrou as falhas, mas só os testes de ataque em aplicações ativas provaram como elas poderiam ser encadeadas para causar invasões. Uma comparação entre Evo COS, Claude Security e Claude Code Security.

feature insights context
Blog

Os ataques autônomos já chegaram. A defesa precisa acompanhar o ritmo.

Os atacantes autônomos estão reduzindo o tempo disponível para a defesa. Saiba como a descoberta, a correção, a validação e a prevenção contínuas ajudam as equipes de segurança a acompanhar esse ritmo.