Servicios SCADA y OT

Pentesting a infraestructuras industriales

Pentesting a infraestructuras industriales SCADA

SCADA significa Control de Supervisión y Adquisición de Datos. En términos muy simples, SCADA define un tipo de sistema de control que se utiliza para controlar y monitorear instalaciones e infraestructura industrial. Las organizaciones utilizan los sistemas SCADA para automatizar procesos industriales complejos, detectar y corregir problemas y medir tendencias a lo largo del tiempo. Los sistemas SCADA se utilizan en industrias como la de sistemas de agua, administración de edificios e instalaciones, el manejo y gestión del tráfico, la generación de energía eléctrica, etc.

Los sistemas SCADA admiten varios protocolos, como DNP3, ModBus, IEC 60870, BACnet, LonWorks y EPICS. Acá nos limitaremos a discutir el protocolo ModBus sobre TCP, ya que todavía se usa ampliamente en los sistemas de control.

Servicios SCADA y OT
ModBus

ModBus

ModBus es un protocolo de comunicación en serie que se utiliza para comunicarse con controladores lógicos programables (PLC), que se pueden utilizar a través de TCP (puerto 502). A cada dispositivo destinado a comunicarse mediante Modbus se le asigna una dirección única. Los dispositivos se comunican utilizando un modelo maestro-esclavo donde solo un dispositivo (maestro o esclavo) puede iniciar una transacción (llamadas «consultas»). Un esclavo suele ser el dispositivo final en la red SCADA (válvula, sensor o lectura de medidor) que procesa información y envía su salida al maestro.

Una trama ModBus consiste en la dirección del dispositivo de destino (o dirección de transmisión), un código de función que define la acción solicitada, un campo de datos y un campo de verificación de errores. De forma predeterminada, ModBus no tiene autenticación ni cifrado, pero se puede transportar a través de SSL/TLS para evitar ataques de rastreo, suplantación de identidad y reproducción.

En el diagrama anterior, una red corporativa y una SCADA están separadas por un firewall. Se asume que las reglas del firewall están configuradas correctamente y no se permite el acceso a la red SCADA.

Los tres componentes principales involucrados en SCADA son:

Interfaz hombre-máquina/máquina controladora: por lo general, una estación de trabajo de Windows conocida como maestra utilizada para administrar y controlar los PLC en la red a través del software del cliente. Si se ve comprometido, un atacante obtiene acceso a todo en su red SCADA.

Controlador lógico programable (PLC): un sistema físico conectado con una fuente de alimentación y una red habilitada con capacidad para hablar a través de redes Ethernet. Podría tener un panel LCD que muestre el estado del controlador, mensajes del operador, etc. Recientemente, hemos visto que se puede acceder a los PLC a través de navegadores web, Telnet, SSH, exponiéndolos a todo tipo de ataques de capa de aplicación y red. Si se ve comprometido, un atacante puede manipular la entrada/salida de sus dispositivos y causar daños graves a la organización.

Dispositivos finales (sensor, válvula o bomba): dispositivos finales instalados en el sitio remoto. Informan a los PLC a través de enlaces de comunicación como radio, conexiones en serie, Ethernet o módems directos. Si se ve comprometida, un atacante puede comprometer la integridad del entorno.

componentes principales involucrados en SCADA

Nota: Los componentes anteriores son estándar en todas las redes SCADA. Probablemente también descubra otros dispositivos, como servidores de bases de datos, interfaces de dispositivos en serie, etc.

Recientemente, los sistemas SCADA han pasado de redes y sistemas propietarios y cerrados a sistemas abiertos y redes TCP/IP. Esto ha expuesto a estas redes a los mismos riesgos que enfrentan las redes informáticas tradicionales. Sin embargo, esto no significa necesariamente que el enfoque para la evaluación de la seguridad siga siendo el mismo para las evaluaciones SCADA.

A partir de nuestras experiencias en la realización de evaluaciones SCADA, nos dimos cuenta de que cada evaluación es diferente y en cada ocasión se requiere un enfoque único según la funcionalidad del sistema y el tipo de industria en la que se implementa.

Pentesting a infraestructuras industriales

¿Cómo prepararse?

Primero tiene que hacerse estas preguntas:

  • ¿Se cambiaron todas las credenciales predeterminadas de fábrica?
  • ¿El acceso a los PLC incluidos en la lista blanca solo es para máquinas autorizadas? No deberían ser accesibles desde todas partes.
  • ¿La red SCADA está separada del resto de la red? De lo contrario, intente comunicarse con los PLC desde las estaciones de trabajo corporativas.
  • ¿El acceso físico al centro de control SCADA está restringido?
  • ¿Se puede acceder a Internet desde la máquina controladora?
  • ¿Hay algún servicio de texto claro ejecutándose en la red SCADA?
  • ¿La organización sigue una política estricta de contraseñas?
  • ¿Están parcheadas las máquinas controladoras, las estaciones de trabajo y los servidores? ¿Están ejecutando un software antivirus y se aplica la lista blanca de aplicaciones?

En la práctica, las posibilidades de que la organización tenga un entorno de prueba/control de calidad SCADA son escasas. Por lo tanto, asumimos que debe realizar una evaluación en una red en vivo, teniendo en cuenta todo el cuidado debido. Es aconsejable estar preparado antes del inicio de una evaluación y asegurarse de que todas las partes interesadas reciban comunicaciones durante cada fase de la prueba. El enfoque de alto nivel para realizar una evaluación SCADA incluye:

Un mapa de red y estudio del diseño:

El objetivo principal de estudiar la arquitectura de la red es comprender lógicamente cómo cada componente del entorno SCADA se relaciona entre sí. Debe comprender qué componentes están involucrados y cómo se segregan, conectan o exponen en la red más amplia. Esta fase también implica la identificación de varias subredes presentes dentro de la red. Es importante averiguar si la red corporativa está separada de la red SCADA o no.

Agresor:

Planifique su ataque con cuidado (no es un nivel de TI normal: un simple error o una acción fuera de control puede resultar en un GRAN RIESGO).

Después de recopilar suficiente información sobre lo que necesita probar y qué ataques son aplicables. Recomendamos documentar cada uno de los casos de prueba antes de atacar el objetivo. Esto lo hará más organizado cuando pruebe sistemas extremadamente sensibles y frágiles.

Etapa de explotación:

Ejecuta cada test individualmente. Esto lo ayudará a detectar la causa raíz en caso de que algún dispositivo experimente inesperadamente condiciones de falla. Si esto sucede, debe detener la prueba e informar al cliente. Debe intentar explotar cada uno de los componentes dentro de la red SCADA, es decir, infraestructura de red, interfaces web, sistemas operativos host, PLC, HMI, estaciones de trabajo, tal como lo haría en una prueba de penetración de red tradicional.

Sistemas SCADA

Herramientas recomendadas:

  • Nessus (debe controlar el tiempo de solicitud y realizar el escaneo una vez para cada ip)
  • smod: marco de prueba de penetración de ModBus
  • plcscan: secuencia de comandos de Python para escanear dispositivos PLC
  • Scripts NMAP: script NMAP para escanear dispositivos PLC
  • Wireshark: rastreador de red
  • mbtget: script Perl para leer datos de PLC
  • plcinject: Herramienta para inyectar código en PLCs.

Conclusión:

Los sistemas SCADA son súper sensibles y, a veces, usted tiene que enfrentar SCADA en computadores que ejecutan Windows XP con 1 G Ram, así que controle todas sus solicitudes y monitoree la red