O documento discute a plataforma Azure Sphere da Microsoft, que foi concebida com princípios de segurança para a Internet das Coisas (IoT). A Azure Sphere implementa sete propriedades de segurança em dispositivos através de hardware, sistema operacional e nuvem seguros. A plataforma fornece atualizações automáticas e certificados digitais para autenticação, além de monitorar falhas e anomalias nos dispositivos.
Azure Sphere: A evolução segura da Internet das Coisas
1.
2.
3. INTERNET DAS COISAS
Azure Sphere a evolução da plataforma de
IoT concebida com princípios de seguranç
Walter Coan
4. MINI-BIO
WALTER
COAN
Microsoft MVP, Azure Solutions Architect, Azure IoT/Dev Cert,
MCT, MCSD, AWS Academy Accredited Educator, AWS Developer
Certified, SCP Java. Professor do Bacharelado em Sistemas de
Informação e do Bacharelado em Engenharia de Software da
UNIVILLE, mestre em Ciência da Computação na área de
Sistemas Distribuídos e Redes de Sensores sem Fio.
/waltercoan
@waltercoan
/waltercoan
@waltercoan
walter.coan@gmail.com
www.waltercoan.com.br
5. Azure Sphere a evolução da plataforma de IoT concebida com
princípios de segurança.
• Tema
• Sete propriedades de um dispositivo seguro
• Introdução ao Azure Sphere
• Como implementar as sete propriedades
• Novidades
Agenda
6. INSIRA A TECNOLOGIA MICROSOFT AQUI
“A Internet das Coisas ou IoT é uma coleção de serviços de plataforma
gerenciados, na borda e na nuvem, que conectam, monitoram e controlam bilhões
de ativos de IoT. Ela também inclui sistemas operacionais, e segurança para
dispositivos e equipamentos, bem como dados e análises que ajudam as empresas
a criar, implantar e gerenciar aplicativos de IoT.”
• Criar espaços inteligentes a partir da implantação de
dispositivos conectados a nuvem
• Garantir seu funcionamento de forma segura
7. INSIRA A TECNOLOGIA MICROSOFT AQUI
• 01 de Janeiro de 2020
• Todos os parquímetros da cidade de Nova
York pararam de receber pagamentos por
cartão de crédito;
• A mesma falha ocorreu na Austrália e na
Alemanha
• A empresa precisou manualmente atualizar
todos os equipamentos devido a falha do
software.
Sarah Maston
Senior Program Manager, Azure Sphere
Fonte: https://gothamist.com/news/y2k20-parking-meter-software-glitch-causes-
citywide-snafu
8. INSIRA A TECNOLOGIA MICROSOFT AQUI
• Hardware Root of Trust (Hardware)
• Seu dispositivo é identificável e a integridade do software é
confirmada por hardware?
• Defense in Depth (Hardware + OS)
• Seu dispositivo se mantém seguro se um mecanismo de segurança
for destruído?
• Small Trusted Computing Base (Hardware + OS)
• O seu dispositivo reforça a segurança contra bugs no código das
aplicações?
• Dynamic Compartments (Hardware + OS)
• As proteções de segurança do seu dispositivo podem melhorar após a
implantação?
9. INSIRA A TECNOLOGIA MICROSOFT AQUI
• Certificate-Based Authentication (Hardware + OS +
CLOUD)
• Seu dispositivo utiliza certificados digitais ao invés de senhas
para autenticação?
• Failure Reporting (Hardware + OS + CLOUD)
• Seu dispositivo reporta falhas e anomalias?
• Renewable Security (Hardware + OS + CLOUD)
• Seu dispositivo atualiza o software de forma automática?
10. INSIRA A TECNOLOGIA MICROSOFT AQUI
Secured MCUs
Umanovacategoria deMCU’s chamadoAzure Sphere,
produzidos porempresas parceiras, comtecnologia de
segurançadaMicrosoft, quefornececonectividade, alto
desempenho ecaracterísticas desegurançanohardware.
Cloud Security
AzureSphere Security Serviceprotege cadadispositivo e
osclientes, detecta falhas desegurançaerespondede
formaproativa.
Secured OS
Sistema operacional seguroAzure Sphere OSquecombina as
melhores práticas daMicrosoft edacomunidade Open Source,
criandoumaplataforma confiável paraumanovaexperiência em
IoT.
11. INSIRA A TECNOLOGIA MICROSOFT AQUI
Microsoft Pluton Security Subsystem –
Root of Trust
ARM Cortex-A provê isolamento de
processos através do gerenciamento de
unidades de memória. Azure Sphere OS
cria containers para as aplicações que
utilizam espaços de memória reservados.
Cada chip possui sua própria memória
flash e SRAM.
2x ARM Cortex-M é o MCU, que executa o
processamento em real time.
12. INSIRA A TECNOLOGIA MICROSOFT AQUI
Azure Sphere utiliza a tecnologia
ARM’s TrustZone que permite a criação
de ambientes independentes de
execução dentro de um único chip.
• Secure World – alto nível de
privilégios
• Normal World – baixo nível de
privilégios
Cada ambiente pode executar seu
próprio sistema operacional e
aplicações
13. INSIRA A TECNOLOGIA MICROSOFT AQUI
Microsoft Pluton Security Subsystem é
composto por três componentes:
• Pluton Fabric – recursos de segurança
implementados no hardware
• ECDSA - Algoritmo de Assinatura Digital
de Curvas Elípticas
• Acesso as chaves PKI – gravada em
e-Fuse no momento da construção do
MCU.
• Pluton Runtime – inicializa o
funcionamento com o Pluton Fabric
• Checagem da inicialização do sistema
• Único componente capaz de acessar
o Pluton Fabric
• Real-time core dedicado ao Pluton
14. INSIRA A TECNOLOGIA MICROSOFT AQUI
Cortex-A7
• Security Monitor
• É executado no Security World
• Verifica e permite políticas de
acesso a recursos
• Atualização do software
• Auditoria do ambiente
• Único componente com permissão
de acesso a memória flash
15. INSIRA A TECNOLOGIA MICROSOFT AQUI
Cortex-A7
• Custom Linux Kernel
• Normal World
• On-chip Cloud Service
• Normal World
• Comunicação com Azure Sphere
Security Service
• Aplicação desenvolvida pelo
fabricante do dispositivo
• Executada em um sandbox
• Padrão POSIX
16. INSIRA A TECNOLOGIA MICROSOFT AQUI
Cortex-M4 – Real Time Core
• Totalmente dedicados e isolados
para a aplicação cliente;
• Execução bare metal
• Execução RTOS
• Normal World
• Periféricos podem ser mapeados
para estes núcleos garantindo
características de aplicações em
tempo real
20. INSIRA A TECNOLOGIA MICROSOFT AQUI
Secure Boot
• Todo software que é executado é assinado por uma chave
privada da Microsoft e verificada por uma chave pública no
Azure Sphere
Measured Boot (Boot controlado)
• O serviço remoto verifica qual software foi utilizado para
realizar o boot da aplicação
• Se o software utilizado é de uma fonte desconhecida, o acesso
do dispositivo a recursos de nuvem pode ser negado.
• Se o dispositivo estiver rodando software que não esta atualizado
ou que não seja mais confiável pela Microsoft (zero-day exploit), o
dispositivo é obrigado a se atualizar para ter acesso a qualquer
recurso de nuvem.
21. INSIRA A TECNOLOGIA MICROSOFT AQUI
Tratar a boot ROM como um software não atualizável e
minimizar seu tamanho
• O boot ROM é gravado no momento da manufatura do
microprocessador
• É considerado o código mais seguro pois não pode ser
modificado
• Tentativas de ataques comuns aplicados
• Realizar ações que forcem o MCU a pular parte do código da ROM
que por exemplo faz verificação de assinaturas dos softwares, para
dai inserir um código não autorizado para ser executado
• Solução
• Implementar no hardware dispositivos para impedir a possibilidade do
código da ROM não ser totalmente executado
• Reduzir o tamanho da ROM para diminuir sua área de
ataque
22. INSIRA A TECNOLOGIA MICROSOFT AQUI
Nunca expor chaves privadas do dispositivo ao software
• Azure Sphere utiliza o método de criptografia de chaves públicas e
privadas elliptic-curve cryptography (ECC) para implementar o Boot
Seguro e o Boot controlado.
• As chaves são gravadas em dispositivos chamados one-time
programmable fuse (OTP) (e-fuse), não podem ser modificados e são
acessíveis apenas pelo Pluton Fabric
• O Boot controlado utiliza um conjunto de chaves publicas e privadas
geradas no momento da produção do MCU
• A parte privada da chave é gravada nos e-fuses (CHAVE DO DISPOSITIVO)
• A parte pública da chave é coletada pela Microsoft
• Tentativas de ataques comuns
• Hardware Secure Module (HSM) dispositivos utilizados para gerar e
armazenar pares de chaves que precisam ser transferidos para o MCU
• Possibilitando um ataque de man-in-the-middle
• Solução
• Nenhuma parte do software tem acesso as chaves
23. INSIRA A TECNOLOGIA MICROSOFT AQUI
Utilize o chaves ECC (Elliptic-curve cryptography) do que
RSA (Rivest-Shamir-Adleman)
• ECC tem resistência a ataque de força bruta equivalente ao
RSA
• ECC necessitam de menos RAM e geram chaves menores
portanto precisam de menos espaço de e-Fuses para serem
armazenadas, reduzindo o custo de produção do MCU
• ECC necessitam de uma única fonte de dados aleatórios
para ser gerada
• Azure Sphere possui um hardware específico e auto verificado
para geração de números randômicos
• RSA necessita da geração de dois números primos
randômicos, processo que tem um alto custo computacional
24. INSIRA A TECNOLOGIA MICROSOFT AQUI
Utilize o Boot Seguro em todo lugar e sempre
• Verificação das assinaturas contra as chaves ECC utilizando o
algoritmo ECDSA (Elliptic Curve Digital Signature Algorithm)
• A chave privada é mantida pela Microsoft
• A chave pública precisa ser distribuída aos dispositivos de forma
segura, garantindo sua integridade
• Bootstrap key mais um conjunto de chaves, onde a parte pública é
gravada nos e-fuses, e utilizada pela ROM para verificar o bootloader.
Utilizada também para verificar a assinatura de um arquivo binário
contendo as chaves públicas utilizadas para verificar os demais
componentes de software.
ROM verifica assinatura
bootloader
• Uma vez verificado inicia a execução
Bootloader verifica a
assinatura do software do
Pluton Runtime
• Uma vez verificado inicializa a
execução
Pluton inicia a verificação da
assinatura da próxima
camada de software
Até chegar na Aplicação de
Negócio
25. INSIRA A TECNOLOGIA MICROSOFT AQUI
Utilize o Boot Controlado para comprovar Boot Seguro
• O Boot controlado utiliza uma lista de assinaturas dos softwares
para comprovar que o Boot Seguro foi executado comprovando
para o serviço remoto de certificação do Azure a integridade do
sistema.
• Durante o Boot seguro um valor hash de cada software verificado é
acumulado
• Esse acumulador não pode ser apagado, a não ser que o MCU seja
resetado
• O Azure Sphere conecta por TLS com o Azure Sphere Security
Server, e solicita um valor que comprove sua integridade além de
outros dados coletados durante o processo de boot seguro.
• O Azure Sphere combina os valores do hash, e assina o valor com a
chave privada única do dispositivo, essa hash é utilizada apenas para
certificação de integridade remota.
• O Azure Sphere Security Server possui a chave pública do dispositivo,
que permite verificar a integridade dos dados passados pelo
dispositivo.
26. INSIRA A TECNOLOGIA MICROSOFT AQUI
Utilize o Boot Controlado para comprovar Boot Seguro
• Se a certificação remota ocorrer com sucesso
• O dispositivo recebe dois certificados x.509: o primeiro é um
certificado para atualização do dispositivo através de uma conexão
segura com o serviço na nuvem, e o segundo certificado habilita
que o dispositivo possa se conectar com serviços do Azure IoT
como o Azure IoT Hub.
• Estes certificados tem validade de 24 horas
• É possível que a certificação remota ocorreu com sucesso, mas o
software não é mais confiável
• Neste caso o dispositivo recebe apenas o certificado de
atualização, os binários no device são marcados como não
confiáveis, e o dispositivo é obrigado a atualizar.
27. INSIRA A TECNOLOGIA MICROSOFT AQUI
Atualização de certificados
• Azure Sphere possui um blob com um pequeno conjunto de
certificados binários
• Verificados durante o processo de boot seguro
• Computadores comuns podem receber atualizações com novos
certificados
• Dispositivos IoT podem ficar meses parados antes de serem
utilizados
• Solução
• O Azure Sphere conecta em um endpoint http para baixar a versão do
blob de certificados mais atualizado.
• O dispositivo tem consciência de que esse arquivo é considerado
inseguro.
• Esse blob é assinado com a chave privada bootstrap key e verificada
com a parte pública que foi gravada no e-fuse do MCU.
• Como um passo extra, algumas mensagens são trocadas para
verificar se os certificados foram atualizados.
28. INSIRA A TECNOLOGIA MICROSOFT AQUI
Conectividade é opcional
• O que acontece se o dispositivo não possuir conectividade e
se os certificados expirarem?
• O dispositivo continua funcionando normalmente
• O Boot Seguro não depende de certificados
• Os aplicativos que já estão instalados no dispositivo, passarão pelo
processo de verificação do Boot Seguro e serão colocados em
funcionamento.
29. INSIRA A TECNOLOGIA MICROSOFT AQUI
Tornar difícil construir botnets a partir de vulnerabilidades
de dia zero
• O Azure Sphere lida com essa questão utilizando o
componente de firewall
• Todo aplicativo possui um arquivo descritor (manifest) que
descreve as políticas de acesso a recurso, periféricos e
endereços de internet.
• Não há possibilidade de uma aplicação reprogramar esse firewall.
• E caso a aplicação precise conectar com um endereço onde ele
não conheça o DNS
• Suporte ao protocolo mDNS e DNS-SD
30. INSIRA A TECNOLOGIA MICROSOFT AQUI
Utilizar a política de negado por padrão, reforçado pelo
hardware
• ARM TrustZone divide os 4mb de SRAM ligado ao Cortex-
A7 em seguimentos para o Secure World e Normal World
• A memória do Normal World é dividida entre o Cortex-A7 e os
núcleos Cortex-M4
• Azure Sphere utiliza a política de negado por padrão
• SRAM
• Durante o boot a SRAM é acessível apenas pelo Secure World
• Software rodando no Secure World que da acesso ao Cortex-A7
para acessar parte da memória no Normal World (Linux kernel)
• Todos os periférico possui um “sticky bit” que mantém o periférico
ligado ao core que solicitou seu uso pelo arquivo descritor
(manifest).
31. INSIRA A TECNOLOGIA MICROSOFT AQUI
Eliminar o conceito de usuários nos dispositivos IoT
• Dispositivos não devem conter dados de usuários, muito menos
acesso a suas contas, ou super usuários.
• O gerenciamento de credenciais de usuários deve ficar com
serviços em nuvem
• No Azure Sphere as identidades do sistema operacional Linux
(users and groups) são atribuídas de forma única as aplicações.
Cada aplicação possui as configurações de permissões que deve
possuir.
• Todas as aplicações são contidas em containers, e possuem seu
sistema de arquivos próprio por aplicação. As permissões dão
acesso a aplicação para utilizar os arquivos, mas não permitem
que outra aplicação tenha acesso aos arquivos.
• Não existe a possibilidade de um usuário assumir um papel de
super usuário.
32. INSIRA A TECNOLOGIA MICROSOFT AQUI
Dividir o código entre user-mode code e kernel code
• Todo o código necessário para manter a segurança da
aplicação é executado dentro do Secure World do ARM
Trustzone
• As aplicações são executadas no modo de Normal World,
garantindo que mesmo que o usuário ganhe acesso a
aplicação, ele não será capaz de tomar o controle total do
dispositivo.
33. INSIRA A TECNOLOGIA MICROSOFT AQUI
Faça a atualização de software ser tolerante a falhas
• Toda atualização é gerenciada pela Microsoft
• Antes de iniciar a atualização o sistema garante que possui
uma copia, compactada de todo o software que esta no
dispositivo.
• Caso a atualização falhe por qualquer motivo, o sistema
recupera a última versão estável do software, e informa a
falha de atualização para o serviço de segurança do Azure
Sphere.
• Uma vez que a atualização aconteça, o dispositivo é
reiniciado e uma nova versão do Pluton Runtime e do
Security Monitor são iniciadas, e iniciam a verificação para
então atualizar o Azure Sphere OS. Uma vez atualizada a
versão, são gravadas informações que não permitem
retornar a versão anterior.
34. INSIRA A TECNOLOGIA MICROSOFT AQUI
Isolar a aplicação para tornar a atualização simples
• Todas as dependências da aplicação de negócio são
empacotadas em um único binário, simplificando o processo
de atualização.
• Uma aplicação pode ser atualizada e reiniciada sem
necessitar reiniciar o dispositivo inteiro.
35. INSIRA A TECNOLOGIA MICROSOFT AQUI
Não permita que o sistema dinamicamente modifique o
comportamento do software
• Azure Sphere tem por padrão não permitir que novas
funcionalidades sejam “linkadas” ao kernel do sistema
operacional. Portanto todos os módulos do kernel deve ser
compilados de forma estática e distribuídas junto ao pacote
assinado de atualização.
36. INSIRA A TECNOLOGIA MICROSOFT AQUI
Defesa contra reversão de atualizações
• O downgrade attack consiste em forçar o dispositivo a
reverter as atualizações e retornar a uma versão onde uma
brecha de segurança foi descoberta.
• Caso fosse possível realizar essa operação com o Azure
Sphere, o Pluton Runtime detectaria que a versão antiga
não é mais confiável, e impediria o processo de boot,
levando o dispositivo para a última versão estável
conhecida, que seria a mais atual.
• Existem um conjunto limitado de e-fuses que controlam o
versionamento do dispositivo, e apenas em casos onde há
uma vulnerabilidade relevante, esse controle é acionado.
37. INSIRA A TECNOLOGIA MICROSOFT AQUI
https://www.microsoft.com/security/blog/2020/05/20/cybersecurity-practices-implement-secured-devices/
38. INSIRA A TECNOLOGIA MICROSOFT AQUI
• Versão 21.07
• Azure Sphere Public API
• Update no SDK
• Versão 21.08
• Novos exemplos no Azure Sphere Gallery
• CVE-2021-22924 – correção libcurl para utilização de certificados SSL
• Versão 21.09
• Azure Sphere Gallery – exemplo RS-485 em real time
• Versão 21.10
• Correção de CVEs ligadas ao Azure Sphere e a libcurl
• Novos exemplos no Azure Sphere Gallery
• Conexão de rede por um servidor proxy
• Compatibilidade com o Windows 11 e Visual Studio 2022
• Novo chip da NXP com suporte a SRAM e FLASH externa
• Possibilidade de futura implementação de suporte a outras linguagens além
do C.