Dicas práticas para segurança de sistemas embarcados

Embora os sistemas embarcados tendam a não ter a capacidade de processamento de servidores ou até mesmo computadores pessoais modernos, o grande número de dispositivos os torna um alvo cada vez mais valioso para maus feitores que procuram executar botnets ilegais e operações de mineração de criptomoedas. Um dos primeiros casos relacionados à segurança para os projetistas de sistemas embarcados que chamaram atenção foram os ataques de botnet do termostato Nest de 2016. Dada a natureza voltada para o consumidor da Internet das Coisas (IoT) específica, juntamente com uma maior sensibilidade em relação à privacidade e segurança; o botnet Nest causou uma enorme discussão. Essas discussões tendiam a se concentrar em como as empresas devem construir segurança em seus produtos de IoT de baixo custo e como os consumidores podem operar com segurança os dispositivos em suas casas e empresas.

Com a crescente ameaça de ataques cibernéticos, é essencial que os desenvolvedores mantenham as medidas de segurança em mente durante todo o processo de projeto. Seguindo algumas dicas e recomendações práticas, os desenvolvedores podem se proteger contra uma ampla variedade de cenários de ataque. Continue lendo e encontrará um resumo das medidas de segurança que os desenvolvedores podem usar em seus projetos embarcados.

Construindo a segurança

Embora existam inúmeras arquiteturas de chip, sistemas operacionais e protocolos de comunicação; muitos dispositivos IoT tendem a ser construídos em torno de arquiteturas baseadas em Arm® e, se executam um sistema operacional, tende a ser uma distribuição Linux. Essa semelhança é boa de várias maneiras; custos mais baixos e tempos de desenvolvimento mais rápidos; ele também vem com alguns pontos negativos. Os vetores de ataque tendem a se tornar de “tamanho único”, especialmente para dispositivos que executam um sistema operacional baseado em Linux. Para mitigar as ameaças associadas a dispositivos difundidos que compartilham uma arquitetura comum, os desenvolvedores devem implementar os seguintes princípios de projeto de segurança de “ganho rápido”:

  • NÃO codifique senhas no firmware. Além disso, não use uma senha padrão comum para todos os dispositivos. Exija que o usuário crie um nome de usuário e uma senha personalizados durante a inicialização do dispositivo.
  • NÃO habilite protocolos inseguros como HTTP, FTP ou Telnet por padrão. Os dados que saem do dispositivo por meio de protocolos com ou sem fio devem ser fortemente criptografados. Evite soluções de criptografia “fabricadas em casa”.
  • Envie o dispositivo com a configuração mais restritiva possível e permita que o usuário final tome uma decisão proativa para reduzir as configurações relacionadas à segurança.
  • Todos os mecanismos usados para acessar os dispositivos devem exigir controles de autenticação e autorização. A autenticação de dois fatores (2FA) deve ser usada se possível.
  • Todas as entradas voltadas para o usuário devem ser filtradas para evitar ataques do tipo injeção.
  • Implemente uma interface de gerenciamento de dispositivos segura para o usuário final que permitirá que eles gerenciem seus ativos, atualizem, monitorem e desativem com segurança os dispositivos que atingiram seu fim de vida (EOL).
  • Os mecanismos de atualização Over-The-Air (OTA) devem ser validados no dispositivo. Os arquivos de atualização devem ser enviados criptografados em rota para o dispositivo. Por fim, verifique se há recursos anti-reversão para evitar que um dispositivo seja revertido para um firmware anterior e inseguro.
  • Se bibliotecas de software de terceiros forem usadas no design do seu dispositivo, elas devem ser monitoradas continuamente para garantir que as atualizações de terceiros sejam integradas e que não se tornem obsoletas. Projetos de software abandonados podem se tornar vulnerabilidades desagradáveis para o seu dispositivo. Altere as senhas padrão de software de terceiros antes de confirmá-las em seu projeto.
  • Limite quais dados confidenciais devem ser armazenados no dispositivo. Armazene essas informações apenas em um enclave seguro.
  • Lembre-se de que, com a IoT, os sistemas embarcados são apenas uma parte de um ecossistema maior. Certifique-se de que a segurança também esteja integrada na nuvem, no desktop e nos aplicativos móveis. A segurança do ecossistema é tão forte quanto o elo mais fraco.
  • Considere estabelecer um programa de recompensas de bugs para incentivar usuários finais e pesquisadores de segurança a enviar falhas de maneira segura e responsável.

