Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
Blog de la Escuela de Educación Secundaria Técnica N 8 de Quilmes
Administrador Prof. Claudio Enrique Alonso Alvite
img
14 de Abril, 2015    General

Protocolo industrial MODBUS: Captura y análisis de tráfico

Un campo que me ha llamado la atención últimamente es la Seguridad Industrial y Sistemas SCADA. Debido a la plataforma tecnológica que se emplea en estos sistemas, se requiere mayor esfuerzo en simular entornos industriales para fines de investigación, sin embargo resulta útil y justificado realizarlo, ya que con los antecedentes y crecimiento de amenazas cibernéticas, las tecnologías industriales representan un objetivo muy peligroso para posibles atacantes.

El objetivo de esta publicación es mostrar cómo simular una comunicación industrial tipo cliente-servidor, y capturar el tráfico con WireShark, esto con el fin de identificar posibles vulnerabilidades que pueden tener un protocolo industrial. El protocolo industrial elegido es MODBUS, este protocolo es ampliamente usado en sistemas de automatización y control. MODBUS puede implementarse en redes basadas en ETHERNET, RS-485 y otros.

Los programas necesarios son: Modbus Poll, Modbus Slave, CommView 6.5 (o RawCap) y Wireshark, los dos primeros pueden descargarse desde la página oficial http://www.modbustools.com/download.asp

CommView (o RawCap) son necesarios para capturar el tráfico local. Durante la instalación de CommView se selecciona “Enterprise Mode” esto con el fin de usar el modo “Loopback”. Al inicializar el programa preguntará si se desea instalar un controlador, por lo general nos encontraremos sobre LAN o ADSL, así que la repuesta es no.

En el caso del software RawCap, se trata de un ligero sniffer que no requiere la instalación de drivers, sin embargo si requiere la librería WinPcap. Su uso es tan sencillo como copiar el fichero y ejecutarlo. En cuanto a su funcionamiento el RawCap trabaja con dos argumentos, la dirección IP (de la interfaz) y el fichero destino.

Una de las características más importantes es que permite capturar “loopback”, conexiones PPP o Wireless. Sin embargo no es compatible con Windows Vista y Windows 7, ya que el método para capturar “raw sockets” en estos sistemas es distinto y solamente deja almacenar los paquetes que se reciben (Windows 7) o los que se envían (Windows Vista).

Entorno Virtual

2 máquinas virtuales (Master y Slave) con direcciones IP en el mismo segmento de red, en este caso:


  • Master
    • Windows 7 Professional Media Center Edition x64
    • IP: 192.168.1.35
  • Slave
    • Windows 7 Home x64
    • IP: 192.168.1.36

Posterior a la instalación de ambas máquinas virtuales es necesario comprobar la comunicación entre ambas.

Configuraciones

En la virtual “Slave”. Se instala el software “Modbus Slave” y se ejecuta, se pulsa F3 (aparecerá una ventana indicando que se trata de “trial”, se debe pulsar “Register Later”), y se establece la opción “Connection:” en “Modbus TCP/IP”, el resto de los campos de define por defecto.


En el otro ordenador se debe instalar y ejecutar “Modbus Poll”, luego oprimir F3 y continuar de similar manera a lo anterior, con la opción “Connection:” en “Modbus TCP/IP”, y el resto por defecto.


En este punto se observa cómo va ascendiendo los valores de la transmisión (Tx) en el Master (Modbus Poll). Desde “setup” podemos cambiar diferentes opciones, a simple vista se observa: log, resetear el contador, podemos variar el “Scan Rate”, etc.

En el caso de “Slave”, se puede escoger la primera “ID” y definir el alias que se desee (humedad ambiental, velocidad del viento, caudal, presión, etc), y establecer un valor deseado, teniendo en cuenta que existe la opción para incrementar este valor automáticamente cada cierto tiempo que pasa. No sólo asciende en Slave, sino que también lo veremos en el Master.



Pruebas realizadas

Ahora empezamos con la captura de datos de la siguiente manera: Abrir CommView (elegí este programa por razones de compatibilidad, se puede usar también RawCap), luego ir a “capturar datos”.

En el programa al lado de” play” y “stop” se selecciona “Loopback”, para capturar el tráfico local, luego se selecciona la pestaña “Reglas”, y se elige “Puertos “, “Agregar registro – Ambos a 502“, de esta forma sólo se ve lo que entra y sale de ese puerto, dicho puerto corresponde al protocolo Modbus.

Con Modbus en funcionamiento, se debe seleccionar play y posteriormente se obtendrá un resultado similar al siguiente:


 

Se observa como en Modbus Master comienza a incrementar el número de paquetes transmitidos (Tx), por otro lado se van actualizando los dos registros al mismo tiempo que se incrementan los registros en Modbus Slave. Por lo que, si se modifica el valor de uno de los registros en el Master se actualiza el valor del registro en el Slave.

