1 pontos por GN⁺ 2024-03-31 | Ainda não há comentários. | Compartilhar no WhatsApp

Explicação da ofuscação na etapa Bash

  • Foi encontrado um backdoor no xz/liblzma. Ele afeta servidores OpenSSH.
  • Mais do que o binário com o backdoor incluído, o foco está na parte inicial em bash e no método de ofuscação simples, porém engenhoso, usado.
  • Este texto explica como a etapa bash é ofuscada e extraída.

Antes de começar

  • Duas versões do xz/liblzma (5.6.0 e 5.6.1) foram afetadas. Há diferenças sutis entre elas.
  • A parte em bash é dividida em três etapas (ou quatro?) e cada etapa é nomeada de Stage 0 a Stage 2.
  • Também será mencionado o "Stage 3", mas ele pode ainda não estar totalmente implementado.
  • As etapas ofuscadas/criptografadas e o backdoor binário posterior estão escondidos em dois arquivos de teste.

Stage 0

  • Começa no arquivo m4/build-to-host.m4. Esse código é executado em algum ponto do processo de build para extrair o script Stage 1.
  • Lê bytes do arquivo de teste, envia para a saída padrão e usa o comando tr para mapear caracteres para outros caracteres.

Stage 1

  • Um arquivo bash que começa com "####Hello####". Ele é feito para rodar apenas no Linux.
  • Inclui o uso de eval para extrair srcdir de config.status e uma cadeia complexa de comandos head que pula e imprime bytes específicos.
  • Usa o comando tr para aplicar uma cifra de substituição simples, depois descompacta com o comando xz e executa.

Stage 2

  • O Stage 2 é o script bash que modifica o processo real de compilação.
  • Parece haver um sistema de "extensão/patch", permitindo executar novos scripts sem continuar modificando os arquivos de teste.
  • Inclui código para extrair arquivos .o e integrá-los ao processo de compilação/linkedição.

Resumo

  • Esse processo é extremamente oculto e foi construído de forma complexa usando apenas ferramentas padrão de linha de comando.
  • Com a execução em 3 etapas e o sistema de "extensão", ele foi projetado para o futuro, evitando a necessidade de alterar novamente os arquivos binários de teste.
  • O fato de esse ataque ter sido descoberto por acaso deixa muitas questões para a comunidade de segurança.

Opinião do GN⁺

  • Este artigo enfatiza a importância da segurança de software e dos ataques à cadeia de suprimentos. Ele chama a atenção para vulnerabilidades que podem surgir no processo de build de software e relembra a importância de revisão de código e auditorias de segurança.
  • As técnicas de ofuscação e os métodos de ataque em múltiplas etapas mostram o quão sofisticadamente um invasor pode se infiltrar em sistemas. Essas técnicas também têm valor educacional para profissionais de segurança.
  • Outras ferramentas ou projetos de segurança com funções semelhantes incluem o Dependency-Check da OWASP e a Nexus Platform da Sonatype. Eles ajudam a identificar vulnerabilidades de segurança em dependências de software.
  • Ao adotar esse tipo de tecnologia, é preciso reforçar a segurança em todas as etapas da cadeia de suprimentos de software. O ganho é aumentar a segurança do sistema; o custo é que, se invasores usarem esses métodos, a detecção pode ser difícil.
  • Este caso revela ao mesmo tempo os pontos fortes e fracos da comunidade de código aberto. A revisão e a contribuição baseadas na comunidade são importantes para o crescimento e a segurança dos projetos, mas também existe o risco representado por contribuidores maliciosos.

Ainda não há comentários.

Ainda não há comentários.