Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial Internet of Things >> Tecnologia da Internet das Coisas

Seis etapas para proteger sistemas embarcados na IoT

Mark Pitchford da LDRA
A segurança continua a ser uma preocupação primordial para uma vasta gama de sistemas embarcados na Internet das Coisas (IoT). Se infiltrados, os sistemas enterrados na rede elétrica, geração de energia, fabricação, sistemas automotivos, dispositivos médicos, gerenciamento de edifícios, bombas de gasolina, torradeiras e muito mais, podem ser um risco significativo, Mark Pitchford da LDRA relatórios.

Felizmente, com segurança, o velho ditado “um grama de prevenção vale um quilo de cura” certamente é verdade, e a base da frase da moda “virar para a esquerda” muito mais recente! A previsão da engenharia ajuda a construir sistemas seguros a um custo menor do que os testes reativos posteriores. Na verdade, uma vez que a construção de software seguro tem muito em comum com a construção de aplicativos funcionalmente seguros, o desenvolvimento de software seguro começa seguindo os processos de segurança funcional.

Considere estas práticas recomendadas para ajudar a produzir código de alta qualidade e melhorar a segurança dos sistemas incorporados:

1. Incluir segurança no ciclo de vida de desenvolvimento de software


A verificação de código seguro tradicional é amplamente reativa. O código é desenvolvido de acordo com diretrizes relativamente flexíveis e, em seguida, testado para identificar vulnerabilidades. Seja usando o desenvolvimento ágil ou um modelo de ciclo de vida de desenvolvimento tradicional, há uma abordagem mais proativa para a segurança projetada.

Com o desenvolvimento tradicional, os requisitos fluem para o design, para o código (talvez por meio de um modelo) e para os testes. Com o desenvolvimento ágil, os requisitos são construídos iterativamente em camadas de dentro para fora, cada uma com seu próprio loop de requisitos, design, código e teste. Com qualquer uma das metodologias, garantir que os requisitos de segurança sejam parte integrante do processo de desenvolvimento levará a um resultado muito mais satisfatório do que simplesmente procurar vulnerabilidades no final.

2. Garanta rastreabilidade bidirecional


A maioria dos padrões de segurança funcional exige evidência de confirmação de rastreabilidade bidirecional de cobertura completa e completa entre as fases de desenvolvimento, entre todos os estágios de desenvolvimento, desde os requisitos até o projeto, código e teste. Com essa transparência, o impacto de quaisquer mudanças nos requisitos ou de casos de teste com falha pode ser avaliado com análise de impacto e, em seguida, resolvido.

Os artefatos podem ser regenerados automaticamente para apresentar evidências de conformidade contínua com o padrão apropriado. Onde a segurança é fundamental, a rastreabilidade bidirecional também garante que não haja código redundante ou funcionalidade não especificada e isso inclui métodos backdoor. Essas vantagens enfatizam o valor do desenvolvimento sistemático para aumentar a capacidade de construir sistemas seguros.

3. Escolha um subconjunto de idioma seguro


Ao desenvolver com C ou C ++, cerca de 80% dos defeitos de software podem ser atribuídos ao uso incorreto de 20% das construções da linguagem. Os subconjuntos de idiomas melhoram a proteção e a segurança, evitando ou sinalizando o uso de construções não seguras. Dois padrões de codificação populares, MISRA C e Carnegie Mellon Software Engineering Institute (SEI) CERT C, ajudam os desenvolvedores a produzir código seguro.

Aplicar MISRA C ou CERT C resultará em um código mais seguro do que se nenhum deles fosse aplicado. No entanto, a aplicação manual dessas diretrizes custa tempo, esforço, dinheiro e, ironicamente, qualidade, já que o processo manual é complexo e sujeito a erros. Para reduzir custos e melhorar a produtividade, as organizações de desenvolvimento precisam automatizar o suporte para conformidade.

4. Use um padrão de processo focado na segurança


Os padrões de segurança fornecem outra peça da solução de desenvolvimento seguro, embora os padrões de segurança não sejam tão bem desenvolvidos e testados pelo tempo quanto os padrões de segurança funcionais, que têm décadas de uso. Isso mudará, no entanto, à medida que os padrões de segurança específicos do setor forem desenvolvidos.

A indústria automotiva, por exemplo, está desenvolvendo atualmente a ISO / SAE 21434 “Engenharia de segurança cibernética de veículos rodoviários” para mitigar o problema de veículos conectados como alvos de ataques cibernéticos. A promessa de um documento substancial com mais detalhes do que os princípios orientadores de alto nível do SAE J3061 “Guia de segurança cibernética para sistemas cibernéticos de veículos” torna a ISO / SAE 21434 amplamente esperada.

5. Automatize o máximo possível


Em cada estágio do processo de desenvolvimento de software, a automação reduz as vulnerabilidades em sistemas embarcados e economiza muito tempo e custos. Os desenvolvedores podem se conectar a ferramentas de requisitos (por exemplo, IBM Rational DOORS), importar construções de simulação e modelagem e testá-las em relação ao código para ver rapidamente como e se os requisitos são atendidos, o que está faltando e onde está o código morto que não t cumprir um requisito.

Um mecanismo de análise estática pode verificar a conformidade com os padrões de codificação e segurança funcional e padrões de segurança. Com automação e design seguro, os testes reativos, como o teste de penetração, têm seu lugar, mas sua função é confirmar se o código é seguro e não descobrir onde não está.

6. Selecione uma base de software segura


O software embarcado seguro deve ser executado em uma plataforma segura, portanto, se um aplicativo for atacado, ele será executado em seu próprio silo, isolado de outros componentes de software ("separação de domínio"). Ferramentas automatizadas de teste e verificação de software integram-se a ambientes de desenvolvimento comuns, desde a especificação de requisitos até o projeto e modelagem, passando pela codificação e documentação. Isso garante que os desenvolvedores possam construir sistemas seguros em um ambiente familiar e com as ferramentas já especificadas para seu sistema.

Seguir esses seis processos fornece uma abordagem coesa para desenvolver software embarcado para a IoT que seja seguro, protegido e confiável.

O autor é Mark Pitchford da LDRA.

Para mais informações, clique aqui:

Tecnologia da Internet das Coisas

  1. Protegendo a IoT industrial:a peça que faltava no quebra-cabeça
  2. O caminho para a segurança industrial da IoT
  3. Lidando com as vulnerabilidades de segurança da IoT industrial
  4. Protegendo a IoT contra ataques cibernéticos
  5. Protegendo o vetor de ameaça IoT
  6. Protegendo a IoT por meio de engano
  7. De mãos dadas - Por que a IoT precisa de SD-WAN
  8. Protegendo a IoT da camada de rede à camada de aplicativo
  9. Quatro etapas para contratar o melhor CISO em um mundo IoT
  10. Três etapas para segurança global de IoT