============================================================================== DOS ATAQUES AL AGUA EN UN MES: EN UNO SE CORTÓ EL SUMINISTRO, EN OTRO NO ============================================================================== Fuente: https://www.vantis.cl/noticias/agua-dos-ataques-un-mes-la-diferencia-fue-la-segmentacion Publicado: 2026-07-31 (hora de Chile) Ambito: global · Criticidad: critica Descargado: 2026-10-12 07:09 (hora de Chile) COMO USAR ESTE ARCHIVO ---------------------- La regla SIGMA es la canonica: es el formato neutral del que se derivan las demas. Si tu SIEM no aparece aca, convierte esa con pySigma. Las traducciones a motores concretos se incluyen por conveniencia y ESTAN SIN VALIDAR CONTRA TU MODELO DE DATOS. Revisa los nombres de tabla, indice y campo antes de ponerlas en produccion. Una regla que no dispara por un campo mal escrito es peor que no tener regla. QUE NECESITAS TENER LOGUEADO ---------------------------- · Captura de red en el punto de interconexión IT/OT, con visibilidad de protocolos industriales · Registros de VPN y de accesos remotos al segmento OT, incluidos los de integradores · Historiador o servidor SCADA: cambios de parámetros y de setpoints, con usuario y hora · Resultados de escaneo externo de tus propios rangos públicos, periódicos ============================================================================== REGLA 1 de 3 · ZEEK - RED Protocolo industrial cruzando el borde IT/OT ============================================================================== Requiere: Sensor Zeek con visibilidad del enlace entre la red corporativa y la industrial # Zeek: protocolos industriales vistos FUERA del segmento OT. # Si esto dispara, la separacion entre IT y OT no existe como se cree que existe. @load base/protocols/conn module DeteccionOT; export { redef enum Notice::Type += { Protocolo_Industrial_Fuera_De_OT }; # Ajustar a la realidad de tu red antes de usar const redes_ot: set[subnet] = { 10.50.0.0/16, 192.168.100.0/24 } &redef; const puertos_industriales: set[port] = { 502/tcp, # Modbus 20000/tcp, # DNP3 102/tcp, # S7comm (Siemens) 44818/tcp, # EtherNet/IP 1911/tcp, # Niagara Fox 4840/tcp # OPC UA } &redef; } event connection_established(c: connection) { if (c$id$resp_p !in puertos_industriales) return; if (c$id$orig_h in redes_ot && c$id$resp_h in redes_ot) return; # trafico interno OT: normal NOTICE([$note=Protocolo_Industrial_Fuera_De_OT, $conn=c, $msg=fmt("Protocolo industrial %s cruzando el borde IT/OT: %s -> %s", c$id$resp_p, c$id$orig_h, c$id$resp_h), $identifier=cat(c$id$orig_h, c$id$resp_h, c$id$resp_p)]); } ============================================================================== REGLA 2 de 3 · SIGMA (canonica, neutral) Autoevaluación de exposición externa ============================================================================== Requiere: Ejecutar desde fuera de la red corporativa, con autorización interna previa # Autoevaluacion de exposicion: mirar tu propia infraestructura como la mira un atacante. # Ejecutar desde FUERA de la red corporativa, con las IP publicas de tu organizacion. # 1. Que puertos industriales responden desde internet en tu rango publico nmap -Pn -sT -p 102,502,1911,4840,20000,44818,47808 --open -oN expuesto_ot.txt TU.RANGO.PUBLICO/24 # 2. Interfaces web de gestion accesibles (HMI, paneles de integrador, camaras) nmap -Pn -sT -p 80,443,8080,8443,8000,9000 --open --script http-title TU.RANGO.PUBLICO/24 # 3. Acceso remoto expuesto sin segundo factor nmap -Pn -sT -p 22,3389,5900,1194 --open TU.RANGO.PUBLICO/24 # 4. Que ve de ti un buscador publico de dispositivos, sin escanear nada # Consultar en Shodan o Censys: net:"TU.RANGO.PUBLICO/24" # y tambien: org:"NOMBRE DE TU ORGANIZACION" # Criterio de lectura: cualquier resultado en el punto 1 es un hallazgo critico. # En el 2, toda interfaz de gestion alcanzable desde internet debe justificarse por escrito # o cerrarse. Un PLC no deberia aparecer jamas. ============================================================================== REGLA 3 de 3 · SPLUNK - SPL Accesos remotos al segmento OT, con foco en proveedores ============================================================================== Requiere: index=vpn o index=firewall con dest_ip y user; ajustar los rangos OT index=vpn OR index=firewall earliest=-90d | eval destino_ot = if(cidrmatch("10.50.0.0/16", dest_ip) OR cidrmatch("192.168.100.0/24", dest_ip), 1, 0) | where destino_ot=1 | eval hora = strftime(_time, "%H") | eval fuera_horario = if(hora < 6 OR hora > 22, 1, 0) | eval es_proveedor = if(match(lower(user), "(soporte|vendor|integrador|contratista|externo)"), 1, 0) | stats count AS sesiones, dc(src_ip) AS origenes, values(src_ip) AS ips, sum(fuera_horario) AS sesiones_fuera_horario, min(_time) AS primera, max(_time) AS ultima by user, es_proveedor | convert ctime(primera) ctime(ultima) | sort - sesiones_fuera_horario, - sesiones ============================================================================== FALSOS POSITIVOS ESPERABLES ============================================================================== La regla de Zeek exige ajustar redes_ot a tu topología real antes de usarla. Bien configurada tiene ruido casi nulo: el tráfico Modbus o S7comm no debería cruzar el borde. Si al activarla dispara constantemente, no es un falso positivo — es el hallazgo. La autoevaluación con nmap requiere autorización interna previa por escrito, aunque sea sobre infraestructura propia. Y ejecutarla contra equipos OT en producción puede afectarlos: los puntos 1 y 3 se corren contra el rango público desde fuera, nunca contra los controladores directamente. ============================================================================== Vantis Chile SpA · https://www.vantis.cl/noticias Analisis con fines defensivos. Reutilizable citando la fuente. ==============================================================================