Cada vez mais os smartphones fazem parte da nossa vida, quer seja em casa ou no trabalho. Conhecem-nos melhor do que imaginamos, é neles que guardamos todo o tipo de informações. Ter o nosso smartphone vulnerável, pode vir a permitir uma grande invasão de privacidade. Nele guardamos as nossas fotografias, comunicações, documentos importante e até mesmo a nossa informação financeira. Como tal a Google e as outras companhias da área investem muito tempo e dinheiro a tentar tornar-los impenetráveis. Contudo, uma vulnerabilidade foi recentemente descoberta em alguns telemóveis, o Pork Explosion. Esta vulnerabilidade pode comprometer as medidas de segurança implementadas e pode abrir o dispositivos a vários tipos de ataques. A pior parte da situação é que foi criada de forma intencional pelo fabricante contratado para fazer o aparelho, e a marca que desenhou o mesmo não faz ideia da sua existência.
A empresa responsável por este problema é a Foxconn, um grande fabricante de aparelhos electrónicos, situado em New Taipei City, Taiwan. Não é a primeira vez que a empresa chega aos media por motivos menos positivos. Ficou famosa há uns anos devido à elevada taxa de suicídio dos seus empregados. A empresa é usada pelas grandes marcas, com a Apple, LG, Sony e Samsung, mas também é muito usada por outros pequenos fabricantes. São muitos os produtos fabricados por eles que se encontram no mercado.
A vulnerabilidade
A descoberta da vulnerabilidade Pork Explosion foi feita pelo especialista em segurança Jon Sawyer, mais conhecido por Justin Case ou jcase. Muito conhecido no mundo do Android pelas suas ferramentas de desbloqueio ou rooting Sunshine, WeakSauce e PwnMyMoto.
A vulnerabilidade do Pork Explosion é encontrada no bootloader de alguns aparelhos. Em que enviando um comando específico, podemos reiniciar o dispositivo em “Modo de Teste de Fábrica” com elevados privilégios e segurança muito reduzida. Neste modo, o SELinux é mudado de ‘enforcing’ para ‘disabled’ e o adb daemon é automaticamente corrido como root e não pede autorização quando um computador desconhecido é conectado.
Sem os mecanismos de segurança indicados a cima, é possível fazer um pouco de tudo a um aparelho Android, independentemente dos processos de segurança que o utilizador tenha. Os protectores de ecrã podem ser ultrapassado com um comando ADB, o bootloader pode ser desbloqueado sem apagar os dados do utilizador e, com um pouco de tempo, as chaves de encriptação podem ser encontradas com força bruta. Muito pouco fica fora dos limites do atacante.
Pouco vale o facto de este exploit apenas ser realmente útil para alguém que ganhe acesso físico a um aparelho vulnerável. Pois pode vir a ser usados por variados tipos de pessoas, governos, analistas, ladrões, etc. Contudo, não é uma maneira viável de espalhar malware.
Explorar o Pork Explosion
Nota: Esta parte é principalmente detalhes técnicos . Quem não estiver interessado pode passar à frente. Fique apenas ciente que é relativamente fácil, para alguém com alguma experiência a usar computadores.
Explorar esta backdoor não requer muitas ferramentas ou nenhum código especialmente criado. De facto pode ser feito com uma simples build do fastboot modificada ou com uma versão do adb (requere a habilidade de enviar comandos adb) não modificada.
Como muitos leitores sabem, o utilitário mais comum usado para trabalhar com o bootloader é chamado fastboot. É implementado como uma ferramenta de linha de comandos e uma relativa pequena lista de capacidades. Mas a sua principal função é dedicada a formatar corretamente comandos do utilizador e passar-los até ao bootloader, transmitir imagens de partições para o dispositivo, onde as mesmas serão instaladas na memória.
Há um conjunto padrão de comandos que existe como parte das especificações de fastboot, como o getvar, boot, e os mais recentemente adicionados flashing commands. Estes comandos são codificados no executável fastboot. Há também uma possibilidade para os fabricantes poderem adicionar seus próprios comandos, mas eles devem sempre começar com “oem” e o comando é passado para o bootloader num formato diferente.
O comando para lançar o modo de teste de fabrica é chamado reboot-ftm, mas esta escondido de uma forma pouco eficiente. Os bootloaders da Foxconn que suportam este comando estão programados para ouvir como se ele fosse um protocolo de comando standard, em vez de um comando oem. Mas como os comandos standard são codificados no executável fastboot, não vai reconhecer a instrução para lançar o modo de teste de fabrica. No entanto, para contornar a situação basta adicionar algumas linhas de código no comando fastboot, que é open source, e compilar uma versão personalizada.
Uma vez que o reboot-ftm foi executado, vai se dar o boot de uma partição especial, chamada “ftmboot” que contem um custom ramdisk e kernel. Isto toma conta de ligar o aparelho, mas deixa o SELinux desactivado e eleva o adbd para root.
Usar o adb não requere nenhum executável especial para correr da partição ftmboot, um utilizador apenas tem de correr ‘adb reboot ftm’ da linha de comandos. Contudo, isto é apenas uma opção se o comado de debug já tiver sido ativado no aparelho, e o computador imitir um comando de autorização.
Para mais detalhes consulte o artigo do blog do jcase, sobre o Pork Explosion.
Porque é que a backdoor existe?
Os fabricantes usam regularmente modos de teste de fabrico no hardware que produzem. Estes testes permitem que estes corram o hardware e o software de diagnóstico, que pode ser muito útil para o desenvolvimento dos mesmos. Também é comum a prática de tornar estas backdoor impossíveis de activar os desactivar completamente. Foi neste aspecto que a Foxconn cometeu evidentemente um erro, este modo de teste de fábrica é muito fácil de aceder.
Não há nenhuma razão para acreditar que a vulnerabilidade Pork Explosion foi deixada na produção do aparelho de forma maliciosa. A explicação mais credível, é que alguém pode ter-se esquecido de desactivar ou não percebeu as implicações de segurança da mesma. Apesar de não haver nenhuma justificar o acontecimento… Simplesmente não foi intencional. Provavelmente.
Quais são os aparelhos afectados e o que esta a ser feito?
Actualmente ainda não se sabe ou certo como é que esta backdoor se espalhou. Algumas empresas deixam este firmware de baixo nível ser produzido pelos seus parceiros de fabrico (a Foxconn, neste caso), em vez de o fazerem eles próprios. Por outro lado, mesmo que a Foxconn tenha estado envolvida no firmware de um aparelho específico, o bootloader pode ser sido feito noutro sítio. Nos casos em que foi mesmo a Foxconn que fez todo o bootloader, o cliente muito provavelmente recebeu o binário final para usar como parte do seu pacote final de firmware.
Dois aparelhos com esta backdoor já foram identificados por Jon Sawyer: o Nextbit Robin e o InFocus M810. Muito provavelmente, vão aparecer muitos mais aparelhos afectados no futuro, especialmente modelos mais antigos e de marcas mais desconhecidas. Sawyer já reportou o problema às empresas e à Foxconn, encorajando-os a lançar um update OTA. Update este que ira desabilitar a backdoor, enchendo a partição ftmboot com zeros.
A melhor maneira para saber se o seu aparelho está afectado, ou se pelo menos esteve no passado, é confirmar as listas de partições do mesmo e procurar por a ftmboot e ftmdata. Como é possível que alguns dispositivos usem maneiras mais inteligentes de prevenir as pessoas de acidentalmente irem para ao modo de teste de fabrica. Os comandos usados para aceder ao menús podem não ser suficientes para o activar. Infelizmente, não há nenhum conselho nesta altura para quem tiver o aparelho vulnerável, mas reportar o problema às empresas para fazer pressão para que o problema seja resolvido.
Conclusão
Quer consideremos ou não que os esforços da Google sejam suficientes para aumentar a segurança do Android, a realidade é que os fabricantes têm muita responsabilidade também. Não compete apenas a eles controlar que as customizações não abrem potenciais falhas de segurança, mas também têm ser responsáveis pelo firmware que metem nos aparelhos. E quando coisas como estas são descobertas, as companhias devem ser responsabilidades até que uma resolução para o problema seja libertada.
Este problema pode também servir de uma boa lembrança para nos mantermos com fabricantes de telemóveis conhecidos e com provas dadas em vez de marcas que se limitam a copiar. Aquelas que normalmente apresentam estratégias de descontos gigantes na altura de alguns feriados que apelam ao consumismo.