Zephyrnet Logo

A segurança dos dispositivos IoT

Data:

A segurança dos dispositivos IoT
Ilustração: © IoT For All

A segurança dos dispositivos IoT é um amplo domínio de especialização que abrange o ambiente em que os dispositivos são executados e as plataformas de hardware e sistemas operacionais que formam as bases sobre as quais a funcionalidade real do dispositivo é construída. Cada área requer diferentes tecnologias e conjuntos de habilidades, mas todas as áreas devem formar juntas uma unidade segura. A dura verdade é que negligenciar uma única área pode ter consequências fatais, mesmo que todas as outras áreas sejam perfeitas.

No entanto, ter um dispositivo seguro fazendo seu trabalho é apenas o começo. A implantação e operação segura não apenas de um dispositivo, mas de toda a frota traz outro desafio na forma de provisionamento, autenticação e gerenciamento de identidade.

Neste artigo

Exploraremos várias áreas essenciais no domínio da segurança IoT. Os dispositivos IoT vêm em vários formatos e tamanhos, mas os seguintes aspectos relacionados à segurança são comuns a todos eles:

  • Perímetro de segurança física de dispositivos IoT
  • Hardware
  • Sistema Operacional
  • Software
  • Identidade e provisionamento de dispositivos IoT
  • Autenticação de dispositivos IoT

Perímetro de segurança física de dispositivos IoT

Os dispositivos IoT normalmente estão localizados em ambientes imprevisíveis, instáveis ​​e inseguros que são muito diferentes, por exemplo, dos sistemas de computador executados em data centers.

Se não for possível garantir segurança física suficiente, é essencial preparar os dispositivos IoT para enfrentar ameaças de atores potencialmente mal-intencionados com acesso físico. Existem várias medidas que os designers de hardware e software podem tomar para reduzir esse risco. Essas medidas podem incluir técnicas gerais, como criptografia de dados em dispositivos de armazenamento, e algumas técnicas mais específicas de IoT que exploraremos no restante do artigo.

Hardware

O hardware é a base para a segurança dos dispositivos IoT. Quando o hardware é comprometido, a maioria das proteções em nível de software que os dispositivos IoT podem ter podem ser contornadas pelos invasores.

Historicamente, quando um invasor obtinha acesso físico a um sistema de computador, o jogo era basicamente o fim do ponto de vista da segurança. Felizmente, muitos avanços foram feitos nesta área, impulsionados por um número crescente de dispositivos IoT e outros tipos de dispositivos móveis. Exemplos de tais proteções em nível de hardware podem ser:

  • Ambientes de execução confiáveis (TEE), como Intel SGX, permitem criptografar porções específicas (enclaves) de memória que podem ser descriptografadas apenas pela CPU em tempo real, evitando efetivamente que código não originário do enclave leia e modifique isso (incluindo o sistema operacional e hipervisores, deve haja algum).
  • Funções fisicamente não clonáveis (PUF) podem ser usados ​​como identificadores de dispositivos exclusivos, não forjáveis ​​e imutáveis.
  • A Trusted Platform Module (TPM) é um processador de criptografia dedicado e armazenamento seguro para dados críticos, como chaves de criptografia. Ele pode gerar números aleatórios criptograficamente seguros e realizar operações criptográficas usando as chaves armazenadas sem expô-las fora do TPM ou validar a configuração de hardware.

Embora estas técnicas tenham sido pesquisadas e implementadas há muitos anos, os PUFs não foram amplamente difundidos e os TEE só recentemente começaram a ganhar força. Por outro lado, os TPMs são considerados um padrão há muito tempo, podem ser encontrados na maioria dos computadores e podem melhorar significativamente a segurança dos dispositivos IoT, sem dúvida.

Também não devemos esquecer que o comprometimento deliberado de um dispositivo IoT por um agente malicioso não é a única ameaça. Muitos dispositivos são colocados ao ar livre, o que torna seu hardware à prova de intempéries uma obrigação.

Sistema Operacional

Embora dispositivos IoT restritos sem sistema operacional (SO) sejam comuns, muitos dispositivos são mais complexos e é necessário um sistema operacional.

O fato de o sistema operacional poder interferir em qualquer processo/programa de computador em execução nele (a menos que algum mecanismo avançado como o TEE mencionado acima seja usado) o torna uma parte igualmente importante da segurança do dispositivo IoT como hardware.

