O seu dispositivo IoT é seguro?

segurança em IoT

Muito vem se falando da tal Internet das Coisas nos últimos tempos. Já é fato que essa tendência já se confirmou e que o mercado já está se movimentando, fortemente, para a criação dos produtos conectados, que de acordo com algumas previsões, ultrapassará os 20 bilhões de dispositivos até 2020.

 

Toda vez que falamos de Internet das Coisas, ou como eu gosto de falar, dispositivos conectados, uma dúvida logo aparece. E a segurança em IoT?

 

Se tratando de grandes corporações, logo pensamos que a segurança será vista como uma das fases prioritárias do desenvolvimento de um produto, mas infelizmente não é isso que ocorre em alguns casos, onde empresas de grande porte no mercado lançaram produtos para IoT com severas falhas de segurança, muitas vezes causando prejuízos de centenas de milhares de dólares.

 

 

Mas como isso pode acontecer?

 

Usualmente, falhas de segurança são inseridas durante o desenvolvimento do produto, seja por um algoritmo mal implementado, uso de bibliotecas de terceiros com falhas de segurança, robustez do protocolo escolhido, falhas do hardware, entre outras causas que não foram detectadas durante o processo de teste do dispositivo.

 

Dentro de um processo de desenvolvimento de um produto, devemos envolver diversas áreas do conhecimento, uma delas a da segurança da informação. O que na maioria dos casos acontece é que, para colocar o produto o mais rápido possível no mercado, as empresas acabam pulando importantes etapas, e a de segurança pode ser uma delas.

 

Verificar se um dispositivo IoT é seguro ou não envolve muitos testes e análises, o que pode levar um longo tempo, mas para evitar alguns dos erros mais comuns. Vamos analisar algumas das técnicas que podem evitar dores de cabeça e uma má reputação do seu produto e da sua empresa.

 

Vale ressaltar que os pontos a seguir não são aplicáveis a todos os dispositivos de IoT, mas englobam de forma genérica a maioria dos casos.

 

Separamos abaixo os 5 casos mais comuns de falta de segurança em dispositivos físicos, ou seja, no hardware e firmware/software embarcado de IoT.

 

 

1 – Autenticação e senhas

 

Qual é a senha do seu dispositivo?

 

De uma forma ou outra, o dispositivo IoT irá se conectar à Internet, seja por um gateway ou diretamente a um serviço na nuvem, certo? Ou o dispositivo permitirá que o usuário se conecte a ele por meio de aplicativo, interface web local para a etapa de configuração.

 

Alguns dispositivos possuem uma senha de autenticação para que o usuário configure o dispositivo, porém essa senha por muitas vezes é padrão e em alguns casos o usuário não tem a opção de trocá-la. Isso gera um grande problema, onde uma vez essa senha seja exposta, todos os dispositivos do mesmo fabricante estarão comprometidos.

 

Como deixar o sistema mais robusto?

 

É vital que senhas padrão sejam obrigatoriamente trocadas durante o processo de configuração e que as boas práticas de composição de senhas seguras sejam aplicadas, tais como um número mínimo de caracteres e obrigatoriedade de caracteres especiais.

 

Recomenda-se também aplicar proteção contra o número de tentativas de autenticação, a fim de proteger o sistema contra mecanismos de força bruta.

 

 

2 – Criptografia

 

Os seus dados são transmitidos de forma segura?

 

Criptografia é uma das, senão as maiores, preocupações em relação aos dispositivos de IoT. Transmitir dados de um ponto a outro pode parecer uma tarefa simples, mas não quer dizer que o mesmo seja seguro. Toda comunicação entre o dispositivo até a nuvem, que é feita de forma desprotegida, pode ser capturada durante a transmissão.

 

Alguns dos cenários mais comuns de ataques envolvem a interceptação dos pacotes de comunicação e a leitura dos conteúdos, conhecido como técnica de eavesdropping, onde todo o conteúdo transmitido ou recebido pelo dispositivo, pode ser lido, sem que o usuário perceba. Caso a comunicação não esteja criptografada, todo o conteúdo poderá ser lido e informações importantes vazadas, incluindo senhas, e-mail, chaves de autenticação, entre outras informações sensíveis.

 

Como resolver isso?

 

