Executando verificação de segurança...
4

Comprei esse macro pad chinês porque ele tem falhas graves de segurança

Essa publicação é uma versão resumida de artigo que publiquei no meu blog. Lá, você encontra ainda mais detalhes técnicos e o código-fonte!


Fala, pessoal!

Nesse último dia 11, o Lucas Teske escreveu no X que comprou um Ulanzi D200 U-Studio e descobriu que ele veio de fábrica com acesso root disponível via adb, sem qualquer tipo de autenticação ou bloqueio!

Motivado pela publicação dele, decidi comprar um pra mim. Não surpreendentemente, ele veio com a mesma falha: foi só espetar no PC, digitar adb shell e pronto, root!

Mas o que é esse negócio?

O D200 é vendido como “controlador de streaming.” Na prática, ele é um clone do famoso Stream Deck da Elgato: um macro pad totalmente customizável onde você pode criar atalhos para realizar ações no seu computador que vão desde abrir aplicações até controlar recursos de softwares como o OBS Studio.

E pra que você quis isso?

Ver no YouTube
Ver no YouTube

Pra rodar “Bad Apple!!”, é lógico.

E, pra realizar esse sonho, escrevi um player de vídeo simples, que chamei de BadUStudio.

O desenvolvimento passou por várias iterações. Na primeira prova de conceito, pensei em uma abordagem ingênua envolvendo cada frame armazenado em um formato de imagem padrão, sendo decodificado e enviado ao framebuffer. Mas logo enfrentei uma série de desafios, incluindo a capacidade de armazenamento do D200 e as limitações de processamento.

Tive que iterar o código várias vezes pra implementar uma série de otimizações. Otimizei algumas operações, resolvi alguns bugs e, no fim das contas, optei pelo armazenamento de cada frame no formato de dados brutos, com compressão RLE, em 360x640—metade da resolução nativa da tela do aparelho, de 720x1280—e upscaling realizado em tempo de execução. Dessa forma, consegui um resultado equilibrado entre tamanho de armazenamento necessário e performance da exibição.

Você tinha falado de segurança...

Pois é. Inclusive, o nome “BadUStudio” é um triplo jogo de palavras: a combinação de “Bad Apple!!” com “UStudio” é óbvia, mas o nome é também uma referência sutil a “BadUSB”.

O D200 é capaz de atuar como um dispositivo de interface humana (USB HID). Essa característica é parte intencional da funcionalidade do dispositivo: afinal, ele precisa, em muitos casos, agir como teclado para realizar determinadas ações, como pressionar sequências de teclas, digitar textos e executar comandos. Mas, combinada com o problema do acesso root aberto, essa funcionalidade é uma bomba-relógio.

Perceba que o D200 é um alvo extremamente fácil para modificação maliciosa por qualquer um que obtenha acesso físico ao dispositivo durante alguns segundos, incluindo:

🚚 Pessoas em qualquer ponto da cadeia de logística e distribuição
🛒 Funcionários de lojas revendedoras (autorizadas ou não)
🧹 Sua empregada doméstica
💔 Sua namorada
🐕 Seu cachorro

Não seria inteligente deixá-lo nas mãos de qualquer outra pessoa, e tampouco levá-lo a espaços como ambientes de coworking, estúdios de gravação e quartos de hotel.

E mesmo sem acesso físico, há o risco de que ele funcione como vetor de propagação de malware—caso você venha a ligá-lo em uma máquina infectada e, posteriormente, em uma limpa—ou mesmo de persistência—caso a sua máquina venha a ser comprometida, o atacante comprometa o D200 através dela, você a formate e volte a ligar nela o D200, que permanece infectado.

Pra mim, a possibilidade de modificação do D200 é um grande diferencial em relação aos demais dispositivos desse tipo disponíveis no mercado. Mas é alarmante que a abertura do aparelho não envolva em qualquer momento intencionalidade por parte do usuário.

E pra finalizar?

O BadUStudio foi um projeto bem divertido. Me deixou pensando no quanto faz falta ter mais aparelhos hackáveis no mercado. Hackeáveis não por acidente, mas sim por princípio, com opção para que o usuário possa tomar a decisão informada de habilitar um “modo de desenvolvimento” que retira as proteções existentes.

Fica a esperança de que a Ulanzi, nesse e em seus futuros dispositivos, mantenha a possibilidade de modificação mas implemente algum tipo de mecanismo seguro de desbloqueio.

Carregando publicação patrocinada...