O ano inteiro de ataques da cadeia de suprimentos contra código aberto está piorando

33

O ano inteiro de ataques da cadeia de suprimentos contra código aberto está piorando

Uma onda de ataques na cadeia de suprimentos que atingiu o software de código aberto no ano passado mostra poucos sinais de redução, após a descoberta, nesta semana, de dois backdoors separados em uma dúzia de bibliotecas baixadas por centenas de milhares de administradores de servidores.

O primeiro backdoor a ser descoberto foi o Webmin, uma ferramenta de administração baseada na Web com mais de 1 milhão de instalações. Por volta de abril do ano passado, de acordo com o desenvolvedor do Webmin, Jamie Cameron, alguém comprometeu o servidor usado para desenvolver novas versões do programa. O invasor usou o acesso para distribuir um backdoor que foi baixado mais de 900.000 vezes e pode ter sido usado ativamente por dezenas de milhares de servidores voltados para a Internet.

O invasor desconhecido fez uma mudança sutil em um script chamado Webmin password_change.cgi. A mudança deu aos atacantes a capacidade de enviar um comando através de uma URL especial que um servidor Webmin infectado executaria com privilégios de root. Na versão 1.890, que tinha mais de 421.000 downloads entre junho de 2018 e o último fim de semana, o backdoor foi ativado por padrão. Nas versões 1,90, 1,91, 1,91e 1,92– coletivamente com mais de 942.000 downloads – o backdoor estava ativo apenas quando os administradores alteravam uma configuração padrão que permitia a alteração de senhas expiradas. Versões backdoored foram distribuídas no SourceForge, que é a principal fonte de distribuição para a qual o site Webmin aponta.

Estatísticas recolhidas do motor de busca Shodan—Aqui, Aqui, Aquie Aqui– exibiu dezenas de milhares de servidores voltados para a Internet executando essas versões do Webmin, embora não se pudesse descartar que alguns desses servidores estivessem executando o Webmin criado a partir de código inalterado do Github ou de outra fonte que não incluísse o backdoor.

Digite RubyGems (novamente)

Um segundo backdoor veio à luz na segunda-feira em 11 bibliotecas disponíveis no RubyGems repositório. De acordo com um análise pelo desenvolvedor Jan Dintel, o backdoor permitia que os invasores usassem credenciais pré-escolhidas para executar remotamente comandos de sua escolha em servidores infectados. O malware incluiu diversos outros recursos, incluindo códigos que variáveis ​​de ambiente carregadas – que geralmente contêm credenciais usadas para acessar bancos de dados, provedores de serviços e outros recursos confidenciais – para um servidor localizado em mironanoru.zzz.com.ua.

Funcionários da RubyGems também descobriram que o código malicioso incluía mineiro para criptocorrências. No total, os números do RubyGems mostraram que as bibliotecas backdoored foram baixadas quase 3.600 vezes.

Rest-client versões 1.6.10, 1.6.11, 1.6.12 e 1.6.13 – que representavam pouco mais de 1.200 desses downloads – eram backdoored por alguém que comprometeu uma conta de desenvolvedor que foi protegido por um senha previamente quebrada. Não está claro como as bibliotecas restantes do RubyGems foram infectadas. Os responsáveis ​​do RubyGems não responderam a um email em busca de comentários para este post.

Explorando a confiança

Os compromissos do Webmin e das bibliotecas do RubyGems são apenas os mais recentes ataques da cadeia de suprimentos a atingir o software de código aberto. A maioria das pessoas não pensa duas vezes antes de instalar software ou atualizações no site oficial de um desenvolvedor conhecido. Como os desenvolvedores continuam a tornar o software e os sites mais difíceis de explorar, os chapéus negros nos últimos anos exploram cada vez mais essa confiança para disseminar mercadorias maliciosas ao envenenar o código em sua origem.

