Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fundamentos de IoT A evolução do uso da Internet para a comunicação entre as pessoas e as empresas, seja para uso pessoal, de entretenimento e de aprendizagem, seja para o uso corporativo, para a realização de negócios, tem levado ao desenvolvimento contínuo de novas tecnologias e da preocupação com a segurança da rede. E uma das evoluções tecnológicas é a utilização da Internet para processos realizados através da comunicação direta com dispositivos de redes, que é a chamada internet das Coisas (IoT – Internet of Things). Assim, nesta nossa disciplina teremos como objetivo analisar os principais aspectos relacionados à Internet das Coisas e as medidas e técnicas de segurança a serem empregadas para garantir a segurança da comunicação, dos dados e dos dispositivos que compõem a IoT. Assim, abordaremos os seguintes itens em nossa disciplina: Fundamentos da Internet das Coisas; Principais ameaças na rede; Protocolos em IoT; Ameaças em IoT; Sistemas de Segurança para IoT; Segurança das redes corporativas e redes domésticas. Olhando para o cenário atual da Internet, temos a sua utilização em uma nova abordagem, que é a chamada Internet da Coisas, que implementa a tecnologia da era da transformação digital, também chamada de digitalização. Assim, estas tecnologias já estão incorporadas em diversas áreas, entre as quais as casas inteligentes (smart homes), os veículos autônomos (self-driving cars), os medidores inteligentes (smart utility meters) e até mesmo as chamadas cidades inteligentes (smart cities). Inclusive a estimativa do Gartner é que tenhamos mais de 25 milhões de dispositivos conectados ao redor do mundo em 2020. Um dos princípios da IoT é a comunicação direta entre os dispositivos, permitindo a automação dos processos e controles, economizando tempo e trazendo diversos outros benefícios. Porém, temos também um desafio, que é garantir a segurança dos dispositivos e da comunicação. Inclusive, podemos ter diferentes ameaças nesta interconexão dos dispositivos, pois poderemos ter desde a invasão de uma smart TV, que não significaria uma ameaça significativa, quanto a invasão de um caixa eletrônico, que poderia gerar um grande prejuízo financeiro à uma instituição bancária. Além disso, temos uma corrida dos fabricantes para o lançamento de novos produtos, o que poderá representar uma fragilidade da segurança, pela falta de testes suficientes para garantir um alto nível de segurança destes dispositivos. Outro fator, que representa um grande desafio para garantir a segurança em IoT, é o grande número e a diversidade de tipos de dispositivos empregados em IoT, tais como sensores, atuadores e dispositivos inteligentes. Assim, seria necessário o desenvolvimento de soluções distintas para cada tipo de dispositivo. Além disso, como temos também diversos protocolos utilizados, em função da diversidade de dispositivos e tecnologias, o profissional que irá atuar em IoT necessitará ter um amplo conhecimento de redes e destes protocolos. Para entender o estágio atual da IoT é necessário revisar o histórico da Internet. A versão inicial da rede foi a chamada ARPANET (Advanced Research Projects Agency Network) em 1969, que visava a conexão de instituições de ensino e pesquisa, e governamentais, sem grande preocupação com a segurança. Com a extensão das conexões da rede para outras organizações, temos o surgimento da Internet, cuja evolução ocorreu em quatro fases distintas: Fase 1 - Conectividade: e-mail, navegação WEB, pesquisa; Fase 2 – Negócios: e-commerce, cadeia de fornecimento; Fase 3 – Colaboração: redes sociais, nuvem, mobilidade, vídeo; Fase 4 – Internet das Coisas: processos, dados e coisas (e pessoas). No processo de comunicação na Internet das Coisas temos três tipos de conexões distintas, que são: Pessoa a pessoa (P2P): informações transferidas entre pessoas, através de vídeo, dispositivos móveis e redes sociais; Máquina a pessoa (M2P): informação obtida pelo usuário, a partir de uma máquina, permitindo a tomada de decisões; Máquina a máquina (M2M): dados transferidos entre “coisas”. E neste cenário, as máquinas poderão ser quaisquer elementos que suportem o processo de comunicação, tais como computadores, servidores, dispositivos móveis, robôs, controladores, automóveis, comandos elétricos e outros. Outro componente da Internet das Coisas são os processos, cujo objetivo é garantir que a informação seja entregue à pessoa certa, na hora certa e da forma adequada. Os processos irão integrar as coisas, os dados e as pessoas, agregando valor no mundo conectado da IoT. A implementação do processo correto aumenta a relevância e o valor das conexões e simplifica as interações entre pessoas, coisas e dados. E também irão gerar valor à implementação da IoT pela redução de custos gerados pela adoção de processos de controle automatizado. Por exemplo, a implementação de um sistema de controle de sistemas de ar-condicionado levará à redução do custo de energia elétrica, pela otimização do seu uso, tanto em relação ao período em que está ligado quanto à potência de funcionamento, tornando o sistema mais eficiente. E o terceiro componente da Internet das Coisas são os dados, que farão a representação dos valores atribuído aos dispositivos que farão parte da IoT, que são as coisas. Estes dados gerados necessitam ser interpretados, seja por um processo de correlacionamento ou por comparação. Neste componente da IoT é que teremos a transformação dos dados coletados em informações. A partir deste processo, quando os dados serão aplicados ou compreendidos, é que as informações se transformarão em conhecimento. No processo de comunicação eletrônica os dados são representados por 0s e 1s, e, portanto, estes dados eletrônicos serão armazenados no formato binário digital. As Coisas na IoT Os elementos conectados à Internet das Coisas, que são as coisas, podem ser dispositivos de computação, tais como os computadores tradicionais, smartphones, tablets, mainframes e clusters de servidores. Porém, praticamente todos os objetos que possuam uma tecnologia integrada, que permita a sua interação com os servidores internos e o com o ambiente externo, poderão também ser conectados à Internet das coisas. Um dos requisitos fundamentais para estes elementos é a capacidade de se comunicar em rede, o que pode limitar a conexão de sensores e atuadores diretamente à rede, sendo necessária a utilização de controladores. Outro aspecto a ser observado é a necessidade de uma transição de tecnologia, pois deveremos integrar à esta rede muitos objetos que antes estavam desconectados e que não foram desenvolvidos para este tipo de funcionalidade, e que dependerão da interação com os demais componentes das IoT através dos processos. E entre os diversos elementos que podem ser conectados à rede temos: Smartphones: telefone, câmera, GPS, media player; Smartwatch: monitoração de frequência cardíaca e de caminhada; Eletrodomésticos: geladeira, fogão, aquecedores, ar-condicionado; SmartTV: acesso à internet, navegação, IPTV; Dispositivos médicos: marcapassos, bomba de insulina, monitores; Tags de RFID: objetos etiquetados; Sensores: temperatura, umidade, velocidade do vento, pressão. Os sensores realizam a coleta de dados não provenientes de computadores e que irão converter as grandezas físicas do ambiente em sinais elétricos, que então poderão ser processados pelos controladores e servidores. A evolução destes dispositivos é que permitirá a conexão de elementos que estavam desconectados da IoT, como, por exemplo, sensores de umidade do solo, de temperatura do ar, de radiação e de movimento. O outro elemento, que opera de maneira integrada com os sensores, são os controladores, que são responsáveis por coletar dados dos sensores e fazerem a conexão com a Internet. Uma funcionalidade adicional dos controladoresé a capacidade de tomar decisões imediatas. Complementarmente, os controladores podem também enviar os dados para um computador para análise, que pode estar na mesma LAN, em um Data Center ou na nuvem. Neste caso, o controlador enviará os dados para um roteador local, e este roteador fará a interface entre a rede local e a Internet para a transmissão dos dados para o servidor externo. E para a conexão dos dispositivos, teremos os diversos padrões de comunicação nas redes locais, que podem incluir o cabeamento de rede, quando possuem uma interface Ethernet, sendo mais comum a utilização de tecnologias de rede Wireless, facilitando este processo de comunicação local. Assim, poderemos ter diversas tecnologias, tais como o Wi-Fi, o Bluetooth e tecnologias de NFC (Near Field Communication). Em alguns cenários também podem ser utilizadas as conexões através da rede Celular, que permitem a conexão através de uma rede Wireless e diretamente à Internet. Os Dados em IoT Um dos grandes desafios em IoT está associado com o grande volume da dados gerados, em função da grande quantidade de dispositivos conectados à rede e de valores medidos. Outro aspecto associado à esta grande quantidade de dispositivos conectados, para que os dados sejam registrados com os identificadores da origem, é a necessidade de migração do protocolo de rede, do atual IPv4 para o protocolo IPv6, que permitirá o endereçamento dos dispositivos com uma capacidade muito maior. A geração desta grande quantidade de dados irá demandar também soluções de alta capacidade de armazenamento, cuja solução, para a chamada BIG DATA, será a utilização das soluções de computação em nuvem. E quanto aos tipos de nuvem teremos as nuvens pública, privada e híbrida, que poderão ser adotadas de acordo com o escopo do projeto de IoT. Outro aspecto do BIG DATA é a estrutura dos dados, onde podemos ter os dados estruturados e não estruturados. Os dados estruturados apresentam campos fixos dentro de um arquivo ou registro, sendo assim facilmente inseridos, classificados, consultados e analisados por um computador. Porém, este tipo de dados impõe um determinado formato para a inserção dos dados, restringindo a forma de coleta ou necessitando de um tratamento inicial. Porém, a utilização deste modelo minimiza os erros e torna mais fácil a sua interpretação. E o outro tipo de dados são os dados não estruturados, que não dispõem da organização das informações, como é encontrada nos dados estruturados, que são os dados em seu estado bruto. Um exemplo de dado não estruturado é a composição de uma imagem, pois teremos uma estrutura diferenciada para cada uma das diferentes imagens possíveis de serem capturadas. Quanto ao armazenamento dos dados, um dos parâmetros básicos é o dimensionamento do espaço para o armazenamento dos dados, que é definido em Bytes, podendo ser quantificado em megabytes (MB), gigabytes (GB) ou até mesmo em terabytes (TB). Outro aspecto é a definição da localização do armazenamento dos dados. Este armazenamento pode ser feito localmente, onde os dados ficarão armazenados e poderão ser acessados diretamente em dispositivos locais, armazenados em discos rígidos, pen drives e CDs/DVDs. No armazenamento remoto teremos as diversas soluções em nuvem. E quanto à forma de armazenamento dos dados podemos ter um modelo centralizado ou distribuído. No modelo de dados centralizados, estes dados serão armazenados e compartilhados em um servidor centralizado, acessado remotamente por vários dispositivos através da rede. No modelo distribuído os dados poderão ser gerenciados por um DBMS (Database Management System) e alocados em sites distintos, o que poderá garantir uma maior disponibilidade destes dados. Questão para Simulado Um dos desafios associados à implementação da Internet das Coisas é a conectividade de uma grande quantidade de dispositivos, o que implica em que eles possam ser identificados na Internet. Porém, uma limitação atual da internet, que limitaria este acesso é: a)A necessidade do desenvolvimento de um novo navegador, com a evolução do protocolo HTTP. b)A falta de mecanismos de segurança que possibilitem a criptografia dos dados na rede atual. c)A capacidade de endereçamento do protocolo IPv4, praticamente esgotada, sendo necessário migrar para o IPv6. d)A disponibilidade de sistemas de armazenamento de dados, pois uma maior quantidade de dispositivos conectados gerará uma maior quantidade de dados. e)A necessidade de desenvolvimento de novos sistemas em nuvem, pois os sistemas atuais de nuvem pública não permitem o acesso de novos dispositivos. Ameaças nas Redes A Internet da Coisas necessita da conexão à internet, dos diversos componentes do sistema, para a troca de dados entre os dispositivos e os sistemas em nuvem. Porém, com a conexão à Internet, fará com que estes elementos estejam sujeitos às diversas ameaças existentes na rede. Assim, é necessário conhecermos as ameaças já existentes, bem como os mecanismos de segurança já empregados para a mitigação destas ameaças. Ou seja, além destas soluções, necessitamos ainda de mecanismos de segurança específicos que atendam às particularidades da Internet da Coisas. E estes mecanismos de segurança deverão ser desenvolvidos focados nas vulnerabilidades dos dispositivos, das aplicações e dos protocolos. As Ameaças A necessidade de conexão da rede LAN com a Internet expõe os dispositivos às ameaças externas, onde temos muitas ameaças, com diversas formas de atuação. Portanto, para compreender melhor estas ameaças, é necessário realizar a classificação das ameaças, o que permitirá elaborar ações mais eficientes de mitigação destas ameaças. E um dos métodos de classificação que pode ser utilizado é a forma de atuação destas ameaças. Assim, os Malwares poderão ser classificados em relação ao tipo de ataque executado, que pode ser: Ataque de Reconhecimento; Ataque de Acesso; Ataque de Negação de serviço. O ataque de Reconhecimento tem como objetivo obter dados e informações que possibilitem mapear as vulnerabilidades, para a execução de uma ação posterior. Este tipo de ataque pode incluir a descoberta e mapeamento de sistemas, serviços e vulnerabilidades existentes em uma determinada rede. Em Internet da Coisas este ataque visa a descoberta dos dispositivos, dos controladores e dos sistemas de processamento, bem como do mapeamento de sensores e da coleta de dados sensíveis do ambiente. O ataque de Acesso tem como objetivo obter o acesso aos sistemas, dados e informações, de forma não autorizada. Este tipo de ataque poderá ser realizado utilizando-se das credenciais obtidas no ataque de reconhecimento. Porém, outro método bastante comum de ataque de acesso é o ataque de força bruta ou de dicionário. E este ataque poderá também explorar vulnerabilidades conhecidas, identificadas a partir do ataque de reconhecimento, ou utilizando o método de tentativa e erro. O ataque de Negação de serviço tem como objetivo causar a indisponibilidade dos sistemas ou dos elementos de rede, podendo ser causado por excesso de requisições ou do envio de códigos de solicitação inesperado. Em Internet da Coisas o ataque de negação de serviço poderá causar a indisponibilidade dos sensores e controladores. E este tipo de ataque pode ser executado no modelo distribuído, que é chamado de DDoS (Distributed Denial of Service), que em IoT poderia ser estruturado através dos controladores, sendo utilizados para formar uma Botnet. Mitigação de Ataques Para mitigar os ataques de Reconhecimento, uma das medidas a serem adotadas é o bloqueio dos protocolos e das mensagens de teste de rede, tal como o protocolo NMAP, bem como o bloqueio dos processos de varredura de endereços, com o uso do ping. Outra forma de mitigar este tipo de ataque é a monitoração da rede paraidentificar tráfego suspeito, principalmente gerados pelos ataques internos. A configuração dos switches da rede, com a ativação mecanismos de segurança, permitirão também o bloqueio do ataque do tipo man-in-the-midlle, que é utilizado para capturar os dados na rede interna e obter os dados sensíveis. E na Internet da Coisas, como forma de mitigação dos ataques de reconhecimento, pode ser utilizado o protocolo Ipv6 apenas com endereçamento de link local, o que bloqueia qualquer acesso externo. Para mitigar os ataques de Acesso, devem ser utilizadas as senhas fortes, que minimizam a eficiência do ataque de força bruta ou de dicionário. Outra medida essencial para mitigar este tipo de ataque é manter os Sistemas atualizados, pois as possíveis vulnerabilidades identificadas nestes sistemas são corrigidas pelos desenvolvedores, que disponibilizam as versões corrigidas e seguras. Também poderá ser feita a filtragem do tráfego externo, bloqueando o trafego suspeito, bem como a monitoração do tráfego interno, para identificar e bloquear este tipo de tráfego. E na Internet da Coisas, uma forma de implementar a segurança contra o ataque de acesso é a limitação do acesso aos dispositivos e sensores apenas pelo controlador local. Já para os dados de IoT, uma forma de mitigar o ataque de acesso é o armazenamento dos dados apenas em soluções de nuvens privadas. Quanto aos ataques de Negação de Serviço, uma das medidas a ser adotada é a filtragem do tráfego externo, através de um Firewall e um sistema de IPS. Também é necessário implementar um sistema de monitoração do tráfego interno, incluindo a monitoração do consumo de recursos de servidores e dos equipamentos de rede. Além desta monitoração é necessário também a implementação de um sistema de armazenamento dos dados históricos sobre o consumo dos recursos, permitindo a detecção e bloqueio de uma tentativa de DoS, de forma proativa. Ferramentas de Segurança As ferramentas para a implementação de mecanismos de segurança das redes podem incluir os Firewalls, IDS e IPS. Para realizar o controle do tráfego externo são utilizadas as ferramentas de Firewall, que podem ser implementadas em Hardware ou em Software. Para a monitoração e análise do perfil de tráfego, identificando possíveis ameaças, são utilizados os sistemas de IDS (Intrusion Detection System). E teremos também os sistemas que realizarão a monitoração, análise e bloqueio de tráfego, que são os sistemas de IPS (Intrusion Prevention System). Além destes sistemas de segurança teremos ainda o processo de captura do tráfego da rede, que poderá ser realizado com o uso de Sniffers, além da análise deste tráfego, com os analisadores de protocolos. Assim, teremos um sistema de monitoração e análise do tráfego da rede, permitindo aos analistas de segurança identificarem possíveis ameaças na rede. E poderemos ter ainda, para formar uma arquitetura completa de segurança, os sistemas operacionais dos switches da rede, habilitados com as funcionalidades de segurança. Em Internet da Coisas, os sistemas de segurança deverão incluir também os sistemas de autenticação, que farão o controle de acesso aos controladores e sensores. E para implementar uma camada de segurança nos controladores, quando sendo executados em sistemas operacionais do tipo Open Source, poderá ser usado o Firewall do próprio SO, coma a configuração do iptables. E teremos também os túneis VPN, para garantir a segurança dos dados na comunicação entre os controladores e a Nuvem Privada. E na nuvem privada teremos os mecanismos de segurança que deverão proteger o sistema de processamento e de armazenamento de dados, tal como a utilização de um FW em Software, principalmente para nuvens hibridas, que poderão ser acessadas através da Internet. Questão para Simulado A segurança em Internet das Coisas apresenta alguns desafios adicionais às soluções já empregadas pelos sistemas de segurança para as redes tradicionais, tais como os sistemas de IPS, IDPS de Firewall. Porém, a implementação de um sistema de IoT com o uso de um controlador facilitará este processo, pois: a)O controlador também poderá ser configurado no Firewall da rede, aumentando-se a segurança do acesso aos dispositivos de IoT. b)Os sensores e atuadores poderão ser acessados apenas pelo controlador, e assim o acesso externo ficará restrito ao controlador, simplificando o processo. c)O uso do protocolo IPv6 apresenta um grau maior de segurança, e assim como o controlador fará a comunicação com a nuvem, poderá utilizar o IPv6. d)Como o armazenamento de dado será realizado apenas no controlador, não será necessário enviar os dados para a nuvem. e)Os sistemas em nuvem são altamente inseguros, por isso o controlador poderá ser protegido por um Firewall, sendo assim um modelo de IoT mais seguro. Protocolos em IoT Com a evolução das aplicações que levaram ao aumento da utilização da Internet para diversas funções tivemos um grande crescimento do número de hosts conectados à Internet. Porém, em função deste crescimento tivemos esgotamento da capacidade de endereçamento do protocolo utilizado na Internet, que é o protocolo IPv4, que utiliza um identificador de 24 bits para o endereçamento dos dispositivos na rede. E a solução para este problema é a migração para a nova versão do protocolo Internet, que é o IPv6, que utiliza 128 bits para o endereçamento dos dispositivos, ampliando a capacidade da rede e permitindo a conexão dos dispositivos de IoT. Para a conectividade na rede LAN, o padrão mais utilizado para a conexão dos terminais dos usuários é o protocolo Ethernet, normalmente com o uso da rede cabeada. E para os dispositivos móveis temos também um padrão que é amplamente empregado nas redes wireless, que é o protocolo IEEE 802.11, também conhecido como Wi-Fi. Além da rede Wi-Fi, existem outros padrões para a conexão dos dispositivos através de redes sem fio, que são as chamadas redes WPAN (Wireless Personal Area Network), definidas pelo padrão IEEE 802.15, entre outros Assim, para a implementação da Internet das Coisas temos diversos protocolos que poderão ser utilizados nas diversas soluções, tais como o IPv6, os padrões 802.15.4, o ZigBee, o 6LoPAN, o MQTT, o COAP, entre outros. E para a definição do protocolo a ser utilizado em uma solução de IoT é necessário analisar as principais características destes dispositivos. Uma das características destes dispositivos é que normalmente são compactos, o que apresenta uma dificuldade de conectividade, o que, associado à grande quantidade de dispositivos a serem conectados, limita a utilização da conectividade através de uma rede cabeada. Estes dispositivos também devem apresentar um baixo consumo de energia, o que exige uma tecnologia de comunicação mais eficiente. E como os dados deverão ser transmitidos em tempo real, é necessário garantir também o desempenho da rede, priorizando este tipo de tráfego ou adotando uma rede dedicada para a comunicação destes dispositivos. Desta forma, o protocolo Ethernet será empregado para a conexão dos controladores à rede LAN, normalmente através de uma rede cabeada, e a comunicação entre controlador e sensores será feita, tipicamente, através de uma rede wireless. Rede WPAN Para a implementação das redes PAN um dos padrões de mercado é o IEEE 802.15.1, também conhecido como Bluetooth. Este protocolo foi desenvolvido para transmissão com baixas taxas de dados e com baixo consumo. O IEEE 802.15.1 especifica o padrão da camada de transporte composta por: Camada de Rádio: define os valores de frequência, potência e modulação. Camada de link e bandabase: descreve a operação em piconets ou Camada de middleware: estabelece os componentes de software necessários para viabilizar a comunicação entre os dispositivos A versão inicial do Bluetooth foi publicada em 1999, com uma taxa detransmissão de 0,7Mbps. A versão 2.0 acrescentou o EDR (Enhanced Data Rate), atingindo até 3Mbps, porém, na prática a taxa efetiva era de 2,1Mbps. Na versão 3.0 temos o HS (High Speed), podendo iniciar a conexão via Bluetooth, mas transmitindo os dados via Wi-Fi, o que permitia atingir uma transmissão de até 24 Mbps, do Wi-Fi. A versão 4.0 foi desenvolvida, visando o baixo consumo de energia, sendo conhecida por “Bluetooth Smart”, com taxas de até 3Mbps. E a versão 4.2 foi desenvolvida já com o foco em IoT, reforçando o recurso de baixo consumo de energia (low-power). Para a implementação da segurança no Bluetooth temos quatro modos de operação: Modo 1: sem mecanismos de segurança, para dispositivos em uma área segura; Modo 2: utiliza um gerenciador central que faz o controle de acesso, implementando autenticação e criptografia na camada LMP (L2CAP); Modo 3: implementa procedimento de segurança antes do estabelecimento do link físico, com chaves para cada link; Modo 4: inicia o processo de segurança após o estabelecimento do link, com geração de chaves pelo método ECDH (Elliptic Curve Diffie Hellman). O Protocolo ZigBee O padrão IEEE 802.15.4 é um padrão desenvolvido para a implementação em redes Wireless, para uso residencial, comercial e industrial. E a partir do padrão 802.15.4 foi desenvolvido o protocolo Zigbee, que define dois tipos de dispositivos, que são o FFD e o RFD. O FFD (Full Function Device) pode operar em toda a topologia, trabalhando como coordenador, possuindo uma construção mais complexa. E o RFD (Reduced Function Device) possui uma construção mais simples, limitado a uma topologia estrela e só pode se comunicar com dispositivos FFD. O FFD faz o ajuste dos parâmetros da rede e o seu gerenciamento. Na topologia da rede ZigBee temos três classes lógicas dos dispositivos: Coordenador (coordinator); Roteador (router); Dispositivo terminal (end point). As duas primeiras classes são implementadas em dispositivos FFD, e a terceira em dispositivos FFD ou RFD. Para implementação da segurança, o ZigBee utiliza chave de criptografia simétrica, com três tipos de chaves: Master Key: para estabelecimento do link, pré-instalada; Link Key: criptografa a comunicação ponto a ponto, diferente para cada par de elementos; Network Key: utilizada na camada de rede, para redes com mais de dois elementos. O processo de gerenciamento das chaves utiliza o modelo de chaves pré-instaladas, que são distribuídas por um Trust Center, através de um processo chamado de SKKE (Symmetric-Key Key Establishment). E como os dispositivos ZigBee normalmente são alimentados por bateria, possuem uma baixa capacidade de processamento e pouca memória. E como as chaves são salvas em memória, temos então uma vulnerabilidade, pois um acesso ao dispositivo permitirá a leitura destas chaves. Assim, para aumentar a segurança dos dispositivos, para que não sejam acessados diretamente por terminais da Internet, será necessária a utilização de um microcontrolador para implementar a autenticação. O Protocolo 6LoPAN Com a necessidade da migração do processo de comunicação na Internet para o protocolo IPv6, foi desenvolvido o protocolo para a transmissão deste protocolo na rede PAN que é o protocolo 6LoPAN (IPv6 over Low-power Wireless Personal Area Networks). Este protocolo foi definido pela RFC 6282 do IETF (Internet Engineering Task Force), sendo concebido inicialmente para operar com o IEEE 802.15.4. O 6LoPAN tem como objetivo o baixo consumo de energia, operando na faixa de frequência de 2,4GHz, e sendo suportado pelo Bluetooth 4.2 para conexão dos dispositivos diretamente à Internet. O protocolo define o processo de encapsulamento dos pacotes e a compressão do Ipv6 para o tráfego em redes wireless. Para a implementação da segurança na comunicação o 6LoPAN utiliza o algoritmo AES-128, conforme definido na IEEE 802.15.4, implementando o processo de autenticação e de criptografia. Pode-se ainda acrescentar a segurança na camada de transporte, com o TLS para o protocolo TCP, que é definido pela RFC 5246. E para sistemas que utilizam o protocolo UDP na camada de transporte, pode ser utilizado o protocolo DTLS, definido pela RFC 6347, porém exigindo recursos adicionais de hardware. Outros Protocolos Além dos protocolos para as redes wireless, temos também outros protocolos desenvolvidos para a utilização na Internet das Coisas, para serem utilizados na comunicação dos dispositivos com os aplicativos. Entre estes protocolos, temos o MQTT v3.1.1, cuja versão foi publicada pela ISO e OASIS, sendo que as versões mais atuais estão sendo publicadas apenas pelo OASIS. O MQTT é um protocolo de transporte para comunicação entre cliente e servidor, que foi desenvolvido para comunicação em redes M2M e IoT. Uma das características deste protocolo é a utilização de mensagens de tamanho reduzido, o que representará um baixo consumo de banda. O MQTT utiliza o protocolo TCP/IP e opera no modo Publish/Subscribe, suportando três níveis de qualidade de serviço (QoS) para as mensagens. A versão atual é o MQTT v5.0, sendo um padrão oficial da OASIS. Outro protocolo desenvolvido para a IoT é o CoAP (Constrained Application Protocol), que é definido pela RFC 7252 do IETF, utilizando o protocolo UDP na camada de transporte. Algumas das características deste protocolo é o baixo overhead, que é o modelo ideal para dispositivos com pouca memória e baixa potência, sendo baseado na arquitetura REST (Representational State Transfer), que é semelhante ao HTTP, facilitando o desenvolvimento de aplicativos para este protocolo. E outra funcionalidade do COAP é que ele pode transportar diferentes tipos de payload, podendo ser incorporado também em aplicações já existentes. Questão para Simulado A conexão dos computadores à rede Internet demandou a instalação da infraestrutura de rede baseada no protocolo Ethernet, principalmente da conexão através de uma rede cabeada. Porém, com a disseminação do uso de dispositivos móveis, tais como notebooks e smartphones, também foram disseminadas as redes Wi-Fi. Porém, a implementação da Internet das Coisas, utilizando as redes já instaladas, mesmo as redes WiFi, não atendem plenamente aos requisitos da IoT, pois: a)Os controladores não podem ser configurados para a comunicação em rede Ethernet e WI-Fi. b)Os sensores e atuadores poderão ser acessados apenas pelo controlador, e assim suportam apenas as tecnologias de rede PAN. c)O uso do protocolo IPv6 que viabilizará a conectividade dos dispositivos de IoT não é suportado pela rede Ethernet. d)Apenas as tecnologias de redes PAN são que permitem o tráfego de dados dos dispositivos de IoT, não sendo compatíveis com o Wi-Fi. e)Os mecanismos de segurança da rede Wi-Fi podem não ser suportados pelos dispositivos de IoT, em função de seus recursos de processamento limitado. Segurança no Acesso Um dos modelos empregados para a implementação dos sistemas de segurança é o modelo AAA, que contempla os sistemas para realizar a autenticação, a autorização e a auditoria. O processo de autenticação visa garantir a identidade do usuário. E os sistemas de autenticação, normalmente, operam no modelo cliente/servidor, validando as credenciais dos usuários em um banco de dados, que são chamados de Serviços de Diretórios. Para a troca de mensagens entre os dispositivos do sistema de autenticação, são utilizados os protocolos de autenticação, tais como o Radius, TACACS e LDAP. E para a segurança dos sistemas de IoT temos um desafio adicional, pois temos diferentes componentes envolvidos, com diferentes capacidades de processamento, o que não possibilita a adoção de um sistema que possa atender a todos os dispositivos. Assim, em sistemas de Internet das Coisas será necessário autenticar o acesso aos dispositivos, aos controladorese aos sistemas de gerenciamento e de Banco de dados. Além disso, temos ainda no processo de comunicação dois tipos de conexão, que são o M2P (Machine-to-Person) e o M2M (Machine-to-Machine), demandando soluções distintas de segurança. Métodos de Autenticação Na implementação dos sistemas de autenticação, para realizar a autenticação do usuário pode ser usada uma informação que apenas o usuário conhece, algo que apenas o usuário possui ou uma característica pessoal. E como recursos para o processo de autenticação podem ser utilizadas as senhas ou PINs, que são as informações que apenas o usuário conhece, ou os Tokens, que estão baseadas em algo que apenas o usuário possui, e, também, os sistemas de Biometria, baseados nas características individuais de cada usuário. E para a implementação dos sistemas de controle de acesso temos que considerar que teremos três tipos de acesso, que são: Acesso ao sistema de gerenciamento; Acesso ao banco de dados; Acesso aos controladores. E uma das soluções amplamente empregada para a autenticação dos usuários é a utilização do Servidor de Diretório (AD), que opera baseado no protocolo LDAP (Lightweight Directory Access Protocol). PROCESSO DE AUTENTICAÇÃO COM O PROTOCOLO LDAP Para a o acesso ao banco de dados do sistema de IoT, que seria o Big Data, feita pelo usuário, no processo de comunicação P2M, a autenticação também poderá ser realizada via protocolo LDAP. Já para o acesso dos controladores e sensores ao banco de dados na nuvem, na conexão do tipo M2M, poderão ser utilizadas as conexões dedicadas ou através de túneis VPN. E para as conexões M2M, a autenticação das conexões poderá ser feita através do Protocolo IPSec. COMUNICAÇÃO ATRAVÉS DO TÚNEL VPN Ataques Estruturados Os ataques estruturados normalmente iniciam com um ataque de varredura, e, assim, a solução seria realizar o bloqueio dos protocolos ICMP no Firewall. Em relação ao processo de varredura em IoT temos algumas particularidades. A primeira é a aparente segurança propiciada pelo uso de NAT IPv4 para os sensores, porém, conforme já visto anteriormente, a solução mais eficiente para a Internet das Coisas é a adoção do IPv6, que possui milhões de endereços. E com a adoção do IPv6 o ataque de varredura de ping é praticamente impossível, pois a quantidade de endereços possíveis inviabiliza este tipo de ataque de tentativa e erro. O ataque de acesso normalmente é realizado após um ataque de reconhecimento bem sucedido, utilizando o endereço IP dos dispositivos descobertos ou as credenciais capturadas. Assim, uma vulnerabilidade dos dispositivos de IoT é que eles possuem senha “padrão”, o que facilita o ataque de força bruta, pois se trata de uma senha fraca. Assim, a solução é a modificação deste tipo de senha, com a utilização de senha forte, contendo letras, números e caracteres especiais. Para mitigar os ataques de acesso, em sistemas de IoT, temos os métodos já empregados para as redes, com o uso de firewall na conexão da rede com a Internet, a configuração de listas de controle de acesso (ACLs) no roteador, bem como a implementação de uma camada de FW nos servidores e controladores. Também podem ser utilizados os firewalls de nova geração (NGFW), que possibilitam a autenticação de usuários externos e a implementação de conexões seguras através de VPNs. Controle de Acesso Uma forma de implementar o controle de acesso para os sistemas de IoT é a utilização do Firewall, realizando-se a configuração do mesmo de forma a limitar o acesso ao controlador interno apenas para o endereço IP do Servidor externo. Porém, também é necessário verificar uso de NAT, pois se o controlador está na rede interna é possível que o processo de comunicação com o servidor sofrerá uma tradução de endereços, entre endereços público e privado CONTROLE DE ACESSO NO FIREWALLL O controle de acesso poderá ser feito também com a configuração de ACL no roteador, limitando o acesso apenas do Servidor externo ao controlador interno, conforme mostrado a seguir: (config)#access-list 110 permit host 200.10.10.55 host 192.168.100.95 (config)#access-list 110 deny any host 192.168.100.95 CONTROLE DE ACESSO NO ROTEADOR E o controle de acesso poderá ser feito também no próprio controlador, quando instalado em uma plataforma Linux, fazendo-se a configuração de iptables de maneira a limitar o acesso apenas do Servidor externo ao controlador, conforme mostrado a seguir: iptables -A INPUT -s 200.10.10.55 -j ACCEPT iptables -A INPUT -s -j DROP CONTROLE DE ACESSO NO CONTROLADOR Acesso nas Redes WPAN Existem várias tecnologias para a comunicação na rede WPAN, sendo que o acesso externo deverá sempre ser realizado através do controlador, para aumentar a segurança do acesso. Já o acesso na rede wireless dependerá da tecnologia empregada para a comunicação do controlador com os dispositivos. Assim, teremos uma grande vulnerabilidade, que está associada ao acesso dentro do ambiente físico onde o sinal da rede wireless está sendo propagado. Para as redes Wi-Fi o mecanismo de segurança é estabelecido pelo processo de autenticação 802.11, com o uso de chave de criptografia e senha de acesso à rede. Além destes mecanismos, teremos também os mecanismos de chaves simétrica e assimétrica, bem como os sistemas de criptografia, que iram garantir a confidencialidade dos dados trafegados. O protocolo 802.15.4 estabelece os mecanismos de segurança baseados em lista de controle de acesso (ACL), que é armazenada na MAC PIB (PAN Information Base), sendo que cada ACL armazena os endereços dos nós e as chaves. Além disso, o protocolo 802.15.4 utiliza o algoritmo AES de 128 bits para a criptografia dos dados, sendo que o gerenciamento das chaves é definido pelo ZigBee. E o ZigBee utiliza a suíte de segurança chamada de AES- CCM, para garantir a confidencialidade, a autenticação e a integridade dos dados. E a arquitetura das redes ZigBee define três tipos de nós, que são o Coordenador, roteador e dispositivos terminais, descritos a seguir: Coordenador: um nó por rede, que será o centro da estrela, operando como o Trust Center e distribuindo as chaves de criptografia; Rotador: gerencia e roteia a comunicação entre os dispositivos, pode existir mais de um roteador em cada rede; Dispositivo terminal: podem se comunicar com apenas um outro nó, que pode ser o roteador ou o coordenador. ELEMENTOS DA REDE ZIGBEE E a segurança na rede ZigBee utiliza-se do modelo chamado de Link Key, onde temos uma chave de criptografia para cada comunicação ponto a ponto, sendo diferente para cada par de elementos. Questão para Simulado Uma das medidas básicas de segurança é a utilização de um sistema de autenticação dos acessos à rede, permitindo o acesso apenas aos dispositivos e usuários autorizados. Porém, nas redes de acesso dos dispositivos de IoT temos algumas limitações para a utilização dos sistemas de autenticação já utilizados nas redes de dados convencionais. E uma das limitações está associada à seguinte característica das soluções de IoT: a)Os dispositivos utilizados em IoT, tais como sensores e atuadores, possuem um hardware compacto e com poucos recursos de processamento. b)Os protocolos das redes wireless utilizados em IoT não suportam os mecanismos de segurança, incluindo a autenticação. c)Os sensores e atuadores poderão ser acessados apenas pelo controlador, e assim não suportam nenhum tipo de autenticação. d)As tecnologias de redes WPAN foram desenvolvidas apenas para a comunicação entre controladores e sensores, não incorporando mecanismos de segurança. e)Os mecanismos de segurança da rede Wi-Fi podem ser utilizados apenas pelos computadores e smartphones. A operação do protocolo ZigBee pode ser representada por um modelo em cisco camadas, conforme mostradoabaixo. OS MODELOS DE SEGURANÇA O protocolo ZIgBee suporta dois tipos de modelos de segurança, que são o modelo de segurança centralizada e o modelo de segurança distribuída. Estes dois modelos se diferenciam pelo processo de admissão de novos dispositivos na rede e pelo método de proteção das mensagens. O modelo centralizado é o modelo mais seguro, porém mais complexo. Neste modelo temos um terceiro dispositivo lógico que é o Trust Center, sendo que esta função será executada pelo Coordenador da rede. No modelo centralizado de segurança as funções do Trust center são: Configuração e autenticação dos roteadores e dispositivos terminais para o acesso à rede Geração das chaves de rede a serem utilizadas na criptografia da comunicação na rede Geração de uma nova chave, periodicamente ou por solicitação Estabelecimento de um link único de comunicação para cada dispositivo da rede com o Trust Center Manutenção da segurança da rede O modelo de segurança distribuído é um modelo mais simples, mas ainda assim é seguro, suportando apenas os roteadores e dispositivos terminais. Neste modelo os roteadores formam a rede de distribuição e são responsáveis pela inclusão de outros roteadores e dispositivos à rede. No modelo distribuído os roteadores fornecem as chaves de rede para os novos roteadores e novos dispositivos que se conectarem à rede. Neste modelo todos os nós da rede utilizam a mesma chave de rede para criptografia das mensagens. Assim, todos os nós da rede são pré configurados com uma chave do link, que será utilizada para criptografar a chave de rede. No modelo de segurança distribuído os nós necessitam da chave do link para admissão na rede. AS CHAVES DE SEGURANÇA O PROTOCOLO ZigBee utiliza três tipos de chaves, simétricas, com 128 bits, que são Chave da rede (Network key) Chave do link (Link key) Chave principal (Master key) A chave de rede é utilizada para a comunicação em broadcast, ou seja, para a comunicação através de toda a rede, e a chave de link é utilizada para a comunicação em unicast, entre os nós em cada conexão de link. A Chave de rede, que é a Network Key, necessita ser configurada em cada dispositivo, para a comunicação segura com outros dispositivos da rede. O Trust Center é quem fará a geração da chave de rede, fazendo a sua distribuição para todos os dispositivos da rede. Assim, os dispositivos obterão a chave de rede através de um processo seguro de transmissão das chaves, chamado de key-transport, ou são pré-instaladas. E temos dois tipos de chaves de rede, que são a Standard, enviadas através da rede de maneira aberta, e a de segurança elevada, onde a chave é criptografada. Chave de link, que é a Link Key, poderá ser obtida pelos dispositivos de três formas diferentes: Processo seguro de transporte das chaves (key-transport) Processo de estabelecimento das chaves (key-stablishment) Pré-instaladas E temos dois tipos de links no ZigBee, que são: Global: comunicação com o Trust Center Unique: comunicação entre dispositivos A chave principal, que é a Master Key, garante a segurança entre dois dispositivos em longo prazo. A sua função é manter a troca de chaves de link entre dois nós, utilizando o protocolo SKKE (Symmetric-Key Key Establishment). Um dispositivo adquire uma chave mestra através de um dos seguintes métodos: transporte de chaves (key-transport) pré-instalação dados inseridos pelo usuário: PIN ou senha O GERENCIAMENTO DE CHAVES Existem três tipos de gerenciamento de chaves no protocolo ZigBee, que são: Pré-instalação Estabelecimento de chaves (Key Establishment) Transporte de chaves (Key Transport) No modelo de pré-instalação o fabricante do dispositivo faz a instalação de chaves, que serão selecionadas pelo usuário através da configuração de jumpers no dispositivo. No modelo de estabelecimento de chaves, é aplicado um método de geração local de chave, baseada na Master Key. Diferentes serviços de segurança do ZigBee usam uma chave derivada de uma função unidirecional, gerada a partir da chave de link. E o uso de chaves não correlacionadas garante a separação lógica da execução de diferentes protocolos de segurança, aumentando a segurança dos processos. E a geração de chaves neste modelo é estabelecida com o uso protocolo SKKE. Para a obtenção da Master Key pode ser feita a pré-instalação, aplicado o método de transporte de chave ou pode ser configurada pelo usuário. No modelo de transporte de chaves o dispositivo de rede solicita ao Trust Centre o envio de uma chave, sendo que ele poderá solicitar qualquer um dos três tipos de chave. No modo residencial, o Trust Centre possui apenas a chave de rede. E a chave de carga, chamada de key-load, é utilizada pelo Trust Center para proteger o transporte da chave principal. No modelo centralizado por ser utilizado um modelo de distribuição de chaves baseado uso do protocolo CBKE (Certificate-Based Key Establishment) Questão para Simulado 1 – Um dos recursos de segurança do protocolo ZigBee é a criptografia das mensagens, o que é realizado com o uso de chaves criptográficas. Porém, na comunicação em redes ZigBee temos três tipos de chaves, que são as chaves de rede, de link e a chave Master. E uma das características da chave de link é: a)Permitir a troca de chaves entre dois nós, com o uso do SKKE b)Fornecer o mecanismo para obtenção da Master Key c)É gerada pelo Trust Center para todos os dispositivos da rede d)Será utilizada para criptografar o tráfego entre o dispositivo terminal e o roteador e)Pode ser obtida através do processo seguro de transmissão de chaves que é chamado de key-transport Segurança dos dados na rede ZigBee O protocolo 802.15.4 fornece mecanismos eficientes para minimizar as interferências de outras redes no processo de transmissão em redes PAN. E uma das implementações do protocolo 802,.15.4 é a utilização do padrão AES (Advanced Encryption Standard), com uma chave de 128 bits (16 bytes) de comprimento, para implementar: • Segurança dos dados: com o uso de criptografia • Integridade dos dados: com o uso de mecanismos de HASH Podem ser utilizadas também as ACLs (access control list) para implementação de segurança do acesso. MECANISMOS DE SEGURANÇA O mecanismo empregado para garantir a confidencialidade das informações trafegadas nas redes de dados é a criptografia das mensagens. O padrão IEEE 802.15.4 especifica o uso do padrão AES de 128 bits para realizar a criptografia dos dados, que é chamado também de payload. Além da criptografia, outro mecanismo de segurança empregado nas comunicações de dados, para garantir a integridade dos dados, é o acréscimo de código para cada mensagem, que é chamado de HASH. Para isto o padrão AES define a inclusão dos campos MIC (Message Integrity Code) ou MAC (Message Authentication Code). O processo de criptografia dos dados originais será realizado para os blocos de dados originais, de 128 bits, sendo acrescido o código que garantirá a integridade dos dados transmitidos, conforme mostrado na figura abaixo. No quadro MAC IEEE 802.15.4 é utilizado o Cabeçalho de Segurança Auxiliar, sendo necessário habilitar o sub campo de segurança (Security Enabled), ativada no campo de controle de quadros (Frame Control Field). E este cabeçalho possui 3 campos: • Controle de segurança • Contador de quadro • Identificação de chaves CABEÇALHO DE SEGURANÇA O campo de Controle de Segurança, no cabeçalho dos quadros ZigBee especifica o tipo de proteção fornecida pela rede, definindo qual será a Política de Segurança Global. A escolha do nível de segurança determina o comprimento da chave e o que deve ser criptografado, sendo que cada nível de segurança fornece um certo grau de criptografia de quadros e verificações de integridade. E temos 8 diferentes níveisde segurança, mostrados na figura abaixo: O outro campo do cabeçalho de segurança é o campo de contagem de quadros (Frame Counter) que é gerado pelo emissor dos quadros para proteger as mensagens contra uma replicação. E o terceiro campo do cabeçalho de segurança é o campo de identificação de chaves (Key Identifier) que especifica a informação necessária para que seja definido qual será tipo de chave a ser utilizada pelo nó no processo de comunicação. O USO DE LISTAS DE CONTROLE DE ACESSO Os recursos de segurança do IEEE 802.15.4, tais como as chaves, a contagem de quadros e o nível de segurança, são armazenados em uma lista de controle de acesso (ACL). A ACL é usada para impedir que dispositivos não autorizados participem da rede e é armazenada na Base de Informações MAC da rede PAN que é chamada de MAC PIB (PAN Information Base). E a lista de controle de acesso pode ser acessada e modificada, semelhante aos outros atributos MAC. Cada Lista de Controle de Acesso (ACL) armazena: • O endereço do nó • A Security Suite (AEC-CTR, AES-CCM-64, AES-CCM-128, etc) • A Chave de 128 bits usada no algoritmo AES • O último Vetor Inicial (IV) • O contador de Replay O último Vetor é usado pela fonte, e o Contador de Replay pelo destino, como um ID de mensagem, para evitar ataques de resposta Embora o IEEE 802.15.4 estabeleça diversas medidas de segurança, no entanto, não especifica como as chaves devem ser gerenciadas ou o tipo de políticas de autenticação a serem aplicadas, sendo que estes aspectos são definidos pelo padrão ZigBee. Assim, o padrão ZIgBee define os seguintes serviços de segurança opcionais: • Criptografia e decriptografia • Proteção contra replicação • Autenticação de dispositivo O PADRÃO AES-CCM Para implementar a segurança da transmissão, os quadros ZigBee podem ser opcionalmente protegidos com o protocolo AES-CCM, que irá garantir a confidencialidade, a autenticação e a integridade de dados. O AES-CCM é uma versão reduzida do padrão AES (Advanced Encryption Standard) com um modo CCM (Counter with CBC- MAC) modificado. No processo de comunicação seguro, o transmissor irá gerar os quadros a serem transmitidos, onde o quadro de dados original, no formato de blocos de 128 bits, é processado pelo AES-CCM. Assim, o AES-CCM fará a criptografia dos dados, com a utilização da chave de criptografia, e a geração do MIC associado à cada bloco. Os quadros criptografados são acrescidos do MIC e enviados para o destinatário, e com este mecanismo, o AES-CCM garante a autenticidade e a confidencialidade das mensagens. No receptor o quadro é descriptografado pelo AES-CCM, com a chave simétrica. E a partir do quadro obtido é gerado o MIC, que será comparado com o MIC recebido. Caso o MIC gerado seja idêntico ao MIC recebido, a mensagem é autenticada. Desta forma, caso o quadro tenha sido alterado na transmissão, o MIC não será validado, indicando uma tentativa de modificação dos dados, sendo descartado o quadro. Questão para Simulado 1 – Um dos mecanismos de segurança do protocolo ZigBee é a implementação de um mecanismo que irá garantir a integridade dos dados transmitidos, com a geração do MIC, com a utilização do protocolo AES-CCM. E além da integridade, o processo de geração do campo MIC irá garantir também a autenticidade da mensagem pois: a)Os blocos de dados são criptografados com a chave de link, incluindo o campo de autenticação b)Os blocos criptografados necessitarão de uma chave específica para cada bloco, diferenciando cada pacote enviado c)O campo MIC é gerado com o uso da chave de criptografia, que é exclusiva de cada remetente d)A criptografia garante o endereço de origem dos blocos, pois o endereço do remetente está incluído no campo MIC e)Os blocos criptografados incluem a chave utilizada, validando o remetente Implantação do ZigBee Apesar dos recursos para garantir a autenticidade e confidencialidade podemos ter ainda algumas falhas de segurança, sendo que as vulnerabilidades em uma rede ZigBee podem ser originadas por problemas intrínsecos ao protocolo. Além disso, também podem ocorrer falhas na implementação do protocolo pelos desenvolvedores. No processo de implementação das redes ZigBee podemos ter as vulnerabilidades associadas ao: • Armazenamento inseguro das chaves • Transporte inseguro das chaves • Envio de cabeçalho de segurança em texto aberto • Reutilização do vetor de inicialização • Processo de varredura de sensores A SEGURANÇA DAS CHAVES A segurança do protocolo ZigBee baseia-se na suposição de que as chaves são armazenadas com segurança. Assim o coordenador (coordinator) deverá ser pré-configurado com a chave de rede e os demais dispositivos, roteadores e dispositivos finais serão pré-configurados com a chave de link. Porém com a invasão e acesso à um nó da rede, o hacker pode obter a chave de link e acessar toda a comunicação unicast desse dispositivo, e, ainda, obter a chave da rede e comprometer toda a rede. No modo de segurança padrão qualquer nó que se associe a uma rede ZigBee obtém sua chave através da rede aberta, às vezes em texto simples. Assim, a chave pode ser obtida apenas escutando na rede, o que representa uma grande vulnerabilidade do protocolo ZigBee. E como a chave de rede é compartilhada entre todos os dispositivos, o comprometimento da chave de rede irá comprometer toda a rede. ATAQUE DE GHOST IN WIRELESS Quando um atacante gera um cabeçalho de segurança inválido, pois não possui a chave para gerar o MIC, o ataque de integridade falha, mas o dispositivo receptor gastará energia recebendo e processando as mensagens falsas. Assim, se um atacante enviar muitas destas mensagens para um determinado dispositivo, poderá levar ao esgotamento da bateria. Este ataque é capaz de reduzir a vida útil da bateria de um dispositivo de anos para dias, e também é conhecido como ghost attack ou ghost-in-wireless. Para limitar o acesso às chaves armazenadas nos dispositivos deverá ser feito o controle de acesso aos dispositivos. E para limitar a captação dos sinais wireless na rede ZigBee, e das chaves que sejam enviadas pela rede, bem como para limitar o envio de tráfego de uma atacante, que levaria ao esgotamento do dispositivo, deverá ser feito o controle do acesso ao ambiente físico. O VETOR DE INICIALIZAÇÃO A reutilização do Vetor de Inicialização, com a mesma chave, é uma vulnerabilidade de segurança herdada do padrão 802.15.4, pois esta reutilização permite que um invasor recupere dois textos originais, usando seus textos cifrados no modo AES-CTR. Para o processo de recuperação de dois textos a operação é muito simples, bastando realizar uma operação XOR entre os dois textos cifrados, que foram criptografados com as mesmas chaves e mesmos valores de nonce. E este ataque é conhecido como ataque de same-nonce. Existem duas ocasiões que possibilitam o reuso do nonce com a mesma chave. A primeira é quando temos várias entradas independentes na lista de controle de acesso, sendo que cada chip terá múltiplas ACL independentes, e assim o mesmo IV ou nonce poderia ser reutilizado com a mesma chave. O outro cenário é quando temos a recomposição da tabela de controle de acesso. A recomposição da tabela de controle de acesso ocorre quando um dispositivo ZigBee é desligado inadvertidamente, resultando na perda de entradas ACL e na necessidade de que as entradas sejam repovoadas. Se os últimos estados de nonce forem desconhecidos após a falha de energia, o sistema pode redefinir os estados de nonce para um valor padrão. E esta ação de reset aumenta a chance de reutilizar a mesma nonce com uma chave que foi usada antes da falha de energia, podendo levar ao ataque de mesmo nonce. O MODO DE REPOUSO Outra vulnerabilidade do protocolo ZigBee está associada ao processo de repouso e sondagem.Os dispositivos terminais ZigBee permanecem em modo de repouso por determinados períodos de tempo, para conservar energia e reativam suas funções em intervalos regulares para fazer a sondagem do coordenador, verificando a existência de dados. E também reativam suas funções quando, mesmo no modo de repouso, recebem uma mensagem de anúncio do coordenador. Assim, o atacante poderá enviar mensagens para o dispositivo, periodicamente, forçando-o a sair do modo de repouso e fazer a sondagem do coordenador. E estas mudanças de estado levam ao consumo de energia, desnecessariamente, pelo processo de sondagem e pelo processamento das mensagens recebidas. Com isto o atacante poderá reduzir o tempo de vida da bateria do dispositivo, semelhante ao ghost attack. Questão para Simulado 1 – Como algumas das vulnerabilidades do protocolo ZigBee estão associadas ao processo de gerenciamento das chaves de criptografia, uma das medidas para minimizar estas vulnerabilidades é a pré-configuração das chaves. E este modelo de atribuição de chave é normalmente utilizada para: a)Configuração da chave de link nos roteadores e nos dispositivos terminais b)Configuração da chave de rede apenas nos roteadores e os dispositivos terminais c)Configuração da chave de link apenas no coordenador e no Trust Center d)Configuração da chave master em todos os dispositivos da rede, incluindo o coordenador, os roteadores e os dispositivos terminais e)Configuração da chave master nos roteadores e nos dispositivos terminais, e de maneira dinâmica no Trust Center Vulnerabilidades do protocolo ZigBee Além das vulnerabilidades associadas ao processo de implantação das redes ZigBee temos também as vulnerabilidades associadas ao protocolo, sendo que algumas combinações de opções de recursos de protocolo podem tornar a rede vulnerável. Assim, é necessário conhecer estas vulnerabilidades para podermos identificar as possíveis soluções de segurança VALORES PADRÃO DE CHAVE DE LIN Os valores de chave de link padrão são utilizados pelos fabricantes para fornecer interoperabilidade para todos os dispositivos ZigBee, permitindo a conexão de novos dispositivos à uma rede já existente sem nenhuma configuração inicial. Assim, quando um novo dispositivo ZigBee necessita ser adicionado à rede, necessitará de uma autorização específica de associação. E para que isto ocorra de maneira automática, a rede ZigBee permitirá que uma chave de link padrão seja utilizada neste momento de inicialização, permitindo a associação de um novo dispositivo. Porém esta funcionalidade representa uma grande vulnerabilidade, pois o invasor poderá se associas à rede, com um dispositivo desconhecido, utilizando a chave de link padrão. E tendo acesso à rede, o atacante poderá coletar os dados necessários para identificar todos as características de funcionamento da rede, implementando um ataque de reconhecimento. Como existem milhões de dispositivos IoT, que são diretamente acessíveis via Internet e utilizam a configuração padrão insegura, para facilitar a associação às redes, eles acabam também representando milhões de pontos de vulnerabilidade na rede. PACOTES DE RECONHECIMENTO A especificação 802.15.4/ZigBee não fornece mecanismos de segurança para garantir a integridade e a confidencialidade dos pacotes de reconhecimento. Assim, um invasor não autenticado pode falsificar pacotes de reconhecimento, fazendo com que um nó remoto acredite que um pacote de reconhecimento foi recebido de um nó autêntico. E este ataque, chamado de inundação de associação, é uma consequência direta do ataque do tipo man-in-the-middle. E este ataque de man-in-the-middle irá explorar o processo de comunicação do protocolo ZigBee onde o dispositivo remetente envia um pacote para o receptor e aguarda uma mensagem de ACK, confirmando que o receptor recebeu o pacote, para continuar seu funcionamento. No entanto, como o atacante interceptará esta comunicação, o pacote ACK não será autenticado, ou o invasor poderá ainda enviar um ACK falso para o remetente. Com isso, o remetente enviará todos os pacotes subsequentes para o atacante, pois acredita que a sessão de comunicação foi estabelecida com o destinatário legítimo. E esta é a característica do ataque de man- in-the-middle, onde toda a comunicação passa através do invasor da rede. O MECANISMO CSMA/CA O mecanismo de operação do CSMA/CA possibilita o ataque de camada MAC, onde um invasor pode inundar um canal com o envio excessivo de quadros, esgotando a capacidade de transmissão do canal, forçando a rede a negar qualquer nova comunicação que necessite ser estabelecida na rede. E o como o protocolo ZIgBee utiliza também este mecanismo do CSMA/CA, estará sujeito a este tipo de ataque, pois no processo de comunicação no CSMA/CA os dispositivos sempre recuam se o canal estiver ocupado, aguardando a liberação para efetuar a transmissão de dados na rede. Porém, com a rede sempre ocupada, gerada por um ataque do tipo Negação de Serviço (DoS), os dispositivos de IoT não conseguirão estabelecer a comunicação com os demais nós da rede ZigBee. OS IDENTIFICADORES E QUANTIDADE DE CANAIS No protocolo ZigBee um dispositivo pode se juntar novamente a uma rede quando os valores de identificação (PAN ID) e de canal, que foram salvos, ainda sejam válidos. Assim, um atacante necessita conhecer o PAN ID e o canal correto para ter acesso à rede. E uma vulnerabilidade do PAN ID é que o valor de 64 bits pode ser descoberto por um ataque de força bruta e a outra vulnerabilidade é que o ZigBee opera com apenas 16 canais, facilitando ao atacante encontrar o canal de rede correto. Assim o atacante poderia, através de um ataque de força bruta, descobrir um PAN ID válido e identificar o canal ativo, obtendo o acesso não autorizado à rede ZigBee. Além disso, o ZigBee possui técnicas de proteção contra interferência de rede, porém, estas técnicas não são tão abrangentes e operam lentamente. Dstea fora é possível que um invasor assuma o controle do canal, na frequência em que a rede está operando. E este fenômeno será mais acentuado em grandes redes, onde as transmissões são muito mais frequentes e os sinais podem ser detectados de forma bastante eficiente. ATAQUES DE NEGAÇÃO DE SERVIÇO Um ataque de negação de serviço (DoS) em uma rede ZigBee fará com que um nó rejeite todas as mensagens recebidas. E este tipo de ataque de DoS pode ser realizado com diversos mecanismos, normalmente buscando esgotar toda a capacidade, da rede ou do dispositivo, não permitindo novas solicitações ou transmissões. Uma das formas de implementação de um ataque de DoS é a Inundação da rede, que consistem em inundar a rede com mensagens, com pacotes legítimos ou falsificados, ocupando toda a capacidade de transmissão. E a outra forma é o envio de pacotes em broadcast, causando a ocupação de todos os links de comunicação entre os nós CONTADOR DE QUADRO O ataque de maximização do contador de quadros visa alcançar o valor máximo de quadros, de modo que o nó rejeite os demais quadros. Para isto o invasor envia uma mensagem, com um conteúdo aleatório, definindo o valor máximo para o contador de quadros. Assim, os próximos quadros recebidos, mesmo válidos, terão valores menores do contador e serão rejeitados. E este ataque será possível apenas em situações em que o MIC do pacote não é verificado. Portanto, a autenticação dos quadros, com o modo de segurança ativado, é essencial para mitigar este tipo de ataque, que é muito simples de ser implementado. TABELAS DE ROTEAMENTO Outro ataque de negação de serviço (DoS) consiste na alteração das tabelas de roteamento, visando redirecionar todo o tráfego da rede para um dispositivo falso. Esta modificação é realizada com o envio de mensagens de roteamento falsas, de forma a construir caminhos de roteamento artificiais ou introduzindo loopsno processo de roteamento. Assim, como resultado destas alterações no roteamento, a transmissão de pacotes entre dispositivos será dificultada, tornando o processo de comunicação muito lento ou até mesmo causando a falha total da entrega dos pacotes na rede, caracterizando um ataque do tipo DoS. MITIGAÇÃO DE ATAQUES Os ataques do tipo negação de serviço visam o esgotamento de recursos da rede ou dos dispositivos e o principal mecanismo de segurança, para mitigar os ataques de DoS será a monitoração e o controle de tráfego na rede. Porém como na rede ZigBee a transmissão wireless é feita em espaço aberto, a solução será o controle de acesso físico ao ambiente da rede. Com este controle de acesso será possível mitigar os ataques que utilizam os mecanismos de ocupação do espectro de transmissão, geração de interferência e inundação da rede com mensagens falsas ou de broadcast. Questão para Simulado 1 – Como existem milhões de dispositivos IoT que são diretamente acessíveis via Internet, par facilitar o processo de conexão destes dispositivos nas mais diversas redes, acaba sendo utilizada uma configuração padrão, porém insegura. E esta vulnerabilidade poderá ser explorada da seguinte forma: a)O invasor poderá acessar o dispositivo de Trust Center utilizando a chave Mater padrão, pré-configurada em todos os dispositivos b)O invasor poderá entrar na rede usando um dispositivo desconhecido, configurado com a chave de link padrão c)O invasor poderá entrar na rede usando um dispositivo desconhecido, configurado com a chave de rede padrão d)O invasor poderá acessar o roteador utilizando a chave de rede padrão, pré-configurada em todos os dispositivos e)O invasor poderá criar uma chave inicial de rede padrão, que será reconhecida pelo roteador, por se tratar do primeiro acesso do dispositivo A comunicação em rede Para que ocorra o processo de comunicação dos dispositivos de IoT com os sistemas de gerenciamento, através da rede IP, é necessário a utilização dos protocolos de transporte e de aplicação. E um dos protocolos amplamente utilizados na camada de aplicação é o MQTT, que possui também alguns mecanismos de segurança. Além disso, para a implementação de um sistema seguro é necessário garantir a confidencialidade, a integridade e a disponibilidade dos dados e dos sistemas, além de ser realizado o gerenciamento das vulnerabilidades e dos eventos de falha de segurança. O PROTOLO TLS O protocolo TLS (Transport Layer Security) fornece segurança para a transferência de dados pela rede, realizando a criptografia dos dados, sendo amplamente utilizado para fornecer acesso seguro aos sites na WEB. O TLS garante que a confiança seja estabelecida entre o servidor e o cliente antes que a transferência de dados aconteça, fazendo isto por meio do uso de certificados enviados pelo servidor, que são validados pelos clientes antes de iniciar a comunicação. O PROTOCOLO MQTT O protocolo MQTT utiliza, por padrão, o protocolo TCP como transporte, não estabelecendo a comunicação criptografada. Assim, embora a implementação do TLS impacte o desempenho da transferência de dados e no processamento do servidor, a maioria dos agentes MQTT suportam o uso do TLS, para implementar a segurança na camada de transporte. Por exemplo, a plataforma IBM Watson IoT utiliza o TLS como a configuração padrão, para garantir a segurança da conexão dos dispositivos e gateways que utilizam o MQTT Para aumentar a segurança da comunicação, os aplicativos de IoT podem usar o MQTT PUBLISH para criptografar os dados a serem enviados para o agente MQTT. Esta implementação de criptografia é essencial para ambientes não confiáveis, ou conexões de rede inseguras. E quando forem utilizados os campos de nome de usuário e senha do pacote MQTT CONNECT, para autenticação e autorização, deve ser utilizado o TLS para garantir a confidencialidade dos dados, pois caso a mensagem seja capturada, os dados de usuário e senha estarão seguros. E a porta padronizada para uma conexão MQTT segura é a portas 8883. A CONFIDENCIALIDADE DOS DADOS A maioria das implantações do MQTT implementa segurança na camada de transporte, utilizando o protocolo TLS, de modo que os dados sejam criptografados e sua integridade seja garantida. Porém, apenas os dados da mensagem, que são as informações privadas do sensor, precisam ser criptografados, sendo que os campos de mensagens, das mensagens MQTT PUBLISH, não são alterados. E como as informações geradas pelos dispositivos de IoT são dados binários em seu estado puro, nenhum mecanismo especial de codificação é necessário para a transmissão da mensagem, bastando inseri-los no corpo das mensagens. Assim, deverá ser utilizado o protocolo TLS para fornecer segurança na camada de rede, enquanto a criptografia do conteúdo do MQTT fornece segurança na camada do aplicação. Isto é necessário pois a criptografia do conteúdo do MQTT só irá proteger as mensagens de uma captura e inspeção dos dados, ou de clientes MQTT não confiáveis, caso não seja utilizado algum mecanismo de autenticação. Porém, um invasor poderá reproduzir a mensagem, ou modificar partes da mensagem, se não houver um canal de comunicação seguro, que pode ser implementado com a utilização do TLS. A criptografia do conteúdo do MQTT é útil quando não é possível utilizar o TLS, mas não se deseja enviar os dados do aplicativo em texto simples. Esta implementação fornece uma camada adicional de segurança, já que todos os dados do aplicativo estarão protegidos. Porém estes processos de criptografia e descriptografia podem utilizar um recurso de processamento considerável, sendo recomendável o uso de um algoritmo que ofereça alta segurança sem comprometer os recursos. A INTEGRIDADE DAS MENSAGENS A verificação da integridade das mensagens visa garantir que as mensagens MQTT não foram modificadas por um atacante, E assim irá garantir a segurança na comunicação entre os dispositivos e o agente MQTT. E os mecanismos para implementar a integridade das mensagens são: · Geração de Checksum da mensagem · Código de Autenticação – MAC (Message Authentication Code) · Assinatura Digital Um Checskum criptográfico é um valor matemático, calculado com base no conteúdo da mensagem MQTT, que converte o conteúdo da mensagem em uma sequência fixa de dígitos, chamada de HASH. Os algoritmos utilziados são o MD5, o CRC (Cyclic Redundancy Check) e o SHA-1 ou SHA-2 (Secured Hash Algorithm), sendo que esse valor de checksum pode ser adicionado no início do conteúdo da mensagem MQTT. Desta forma, o aplicativo que recebe as mensagens recalcula o Checskum para verificar a integridade da mensagem, comparando-o com o Checksum recebido. Caso os valores não sejam idênticos, isto significará que a mensagem foi alterada e deve ser descartada. Outro método utilizado para garantir a integridade das mensagens é a geração de um código de autenticação da mensagem (MAC - Message Authentication Code), que é uma informação usada para verificar se uma mensagem veio de um remetente confiável e verificar se não foi modificada durante a transmissão. Um algoritmo MAC utiliza como entrada uma chave secreta e o conteúdo da mensagem MQTT, gerando o código MAC e este MAC é enviado em conjunto com a mensagem MQTT. O aplicativo, que recerá a mensagem, também precisará utilizar a mesma chave secreta, que foi usada para gerar o MAC, para validar a integridade da mensagem. E o outro método empregado para garantir a integridade das mensagens é a utilização de uma assinatura digital, que é um código digital gerado e autenticado pelo método de criptografia com o uso de chaves públicas. E esta assinatura poderá ser anexada à mensagem MQTT para verificar seu conteúdo e a identidade do remetente. As assinaturas digitais fornecem o método mais eficiente para verificar a integridade dasmensagens, mas elas afetam o desempenho e requerem recursos adicionais de processamento. Portanto, devem ser empregadas em cenários onde a rede não é confiável ou a mensagem a ser transmitida necessita de medidas adicionais de segurança. A DISPONIBILIDADE A disponibilidade de dados de IoT é de fundamental importância para os aplicativos móveis e web que dependem desses dados, bem como o acesso aos dispositivos físicos gerenciados pelos sistemas de IoT. E uma interrupção pode ser resultante de falhas de dispositivos, interrupções na conectividade, ou até mesmo decorrentes de ataques do tipo negação de serviço. Em algumas aplicações, o impacto da falta de disponibilidade pode significar perda de receita, danos aos equipamentos ou até mesmo perda de vidas. Por exemplo, em cidades conectadas, a infraestrutura de IoT é responsável por serviços essenciais, como controle de tráfego. Em aplicações de saúde os dispositivos de IoT podem incluir marcapassos e bombas de insulina, por exemplo. Assim, os sistemas de IoT devem incluir redundância para eliminar pontos únicos de falha e devem ser projetados para serem resilientes e tolerantes a falhas, para que possam se adaptar e se recuperar rapidamente quando surgirem problemas. O GERENCIAMENTO Mesmo sendo aplicadas as técnicas mais atuais de segurança, garantindo a confidencialidade e integridade dos dados e do envio de mensagens na rede, as vulnerabilidades de segurança continuarão existindo e eventuais violações também poderão ocorrer. Assim, será necessário adotar as estratégias necessárias para detectar vulnerabilidades e violações, que incluem: · Monitorar comunicações de rede e registros de atividades que representem anomalias · Realizar testes de penetração e hacking ético · Aplicar análise e inteligência de segurança, para identificar e notificar quando ocorrerem incidentes de segurança Os sistemas de gerenciamento de dispositivos mantêm um registro de dispositivos, que podem ser usados para desativar ou isolar temporariamente os dispositivos afetados. E este recurso é particularmente importante para dispositivos-chave, tais como os gateways, a fim de limitar seu potencial de dano em caso de falha, evitando que esta falha seja disseminada por todo o sistema. Inclusive estas ações podem ser aplicadas automaticamente, utilizando-se um mecanismo de regras, baseadas em políticas de gerenciamento de vulnerabilidades. Questão para Simulado 1 – O mecanismo de segurança do protocolo MQTT inclui a criptografia do conteúdo, o que irá garantir a confidencialidade. Porém para aumentar a segurança, deverá ser utilizado o protocolo TLS, para garantir o outro componente de uma comunicação segura que é: a)A confidencialidade na camada de aplicação, pois o MQTT faz a criptografia na camada de transporte b)A integridade na camada de aplicação, pois o MQTT faz apenas a criptografia na camada de aplicação c)A confidencialidade na camada de transporte, pois o MQTT faz a criptografia na camada de aplicação d)A integridade na camada de transporte, pois o MQTT faz apenas a criptografia na camada de aplicação e)A integridade na camada de transporte, pois o MQTT faz apenas a integridade na camada de aplicação Medidas de Segurança A limitação dos recursos de processamento dos dispositivos de IoT torna-os vulneráveis à uma série de ameaças. Assim, é necessário, por exemplo, a utilização de algoritmos de criptografia compatíveis com a capacidade dos dispositivos, que são os algoritmos chamados de Lightweight. Além disso, para garantir a segurança dos dispositivos é necessário mantê-los atualizados, o que pode ser feito com o uso de plataformas de IoT, que permitirão implementar também os demais recursos de segurança. A CRIPTOGRAFIA Os dispositivos de IoT possuem uma limitação de memória e da capacidade de processamento, visando permitir que estes dispositivos operem com baixo consumo de energia. Assim, a aplicação dos mecanismos de segurança de criptografia será limitada, pois teremos um baixo desempenho na operação com algoritmos complexos, para processamento em tempo real. E esta limitação possibilitará, por exemplo, um ataque baseado na análise do consumo de energia do dispositivo, que será afetado significativamente ao realizar o processo de criptografia. E este processo de análise do consumo de energia, que é conhecido como power analysis, pode ser do tipo: · Simple power analysis (SPA) · Differential power analysis (DPA) O mecanismo empregado este tipo de ataque é chamado de ataque de canal lateral (side channel attack), que explora uma informação diferente da principal, que é o consumo de energia, por exemplo, em vez de descobrir a chave criptográfica. Assim, os dispositivos de IoT, que possuem as restrições de recursos, devem utilizar algoritmos de criptografia mais leves e rápidos, cujo processo é chamado de Lightweight Cryptography (LWC). E os algoritmos, que são chamados de lightweight encryption algorithms, deverão ser executados em plataformas do tipo RFID (Radio Frequency Identification), FPGA (Field Programmable Gate Array) e outras. E entre os algoritmos LWC temos: ECC, AES, PRESENT, HUMMINGBIRD, PHOTON, DESL, HIGHT, TEA, LEA, Simon, SPECK e TWINE Para compensar as limitações da capacidade dos dispositivos, os sistemas de IoT deve-se fazer uso de múltiplas camadas de defesa, que incluem a segmentação da rede, alocando os dispositivos em redes separadas, e utilizando os sistemas de Firewalls, para controlar o acesso da rede externa aos dispositivos e demais componentes do sistema de IoT que estão instalados na rede interna ATUALIZAÇÃO DOS DISPOSITIVOS A aplicação de atualizações, incluindo patches de segurança, em firmware ou software, em dispositivos e gateways de IoT, apresenta uma série de desafios. Assim, é necessário acompanhar quais atualizações estão disponíveis para cada um dos dispositivos empregados, o que poderá envolver diversos fabricantes diferentes. O outro desfaio será a aplicação sincronizadamente em ambientes distribuídos, com dispositivos heterogêneos, que se comunicam através de uma série de diferentes protocolos de rede, o que representará uma complexidade no processo. E também deverá ser desenvolvida uma estratégia de rollback, a ser empregada em caso de falha no processo de atualização. Porém, como nem todos os dispositivos suportam atualizações em produção, podendo ser necessário acessar fisicamente estes dispositivos, ou retirá-los temporariamente de produção, para aplicação destas atualizações. Além disso, as atualizações podem não estar disponíveis para todos os dispositivos, especialmente dispositivos mais antigos ou dispositivos que não são mais suportados pelo fabricante. Assim, será necessário acompanhar as versões que são implantadas em cada dispositivo e quais dispositivos são candidatos à aposentadoria, quando as atualizações não estiverem mais disponíveis. Para facilitar este processo, podem ser empregados os sistemas de gerenciamento de dispositivos, que geralmente suportam o lançamento de atualizações automaticamente para os dispositivos e também permitem o gerenciamento de reversões (rollbacks) se o processo de atualização falhar. Além disso, podem também garantir que apenas atualizações legítimas sejam aplicadas, através do uso de assinatura digital, por exemplo. AUTENTICAÇÃO E AUTORIZAÇÃO A grande quantidade de dispositivos em um sistema de IoT representará muitos potenciais pontos vulneráveis à um acesso indevido, sendo o processo de autenticação e de autorização fundamentais para a segurança dos sistemas. Assim, os dispositivos deverão estabelecer sua identidade antes que possam acessar os gateways, realizar o envio de dados e o acesso aos aplicativos. Porém muitos dispositivos IoT podem apresentar uma vulnerabilidade na autenticação, utilizando uma senha fraca
Compartilhar