Compartir a través de


Seguridad de IoT Edge para Linux en Windows

Se aplica a:Marca de verificación de IoT Edge 1.5 IoT Edge 1.5

Importante

IoT Edge 1.5 LTS es la versión compatible. IoT Edge 1.4 LTS finaliza su ciclo de vida el 12 de noviembre de 2024. Si está usando una versión anterior, consulte Actualización de IoT Edge.

Azure IoT Edge para Linux en Windows usa todas las características de seguridad de un host de servidor o cliente de Windows y garantiza que todos los componentes adicionales sigan los mismos principios de seguridad. En este artículo se explican los distintos principios de seguridad que están habilitados de forma predeterminada y algunos principios opcionales que puede habilitar.

Seguridad de máquina virtual

La máquina virtual mantenida IoT Edge para Linux (EFLOW) se basa en Microsoft CBL-Mariner. CBL-Mariner es una distribución interna de Linux para la infraestructura en la nube, los productos perimetrales y los servicios de Microsoft. CBL-Mariner proporciona una plataforma coherente para estos dispositivos y servicios, y ayuda a Microsoft a mantenerse al día en las actualizaciones de Linux. Para más información, consulte Seguridad de CBL-Mariner.

La máquina virtual EFLOW usa una plataforma de seguridad completa de cuatro puntos:

  1. Actualizaciones de mantenimiento
  2. Sistema de archivos raíz de solo lectura
  3. Bloqueo del firewall
  4. DM-Verity

Actualizaciones de mantenimiento

Cuando surgen vulnerabilidades de seguridad, CBL-Mariner proporciona las revisiones y correcciones de seguridad más recientes a través de las actualizaciones mensuales de EFLOW. La máquina virtual no tiene un administrador de paquetes, por lo que no puede descargar ni instalar manualmente paquetes RPM. EFLOW instala todas las actualizaciones en la máquina virtual mediante el mecanismo de actualización A/B. Para más información sobre las actualizaciones de EFLOW, consulte Actualización de IoT Edge para Linux en Windows.

Sistema de archivos raíz de solo lectura

La máquina virtual EFLOW tiene dos particiones principales: rootfs y datos. Las particiones rootFS-A o rootFS-B son intercambiables y se monta como un sistema de archivos de solo lectura en /, por lo que no se pueden cambiar los archivos de esta partición. La partición de datos , montada en /var, es legible y grabable, por lo que puede cambiar su contenido. El proceso de actualización no cambia los datos almacenados en esta partición, por lo que no se modifica en las actualizaciones.

Dado que es posible que necesite acceso de escritura a /etc, /home, /rooty /var para casos de uso específicos, EFLOW superpone estos directorios a la partición de datos en /var/.eflow/overlays para proporcionar acceso de escritura. Esta configuración le permite escribir en estos directorios. Para obtener más información sobre las superposiciones, vea Superposiciones.

Diseño de partición EFLOW CR

Partición Tamaño Descripción
BootEFIA 8 MB Partición de firmware A para los arranques de GRUBless futuros
BootA 192 MB Contiene el cargador de arranque para la partición A
RootFS A 4 GB Una de las dos particiones activas o pasivas que contienen el sistema de archivos raíz
BootEFIB 8 MB Partición de firmware B para los arranques de GRUBless futuros
BootB 192 MB Contiene el cargador de arranque para la partición B
RootFS B 4 GB Una de las dos particiones activas o pasivas que contienen el sistema de archivos raíz
Registro 1 GB o 6 GB Registra una partición específica montada en /logs
Datos De 2 GB a 2 TB Partición con estado para almacenar datos persistentes entre actualizaciones. Expandible según la configuración de implementación.

Nota:

El diseño de partición representa el tamaño del disco lógico y no indica el espacio físico que usa la máquina virtual en el disco del sistema operativo host.

Cortafuegos

