2 pontos por GN⁺ 2024-12-10 | 1 comentários | Compartilhar no WhatsApp

Introdução

  • O engenheiro de segurança RyotaK, da Flatt Security Inc., descobriu uma vulnerabilidade de segurança no processo de atualização de firmware do OpenWrt.
  • O OpenWrt é um firmware baseado em Linux para dispositivos embarcados, especialmente popular em roteadores.

sysupgrade.openwrt.org

  • sysupgrade.openwrt.org é um serviço online que permite aos usuários selecionar os pacotes desejados para gerar uma nova imagem de firmware.
  • Problemas de segurança podem surgir no processo de criação da imagem a partir do código-fonte fornecido pelo usuário.

Injeção de comandos

  • O servidor sysupgrade.openwrt.org é um projeto de código aberto, e o código-fonte está hospedado em openwrt/asu.
  • O servidor isola o ambiente de build usando contêineres, mas foi encontrada uma vulnerabilidade que permite executar comandos arbitrários por meio da entrada do usuário.

Colisão de SHA-256

  • No processo de geração do hash da requisição, o hash SHA-256 era usado truncado para 12 caracteres.
  • Por meio de uma colisão de hash, era possível enganar o servidor para retornar artefatos de build incorretos.

Força bruta de SHA-256

  • Foi implementado um programa usando OpenCL para fazer força bruta do hash na GPU, mas o desempenho não foi bom.
  • Com o Hashcat, foi possível encontrar uma colisão de 12 caracteres.

Combinação dos dois ataques

  • O ataque foi realizado encontrando uma carga de injeção de comandos com o mesmo hash de uma lista legítima de pacotes.
  • Um invasor poderia forçar o usuário a atualizar para um firmware malicioso.

Relato do problema

  • Após o problema ser reportado à equipe do OpenWrt, o serviço foi temporariamente suspenso e corrigido rapidamente.
  • Foi emitido um aviso aos usuários para que verificassem se seus dispositivos não haviam sido comprometidos.

Conclusão

  • Foi possível comprometer o serviço sysupgrade.openwrt.org por meio de injeção de comandos e colisão de SHA-256.
  • O autor agradece a rápida resposta da equipe do OpenWrt e o aviso imediato aos usuários.

Publicidade

  • A Flatt Security oferece serviços de avaliação de segurança e testes de intrusão, além de um desconto especial para celebrar a atualização de sua nova página na web.
  • Também oferece uma poderosa ferramenta de avaliação de segurança chamada Shisho Cloud.

1 comentários

 
GN⁺ 2024-12-10
Opiniões do Hacker News
  • A normalização da execução de código direcionada a usuários ou dispositivos específicos tem uma vulnerabilidade sem verificabilidade, pois não há como confirmar que não foi gerada uma build com backdoor

    • É importante usar a mesma build do xz-utils, ou builds que permitam a pesquisadores de segurança verificar se houve comprometimento da cadeia de fornecimento
    • A Mozilla tentou registrar publicamente builds de release em uma Merkle tree, mas a iniciativa foi descontinuada
    • O Google escreveu uma implementação para builds de firmware do Pixel, mas apps distribuídos pela Google Play Store podem ser vulneráveis
    • A Apple é pior que o Google porque não fornece de forma transparente builds personalizadas para dispositivos individuais
    • O repositório de ebuilds do Gentoo é um exemplo de transparência binária bem implementada e uma das maiores e mais distribuídas Merkle trees de software open source
  • O uso de ".join" pode ser perigoso

    • Mover caracteres entre campos adjacentes não altera o hash
    • Isso não compromete diretamente o sistema, mas pode corromper o cache ou induzir um downgrade
  • Open source não consegue competir com código fechado de nível corporativo

    • O problema foi corrigido em 3 horas, sem fazer clientes esperarem 6 meses por um patch
    • Não processam quem reportou o problema
    • Não dizem aos usuários para jogarem fora dispositivos “obsoletos” que ainda funcionam perfeitamente
  • O termo “cadeia de fornecimento” não aparece no post do blog

    • “Cadeia de fornecimento” é o sistema logístico complexo que transforma matérias-primas em produtos acabados e os distribui ao consumidor final
    • Há dúvidas sobre se isso é um sistema para fornecedores comerciais do OpenWRT ou para consumidores finais
  • Ferramentas open source foram adaptadas para algo diferente de seu propósito original

    • Grandes empresas entrariam com processos para resolver o problema e nunca publicariam o patch
    • O OpenWRT, após receber a informação, tirou do ar o serviço inseguro e distribuiu um patch 3 horas depois de confirmar o relatório
  • Há curiosidade sobre como surgiu a ideia de truncar o hash

    • É difícil entender qual seria o objetivo ou a vantagem disso
  • Surpresa com o quanto de poder de GPU é necessário para encontrar colisões curtas

    • Há dúvidas se 40k por mês é um preço adequado para análise de segurança
    • Pergunta-se se um bom pesquisador de segurança pode ganhar cerca de 500k por ano
  • Percebeu imediatamente que o hash foi cortado de 64 para 12 caracteres

  • Há perguntas sobre por que o desempenho do hashcat varia tanto dependendo da ordem dos argumentos

    • Fica a dúvida se ele escaneia o padrão-alvo a cada execução
  • É um excelente texto sobre leitura de código muito inteligente e desenvolvimento de exploit