Saltearse al contenido

Protocolos industriales (Modbus)

Los protocolos industriales (Modbus, DNP3, S7, EtherNet/IP, Profinet) se diseñaron décadas atrás para redes aisladas y de confianza: la mayoría no tienen autenticación ni cifrado. Entender esto explica por qué el acceso a la red OT es tan crítico: quien llega a la red puede, a menudo, leer y escribir en el proceso directamente.

- diseñados para redes AISLADAS y confiables -> sin auth, sin cifrado, sin integridad
- cualquiera con acceso a la red puede leer valores y ENVIAR comandos a un PLC
- la "seguridad" era el aislamiento físico (air gap), hoy erosionado por la convergencia IT/OT
Modbus TCP puerto 502; function codes para leer/escribir registros y coils
FC 01/02 leer coils / discrete inputs
FC 03/04 leer holding / input registers
FC 05/06 escribir un coil / registro (¡comando al proceso!)
FC 15/16 escribir múltiples
# sin autenticación: un FC de escritura desde la red cambia el estado físico
DNP3 utilities (energía/agua); con Secure Authentication opcional (poco desplegada)
S7comm Siemens S7 PLCs (Stuxnet lo abusó)
EtherNet/IP CIP (Rockwell/Allen-Bradley), puerto 44818
Profinet automatización (Siemens)
BACnet/Modbus edificios (BMS)
# nmap NSE y scripts específicos enumeran versiones/registros -> SOLO en laboratorio

Enumeración y riesgos (laboratorio autorizado)

Sección titulada «Enumeración y riesgos (laboratorio autorizado)»
- descubrir dispositivos y function codes soportados (herramientas pasivas preferidas)
- lectura de registros revela el estado del proceso; escritura lo MANIPULA
- un escaneo activo agresivo puede COLGAR un PLC frágil -> preferir captura pasiva
- Shodan/Censys muestran miles de dispositivos ICS expuestos a Internet (no tocar)
Enumeración nmap (scripts modbus/s7/enip), modbus-cli, pymodbus (prototipar)
Análisis Wireshark (disectores de Modbus/DNP3/S7), captura pasiva
Monitorización Nozomi/Claroty/Dragos (por protocolo, sin tocar el dispositivo)
  • Como los protocolos no autentican, la defensa es de red: segmentación Purdue y control de quién habla con los PLC (SCADA / ICS).
  • Allowlisting de pares autorizados (solo la HMI/historian habla con el PLC), no cualquiera.
  • Monitorización pasiva que alerte de function codes de escritura inesperados o pares nuevos.
  • Donde exista, activar las variantes seguras (DNP3-SA, OPC UA con seguridad); nunca exponer :502 a Internet.
  • Stuxnet manipuló S7comm para reprogramar PLCs sin que la HMI lo notara.
  • Miles de dispositivos Modbus/BACnet expuestos en Internet (Shodan) sin autenticación.
  • Industroyer habla protocolos eléctricos (IEC 60870-5-104, IEC 61850) para operar interruptores.
  • Identificar protocolos en uso (Modbus/DNP3/S7/EtherNet-IP)
  • Captura pasiva para mapear pares y function codes (evitar escaneo activo en prod)
  • Verificar que no hay puertos ICS (502, 44818…) expuestos a Internet
  • Allowlisting: solo pares autorizados hablan con los PLC
  • Monitorización pasiva de escrituras/comandos inesperados
  • Activar variantes seguras del protocolo donde existan
  • Pruebas solo en laboratorio/ventana autorizada