Primeiro, é necessário que haja uma maneira de garantir que uma versão maliciosamente não modificada de um sistema operacional seja carregada durante a inicialização. Tal garantia pode ser obtida assinando digitalmente o sistema operacional e verificando a assinatura durante inicialização. Existem padrões para isso, como seguro Bota.

Por último, mas não menos importante, todos os sistemas operacionais contêm vulnerabilidades de segurança. Além de dia zero ataques, tais vulnerabilidades podem ser efetivamente resolvidas por meio da entrega e aplicação oportuna de patches de software.

Aplicações de Software

O comprometimento de um único aplicativo pode parecer ter um impacto muito menor do que o comprometimento de todo o sistema operacional ou hardware. No entanto, pode ser a única coisa que o invasor precisa para ter sucesso. Além disso, ao contrário dos sistemas operacionais, muitos aplicativos lidam diretamente com dados comerciais confidenciais e interagem com os usuários.

Medidas semelhantes para sistemas operacionais também podem ser aplicadas a vários pacotes de software e aplicativos executados no sistema operacional. A verificação da integridade dos executáveis ​​e de suas atualizações de segurança oportunas deve ser considerada.

Ao escrever aplicativos personalizados, os desenvolvedores devem considerar que o ambiente em que seu código será executado não é confiável. Exemplos:

  • Ao carregar dados confidenciais em RAM, libere e zere a memória alocada o mais rápido possível para reduzir o risco de exposição de dados confidenciais por meio de despejo de memória forçado.
  • Pense duas vezes antes de gravar dados confidenciais em um disco. Mesmo com a criptografia de disco em vigor, os dados serão exfiltrados. Quando for necessário gravar dados confidenciais em disco, considere criptografá-los com uma chave armazenada em um Trusted Platform Module (TPM) mencionado na seção anterior.

Identidade e provisionamento de dispositivos IoT

Para gerenciar de forma significativa uma frota de dispositivos IoT, cada dispositivo deve ter sua própria identidade e deve haver uma maneira de atribuir uma identidade com segurança a novos dispositivos e alterar a identidade dos dispositivos existentes, se necessário. Poderíamos chamar esse processo de “provisionamento de dispositivos”. Para soluções IoT, a identidade é essencial para que, por exemplo, os dados de dispositivos individuais possam ser distinguidos com segurança ou os dispositivos comprometidos possam ser desconectados.

Qual é exatamente a “identidade” de um dispositivo IoT? Depende do contexto. No entanto, o dispositivo precisa de uma forma de provar que sua identidade é legítima (autenticar). Podemos distinguir entre identidade de dispositivo físico e lógico.

Identidade Física

A identidade física é uma identidade em nível de hardware que não deve ser falsificada, exclusiva, imutável e intransferível durante todo o ciclo de vida do dispositivo e normalmente não está relacionada ao domínio de negócios. Em um mundo ideal, a identidade física seria atribuída precisamente uma vez após a conclusão da fabricação do dispositivo. Isto poderia ser conseguido, por exemplo, combinando os números de série de todos os componentes de hardware. No entanto, esta abordagem é muito mais complicada na realidade:

  • Os componentes de hardware podem ser quebrados e substituídos por novos. Para complicar ainda mais, o componente pode ser substituído por um componente reparado de outro dispositivo.
  • Nem todos os componentes de hardware possuem algum número de série ou o número de série não pode ser lido facilmente.
  • Os números de série normalmente não são identificadores criptograficamente seguros.

É por isso que a identidade física geralmente é “aproximada” pela geração de identificadores durante a fabricação ou pelo uso de um número de série de algum componente considerado primário.

Identidade Lógica

A identidade lógica, por outro lado, normalmente está fortemente acoplada ao domínio comercial ou a outros aspectos não técnicos, como a localização do dispositivo. Da mesma forma que a identidade física, a identidade lógica deve ser impossível de ser falsificada e única, mas pode ser mutável e transferível.

Para demonstrar a diferença entre identidade física e lógica, considere o seguinte exemplo de caso de uso: Um braço robótico em uma linha de montagem de automóveis executa uma função específica. É um dispositivo IoT estacionário.

A identidade física deste robô é atribuída diretamente na fábrica, gerando uma identidade criptograficamente segura. UUID (e.g., c2c38155-b0d2-48b6-82fd-22fe3b316224).

