Seguridad de IoT Edge para Linux en Windows

Se aplica a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

IoT Edge 1.4 es la versión admitida. Si está usando una versión anterior, consulte Actualización de IoT Edge.

Azure IoT Edge para Linux en Windows se beneficia de todas las capacidades de seguridad que se obtienen al ejecutar en un host de cliente o servidor de Windows y garantiza que todos los componentes adicionales mantengan el mismo entorno de seguridad. En este artículo se proporciona información sobre las distintas instalaciones de seguridad que están habilitadas de forma predeterminada y algunas de las instalaciones opcionales que el usuario 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 y los servicios y productos perimetrales de Microsoft. CBL-Mariner está diseñado para proporcionar una plataforma coherente para estos dispositivos y servicios y mejora la capacidad de Microsoft de mantenerse al día en las actualizaciones de Linux. Para más información, consulte Seguridad de CBL-Mariner.

La máquina virtual EFLOW se basa en 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 hace que las revisiones y correcciones de seguridad más recientes estén disponibles para su servicio a través de las actualizaciones mensuales de EFLOW. La máquina virtual no tiene ningún administrador de paquetes, por lo que no es posible descargar e instalar manualmente paquetes RPM. Todas las actualizaciones de la máquina virtual se instalan mediante el mecanismo de actualización EFLOW 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 se compone de dos particiones principales rootfs y datos. Las particiones rootFS-A o rootFS-B son intercambiables y una de las dos se monta como un sistema de archivos de solo lectura en /, lo que significa que no se permiten cambios en los archivos almacenados dentro de esta partición. Por otro lado, la partición de datos montada en /var es legible y grabable, lo que permite al usuario modificar el contenido dentro de la partición. El proceso de actualización no manipula los datos almacenados en esta partición y, por tanto, no se modificarán entre las actualizaciones.

Dado que es posible que necesite acceso de escritura a /etc, /home, /root, /var para casos de uso específicos, el acceso de escritura para estos directorios se realiza superponiéndolos a nuestra partición de datos específicamente en el directorio /var/.eflow/overlays. El resultado final de esto es que los usuarios pueden escribir cualquier cosa en los directorios mencionados anteriormente. Para obtener más información sobre las superposiciones, vea Superposiciones.

EFLOW CR partition layout

Partición Size 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
Log 1 GB o 6 GB Registra una partición específica montada en /logs
Data 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 ocupará la máquina virtual en el disco del sistema operativo host.

Firewall

De forma predeterminada, la máquina virtual EFLOW usa la utilidad iptables para las configuraciones de firewall. Iptables se usa para configurar, mantener e inspeccionar las tablas de reglas de filtro de paquetes IP en el kernel de Linux. La implementación predeterminada solo permite el tráfico entrante en el puerto 22 (servicio SSH) y bloquea el tráfico en el caso contrario. Puede comprobar 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
    

    EFLOW iptables default

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 determinar si coincide con su configuración esperada.

De forma predeterminada, esta característica está deshabilitada en la máquina virtual y no se puede activar ni desactivar. 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, el usuario puede habilitar o deshabilitar la característica de paso directo de TPM, que permite que la máquina virtual EFLOW use el TPM del sistema operativo host de Windows. Esto habilita dos escenarios principales:

Protección de la comunicación de host y máquina virtual

EFLOW proporciona varias maneras de interactuar con la máquina virtual mediante la exposición de una implementación enriquecida del módulo de PowerShell. Para obtener más información, vea Funciones de PowerShell para IoT Edge para Linux en Windows. Este módulo requiere una sesión con privilegios elevados para ejecutarse y se firma mediante un certificado de Microsoft Corporation.

Todas las comunicaciones entre el sistema operativo host de Windows y la máquina virtual EFLOW requerida por los cmdlets de PowerShell se realizan mediante un canal SSH. De forma predeterminada, el servicio SSH de máquina virtual no permitirá la autenticación a través del nombre de usuario y la contraseña, y se limita a 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. Además, para evitar ataques por fuerza bruta SSH, la máquina virtual bloqueará una dirección IP si intenta más de tres conexiones por minuto al servicio SSH.

En la versión de EFLOW Continuous Release (CR), hemos introducido un cambio en el canal de transporte usado para establecer la conexión SSH. Originalmente, el servicio SSH se ejecuta en el puerto TCP 22, al que pueden acceder todos los dispositivos externos de la misma red mediante un socket TCP a ese puerto específico. Por motivos de seguridad, EFLOW CR ejecuta el servicio SSH a través de sockets de Hyper-V en lugar de sockets TCP normales. Toda la comunicación a través de sockets de Hyper-V se ejecuta entre el sistema operativo del host Windows y la máquina virtual EFLOW, sin usar redes. Esto limita el acceso del servicio SSH, lo que restringe las conexiones solo al sistema operativo del 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 de las actualizaciones más recientes de IoT Edge para Linux en Windows.