Compartilhar via


Segurança do IoT Edge para Linux no Windows

Aplica-se a: Marca de seleção do IoT Edge 1.5 IoT Edge 1.5 marca de seleção do IoT Edge 1.4 IoT Edge 1.4

Importante

O IoT Edge 1.5 LTS e o IoT Edge 1.4 LTS são versões com suporte. O IoT Edge 1.4 LTS chegará ao fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

O Azure IoT Edge para Linux no Windows se beneficia de todas as ofertas de segurança com a execução em um host Windows Client/Server e faz com que todos os componentes extras mantenham as mesmas instalações de segurança. Este artigo fornece informações sobre as diferentes instalações de segurança habilitadas por padrão e algumas das instalações opcionais que o usuário pode habilitar.

Segurança de máquina virtual

A máquina virtual coletada EFLOW (IoT Edge para Linux) se baseia no Microsoft CBL-Mariner. O CBL-Mariner é uma distribuição Linux interna para os produtos e serviços de borda e a infraestrutura de nuvem da Microsoft. O CBL-Mariner foi projetado para oferecer uma plataforma consistente para esses dispositivos e serviços e aumenta a capacidade da Microsoft de se manter atualizada em relação a atualizações do Linux. Para obter mais informações, confira Segurança do CBL-Mariner.

A máquina virtual EFLOW é criada em uma plataforma de segurança abrangente de quatro pontos:

  1. Atualizações de manutenção
  2. Sistema de arquivos raiz somente leitura
  3. Bloqueio de firewall
  4. DM-Verity

Atualizações de manutenção

Quando surgem vulnerabilidades de segurança, o CBL-Mariner disponibiliza os patches e as correções de segurança mais recentes para manutenção por meio de atualizações mensais do ELOW. A máquina virtual não tem gerenciador de pacotes, ou seja, não é possível baixar e instalar manualmente pacotes RPM. Todas as atualizações da máquina virtual são instaladas usando o mecanismo de atualização EFLOW A/B. Para saber mais sobre atualizações de EFLOW, confira Atualizar o IoT Edge para Linux no Windows

Sistema de arquivos raiz somente leitura

A máquina virtual EFLOW é composta de dois rootfs e dados de partições principais. As partições rootFS-A ou rootFS-B são intercambiáveis e uma das duas é montada como um sistema de arquivos somente leitura no /, o que significa que nenhuma alteração é permitida em arquivos armazenados dentro dessa partição. Por outro lado, a partição de dados montada em /var é legível e gravável, o que permite que o usuário modifique o conteúdo dentro da partição. Os dados armazenados nessa partição não são manipulados pelo processo de atualização e, assim, não serão modificados entre atualizações.

Como você pode precisar de acesso de gravação a /etc, /home, /root/var para casos de uso específicos, o acesso de gravação desses diretórios é feito sobrepondo-os à nossa partição de dados especificamente para o diretório/var/.eflow/overlays. O resultado final disso é que os usuários podem escrever qualquer coisa nos diretórios mencionados anteriormente. Para saber mais sobre sobreposições, confira overlayfs.

Layout de partição do EFLOW CR

Partição Tamanho Descrição
BootEFIA 8 MB Partição de firmware A para inicialização futura do GRUBless
BootA 192 MB Contém o bootloader para a partição A
RootFS A 4 GB Uma das duas partições ativas/passivas que mantêm o sistema de arquivos raiz
BootEFIB 8 MB Partição de firmware B para inicialização futura do GRUBless
BootB 192 MB Contém o bootloader para a partição B
RootFS B 4 GB Uma das duas partições ativas/passivas que mantêm o sistema de arquivos raiz
Registro 1 GB ou 6 GB Registra em log partição específica montada em /logs
Dados 2 GB a 2 TB Partição com estado para armazenar dados persistentes nas atualizações. Expansível de acordo com a configuração de implantação

Observação

O layout de partição representa o tamanho do disco lógico e não indica o espaço físico que a máquina virtual ocupará no disco do sistema operacional do host.

