Voltar ao início

O que é RootBeer

E aí, galera! É a minha primeira vez escrevendo um artigo por aqui. Peço desculpas se pareço um pouco formal ou robótico; ainda estou me adaptando. Se surgir alguma dúvida, fiquem à vontade para me enviar uma DM. Estou aqui para ajudar!

Vamos começar entendendo a biblioteca RootBeer.

Screenshot da tela do aplicativo RootBeer Sample.

O que é RootBeer? Para que serve?

RootBeer é uma biblioteca de código aberto criada por Scott Alexander (scottyab) e Matthew Rollings (stealthcopter) em 2015. Seu objetivo é facilitar a implementação de detecção de dispositivos Android “rootados” para os desenvolvedores. Isso é uma preocupação significativa em termos de segurança e integridade para certos aplicativos.

Mas o que é root?

Se você não está familiarizado com o termo Root em dispositivos Android, aqui vai uma breve explicação: “Root” significa obter acesso total ao sistema. Em termos simples, é como ter privilégios de administrador no sistema operacional do dispositivo.

Por que fazer root?

“Rootar” oferece várias vantagens para os usuários, incluindo a capacidade de realizar alterações que não seriam possíveis de outra forma, como remover aplicativos pré-instalados ou modificar o kernel do dispositivo. No entanto, rootar também apresenta riscos: pode resultar na perda da garantia, danificar o dispositivo ou torná-lo mais vulnerável a malwares.

Nota: Fazer root é recomendado principalmente para aqueles que estão estudando ou testando a segurança de um aplicativo. Não é aconselhável para quem utiliza o celular no dia a dia.

Beleza, já que a gente já sabe o que é root e por que fazer, bora entender como o RootBeer funciona.

Como funciona o RootBeer?

O RootBeer executa uma série de testes para identificar sinais de root em um dispositivo. As verificações incluem:

Verificações baseadas em Java

checkRootManagementApps A verificação inicia-se pela leitura da lista de nomes de pacotes (APKs) que são conhecidos por gerenciar os acessos root no dispositivo, como o SuperSU e o Magisk Manager.

Depois de obter essa lista, o RootBeer faz uma varredura de todos os APKs instalados no dispositivo e obtém o nome de cada um. Então, ele verifica a presença dos APKs de gerenciamento de root, comparando-os com a lista de APKs conhecidos.

Com essa verificação concluída, o resultado do checkRootManagementApps mostrará se algum aplicativo da lista de gerenciamento de root foi identificado no dispositivo. Se nenhum desses aplicativos for encontrado, o RootBeer indicará que o dispositivo não está “rootado”.

Principais aplicativos da lista de gerenciamento de root:

Esse método de verificação é semelhante aos checks seguintes:

  • checkPotentiallyDangerousApps: Procura por aplicativos relacionados a atividades mal-intencionadas, como ferramentas de hacking e aplicativos que exploram vulnerabilidades.
  • checkRootCloakingApps: Identifica se há algum app destinado a ocultar o status de root do dispositivo.
  • checkForDangerousProps: Analisa os valores de várias propriedades do sistema que só podem ser modificados se o dispositivo estiver rootado.
  • checkForBusyBoxBinary: Procura pela existência do binário BusyBox no Android.
  • checkForSuBinary(Native checks)/checkSuExists: Verifica a presença do binário “su” no dispositivo.

NOTA: Por padrão, a verificação do binário BusyBox no RootBeer está desativada. Se for necessário, essa verificação pode ser habilitada isoladamente ou em conjunto com outras verificações de root disponíveis na biblioteca.

checkForRWSystem/checkForRWPaths As verificações checkForRWSystem e checkForRWPaths são similares e analisam o sistema de arquivos para ver se a partição “/system” tem permissão somente de leitura (read-only) ou permissões de leitura e escrita (read-write).

Essas verificações determinam o tipo de permissão da partição “/system” para identificar se é read-only ou read-write.

checkTestKeys
A verificação de assinatura checkTestKeys tem como objetivo detectar se um aplicativo Android foi assinado usando chaves de teste em vez de chaves de produção.

O funcionamento dessa verificação é simples e consiste em duas etapas:

NOTA: Os nomes de pacotes e caminhos(ex: /system) que o RootBeer utiliza nas verificações estão contidos em um único arquivo e podem ser modificados.

Embora o RootBeer se dedique principalmente à detecção de root, a segurança de aplicativos vai além dessa questão. Proteger aplicativos de root é essencial para prevenir fraude

Espero que este breve resumo sobre o RootBeer tenha sido esclarecedor. Caso tenha se interessado pelo tema, recomendo visitar o GitHub do RootBeer para obter mais informações.

Em meu próximo artigo, vou explorar, de maneira prática, como contornar cada verificação do RootBeer.