Nesta postagem, aprofunde-se em detalhes relacionados especificamente à estrutura de atualização de software over-the-air (OTA) em um ambiente corporativo.

Dispositivos inteligentes são cada vez mais usados ​​em uma ampla variedade de aplicações, de sistemas domésticos inteligentes a controles industriais. O mercado de Internet das Coisas deverá crescer para mais de US $ 1,5 trilhão até 2025. Cada vez mais dispositivos estão incluindo funcionalidades acessíveis pela rede, mas infelizmente muitos deles não tomam as medidas de segurança adequadas. Atores mal-intencionados podem se infiltrar em dispositivos mal protegidos e coletá-los no que é chamado de “botnet”. Os efeitos desses botnets podem ser dramáticos, às vezes resultando em interrupções em escala global. Ataques de ransomware estão se tornando comuns. Mesmo os dispositivos conectados que parecem inofensivos, como tanques de peixes, podem ser usados ​​como vetores para ataques caros.

Para responder às ameaças, os designers devem fornecer a capacidade dos sistemas implantados remotamente de receber atualizações de software, que, se mal implementadas, podem fornecer outro vetor para ataques. Nesta postagem, discutiremos algumas considerações de segurança e privacidade para dispositivos conectados e nos aprofundaremos em detalhes específicos relacionados à estrutura de atualização de software over-the-air (OTA) em um ambiente corporativo. Começamos revisando alguns princípios gerais de segurança que devem fazer parte do design de qualquer sistema. Em seguida, examinaremos as considerações para a estrutura de atualização em si, incluindo decisões de design que devem ser feitas com antecedência para evitar o retrofit da camada do sistema. Em seguida, detalharemos as necessidades de segurança do sistema operacional do dispositivo de destino. Finalmente,

 

Princípios gerais de segurança

 

A segurança é um processo e uma mentalidade. Não existe um interruptor mágico que possamos alternar para tornar um sistema seguro. É importante ficar vigilante, revisando as falhas de segurança existentes e adaptando-se ao seu fluxo de trabalho para contabilizá-las. Novas classes de ataques aparecem aparentemente todos os dias e as equipes de engenharia devem se preparar para isso a fim de permanecerem seguras. Os chapéus brancos precisam acertar todas as vezes, enquanto os chapéus pretos precisam acertar apenas uma vez. Você precisa identificar quais recursos são dignos de proteção. É improvável que um banco de dados de leituras do tempo contenha informações proprietárias, ao passo que um banco de dados de clientes certamente contém. Você desejará adaptar a segurança para corresponder à gravidade de uma violação. O objetivo da maioria dos dispositivos de segurança é aumentar o custo de um ataque ou reduzir o valor de qualquer violação bem-sucedida.

É importante perceber que o sistema de atualização OTA geralmente se preocupa apenas com ataques e vulnerabilidades potenciais ao próprio processo de atualização. Ele não oferece nenhuma proteção contra ataques que ocorreram fora da alteração da atualização. Para esses tipos de ataques, você precisa contar com outros componentes fornecidos pelo seu sistema operacional.

Uma consideração geral de segurança extremamente importante é o princípio do menor privilégio. Isso afirma que os componentes do seu sistema devem ter o acesso mínimo necessário para realizar as funções exigidas. Isso ajuda a limitar os danos que podem ser causados ​​quando um determinado componente é violado.

Outras coisas a considerar ao projetar seu sistema, mas não diretamente relacionadas às atualizações OTA são:

 

Sistemas de controle de acesso (como SELinux ou SMACK )

 

Modo de segurança

 

Armazenamento somente leitura

 

Hardware de segurança

 

Considerações de segurança para uma estrutura de atualização

 

Além dos princípios gerais de segurança que qualquer dispositivo em rede deve seguir, as estruturas de atualização OTA têm algumas preocupações específicas. Essas preocupações afetam três partes do seu processo de atualização:

 

 

 

lado do servidor, onde as atualizações são armazenadas e implantadas

 

lado do cliente, o dispositivo que recebe a atualização e o software em execução no dispositivo que implementa as atualizações OTA

 

ferramentas, os certificados, chaves e outras ferramentas que garantem a segurança do processo.

 

Lado do servidor

 

Uma das primeiras decisões ao projetar o lado do servidor de sua estrutura de atualização é onde você hospedará o sistema. É possível hospedá-lo em servidores de sua propriedade, mas é preciso levar em consideração a segurança física deles. Quem deve ter acesso? Como isso é controlado e, mais importante, revogado? Que outra segurança existe? Existem câmeras de segurança adequadas e outras medidas? Todos nós já vimos filmes ou programas de TV em que os personagens vestem um uniforme e carregam uma prancheta (ou, mais provavelmente, um tablet) e simplesmente passam pela recepção de segurança de um edifício. Obter acesso físico a esses sistemas pode facilmente contornar muitos dos outros mecanismos de segurança que temos em vigor.

Devido à complexidade de gerenciar seus próprios servidores físicos, cada vez mais projetos estão usando provedores de nuvem para terceirizar esses problemas. Fornecedores como Amazon , Google e Microsoft fornecem sistemas robustos com gerenciamento remoto completo que devem ser considerados para a configuração do seu servidor, a menos que você já tenha experiência e infraestrutura física no local. Construir seus componentes de servidor usando sistemas de contêiner, como Docker oferecem grande flexibilidade na escolha do fornecedor de nuvem e permitem a possibilidade de migrar entre eles, caso seja necessário. A maior vantagem de usar esses provedores é que eles lidam com todas as necessidades de segurança física, permitindo que você se concentre em seus aplicativos. Você normalmente ainda é responsável pela seguranç