A onda de ataques começou em outubro passado, com a descoberta em uma única semana de dois ataques não relacionados à oferta contra dois projetos de código aberto. A primeira aplicação foi a interface do painel de controle VestaCP, e a outra um pacote chamado “Colourama” que foi inserido no repositório oficial do Python.
Um mês depois, código malicioso projetado para roubar fundos de carteiras de bitcoin encontrou o seu caminho para fluxo de eventos, uma biblioteca de códigos com 2 milhões de downloads, usada por empresas da Fortune 500 e pequenas startups. Funcionários do NPM – o gerente de projeto de código aberto que hospedava o software de backdoor – disseram que o código malicioso foi projetado para atingir pessoas que usam uma carteira de bitcoin desenvolvida pela Copay, uma das muitas empresas que incorporaram fluxo de eventos em seu aplicativo. NPM levou seis dias para emitir um aviso depois de saber do ataque.

Em março passado, os pesquisadores descobriram que outra biblioteca RubyGems chamada bootstrap-sass estava também backdoored. Então no início do mês passado algo semelhante aconteceu para uma biblioteca RubyGems chamada senha forte. Como o descoberto esta semana infectando os 11 projetos do RubyGem, o bootstrap-sass e senha forte Os backdoors usavam uma função de cookie do navegador para dar aos invasores a capacidade de executar códigos em servidores infectados. O backdoor de senha forte também interagiu com smiley.zzz.com.ua, um domínio que tem mais do que uma semelhança passageira com o mironanoru.zzz.com.ua domínio usado nos ataques recentes.

Frutos mais baixos

Para ser justo, o software de código fechado também é vítima de ataques do lado da oferta – como evidenciado por aqueles que atingiram fabricante de computadores ASUS em duas ocasiões, a atualização maliciosa para o software de contabilidade fiscal M.E.Doc que semearam o surto de NotPetya de 2017, e outro backdoor que usuários infectados do utilitário de disco rígido CCleaner nesse mesmo ano.

Mas os resultados mais baixos para os ataques da cadeia de suprimentos parecem ser os projetos de código aberto, em parte porque muitos não fazem a autenticação de múltiplos fatores e a assinatura de código obrigatória entre sua grande base de colaboradores.

"As recentes descobertas deixam claro que essas questões estão se tornando mais freqüentes e que o ecossistema de segurança em torno da publicação e gerenciamento de pacotes não está melhorando rápido o suficiente", disse o vice-presidente de Pesquisa e Desenvolvimento da Atredis Partners, HD Moore. “A parte assustadora é que cada uma dessas instâncias provavelmente resultou em comprometimento de mais contas de desenvolvedor (por meio de senhas capturadas, tokens de autorização, chaves de API e chaves SSH). Os atacantes provavelmente têm credenciais suficientes para fazer isso novamente, repetidamente, até que todas as credenciais sejam redefinidas e o MFA apropriado e a assinatura sejam implementados. ”

Moore disse que o impacto das infecções da cadeia de suprimentos de código aberto é muitas vezes difícil de avaliar, pois os aplicativos backdoored podem ser incluídos como uma dependência upstream por outro pacote. “A maneira como as ferramentas de gerenciamento de dependências pressionam pelos pacotes mais recentes, por padrão, torna um ataque bem-sucedido no caso de uma dependência de backdoor ainda mais provável”, acrescentou.

Ataques de código aberto também podem ter um alto impacto, pois afetam servidores poderosos usados ​​para fazer coisas como entregar e-mails e veicular páginas da Web. O único recurso uma vez que um servidor instala um aplicativo de backdoor é realizar uma reconstrução completa, uma tarefa tão onerosa que certamente será ignorada por muitos dos 100.000 ou mais sistemas que receberam um dos pacotes maliciosamente violados descobertos nesta semana.

"Sem uma reinstalação limpa do SO e do aplicativo, juntamente com a rotação de chaves e credenciais, existe um risco significativo de o sistema permanecer comprometido", disse Kenn White, diretor do Open Crypto Audit Project, ao Ars. “Recusei mais de um compromisso porque os operadores acreditavam que poderiam inspecionar manualmente o sistema por meio de, por exemplo, diferenças de arquivo e fazer uma avaliação válida por conta própria. Isso é ingênuo, para dizer o mínimo.

Fonte: Ars Technica