Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Técnicas de fuzzing sobre dispositivos industriales

Fecha de actualizacion 12/11/2026
Autor
INCIBE (INCIBE)
TÉCNICAS DE FUZZING SOBRE DISPOSITIVOS INDUSTRIALES - Imagen generada con IA

¿Qué es el fuzzing?

El término fuzzing hace referencia a una gran variedad de técnicas para el ataque, o evaluación, de interfaces de comunicación de equipos en una red. Estas técnicas se basan en el envío de paquetes de datos alterados para producir fallos en el equipo objetivo. A diferencia de otros tipos de ataques donde el objetivo de los paquetes es inyectar código o malware específico, en las pruebas mediante ataques de fuzzing, los paquetes suelen ser alterados de manera automática. El objetivo es que, mediante el uso de entradas aleatorias, se evidencien vulnerabilidades de seguridad.

Entre los ejemplos más clásicos de fuzzing se podrían encontrar:

  • La modificación de campos de control en paquetes. Normalmente los protocolos de comunicación reservan algunos bits en cada paquete para controles de longitud, secuencia, contenido… Alterando estos bits, se podrían provocar problemas de lógica durante la interpretación del paquete en las interfaces de red.
  • Alterar campos de IP para simular envíos desde equipos diferentes. Durante las labores de pentesting es común combinar ataques de fuzzing y denegación de servicio, ya que ambos están orientados a probar las capacidades de la interfaz web del equipo objetivo.
  • Envío de comandos no concebidos en los protocolos. Habitualmente en protocolos como Modbus donde hay funciones conocidas codificadas en los campos del protocolo, como “escribe/lee variable X”. Mediante la manipulación de estos campos se pueden enviar comandos inexistentes en el protocolo o que requieren más recursos de los disponibles.

Estas técnicas se han convertido en una herramienta muy útil durante el pentesting para evaluar la actuación de un equipo a la hora de gestionar comunicaciones entrantes con formatos y/o contenido inesperado. Monitorizando el estado del dispositivo, y la interfaz de red que recibe los paquetes alterados, es posible identificar vulnerabilidades de seguridad: caídas de la interfaz, sobrecargas de memoria, sorteo de controles de seguridad… 

Estas vulnerabilidades son aún más comunes en equipos de control industrial, ya que habitualmente no están preparados para gestionar grandes cantidades de tráfico, ni tráfico inesperado, ni cuentan con las medidas de protección habituales en los equipos dedicados a la gestión de red.

Beneficios y riesgos del fuzzing en pentesting sobre sistemas de control industrial

El uso de fuzzing para pentesting en sistemas de control industrial puede ser una herramienta crucial para evaluar los controles solicitados por estándares como la IEC 62443 para equipos industriales.

Un usuario debería ser capaz de prever la actuación y estado final de un equipo frente a cualquier entrada. Este aspecto es crucial en OT, donde situaciones inesperadas pueden dar lugar a daños físicos o económicos. Por ejemplo, si un robot industrial no controla bien las entradas de datos y empieza a moverse aleatoriamente cuando le llega una orden inesperada, puede provocar choques, errores de producción o accidentes graves.

Sin embargo, es importante remarcar que el uso de técnicas de fuzzing en SCI puede provocar estas mismas situaciones que se pretenden evitar. Por muy controlados y definidos que estén los ataques a realizar, siempre existe la probabilidad de bloquear una interfaz de comunicación, reiniciar equipos por sobrecarga de trabajo o causar daños en la lógica de un equipo. Por tanto, se desaconseja el uso de estas técnicas en entornos reales durante fases de producción, siendo más aconsejable esperar a paradas o, idealmente, probar los equipos antes de despegarlos en entornos reales.

Por otro lado, para obtener conclusiones relevantes, es necesario poder analizar a fondo la respuesta y estado del equipo objetivo. ¿Se ha registrado actividad sospechosa? ¿Ha habido cambios en el estado del equipo o en las variables de memoria? ¿Siguen activos todos los puertos de comunicación?.


¿Cómo realizar una prueba de fuzzing en dispostivos de control industrial?

Como se ha mencionado anteriormente, es recomendable reservar las pruebas de fuzzing para entornos seguros o momentos de parada de producción.

Una vez definido cuándo se van a realizar las pruebas, es necesario identificar los mejores puntos de prueba. Es esencial evaluar las capacidades de las interfaces de red que actúen como frontera de una red, o que gestionen tráfico crítico. 

Aunque idealmente todos los equipos utilizados deberían estar sometidos a pruebas de pentesting, debido a la tipología de los equipos industriales, esto puede ser prohibitivo, o directamente imposible. No todos los equipos utilizados van a estar diseñados para gestionar tráfico potencialmente peligroso y es habitual que algunos tengan capacidades de comunicación muy limitadas.