Firewall

Por padrão, a máquina virtual EFLOW usa o utilitário iptables para configurações de firewall. Iptables é usado para configurar, manter e inspecionar as tabelas de regras de filtro de pacote IP no kernel do Linux. A implementação padrão só permite o tráfego de entrada na porta 22 (serviço SSH) e bloqueia outros tráfegos. Você pode verificar a configuração de iptables com as seguintes etapas:

  1. Abra uma sessão do PowerShell elevada

  2. Conecte-se à máquina virtual EFLOW

    Connect-EflowVm
    
  3. Liste todas as regras de iptables

    sudo iptables -L
    

    Padrão de iptables do EFLOW

Inicialização verificada

A máquina virtual EFLOW dá suporte à inicialização verificada por meio do recurso de kernel device-mapper-verity (dm-verity) incluído no dispositivo, que fornece verificação de integridade transparente de dispositivos de bloco. dm-verity ajuda a evitar rootkits persistentes que possam manter privilégios raiz e comprometer dispositivos. Esse recurso garante que a imagem de software base da máquina virtual seja a mesma e não tenha sido alterada. A máquina virtual usa o recurso dm-verity para verificar o dispositivo de bloco específico, a camada de armazenamento subjacente do sistema de arquivos, e determinar se ele corresponde à configuração esperada.

Por padrão, esse recurso fica desabilitado na máquina virtual e não pode ser ativado nem desativado. Para obter mais informações, confira dm-verity.

Trusted Platform Module (TPM)

A tecnologia TPM (Trusted Platform Module) foi desenvolvida para fornecer funções relacionadas à segurança com base em hardware. Um chip TPM é um processador de criptografia seguro projetado para desempenhar as operações de criptografia. O chip inclui vários mecanismos de segurança física para torná-lo resistente a adulterações nas funções de segurança do TPM por software mal-intencionado.

A máquina virtual EFLOW não dá suporte ao vTPM. No entanto, o usuário pode habilitar/desabilitar o recurso de passagem do TPM, que permite que a máquina virtual EFLOW use o Windows TPM do sistema operacional do host. Isso habilita dois cenários principais:

Garantir a comunicação entre máquina virtual e host

O EFLOW fornece várias maneiras de interagir com a máquina virtual expondo uma implementação avançada do módulo do PowerShell. Para obter mais informações, confira Funções do PowerShell para o IoT Edge para Linux no Windows. Este módulo requer uma sessão elevada para ser executada e é assinado com um certificado da Microsoft Corporation.

Todas as comunicações entre o sistema operacional Windows do host e a máquina virtual EFLOW exigida pelos cmdlets do PowerShell são feitas usando um canal SSH. Por padrão, o serviço SSH da máquina virtual não permitirá a autenticação por meio de nome de usuário e senha e está limitado à autenticação de certificado. O certificado é criado durante o processo de implantação do EFLOW e é exclusivo para cada instalação do EFLOW. Além disso, para evitar ataques de força bruta SSH, a máquina virtual bloqueará um endereço IP se tentar mais de três conexões por minuto com o serviço SSH.

Na versão CR (Versão Contínua) do EFLOW, apresentamos uma alteração no canal de transporte usado para estabelecer a conexão SSH. Originalmente, o serviço SSH é executado na porta TCP 22, que pode ser acessada por todos os dispositivos externos na mesma rede por meio de um soquete TCP para essa porta específica. Por motivos de segurança, o EFLOW CR executa o serviço SSH em soquetes Hyper-V em vez de soquetes TCP normais. Toda a comunicação por meio de soquetes Hyper-V é executada entre o sistema operacional Windows do host e a máquina virtual EFLOW, sem usar a rede. Isso limita o acesso do serviço SSH, restringindo as conexões apenas ao sistema operacional Windows do host. Para obter mais informações, confira Soquetes Hyper-V.

Próximas etapas

Leia mais sobre Instalações de segurança da IoT do Windows

Mantenha-se atualizado com as atualizações mais recentes do IoT Edge para Linux no Windows.