2 pontos por GN⁺ 2024-07-18 | 1 comentários | Compartilhar no WhatsApp

Jailbreak do RabbitOS: descoberta de logs secretos e violação da GPL

Visão geral do Rabbit R1

  • O Rabbit R1 vem recebendo muitas críticas, e os usuários estão tentando revender o produto.
  • A Rabbit Inc. aceita devoluções, mas no mercado de usados o R1 é vendido por um valor bem abaixo do preço original.

Motivação

  • O RabbitOS é um app executado sobre o Android 13 AOSP.
  • É possível fazer engenharia reversa da API e substituí-la por um script em Python.
  • Como a Rabbit Inc. começou a ofuscar o código, foi comprado um R1 para analisá-lo.

Hardware do R1

  • Usa SoC MediaTek MT6765, 4GB de DRAM e 128GB de armazenamento eMMC.
  • O bootloader vem bloqueado por padrão, mas é possível desbloqueá-lo e gravar uma ROM customizada usando mtkclient.

Cadeia de boot

  • O processo de boot começa no bootrom (brom) fornecido pela MediaTek.
  • O preloader inicializa a DRAM e carrega as imagens tee, gz e lk.
  • O LK implementa o Android Verified Boot e verifica a integridade do dispositivo de blocos via dm-verity.

Quebrando a cadeia de confiança

  • Com o exploit de bootrom "kamakiri", é possível subverter todas as etapas seguintes já na primeira fase.
  • Também é possível carregar e executar uma imagem DA não assinada usando o modo USB bootloader.

Método de jailbreak

  • Uma imagem de boot Android customizada é carregada na DRAM via USB.
  • Um hook é instalado na parte final do preloader, com um hook customizado antes do salto para o LK.
  • O kernel/initramfs customizado inicializa e passa por todas as verificações de integridade.

Processo de pesquisa

  • Informações de depuração foram coletadas por meio dos test pads UART.
  • Flags da linha de comando do preloader e do kernel Linux foram alteradas para coletar logs UART.

Descobertas

  • O RabbitOS salva todos os logs como arquivos de texto no armazenamento interno.
  • Os logs incluem localização GPS, nomes de redes Wi-Fi, IDs de torres celulares, endereços IP, tokens de usuário, dados de voz e mais.
  • A atualização mais recente do RabbitOS (v0.8.112) corrigiu o problema dos logs e adicionou uma opção de restauração de fábrica.

"Customização" do AOSP

  • O RabbitOS roda em modo de app único sobre o Android 13 e desativa a maior parte das funções do Android.
  • Alega aumentar a segurança removendo o app de configurações do sistema.

Conselho para usuários em geral

  • Se houver suspeita de jailbreak, reinicie o aparelho para verificar.
  • Recomenda-se fazer restauração de fábrica antes de vender ou doar o aparelho.

Conclusão

  • O Rabbit R1 não tem nenhum hardware especial, e a maior parte das customizações serve para reforçar o modo de app único.
  • A segurança da cadeia de boot é ineficaz e há violação da licença GPL.
  • A ferramenta de jailbreak foi publicada para ajudar pesquisadores a analisar o R1.

Resumo do GN⁺

  • A segurança da cadeia de boot do Rabbit R1 é fraca, e dados de usuários são armazenados em excesso nos logs.
  • O RabbitOS roda em modo de app único sobre o Android 13 e desativa a maior parte das funções do Android.
  • A ferramenta de jailbreak ajuda pesquisadores a analisar o R1.
  • A Rabbit Inc. está violando a licença GPL e corrigiu o problema dos logs de dados de usuários.
  • Produtos com funções parecidas incluem Google Nest Hub e Amazon Echo Show.

1 comentários

 
GN⁺ 2024-07-18
Comentários do Hacker News
  • O produto da Rabbit envia para o servidor a localização GPS do usuário, o nome da rede Wi‑Fi, IDs de torres de celular próximas, endereço IP de internet, tokens do usuário, conteúdo de conversas etc.
  • Um usuário deixou a empresa após revisar a base de código da Rabbit.
  • A Rabbit Inc. não respondeu ao conteúdo da matéria e está considerando uma resposta judicial.
  • A Rabbit Inc. violou a licença GPL2 e não divulgou o código-fonte.
    • Em especial, os drivers de detecção da roda de rolagem com efeito Hall e de controle do motor de passo da rotação da câmera são closed source.
    • Essas violações causam grande dano ao ecossistema de software livre.
  • Há também o caso do Truth Social, que usou código AGPL sem divulgar o código-fonte e só o publicou depois.
  • O software tem baixa qualidade e a empresa também não é bem avaliada.
    • No entanto, se for fácil executar apps personalizados, pode haver casos de uso interessantes.
    • Se for implementado como PWA, o desenvolvimento pode ser muito mais rápido do que com ESP32 + bateria + tela.
    • Seria bom se houvesse uma forma de aumentar a segurança, como com o GrapheneOS, sem usar os serviços do Google.
    • Fica a curiosidade se há pessoas usando esse dispositivo para apps personalizados de foco único.
  • Há quem ache o nome "Carroot" engraçado.
  • Há curiosidade se a coleta de dados é limitada a esse dispositivo específico ou se é um recurso do Android.
  • Questiona-se qual é o valor real de analisar o comportamento de quem comprou produtos da Rabbit.
    • Isso poderia ser usado para identificar os próximos compradores de Juicero, multivitamínicos ou esquemas de marketing multinível.