En estos casos, es más eficiente desplegar directamente equipos intermedios que añadan esta capa de protección, o utilizar arquitecturas de red con seguridad en profundidad. Y, por tanto, las pruebas de pentesting deberían enfocarse primero en estas capas de seguridad que forman la barrera de defensa.

Los equipos objetivo, y las tecnologías utilizadas en la red, informarán las técnicas a utilizar. Concretamente, los protocolos de comunicación utilizados, y por tanto los puertos de comunicación abiertos, son el elemento característico más importante.

Las técnicas de fuzzing funcionan mejor cuando conocemos la estructura de un protocolo y sabemos qué bits alterar para obtener los mejores resultados. Por tanto, lo más habitual es atacar mediante protocolos genéricos (TCP, UDP, ping, ARP…) o, en el caso de equipos SCI, protocolos ampliamente documentados (Modbus, OPC, DNP3…), mientras que atacar protocolos propietarios suele hacerse cuando se cuenta con soporte de los proveedores que desarrollan o con la documentación pertinente.

El fuzzing mediante mutación ilustra esta necesidad de conocimiento técnico de los protocolos de comunicación. Esta técnica es una de las más utilizadas para el pentesting de SCI mediante fuzzing. La mutación se basa en, a partir de un paquete legítimo, crear variantes (mutaciones) potencialmente peligrosas alterando los bytes o semántica del paquete deliberadamente. Esta técnica suele aportar resultados más determinísticos frente a otras como el fuzzing por bloques, que altera bloques enteros de un protocolo, ya que los cambios son menores y más definidos. Sin embargo, requiere conocimiento especializado de la estructura del protocolo y sobre qué partes pueden ser alteradas para obtener un mejor resultado.

Tras definir el objetivo y tecnologías para utilizar, se requiere un equipo atacante conectado al equipo a evaluar. El equipo atacante necesita dos herramientas:

  • Un software defuzzing que genere el tráfico alterado y lo envíe al objetivo. Existen infinidad de aplicaciones para fuzzing, tanto comerciales, como de código abierto. La característica principal a la hora de escoger es que soporte los protocolos deseados e, idealmente, el acceso a la documentación de la herramienta para comprender totalmente como genera los paquetes de ataque. 
  • Uno, o varios, software/s de monitorización. Habitualmente, las propias herramientas de fuzzing cuentan con monitores de puertos mediante los cuales comprueban en tiempo real cuando un puerto del equipo objetivo deja de estar disponible. Sin embargo, es recomendable utilizar programas adicionales para monitorizar el tráfico de la comunicación y así poder analizar las respuestas del equipo objetivo a los ataques.
15	¿Cómo realizar una prueba de fuzzing en dispostivos de control industrial?

Además, es recomendable activar las políticas de logging del equipo objetivo e incluso desplegar software de monitorización de endpoints para recopilar la mayor información posible sobre el efecto del ataque.

Cuando no se cuenta con la documentación, o conocimiento técnico, del equipo, es muy probable que el análisis implique la ingeniería inversa del equipo. Otra razón por la que es recomendable con apoyo del proveedor cuando se prueba tecnología propietaria. 

Conclusiones

La validación de entradas constituye un aspecto fundamental de la ciberseguridad en equipos industriales y está recogida expresamente en estándares como IEC 62443-4-2, mediante el requisito CR 3.5 (Input validation). Sin embargo, la existencia de mecanismos de validación no garantiza por sí misma que estos sean suficientemente robustos frente a entradas malformadas, inesperadas o potencialmente maliciosas. Por ello, resulta necesario complementar su implementación con procedimientos de verificación que permitan evaluar su eficacia y detectar posibles deficiencias.

En este contexto, las técnicas de fuzzing permiten someter los equipos a pruebas automatizadas mediante la generación y modificación de entradas, explorando situaciones y combinaciones de datos que podrían no haberse contemplado durante el desarrollo. Su aplicación facilita la identificación de errores de procesamiento, comportamientos inesperados y posibles vulnerabilidades que podrían comprometer la integridad o disponibilidad de los dispositivos industriales. 

Por tanto, se recomienda su aplicación durante ejercicios de pentesting, siempre que se cuente con entornos seguros para la actuación, y capacidad de análisis posterior de los resultados.

Por último, cabe remarcar la posibilidad de extender las pruebas de fuzzing a entradas de datos, no solo comunicaciones de red. Es posible utilizar técnicas de fuzzing para poner a prueba lógicas de control, interfaces web u otras soluciones que impliquen la entrada de datos por usuarios u otros equipos. Mediante programas que intenten introducir valores aleatorios para variables, para nombres de usuario y contraseñas, para órdenes de ejecución… Es posible encontrar fallos de seguridad internos que, manualmente, sería imposiblemente costoso encontrar.