Publicado em 13 de junho de 2019
Conheça algumas técnicas para analisar dispositivos IoT e descobrir vulnerabilidades.
De acordo com uma pesquisa realizada pela ESET no início de 2018, 70% dos usuários acreditam que os dispositivos IoT não são seguros. No entanto, 62% disseram que ainda assim comprariam um dispositivo IoT. Esses números se refletem na quantidade de dispositivos IoT que encontramos atualmente em residências e nas compras de usuários, já que em 2018 as vendas de dispositivos inteligentes excederam o número de dispositivos móveis vendidos. De fato, até 2020, de acordo com uma projeção da Gartner, estima-se que haverá 20 bilhões de dispositivos IoT no mundo, um número que equivale a 3 dispositivos por habitante.
A variedade de dispositivos IoT é extremamente ampla e acessível para qualquer usuário. Desde auxiliares de voz, plugues inteligentes, câmeras IP, luzes ou termostatos até o novo “wearable” (dispositivos usáveis) que até mesmo monitora o estado do nosso corpo; todos os tipos de dispositivos podem ser obtidos por preços que variam de 30 a 500 dólares. Ao contrário das tecnologias anteriores, a análise de segurança dos dispositivos IoT é altamente complexa devido à grande variedade de dispositivos e softwares disponíveis no mercado.
No entanto, embora sua análise possa ser complexa, é bom começar com algumas vulnerabilidades conhecidas e algumas técnicas bastante úteis para obter informações.
A primeira coisa que você deve buscar ao analisar um dispositivo IoT é toda a informação que está à vista. Muitos dispositivos fornecem – às vezes de propósito e outros por engano – informações sobre sua configuração, interações, tráfego ou outros arquivos que podem ser úteis para entender melhor sua funcionalidade, o ambiente onde estão conectados ou até mesmo dados pessoais do usuário. Nestes casos, estas informações estão visíveis, sendo apenas uma questão de saber como procurá-las.
Algumas coisas que você pode verificar são:
Informações sobre um dispositivo Google Mini (como a versão) rede à qual está conectado e os horários de ativação.
Em muitos casos, obter o dispositivo IoT que queremos analisar é complicado ou até mesmo caro. No entanto, isso não é motivo para interromper a análise, pois nem tudo passa pela análise do dispositivo. Todos os dispositivos IoT são controlados por meio de aplicativos que podem ser baixados e aos quais podemos aplicar engenharia reversa. De fato, às vezes é melhor começar com a análise dos aplicativos que controlam os dispositivos inteligentes para ver quais são mais vulneráveis e podem nos permitir realizar melhores investigações.
A engenharia reversa é usada para entender como um aplicativo funciona a partir de seu executável ou empacotado. No caso de aplicativos móveis, podemos até obter o código fonte desses, o que é muito útil para analisar suas funções, entender como ele recebe e envia informações, localizar usuários e chaves hardcodeadas e até mesmo descobrir vulnerabilidades e explorá-las. Em alguns casos, é possível até mesmo encontrar os links de download do firmware, que, uma vez baixados, também faz com que seja possível aplicar engenharia reversa.
No caso dos aplicativos para dispositivos móveis, um dos descompiladores mais utilizados é o JADX, que possui uma interface muito amigável para análise. No exemplo a seguir, esse decompilador foi usado para obter o código-fonte de um aplicativo que controla os plugues inteligentes. As funções mais interessantes encontradas neste caso foram aquelas encarregadas de criptografar e descriptografar o tráfego entre o aplicativo e o dispositivo, e a partir dessas funções poder controlar o dispositivo remotamente e sem qualquer tipo de autenticação.
Exemplo de uso do decompilador JADAX para obter o código-fonte de um aplicativo que controla plugues inteligentes.
Exemplo de uso do JDAX para obter o código-fonte de um aplicativo que controla os plugues inteligentes.
Uma grande quantidade de informação viaja desde e para os dispositivos, portanto, poder controlá-la nos dará uma grande vantagem no controle do dispositivo que estamos investigando. Seja porque o dispositivo se comunica através de protocolos inseguros ou porque a comunicação foi descriptografada (como no caso anterior), a partir da análise do tráfego de rede podemos não apenas obter informações sensíveis, mas também entender e analisar protocolos de comunicação. Muitas vezes também podemos alterar os pacotes enviados e recebidos ou até gerar novos pacotes. Ou seja, através da manipulação do tráfego de um dispositivo se torna possível controlá-lo.
A melhor maneira de capturar esses pacotes é através do uso de um proxy, como o Burp Suite. Às vezes, a captura de tráfego pode ser um pouco mais tediosa para analisar e teremos que recorrer a ferramentas como o Wireshark para facilitar nosso trabalho.
Como exemplo, nas imagens a seguir podemos ver o tráfego entre uma webcam e o aplicativo móvel que a controla. Neste caso, o tráfego é enviado em texto simples via HTTP e não só podemos obter informações sobre a câmera, mas também sobre as imagens que são capturadas por ela:
Análise do tráfego entre uma webcam e o aplicativo móvel que a controla.
Análise do tráfego entre uma webcam e o aplicativo móvel que a controla.
Neste caso, se também conseguirmos obter o código-fonte do aplicativo a partir da engenharia reversa, poderemos até entender como os pacotes enviados são formados para controlar o dispositivo, gerá-los a partir de um computador remoto e interceptar a resposta do dispositivo com as imagens produzidas.
Para finalizar, muitos dispositivos se tornam inseguros para usuários que não prestam atenção às configurações. É muito comum (você pode verificar isso no Shodan), encontrar portas e serviços habilitados por padrão, até mesmo alguns obsoletos ou que não estão sendo usados. Além disso, você provavelmente já ouviu falar sobre os usuários e senhas de fábrica (padrão) que não foram alterados e os protocolos inseguros que detalhamos nos casos anteriores.
Até mesmo os desenvolvedores, às vezes, esquecem de desativar o recurso de depuração, que permite que um atacante interaja com a assinatura ou com o sistema operacional do computador. Esse é o caso de alguns dispositivos Android que chegaram ao mercado asiático com a porta ADB (Android Debug Bridge) ativada por padrão e que permitiu que um minerador de criptomoedas infectasse o dispositivo e usasse seus recursos.
Caso tenha dispositivos que deseja analisar, saiba por onde iniciar sua análise para encontrar vulnerabilidades. Por outro lado, se você é um daqueles que gosta de uma casa inteligente, mas prioriza a segurança, existem algumas medidas de segurança que devem ser consideradas:
Cecilia Pastorino 11 Jun 2019 – 02:02PM
Escreva um comentário