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
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
O uso de
".join"pode ser perigosoOpen source não consegue competir com código fechado de nível corporativo
O termo “cadeia de fornecimento” não aparece no post do blog
Ferramentas open source foram adaptadas para algo diferente de seu propósito original
Há curiosidade sobre como surgiu a ideia de truncar o hash
Surpresa com o quanto de poder de GPU é necessário para encontrar colisões curtas
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
É um excelente texto sobre leitura de código muito inteligente e desenvolvimento de exploit