O acesso físico a um dispositivo tende a ser uma situação crítica para os dispositivos. Isso não significa que não há coisas que possam ser feitas para dificultar a exploração física desses tipos de dispositivos. Livros inteiros foram escritos sobre como fazer placas de circuito e gabinetes associados resistentes a adulterações, mas para alguns “ganhos rápidos”, considere as seguintes regras práticas de projeto físico para fortalecer seu dispositivo:

  • Pinos para depurar portas como JTAG e UARTs são muito úteis ao desenvolver e testar um dispositivo. Eles também são alvos tentadores para aqueles que procuram fazer engenharia reversa de um dispositivo com más intenções. É recomendável ofuscar esses pinos e/ou remover os pinos do cabeçote para unidades de produção. Observe que isso dificulta solucionar problemas uma vez em campo. Os projetistas devem considerar um equilíbrio entre segurança e manutenção.
  • O uso de adesivos, soldagem ultrassônica e/ou parafusos de segurança especiais podem dificultar a abertura de um dispositivo.
  • A aplicação de um epóxi não condutor sobre componentes sensíveis pode ofuscar sua identidade e propósito.
  • Você pode ficar tentado a usar componentes mais antigos que podem ter vulnerabilidades. Esteja ciente dos componentes falsificados também. Se um acordo parece bom demais para ser verdade, provavelmente é. Equilibrar as considerações de segurança e tempo de colocação no mercado não é uma decisão a ser tomada de ânimo leve.
  • Placas multicamadas podem ser usadas para rotear rastreamentos de uma maneira que torna mais difícil discernir como a placa funciona.

Algumas das recomendações a seguir podem ser um pouco demais para dispositivos IoT de nível de consumidor. No entanto, como detalharemos mais adiante, os sistemas de controle industrial e os sistemas de defesa provavelmente se beneficiam dessas medidas de segurança física mais robustas:

  • Crie recursos de segurança na própria placa, como micro interruptores, interruptores de mercúrio ou interruptores magnéticos que podem detectar se uma placa está sendo manuseada ou aberta involuntariamente. Fio de nicromo ou fibra óptica também podem ser usados. Se o fio ou fibra for impactado negativamente por alguém tentando adulterar um dispositivo, haverá uma mudança detectável no fluxo de corrente do fio ou no comportamento dos fótons através da fibra.
  • Ataques de canal lateral ou de falha, embora talvez não sejam comuns, fornecem uma vantagem única aos invasores, pois eles usam as leis da física contra um dispositivo e, portanto, são muito difíceis de evitar, embora possam ser detectados. Ao atacar o tempo ou restringir o fluxo de elétrons para uma CPU, é possível fazer um dispositivo agir de maneiras não intencionais que negam recursos de segurança. Sensores de tensão e corrente podem ser implementados nas placas de circuito para detectar se a falha pode estar ocorrendo, embora haja potencial para falsos positivos.
  • Invasores significativos podem empregar máquinas de raio-x para examinar microchips e descobrir a topografia dos transistores para determinar a função e muito mais. Sensores que detectam raios-x podem ser adicionados para detectar adulterações, embora não possam fazer nada para impedir que um adversário extraia informações úteis.