Si se desconecta Modbus Slave, se observa cómo se producen errores “Write Error” en el Modbus Poll. Para ello se selecciona desconectar en Modbus Poll, luego se selecciona desconectar en el Modbus Slave.

Es posible observar el inicio y finalización de la conexión TCP así como las tramas Modbus, dentro de las tramas se encuentra el campo “data vga” en el mismo se aprecia sucesivos envíos y los cambios de valor en los registros.

Una vez guardados los datos, estos pueden visualizarse en Wireshark, se observan los números aleatorios incrementándose, los cuales fueron definidos anteriormente.


Los parámetros  capturados se muestran en la siguiente imagen:



Conclusiones

Los paquetes transmitidos bajo el protocolo Modbus son ligeros en comparación a los protocolos tradicionales. Esto es perfectamente entendible teniendo en cuenta que se necesita un “Delay” muy bajo en sistemas industriales, donde la precisión en términos de tiempo (microsegundos), es muy importante.

Al ser las tramas cortas, los datos se transmiten casi instantáneamente. Los datos son transportados en TEXTO CLARO. Este hecho indica la falta de algoritmos criptográficos, lo cual ayuda a acelerar la transmisión por razones de funcionalidad.

No obstante, esa simplicidad en las comunicaciones también implica una gran vulnerabilidad a cierto tipo de ataques así como la lectura/escritura de datos por parte de terceros (MITM por ejemplo).

Cualquier incidencia en uno de los dos equipos, ya sea un fallo del protocolo de comunicaciones, hardware de red o un “cuelgue” momentáneo debido a un gran consumo de CPU o RAM, tanto del cliente como del servidor, puede originar afectar negativamente a la sincronización o incluso una pérdida de datos, lo que conllevaría a un mal funcionamiento de dispositivos industriales. Se debe tomar en cuenta también que una amenaza no necesariamente puede ser una persona, existe la posibilidad de que un malware especialmente diseñado pueda recolectar y manipular las comunicaciones industriales de tipo MODBUS, tal y como fue el caso de STUXNET.

Un saludo y muchas gracias a SecurityByDefault por brindarme un espacio.

Artículo cortesía de César Cuenca (@ccuencad)
Palabras claves , , , , ,
publicado por alonsoclaudio a las 20:57 · Sin comentarios  ·  Recomendar
 
Más sobre este tema ·  Participar
Comentarios (0) ·  Enviar comentario
Enviar comentario

Nombre:

E-Mail (no será publicado):

Sitio Web (opcional):

Recordar mis datos.
Escriba el código que visualiza en la imagen Escriba el código [Regenerar]:
Formato de texto permitido: <b>Negrita</b>, <i>Cursiva</i>, <u>Subrayado</u>,
<li>· Lista</li>
CALENDARIO
Ver mes anterior Agosto 2017 Ver mes siguiente
DOLUMAMIJUVISA
12345
6789101112
13141516171819
20212223242526
2728293031
BUSCADOR
Blog   Web
TÓPICOS
» General (2606)
NUBE DE TAGS  [?]
SECCIONES
» Inicio
ENLACES
MÁS LEÍDOS
» Cómo espiar WhatsApp
» Cómo usar Metashield protector for Client y por qué utilizarlo
» Ejecución remota de código arbitrario en OpenSSH
» Ganar dinero con 1.200 Millones de identidades robadas
» Hardware y sus 4 Funcionamientos Basicos y Principales en una Computadora
» #Phishing masivo a #BancoFrances, #PagoMisCuentas y #Movistar (110 afectados en 4 horas)
» Redes de la Deep Web: CJDNS y la Red Hyperboria
» Unidad Central de Procesamiento CPU
» Vulnerabilidad en Youtube permitió borrar cualquier video
» Wassap, la aplicación que permite usar WhatsApp desde la PC
SE COMENTA...
» Cómo espiar WhatsApp
15 Comentarios: lucia, wilson, spider hackers, [...] ...
» SoftPerfect WiFi Guard permite saber quién esta conectado a mi WiFi
1 Comentario: carlos lopez
» Analizando el LiveBox 2.1 de Orange
2 Comentarios: Nadie, brahim
» Antenas WiFi de gran potencia. Enlaces a 1.000 Km.
2 Comentarios: julio enoy, julio enoy
» Cómo liberar software – guía para principiantes :)
1 Comentario: seo plugin
SOBRE MÍ
FOTO

Prof. Claudio Enrique Alonso Alvite



» Ver perfil

AL MARGEN
Escuela de Educacion Secundaria Tecnica N 8 de Quilmes
(Técnicos en Informática Personal y Profesional)
FULLServices Network | Blogger | Privacidad