Segmentación de Redes OT Usando Zonas y Conductos ISA-99: Guía Práctica de Schneider M580 y Bachmann M1

El Verdadero Problema con las Redes OT Planas
La mayoría de las plantas industriales construidas antes de 2015 operan con una red Ethernet plana donde el PLC Schneider Electric Modicon M580, el controlador de automatización Bachmann M1, el historiador SCADA y el ERP corporativo comparten el mismo dominio de broadcast de Capa 2. Primero, esto significa que un ataque de ransomware que ingresa a través de la red corporativa alcanza la CPU M580 sin pasar por ningún punto de control de acceso. Segundo, una estación de trabajo mal configurada que genera tormentas ARP puede saturar el puerto Ethernet de la CPU M580 BM•P 58•2020 — el puerto Ethernet de la CPU M580 procesa ARP a nivel de software con un límite de 500 paquetes por segundo. Tercero, las vulnerabilidades de protocolo dirigidas al puerto Modbus TCP 502 o al puerto EtherNet/IP 44818 circulan libremente por la red plana. Por lo tanto, la arquitectura de zonas y conductos ISA-99 / IEC 62443 no es opcional — es el único marco probado que añade protección a nivel de red sin interrumpir la estrategia de control.
Arquitectura de Zonas y Conductos ISA-99: Definiendo la Estructura
ISA-99 (IEC 62443-3-3) divide la red industrial en Niveles de Seguridad (SL) y asigna activos a zonas según la consecuencia de una posible vulneración. Primero, defina sus zonas antes de modificar cualquier configuración de switch. Segundo, identifique cada dispositivo en la red de la planta y asígnelo a una de cuatro zonas:
- Zona 1 — Seguridad (SIL): Solo PLCs de seguridad. Para la mayoría de las plantas esto incluye sistemas ICS Triplex o Triconex TMR. No entra tráfico de propósito general en esta zona. El conducto hacia la Zona 2 permite solo Modbus TCP de solo lectura para propósitos de visualización SCADA.
- Zona 2 — Control (SL-2): CPUs Schneider M580, controladores Bachmann M1, redes de E/S, gestión de dispositivos de campo. El tráfico EtherNet/IP y Modbus TCP permanece dentro de esta zona. El acceso externo solo es posible a través del conducto IDMZ.
- Zona 3 — Supervisión (SL-1): Servidores SCADA, historiador DCS, estaciones de trabajo de operadores. Esta zona accede a la Zona 2 mediante un conducto definido a través de un firewall con estado — no una conexión plana.
- Zona 4 — Empresa (SL-0): ERP corporativo, Active Directory, servidores de correo electrónico. Cero acceso directo a la Zona 2 o Zona 1. Todo intercambio de datos ocurre únicamente a través del IDMZ.
Además, la DMZ Industrial (IDMZ) se sitúa entre la Zona 3 y la Zona 4. El IDMZ contiene los servidores de replicación de datos — OSIsoft PI, Wonderware Historian o gateway OPC DA/UA. Ningún tráfico atraviesa el IDMZ de extremo a extremo — tanto la Zona 3 como la Zona 4 se conectan a los servidores IDMZ pero nunca directamente entre sí. Este es el principio central de control de límites ISA-99.
Configuración de VLAN y Firewall para Redes Schneider M580
El Schneider Modicon M580 usa EtherNet/IP en el puerto Ethernet del backplane de la CPU (serie BMEP58•020) y un puerto Ethernet dedicado para la red de E/S para conexiones Ethernet RIO. Primero, asigne el puerto de gestión de la CPU a la VLAN 20 (Zona de Control) en su switch gestionado. Segundo, asigne todos los E/S remotos (conexiones BMECRA31210 RIO) a la VLAN 21 (subzona de E/S). Tercero, cree una ACL (Lista de Control de Acceso) en el switch para bloquear todo el tráfico entre la VLAN 21 y cualquier zona por encima del Nivel 2.
En un switch gestionado Cisco IE4000 o Cisco IE3400, configure el enrutamiento inter-VLAN con estas reglas de firewall:
- Paso 1: Cree VLAN 20 (Control) y VLAN 21 (RIO). Asigne el puerto CPU M580 al modo acceso VLAN 20. Asigne todos los puertos de conexión BMECRA31210 RIO al modo acceso VLAN 21.
- Paso 2: Aplique ACL en la SVI de VLAN 20: permita TCP any 192.168.20.0/24 eq 44818 (EtherNet/IP CIP). Permita TCP any 192.168.20.0/24 eq 502 (Modbus TCP). Deniegue ip any any con registro. Esto permite solo los protocolos requeridos para alcanzar el M580.
- Paso 3: Bloquee todo acceso externo a VLAN 21 en el switch de Capa 3 — deniegue ip any 192.168.21.0/24. El tráfico RIO nunca debe ser accesible desde la Zona 3 o Zona 4.
- Paso 4: Configure el firewall con estado entre la Zona 2 y Zona 3 para permitir solo el puerto OPC UA 4840 desde el servidor SCADA hacia el gateway OPC UA de la Zona 3. Bloquee el puerto Modbus TCP 502 entre la Zona 3 y Zona 2 — SCADA lee el gateway OPC UA, no el M580 directamente.
- Paso 5: Active la seguridad de puerto en todos los puertos del switch M580 y BMECRA — bloquee a la dirección MAC transmisora. Configure el modo de violación de seguridad de puerto en "restringir" (no "apagar") para generar una alerta sin desconectar la red de E/S.
Sin embargo, el puerto Ethernet de la CPU M580 no soporta etiquetado VLAN 802.1Q de forma nativa — opera solo como puerto de acceso VLAN. Por lo tanto, el switch debe manejar todo el etiquetado VLAN. Esta es una limitación común en el diseño de redes M580 que los ingenieros suelen pasar por alto al diseñar la segmentación.
Segmentación del Controlador Bachmann M1 y Control de Límites OPC UA
Los controladores Bachmann M1 usan su propia red Ethernet MIO (Modular I/O) en una interfaz dedicada separada del puerto de programación. Primero, asigne la red MIO del Bachmann M1 a la VLAN 22 — separada de la VLAN 20 de control Schneider M580. Esto previene tormentas de broadcast cruzadas entre protocolos. Segundo, Bachmann M1 soporta funcionalidad de servidor OPC UA nativamente en su entorno de programación SolutionCenter. Configure el servidor OPC UA para exponer solo las etiquetas requeridas a la Zona 3 — no exponga todo el espacio de variables M1.
En Bachmann SolutionCenter, configure el Modo de Seguridad OPC UA a "SignAndEncrypt" y la Política de Seguridad a "Basic256Sha256." Rechace todas las conexiones anónimas — requiera autenticación basada en certificados. Esto se alinea con los requisitos del Nivel de Seguridad 2 IEC 62443-3-3 para la Zona de Control. Además, configure el espacio de direcciones del servidor OPC UA M1 para publicar solo las etiquetas listadas en la lista aprobada de etiquetas SCADA — use la configuración Bachmann OPC UA NodeManager para incluir en lista blanca nodos variables específicos. Bloquee todos los demás nodos a nivel del servidor OPC UA, no solo en el firewall.
- Paso 1: En Bachmann SolutionCenter, navegue a la configuración del servidor OPC UA bajo el módulo "Comunicación".
- Paso 2: Configure el Modo de Seguridad a "SignAndEncrypt." Configure la Política de Seguridad a "Basic256Sha256." Desactive las políticas "None" y "Sign".
- Paso 3: Importe el certificado del servidor SCADA en el almacén de certificados confiables de Bachmann M1. Solo clientes SCADA con certificado pueden conectarse.
- Paso 4: Active la función firewall de Bachmann M1 — permita TCP 4840 (OPC UA) solo desde la dirección IP del servidor SCADA 192.168.30.10. Bloquee todas las demás conexiones entrantes en el puerto OPC UA.
- Paso 5: Configure el tiempo de espera de sesión a 30 segundos. Cualquier sesión SCADA inactiva por 30 segundos se cierra automáticamente — previene acumulación de sesiones obsoletas en la tabla de sesiones M1.
- Paso 6: Registre todos los eventos de conexión OPC UA en el syslog de Bachmann M1 — configure el reenvío de syslog al servidor SIEM en el IDMZ para monitoreo de seguridad.
Diseño IDMZ: Replicación de Datos Sin Cruce Directo de Zonas
El IDMZ contiene exactamente dos tipos de servidores: el servidor de replicación del historiador de datos y el servidor jump de acceso remoto. Primero, el OSIsoft PI Relay o Honeywell Uniformance PHD se ejecuta en el IDMZ. El historiador en la Zona 3 envía datos al relay IDMZ usando el puerto TCP 5450 (interfaz PI a PI). El historiador corporativo en la Zona 4 extrae datos del relay IDMZ usando el mismo puerto. Ningún dato de proceso viaja directamente entre la Zona 3 y la Zona 4. Segundo, el servidor jump de acceso remoto en el IDMZ proporciona acceso RDP para ingenieros de mantenimiento. Configure el servidor jump para permitir conexiones RDP solo desde un endpoint VPN aprobado con MFA — nunca permita RDP directo desde la Zona 4 hacia la Zona 2 o Zona 1.
Además, aplique estas reglas de firewall entre la Zona 4 y el IDMZ: permita TCP 5450 (PI) solo desde el historiador Zona 4 hacia el relay IDMZ. Deniegue todo otro tráfico desde la Zona 4 hacia el IDMZ. Entre IDMZ y Zona 3: permita TCP 5450 desde el relay IDMZ hacia el historiador Zona 3. Permita RDP (TCP 3389) solo desde el servidor jump IDMZ hacia las estaciones SCADA de la Zona 3 — con MFA aplicada en la puerta de enlace del servidor jump.
Conclusión y Recomendaciones de Acción
La segmentación de zonas y conductos ISA-99 para redes Schneider M580 y Bachmann M1 es una tarea de ingeniería, no un proyecto de seguridad informática. Primero, defina sus cuatro zonas y dibuje el diagrama de conductos antes de tocar cualquier switch. Segundo, asigne las redes CPU M580 y MIO M1 a VLANs dedicadas con ACLs que bloqueen todos los protocolos no requeridos. Tercero, aplique OPC UA SignAndEncrypt en Bachmann M1 y use autenticación basada en certificados desde el primer día. Cuarto, construya el IDMZ como un verdadero relay de datos — sin rutas directas de Zona 3 a Zona 4. Quinto, active la seguridad de puerto en todos los puertos del switch de la VLAN de control para prevenir conexiones de dispositivos no autorizados. Finalmente, pruebe su segmentación intentando un escaneo de puertos desde una estación de trabajo de Zona 4 hacia direcciones de Zona 2 — si ve puertos abiertos en el M580 o M1 desde Zona 4, sus reglas de conducto están incompletas. Corrija cada puerto abierto antes de declarar la segmentación completa.