Este dispositivo envia dados para um back-end de solução IoT baseado em nuvem e recebe feedback do mesmo back-end. Existem dois tipos de dados que este robô envia:

  • Dados de diagnóstico sobre a funcionalidade executada (por exemplo, quantas peças de carro na linha de montagem foram processadas por este robô a cada hora).
  • Dados de telemetria interna (por exemplo, quantidade de torque aplicada por cada junta).

Se o robô apresentar mau funcionamento e precisar ser substituído, sua identidade física mudará.

Suponhamos que o robô não tenha uma identidade lógica. Nesse caso, correlacionar os dados existentes na nuvem com a identidade do novo robô não é simples. Pode não ser um problema para os dados de telemetria interna porque eles são relevantes apenas para o robô original. Contudo, os dados de diagnóstico sobre a funcionalidade executada podem ser relevantes para o novo robô. Além disso, outros sistemas que estavam se comunicando com o robô original antes de apresentarem mau funcionamento agora precisam ser informados de que o robô foi substituído.

Vamos comparar isso com uma situação em que o robô original também tinha uma identidade lógica relacionada à organização da linha de montagem do carro (por exemplo, linha-03-soldagem-esquerda-12). Se esta identidade lógica for utilizada para armazenar os dados de diagnóstico e para comunicação com outros sistemas, a substituição do robô pode ser muito mais fácil.

Autenticação de dispositivos IoT

Não importa quais identificadores os dispositivos IoT usam e como são gerados, os dispositivos devem provar que os identificadores que usam são legítimos. O processo de garantir que um identificador seja legítimo e usado por um dispositivo correto é chamado de autenticação.

A autenticação de dispositivos IoT é sempre baseada em simétrico or chave assimétrica (pública) algoritmos de criptografia e algoritmos de hash. Esses algoritmos sempre precisam de uma chave secreta armazenada em algum lugar do dispositivo.

O modo como a autenticação funciona depende exatamente do algoritmo específico. No entanto, sempre existem as duas suposições a seguir:

  • A identidade do dispositivo está vinculada à chave secreta.
  • A chave secreta é verdadeiramente secreta.
  • Para algoritmos assimétricos, só é conhecido pelo dispositivo.
  • Para algoritmos simétricos, ele é conhecido apenas pelo dispositivo e pela parte autenticadora (por exemplo, solução IoT apoiada).

Tratamento de chaves secretas

Onde e com que precisão as chaves secretas são armazenadas depende dos recursos do dispositivo e do algoritmo de autenticação específico. A abordagem de última geração é manter as chaves em Trusted Platform Modules (TPMs). Os TPMs podem executar operações criptográficas diretamente sem expor as chaves secretas, fornecendo proteção contra a exfiltração de chaves.

Uma boa prática é derivar chaves de curta duração/baseadas em sessão da chave primária para minimizar a exposição da chave primária e fornecer sigilo para a frente.

Exemplos

Os algoritmos, padrões e protocolos mais amplamente usados ​​são:

  • RSA, Elliptic Curves, SHA2: Criptografia de chave assimétrica (pública) fundamental e algoritmos de hash.
  • Certificados X.509: Padrão que define como acoplar chaves assimétricas à identidade por meio de objetos chamados certificados.
  • mTLS: Protocolo para proteger conexões TCP. Ao contrário do TLS simples, ambos os lados da conexão são autenticados. Ele é construído com base nos algoritmos básicos de criptografia e hash e nos certificados X.509 mencionados acima.
  • HMAC: Algoritmo simétrico baseado em chave que pode gerar um identificador de dispositivo assinado, que os dispositivos podem usar para provar sua identidade.

Principais lições

A natureza da segurança da IoT é multifacetada. Embora existam muitos tipos de dispositivos IoT, existem alguns aspectos de segurança comuns que qualquer projetista de soluções IoT deve considerar:

  • O ambiente em que o dispositivo está sendo executado (perímetro de segurança física).
  • As bases nas quais o dispositivo é construído (hardware, sistema operacional).
  • O código real que torna o dispositivo útil (software).
  • Processos necessários para que o software seja executado de maneira segura, controlável e escalável (identidade, provisionamento e autenticação).

Por outro lado, não é uma boa ideia seguir e implementar cegamente todas as sugestões fornecidas neste artigo. Algumas medidas são mais importantes que outras para diversas soluções de IoT, e algumas podem até não ser relevantes ou viáveis ​​em determinados contextos. No entanto, o relaxamento das medidas de segurança deve sempre ser feito de forma consciente e após a devida consideração.

local_img

Inteligência mais recente

local_img