A criptografia tem seu preço. Alguns sistemas de baixo processamento, não tem capacidade de lidar com criptografia, sendo necessário, em alguns casos, a utilização de técnicas de criptografia de baixo processamento, como a IEC 29192, Twofish e ECC (Elliptic Curve Cryptography).

 

O volume de dados tende a aumentar consideravelmente com a implementação de criptografia. Tendo isso em mente, para sistemas que dependem de comunicação GSM, 2G, 3G, 4G ou qualquer outro meio com limite ou cobrança pelo tráfego, deve ser levado em consideração esse aumento de dados trafegados.

 

Não reinvente a roda, utilize algoritmos que já foram amplamente implementados e testados e ainda não foram quebrados. Boas opções são AES, RSA, ECC, Blowfish ou até mesmo Twofish com chaves iguais ou superiores a 128 bits.

 

Para uma conexão web TCP/IP segura, é recomendável também o uso de protocolos SSL/TLS.

 

Implementar criptografia é praticamente obrigatório para dispositivos de IoT, já que as informações trafegadas podem ser utilizadas para outros fins e, em alguns casos, os dispositivos podem ser invadidos e controlados por pessoas não autorizadas. Ninguém quer que as suas informações sejam publicadas ou utilizadas sem o seu conhecimento.

 

 

3 – Privacidade

 

Que tipos de dados o seu dispositivo coleta?

 

Uma das grandes preocupações em relação à segurança dos dispositivos é a questão da privacidade. Basicamente a privacidade em dispositivos IoT consiste em não expor de forma pública, seja por vazamento de informações, ataques ao sistema de armazenamento, vulnerabilidades que expõem estes dados, ou mesmo a venda dos dados coletados sem a autorização do usuário pelo fabricante ou provedor de serviço.

 

Outro ponto importante é deixar claro ao usuário, quais são os dados coletados. Ninguém quer que uma lâmpada IoT colete o som ambiente ou que a sua cafeteira colete dados do seu tipo de café favorito para vender esta informação para o fabricante do café. A não ser que o usuário saiba que isso acontecerá e autorize ao fabricante do dispositivo em fornecer os dados.

 

Em casos mais complexos de exposição destes dados, toda a informação coletada pode ser usada como entrada para sistemas de reconhecimento de padrões e assim conhecer a sua rotina sem que ninguém esteja o vigiando pessoalmente. Isso pode levar a um problema de segurança, onde a sua segurança pessoal pode ser comprometida com o vazamento destas informações.

 

Mas como evitar isso?

 

Colete apenas as informações que são essenciais ao seu sistema. Não colete informações sensíveis, e caso precisar coletar, use criptografia e deixe claro ao usuário de que tipo de informação está sendo coletada e como será protegida.

 

É recomendável a criação de um termo de aceite em que o usuário seja avisado de quais informações estão sendo coletadas e transmitidas.

 

Outro ponto importante é a retenção dos dados. Os dados devem ser mantidos por um certo período de tempo e depois apagados. Caso o usuário queira reter os dados, ele mesmo deverá faze-lo.

 

 

4 – Segurança de Firmware/Software

 

O seu dispositivo atualiza o firmware/software de forma remota?

 

Atualizações remotas, ou como são conhecidas OTA (Over the Air), são uma excelente funcionalidade, já que bugs ou novas funções podem serem adicionadas, muitas vezes, sem que os usuários percebam. Isso parece muito bom, mas pode trazer um problema ainda maior, já que algumas soluções não validam a autenticidade do firmware que será instalado ou transmitem o firmware por canais não criptografados, onde podem ser facilmente interceptados.

 

Uma das potenciais e reais ameaças para dispositivos de IoT não seguros, é a criação de uma rede de robôs, a já bem conhecida botnet. Já foram relatados casos em que um dispositivo foi atualizado com uma variante do firmware original, alterada para outro fim, tornando o dispositivo um nó de uma botnet, enviando spans através do dispositivo.

 

Como melhorar o sistema?

 

Transmitir os binários por meios seguros e criptografar o firmware é um bom começo. Assinar o firmware deixa a solução ainda mais robusta, já que o firmware será validado antes de ser atualizado no sistema. Engenharia reversa de firmware é um risco que tem que ser levado em consideração.

 

