Segurança do IoT Edge para Linux no Windows

Aplica-se a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

O IoT Edge 1.4 é a versão suportada. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

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

Segurança da máquina virtual

A máquina virtual com curadoria do IoT Edge para Linux (EFLOW) é baseada no Microsoft CBL-Mariner. CBL-Mariner é uma distribuição Linux interna para a infraestrutura de nuvem da Microsoft e produtos e serviços de borda. A CBL-Mariner foi projetada para fornecer uma plataforma consistente para esses dispositivos e serviços e melhora a capacidade da Microsoft de se manter atualizada sobre as atualizações do Linux. Para obter mais informações, consulte Segurança CBL-Mariner.

A máquina virtual EFLOW é construída 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, a CBL-Mariner disponibiliza os patches e correções de segurança mais recentes para manutenção através de atualizações mensais da EOLOW. A máquina virtual não tem gerenciador de pacotes, portanto, não é possível baixar e instalar pacotes RPM manualmente. Todas as atualizações para a máquina virtual são instaladas usando o mecanismo de atualização EFLOW A/B. Para obter mais informações sobre atualizações EFLOW, consulte Atualizar o IoT Edge para Linux no Windows

Sistema de arquivos raiz somente leitura

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

Como você pode precisar de acesso de gravação para , , , para casos de uso específicos, /var/home/rooto acesso de gravação para esses diretórios é feito sobrepondo-os em nossa partição de /etcdados 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 obter mais informações sobre sobreposições, consulte sobreposições.

EFLOW CR partition layout

Partição Tamanho Description
BootEFIA 8 MB Partição de firmware A para futura inicialização GRUBless
BootA 192 MB Contém o carregador de inicialização para uma partição
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 futura inicialização GRUBless
Bota 192 MB Contém o carregador de inicialização para a partição B
RootFS B 4 GB Uma das duas partições ativas/passivas que mantêm o sistema de arquivos raiz
Registo 1 GB ou 6 GB Registra partição específica montada em /logs
Dados 2 GB a 2 TB Partição com estado para armazenar dados persistentes em atualizações. Expansível de acordo com a configuração de implantação

Nota

O layout da 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 host.

Firewall

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

  1. Abrir uma sessão elevada do PowerShell

  2. Conectar-se à máquina virtual EFLOW

    Connect-EflowVm
    
  3. Listar todas as regras iptables

    sudo iptables -L
    

    EFLOW iptables default

Inicialização verificada

A máquina virtual EFLOW suporta inicialização verificada através do recurso de kernel device-mapper-verity (dm-verity) incluído, que fornece verificação de integridade transparente de dispositivos de bloco. O DM-Verity ajuda a evitar rootkits persistentes que podem manter privilégios de raiz e comprometer dispositivos. Esse recurso garante que a imagem do 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 é desabilitado na máquina virtual e pode ser ativado ou desativado. Para obter mais informações, consulte dm-verity.

Módulo de plataforma confiável (TPM)

A tecnologia TPM (Trusted Platform Module) foi concebida para fornecer funções relacionadas com segurança baseadas em hardware. Um chip TPM é um criptoprocessador seguro projetado para realizar operações criptográficas. O chip inclui vários mecanismos de segurança física para torná-lo resistente a adulterações, e o software mal-intencionado é incapaz de adulterar as funções de segurança do TPM.

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

Comunicação segura entre host e máquina virtual

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

Todas as comunicações entre o sistema operacional host Windows e a máquina virtual EFLOW exigidas pelos cmdlets do PowerShell são feitas usando um canal SSH. Por padrão, o serviço SSH da máquina virtual não permite autenticação por meio de nome de usuário e senha, e é 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 EFLOW Continuous Release (CR), introduzimos 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 usando 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 soquetes Hyper-V é executada entre o sistema operacional host Windows e a máquina virtual EFLOW, sem usar rede. Isso limita o acesso do serviço SSH, restringindo as conexões apenas ao sistema operacional host Windows. Para obter mais informações, consulte Soquetes Hyper-V.

Próximos passos

Leia mais sobre as premissas de segurança do Windows IoT

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