De forma predeterminada, la máquina virtual EFLOW usa la utilidad iptables para las configuraciones de firewall. Iptables configura, mantiene e inspecciona las tablas de reglas de filtro de paquetes IP en el kernel de Linux. La implementación predeterminada permite el tráfico entrante en el puerto 22 (servicio SSH) y bloquea otro tráfico. Compruebe la configuración de iptables con los pasos siguientes:

  1. Abra una sesión de PowerShell con privilegios elevados

  2. Conexión a la máquina virtual EFLOW

    Connect-EflowVm
    
  3. Enumerar todas las reglas de iptables

    sudo iptables -L
    

    iptables EFLOW predeterminadas

Arranque comprobado

La máquina virtual EFLOW admite el arranque comprobado a través de la característica de kernel device-mapper-verity (dm-verity) incluida, que proporciona una comprobación de integridad transparente de los dispositivos bloqueados. dm-verity ayuda a evitar los rootkits persistentes que pueden mantenerse en los privilegios raíz y poner en peligro los dispositivos. Esta característica garantiza que la imagen de software base de la máquina virtual sea la misma y no se modifique. La máquina virtual usa la característica dm-verity para comprobar un dispositivo de bloque específico, la capa de almacenamiento subyacente del sistema de archivos y ver si coincide con su configuración esperada.

De forma predeterminada, esta característica está deshabilitada en la máquina virtual, pero puede activarla o desactivarla. Para más información, consulte dm-verity.

Módulo de plataforma segura (TPM)

La tecnología del Módulo de plataforma segura (TPM) está diseñada para ofrecer funciones relacionadas con la seguridad y el hardware. El chip del TPM es un procesador de criptografía seguro diseñado para realizar operaciones criptográficas. El chip incluye varios mecanismos de seguridad física que hacen que sea resistente a las alteraciones y que las funciones de seguridad no permitan que el software malintencionado realice alteraciones.

La máquina virtual EFLOW no admite vTPM. Sin embargo, puede habilitar o deshabilitar la característica de acceso directo de TPM, que permite que la máquina virtual EFLOW use el TPM del sistema operativo host de Windows. Esto le permite realizar dos escenarios principales:

Proteger la comunicación de la máquina virtual y del host

EFLOW le permite interactuar con la máquina virtual mediante un módulo de PowerShell. Para obtener más información, vea Funciones de PowerShell para IoT Edge para Linux en Windows. Este módulo necesita una sesión con privilegios elevados para ejecutarse y está firmada con un certificado de Microsoft Corporation.

Toda la comunicación entre el sistema operativo host de Windows y la máquina virtual EFLOW que necesitan los cmdlets de PowerShell usa un canal SSH. De forma predeterminada, el servicio SSH de máquina virtual no le permite autenticarse con un nombre de usuario y una contraseña, y solo permite la autenticación de certificados. El certificado se crea durante el proceso de implementación de EFLOW y es único para cada instalación de EFLOW. Para ayudar a evitar ataques por fuerza bruta SSH, la máquina virtual bloquea una dirección IP si intenta más de tres intentos de conexión por minuto al servicio SSH.

En la versión EFLOW Continuous Release (CR), cambia el canal de transporte para la conexión SSH. Originalmente, el servicio SSH se ejecuta en el puerto TCP 22, al que cualquier dispositivo externo de la misma red puede acceder mediante un socket TCP. Por motivos de seguridad, EFLOW CR ejecuta el servicio SSH a través de Hyper-V sockets en lugar de sockets TCP normales. Toda la comunicación a través de Hyper-V sockets permanece entre el sistema operativo host de Windows y la máquina virtual EFLOW, sin usar redes. Esta configuración limita el acceso al servicio SSH al restringir las conexiones solo al sistema operativo host de Windows. Para más información, consulte sockets Hyper-V.

Pasos siguientes

Más información sobre entornos de seguridad de IoT de Windows

Manténgase al día con las actualizaciones más recientes de IoT Edge para Linux en Windows.