É evidente que sistemas embarcados em rede precisam de medidas de segurança robustas, mas a maioria dos engenheiros de sistemas embarcados não são especialistas em segurança. Para se proteger contra uma ampla gama de ameaças, eles precisam de orientação sobre a natureza dessas ameaças e uma estratégia de defesa em várias camadas que vá desde a segurança do projeto do hardware até a implementação de protocolos de criptografia.
Essa necessidade levou a um framework de segurança descentralizada baseado em princípios de confiança zero e que enfatiza a tríade CIA — confidencialidade, integridade e disponibilidade.
Vulnerabilidades em Dispositivos na Borda
Na maioria dos casos, as organizações não têm uma compreensão abrangente de todo o escopo das implantações de dispositivos na borda. A Internet das Coisas (IoT) coloca muitos dispositivos além dos perímetros de segurança tradicionais, onde são inerentemente vulneráveis. Os dispositivos geralmente estão situados em locais remotos, tornando difícil o gerenciamento e a segurança de forma eficaz, e os departamentos de TI normalmente têm supervisão limitada dos dispositivos na borda, o que torna o monitoramento um desafio.
Além disso, as equipes de projeto de dispositivos embarcados geralmente têm recursos de teste limitados, então as vulnerabilidades podem passar despercebidas. Esse risco é particularmente alto em muitos projetos que dependem de bibliotecas e frameworks de terceiros. As falhas nesses componentes tendem a ser bem conhecidas e frequentemente exploradas, especialmente para soluções de código aberto.
Da mesma forma, a falha em manter o firmware atualizado pode deixar os dispositivos vulneráveis à exploração. Existe um dilema aqui, pois o firmware frequentemente recebe menos atenção do que o software — mas, ao mesmo tempo, falhas no firmware podem se tornar pontos de entrada para acesso não autorizado e execução de código malicioso.
Infelizmente, mesmo os sistemas mais atualizados podem ser facilmente comprometidos se os mecanismos de autenticação e autorização forem fracos. Falhas como gerenciamento inadequado de credenciais e sessões podem deixar os dispositivos vulneráveis a ataques de força bruta de adivinhação de senha e sequestro de sessão. Da mesma forma, APIs mal projetadas podem ser pontos de entrada fáceis para ataques de negação de serviço (DoS) e outros tipos de ataques.
Por fim, os recursos computacionais limitados em dispositivos na borda restringem o escopo das possíveis defesas e os tornam vulneráveis a ataques de sobrecarga. Esse risco destaca a importância de garantir que os dispositivos de borda tenham recursos adequados para lidar com picos de demanda e sejam resilientes contra ataques de esgotamento de recursos.
Para combater essas ameaças, a tríade CIA descreve três princípios:
- Confidencialidade do código e dados. A criptografia é fundamental para alcançar esse objetivo, mas nem todas as técnicas de criptografia são adequadas para sistemas embarcados devido às restrições de recursos dos dispositivos na borda. Aceleradores de hardware podem aliviar essa carga ao suportar workloads criptográficos comuns, como o Advanced Encryption Standard (AES), um algoritmo de criptografia simétrica amplamente popular, e RSA, um algoritmo de criptografia assimétrica usado em certificação SSL/TLS.
Trusted Platform Modules (TPMs) são inestimáveis para manter as chaves de criptografia seguras. Entre outras funções, os TPMs podem armazenar dados sensíveis, como chaves, senhas e assinaturas digitais, de forma segura dentro de um enclave de hardware que é extremamente difícil de acessar ou manipular.
- Integridade dos dados e operações. Os TPMs, por exemplo, desempenham um papel fundamental em garantir que os dados e as operações permaneçam inalterados e confiáveis, verificando a autenticidade do firmware e software usando assinaturas digitais. Isso possibilita a inicialização segura e protege contra malwares. Além disso, os TPMs podem ser usados para detectar adulterações monitorando mudanças em componentes de hardware, contribuindo para uma postura de segurança mais robusta.
- Disponibilidade para tempo de atividade do sistema e preservação da funcionalidade. Isso inclui medidas como memória ECC (Error Correcting Code) e timers watchdog que podem ajudar a evitar falhas catastróficas. Da mesma forma, mecanismos de software, como tratamento de exceções e autotestes, também podem ser usados para detectar e recuperar erros.
Em alguns casos, é necessário empregar hardware redundante para que quaisquer falhas possam ser tratadas sem interrupção das operações. A redundância de software pode fornecer capacidades semelhantes, por exemplo, duplicando chaves de software em vários ambientes virtualizados.
É claro que nem todas as ameaças ocorrem no domínio digital. O projeto físico dos dispositivos de borda também deve manter a segurança em mente. Além disso, sistemas de backup e planos de recuperação devem estar em vigor para uma restauração rápida caso um sistema seja comprometido.
Estratégias Abrangentes para Proteger Dispositivos de Borda
Implementar medidas que atendam a esses objetivos requer equilibrar cuidadosamente a segurança, as limitações de recursos e as necessidades operacionais. Os engenheiros podem adotar metodologias de segurança comprovadas e adaptadas para sistemas embarcados, para enfrentar esse desafio. Essas incluem:
- Segurança desde o projeto: A segurança deve ser incluída em todas as etapas do desenvolvimento, desde a arquitetura do sistema até os detalhes do projeto. Aspectos a considerar incluem conformidade regulatória e de normas, um ciclo de vida de desenvolvimento de produto seguro e uma estratégia de defesa profunda.
- Arquitetura de confiança zero: Na sua essência, este modelo assume que a infraestrutura está sob ameaças constantes, incluindo dentro dos sistemas pertencentes à empresa. Uma solução robusta inclui três estratégias principais: governança de identidade aprimorada, micro-segmentação lógica e segmentação baseada em rede.
- Segmentação e isolamento: O objetivo é separar sistemas críticos, dificultando que ataques se movam lateralmente dentro da rede. A micro-segmentação restringe todos os pacotes de rede, exceto aqueles que são permitidos. A conteinerização isola aplicativos e suas dependências, contribuindo para a confidencialidade e integridade ao limitar o acesso a informações sensíveis.
Essas abordagens alinham-se bem com os princípios de projeto da tríade CIA, fornecendo aos engenheiros ferramentas eficazes para melhorar a segurança de seus dispositivos de borda. Ao adotar essa estrutura, os projetistas podem minimizar o risco nos seus sistemas e proteger infraestruturas inteiras contra ataques.
Artigo publicado por Brandon Lewis no blog da Mouser Electronics: Prioritize Embedded System Security for Edge Applications
Traduzido pela Equipe Embarcados. Visite a página da Mouser Electronics no Embarcados