O gerenciamento das atualizações também é um ponto importante. As atualizações precisam estar armazenadas em um local seguro, com autenticação e não permitir que os usuários baixem os arquivos diretamente pelo servidor.

 

 

5 – Segurança física

 

O seu dispositivo tem porta física com acesso ao sistema operacional?

 

É uma mão na roda aquela porta serial com acesso ao sistema operacional do seu produto. Ajuda muito no desenvolvimento e nos testes do produto, mas pode ser utilizada de forma não autorizada caso o seu produto final vá para o mercado com ela desprotegida.

 

Uma porta serial, que dá acesso ao sistema, muitas vezes como usuário root, pode ser usada para ter acesso a recursos privados ao sistema, dos quais o usuário não deveria ter, como, por exemplo, acesso aos dados privados ou a alguma propriedade intelectual do produto, seja código, scripts, ou informações privadas.

 

A segurança física também pode ser associada à forma em que os dados são armazenados. Existem dispositivos, que por algum motivo, usam cartões de memória removíveis, tipo SD-Cards, Compact Flash, etc. Estes cartões podem ser facilmente removidos do dispositivo e o o conteúdo transferido para um computador.

 

O que fazer?

 

O mais sensato é retirar fisicamente as portas de acesso na versão final do produto. Caso não seja possível a remoção física, por algum motivo, implementar mecanismos de autenticação, proteção contra leitura do firmware, e/ou restringir o acesso ajuda na proteção do dispositivo.

 

Se for usar algum tipo de armazenamento, dê preferência a chips de memória soldados na placa, mas se não for possível e a solução for usar um cartão removível, use criptografia.

 

 

Mas não é só isso!

 

Claro que a segurança dos dispositivos de IoT não se limitam apenas a esses 5 pontos, que foram focados nos dispositivos físicos, mas já é um bom início para a construção de uma solução segura.

 

Devemos sempre ficar atento a quaisquer detalhe, que por algum descuido ou o famosodeixa isso depois”, possa causar danos aos usuários do seu produto.

 

Lembre-se que alguns dos dispositivos de IoT ficaram famosos, de forma negativa, por conta das vulnerabilidades encontradas, e isso não é nada bom para a imagem da empresa.

 

Desenvolver uma solução 100% segura é utopia. Nunca podemos considerar que um sistema será 100% seguro, mas devemos tornar a solução mais robusta e assim limitar as formas de ataque.

 

Pense em segurança desde o início do projeto!

 

 

Referências

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Pedro Minatel
Formado em Analise de Sistemas e com técnico em Eletrônica, trabalha há mais de 10 anos com o desenvolvimento de produtos, com foco em embarcados. Atualmente trabalha com pesquisa de tecnologias de segurança embarcada, possuindo patentes nacionais e internacionais nas áreas de segurança, wearables e Internet das Coisas. Publica regularmente artigos técnicos de desenvolvimento para a Internet das Coisas em seu blog pessoal e já teve trabalhos publicados em diversas conferências e é membro do Laboratório Hacker de Campinas.

5
Deixe um comentário

avatar
 
3 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Fernando Mendonça de AlmeidaFranklin S.C. BonfimPedro MinatelCaio Pereira Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Fernando Mendonça de Almeida
Visitante
Fernando Mendonça de Almeida

Se alguém se interessar: https://www.researchgate.net/publication/280560581_An_Architecture_for_Self-healing_in_Internet_of_Things

Nesse artigo eu proponho uma arquitetura de autoproteção para a Internet das Coisas. Discutindo basicamente problemas como Denial of Service e Sinkhole.

Também podem entrar em contato!

Franklin S.C. Bonfim
Visitante
Franklin Bonfim

Artigo ficou muito bom! A segurança em IoT tem sido um tema bem polêmico, que muitas vezes muitos palestrantes tem evitado de falar.

Pedro Minatel
Visitante
Pedro Minatel

Franklin, obrigado! Segurança é um dos pontos mais importantes, não só em IoT. Devemos pensar em segurança como design, e não como correção de falhas.

Caio Pereira
Visitante
Caio Pereira

Pedro um artigo que li recentemente bem interessante tb Security Guidance for Critical Areas of Embedded Computing: https://prpl.works/security-guidance/

Pedro Minatel
Visitante
Pedro Minatel

Olá Caio, muito boa a referência. Vou incluir na minha lista de artigos para leitura.

Obrigado!