Deve-se notar que existe uma grande dicotomia entre os paradigmas de segurança e abertura. Ofuscação de valores de segurança. Entendimento de valores de hardware aberto. Independentemente disso, lembre-se do velho ditado de que as fechaduras apenas mantêm as pessoas honestas, honestas, e o mesmo acontece com a segurança em geral. Para obter mais informações sobre como criar dispositivos IoT seguros, visite o Projeto IoT Open Web Application Security Project (OWASP).

Operando em segurança

Mesmo que um fabricante pudesse implementar todos os melhores princípios de projeto seguro em seu produto, eles seriam em grande parte em vão se o usuário final não operasse seu dispositivo de maneira segura.

  • Altere o nome do roteador padrão, a senha do roteador, o nome da rede (SSID) e a chave de criptografia de rede. Certifique-se de usar princípios de senha forte e não use a mesma senha para ambas as redes.
  • Segmente sua rede doméstica em duas redes “virtuais” para que os dispositivos IoT não possam ser “vistos” pelos computadores desktop, dispositivos NAS (Network Attached Storage), etc. Para fazer isso de maneira rápida e fácil, use o recurso de rede convidada para sua rede IoT .
  • A maioria dos dispositivos IoT depende de um aplicativo de smartphone para controlar o dispositivo. Mantenha o aplicativo atualizado e use 2FA para login, se disponível.
  • Desative todos os recursos de seus dispositivos IoT que você não pretende usar.
  • Atualize regularmente o firmware do roteador e dos dispositivos IoT.
  • Quando um dispositivo IoT chega ao fim da vida útil e não recebe mais atualizações, considere substituí-lo por um modelo mais recente.

Segurança de força industrial

Os produtos de IoT voltados para o consumidor podem ser abundantes, mas suas contrapartes industriais, coletivamente chamadas de Sistemas de Controle Industrial (ICS), gerenciam vários processos extremamente importantes e potencialmente perigosos. Tudo, desde a produção de energia até as fábricas, usa tecnologia digital embarcada (referida como Tecnologia Operacional ou OT; em contraste com a Tecnologia da Informação ou TI centrada no escritório) para controlar as instalações e máquinas associadas responsáveis ​​​​pela execução dos vários processos. O ambiente ICS é suficientemente diferente de um ambiente de TI estrito para que sejam garantidas considerações especiais para proteção de dispositivos OT e redes ICS. O princípio mais fundamental é que o ICS não deve ter uma conexão com a internet. Embora isso pareça óbvio, é surpreendente a frequência com que essa regra fundamental é violada. Para obter mais informações sobre como proteger redes e dispositivos ICS, há duas estruturas de segurança que você deve revisar: MITRE ATT&CK para ICS e MITRE ATT&CK para Enterprise.

A natureza de onde os sistemas ICS são normalmente encontrados (por exemplo, áreas que são ambientalmente, quimicamente ou de outra forma perigosas) significa que o ICS foi projetado para priorizar a disponibilidade dos sistemas em detrimento da confidencialidade. De uma perspectiva positiva, isso normalmente significa que existem sistemas redundantes e eles são projetados para falhar com segurança. No entanto, os sistemas ICS podem ser deixados em operação por várias décadas e nem sempre são mantidos atualizados. Além disso, muitos dos protocolos são mais antigos e foram construídos com eficiência, não com a segurança em mente. Resumindo, a segurança no espaço ICS ou IIoT é um desafio único e as melhores práticas podem ser difíceis de implementar. No entanto, os desenvolvedores embarcados de tais máquinas devem estar cientes da necessidade de modernizar suas práticas de projeto e incorporar a segurança em projetos futuros e não tratá-la como uma reflexão tardia.

Artigo escrito por Michael Parks e publicado no blog da Mouser Electronics: Practical Tips for Embedded System Security

Traduzido pela Equipe Embarcados. Visite a página da Mouser Electronics no Embarcados

(*) este post foi patrocinado pela Mouser Electronics

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Software » Dicas práticas para segurança de sistemas embarcados

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: