Identificando tráfico con cortafuegos, Parte I

Anuncios

Comentábamos en la entrada “Más que IPs y puertos para proteger entornos industriales” la necesidad de realizar un análisis del tráfico de red para identificar las comunicaciones existentes dentro de nuestro entorno OT. Con los activos y servicios localizados, podremos empezar a configurar las reglas necesarias en nuestros cortafuegos dentro de las acciones de “Separación y Segmentación” necesarias para limitar accesos o propagación de acciones que puedan afectar a la operatividad de nuestras instalaciones.

Sin embrago, debemos ir un paso más allá y conocer aquellos protocolos y comandos que permiten interactuar entre sistemas de control. Sin embargo, uno de los problemas más comunes es el alto grado de desconocimiento ya que, muy a menudo, nos enfrentamos a redes conmutadas o enrutadas donde todo comunica sin filtro alguno.

Esto cobra especial importancia, a nivel de célula de automatización, instalación o conjunto de equipos en planta; base de la actividad de las empresas. Sistemas superiores deben comunicar con controladores y éstos a su vez con elementos de periferia, como sensores, actuadores o cabeceras dentro de arquitecturas de periferia distribuida. Esto da lugar a en muchas ocasiones a que PLCs dispongan de dobles en laces de red. Por ejemplo, un módulo de comunicaciones para su integración “aguas arriba” con la red corporativa y otra “aguas abajo” de la propia CPU para entradas, salidas y módulos de conexión de dentro arquitecturas descentralizadas.

Como bien sabemos las latencias en este tipo de entornos son un aspecto crítico ya que las comunicaciones deben de hacer frente al carácter determinístico de éstas. Por tanto, debamos donde debamos identificar el tráfico no podemos introducir tiempos adicionales que puedan interferir en la operación.

Port Mirroring Siemens X208

Por tanto, surgen pues dos necesidades, documentar nuestras comunicaciones independientemente del segmento; y el despliegue de nuevos elementos de seguridad perimetral para separar y segmentar nuestras redes IT y OT.

Gracias a las funcionalidades de los productos de algunos fabricantes podremos apoyarnos en alguna de ellas para hacer esto último.

Por ejemplo, el fabricante Fortinet nos permite la configuración de alguna de las interfaces físicas en un modo denominado “One-arm-Sniffer”. Este modo, a diferencia de las habituales para permitir o denegar el flujo de comunicaciones, permitirá analizar mediante los motores IPS y Control de Aplicación el tráfico enviado desde un puerto espejo un dispositivo TAP. En caso de coincidencia con alguna de las firmas, se genera el correspondiente log y registro, descartándose el tráfico recibido.

De esta manera podremos utilizar nuestro equipo Fortinet Fortigate como un IDS o detectar qué tráfico a nivel de capa 7 que como hablamos en la entrada “Más que IPs y Puertos para proteger entornos industriales”. 

En primer lugar, deberemos configurar la interfaz en el modo anteriormente indicado, a partir de lo cual nos aparecerán las distintas opciones como los motores de filtrado contra los cuales queremos analizar el tráfico recibido. Como vemos en la imagen siguiente en nuestro caso hemos elegido la interfaz número 4.

Luego dentro de “Edit Sniffer Profile” podremos configurar cada uno de los motores y por tanto y ajustarlo en función de nuestras necesidades. En nuestro caso, puesto que planteamos el escenario de identificación de las comunicaciones y los protocolos industriales nos centraremos en éstos.

Para la presente entrada he empleado la herramienta TCPreplay para la reproducción de capturas PCAP.

De esta manera, el Firewall nos ha identificado no sólo un buen conjunto de ellos sino además los comandos que a través de ellos se envían. Como podemos ver en la imagen siguiente dentro de Modbus encontramos “Modbus_Function.Reserved.Code” y “Modbus_Read_Coils” entre otras como “S7.Protocol_CPU-Function.Read.SZL” o “DNP3_Response”.

Dependiendo de la arquitectura que tenga en nuestras instalaciones de planta las opciones podrán ser diversas, aparte de dónde radique el interés o necesidad por identificar ese tráfico. Es decir, podremos desplegar su uso a nivel de célula para conocer cómo un HMI, un PLC o periferia intercambian información; o bien, cómo desde servidores SCADA o MES envían o reciben consultas sobre equipos de planta para labores de control de producción, monitorización, telemetría entre otras.

En cualquiera de los casos, la idea es explotar otra funcionalidad de los cortafuegos que vayamos a desplegar y en la que nos podremos apoyar para la identificación de comunicaciones. Quizás no tengamos herramientas como “Nozomi SCADAGuardian” pero alternativas, las tenemos.

No obstante Fortinet no es el único. Próximamente presentaremos una funcionalidad similar, pero de otro fabricante.

¡Un saludo, nos vemos en la próxima!

Más que IPs y puertos para proteger entornos industriales

Anuncios

Los cortafuegos representan la primera línea de defensa para proteger los entornos industriales. Separar y segmentar las redes, tanto si nos referimos a los entornos IT-OT como exclusivamente a OT es considerada como la primera labor a realizar. Con ello conseguiremos controlar, entre otros aspectos, accesos, conexiones, aplicaciones, usuarios… reduciendo así el grado de exposición de nuestros dispositivos y la respectiva superficie de ataque.

Sin embargo, desplegar este tipo de soluciones lleva aparejado un conjunto de acciones como identificar el tráfico existente para luego configurar todas las reglas de filtrado. La realidad me demuestra que muchas organizaciones no tienen conocimiento de las comunicaciones que se producen dentro de sus redes y aún menos documentadas. Nos enfrentamos en muchos casos a redes conmutadas o enrutadas donde todo comunica de forma directa y en las que no se ha contemplado, no sólo la seguridad, sino también un diseño jerárquico, escalable y tolerante a fallos. Me refiero, a que no existe una clara definición de perímetros, lo cual da lugar a arquitecturas con propósitos distintos bajo un mismo dominio de broadcast, alcance directo a los entornos OT desde oficinas, un único plan de direccionamiento, y así un largo etcétera.

Por tanto, de igual modo que hemos de identificar nuestros activos que antes de llevar a cabo cualquier acción, aquí deberemos hacer lo mismo con las comunicaciones. Necesitaremos, al menos, información de las direcciones de IP tanto de origen como de destino y los puertos, en particular el de destino. No podremos avanzar hasta llevar a cabo esta labor y, por supuesto, generar la documentación asociada. Además, hemos de tener presente que muchas de esas comunicaciones no serán necesarias, por lo que no tendrán que ser configuradas. Finalmente, y habiendo cerrado este proceso o, en paralelo con otros, habrán de ser validadas por responsables de planta, IT o similares.

Sin embargo, este análisis no puede quedar ahí. En redes industriales aparte de saber quién se comunica con quién y en qué puerto, hemos de saber el protocolo utilizado y qué valor, comando o instrucción “va dentro” de ese tráfico. Es decir, importa no sólo el tipo de equipo que inicia la comunicación y la mantiene, sino además cómo y qué se “dicen” entre sí.

Entre otros muchos motivos, lo que puede provocar un incidente o una pérdida del servicio, va a ser la escritura de una variable, el borrado de un fichero, cambio de estado de la CPU, acceso con credenciales por defecto desde dispositivos, etc.

Esto nos lleva a otra conclusión… y es que para saber lo que envía y recibe, hemos de conocer el protocolo, cosa que no siempre sucede. Se sabe que un HMI se comunica con un PLC; se responde ante ciertas peticiones; una aplicación se comunica con componentes de campo, pero pocas veces se baja hasta ese nivel.

Hemos de tener en cuenta que la mayoría de los protocolos de comunicaciones no incorporan medidas de seguridad nativas con lo que, sumado a ciertas funcionalidades y vulnerabilidades de equipos podremos, de forma intencionada generar o reproducir tráfico que permita leer o escribir valores, alterando así el normal funcionamiento.

Sumado a lo anterior, no podemos olvidar que la naturaleza de estos entornos es muy particular. Adicionalmente, pueden darse con frecuencia otra serie de circunstancias que aumenten el riesgo que se produzca un incidente, bien de forma intencionada o no intencionada. Por ejemplo:

  1. La viabilidad de aplicar una actualización o parche para corregir una vulnerabilidad puede llegar a ser muy difícil o inviable, por razones de disponibilidad, número de equipos, ubicación, riesgos asociados, y sobre todo impacto sobre el sistema.
  2. Inexistencia de software antivirus o protección de endpoint para análisis de dispositivos USB.
  3. Conexionado a la red de equipos de Proveedores o terceras partes para labores de mantenimiento o soporte.
  4. Incorporación de nuevos dispositivos con funcionalidades embebidas en los que no se ha contemplado la seguridad.
  5. Definición de usuarios con permisos de administrador y de uso compartido por equipos técnicos.

Las circunstancias descritas con anterioridad, favorecen el éxito de que una negligencia, exceso de confianza, infección, uso incorrecto de credenciales, explotación de una vulnerabilidad, software no necesario para la operación de las instalaciones, etc; tenga éxito y afectar a su disponibilidad y por tanto a la actividad de negocio.

Así pues, en estos análisis previos no podemos quedarnos exclusivamente en identificar IPs de origen y destino y puertos. Hemos de ir más allá y realizar un análisis más pormenorizado. Es necesario, aplicar otros controles que nos permitan detectar aplicaciones; analizar patrones para la identificación de intrusiones; presencia de malware; tráfico Web para accesos a interfaces de gestión; etc. para conocer el estado actual y si ya hay, o no, alguna anomalía en el entorno donde estamos.

En este sentido una de las opciones/recurso son las herramientas de monitorización como la que hablaba en la entrada “Monitorización Redes Industriales, SCADAGuardian” pero, claro está, no siempre podremos hacerlo.

Por tanto, se nos plantea la cuestión sobre cómo podremos hacer dicho análisis en esa fase previa al despliegue de cortafuegos. Sin olvidarnos, claro está, las características tanto de los sistemas como de las comunicaciones industriales en particular en lo que a latencias y variación del “Jitter” se refiere. Muy especialmente aquellas a nivel de célula de automatización.

En próximas entradas veremos la manera en la que podremos utilizar los estos dispositivos ya adquiridos para llevar a cabo esta labor. Es decir, realizar ese análisis más pormenorizado al que hacíamos referencia y a partir de ahí conocer lo qué sucede en nuestras infraestructuras de comunicaciones.

Gracias a ello, podremos avanzar de una manera más eficiente, completa y contextualizada la protección de nuestras organizaciones, empresas o clientes.

¡Nos vemos en la próxima!

Sumando fuerzas, Switching y Firewalling para proteger maquinaria e instalaciones industriales

Anuncios

Dentro de cualquier estrategia de protección de entornos industriales no podemos pasar por alto la heterogeneidad de éstos. No podemos considerar de igual manera una actividad dedicada a la fabricación de vehículos, farmacéutica, alimentación o componentes electrónicos. Los tiempos de respuesta, los máximos asumibles de parada, estrategia de producción, pueden no ser para nada similares. Por tanto, la manera en la que debemos priorizar y desplegar las medidas que prevengan incidentes, debe ser distinta.

Pero independientemente del sector, los propietarios de los activos (esto es, las propias empresas) incorporan tecnología distinta de fabricantes, ingenierías, integradores o cualquier otra tercera parte debido al alto grado de especialización aparte de la complejidad o necesidades concretas de estos entornos. Claro está, que en muchos casos sea más operativo, económico o práctico externalizar estas tareas en lugar de desarrollar la solución y el conocimiento con medios internos.

Puesto que forman parte del proceso, se ha de acordar contratos de mantenimiento con el fin de garantizar un recurso en caso de ser necesario y recibir soporte a lo largo del ciclo de vida del producto, que como sabemos, dentro del mundo es OT es mayor que el tradicional IT. Esto es, respuesta ante una incidencia, actualizaciones, modificaciones o cualquier otra razón, de tal manera que el propietario de ese activo no pueda ver afectada su actividad por no saber resolver, atender o actuar sobre él.

Esto supone un problema para los citados integradores ya que una vez sus sistemas o maquinaria están en las instalaciones de sus clientes, dejan de tener, a priori, un control sobre el mismo. No tienen la garantía de que alguien pueda, en un momento dado, “conectarse” y llevar a cabo una acción que derive en un mal funcionamiento y generar un incidente con mayor o menor impacto. Por tanto, resulta necesario controlar los puntos de conexión a ese equipamiento en particular al de red como switches que permitan la comunicación entre equipos y componentes. Particularmente si hay consecuencias económicas…

En este sentido la conjunción de Switches y Firewalls del fabricante Fortinet pueden ayudarnos ya que dichos cortafuegos poseen la capacidad de controlar algunas funciones de los switches mediante un controlador embebido.

En este caso disponemos de un Fortigate Rugged 90D y un FortiSwitch Rugged 112D-PoE.

El Firewall será el que nos una a la red del cliente y evitará que un activo de la red de éste llegue a los componentes de la instalación o maquinaria en cuestión. La configuración podrá ser variada según la topología, esto es, que opere a nivel de capa 2 o 3. Será pues nuestra seguridad perimetral. El modo de acceso lo podemos establecer a través de un túnel VPN a partir de las opciones que nos permite el equipo. Obviamente, habilitaremos los distintos perfiles de seguridad como Antivirus, IDS/IPS, Control de Aplicación, etc.

Ya aguas abajo del Cortafuegos, el Switch permitirá la comunicación entre los equipos finales. Cómo configuremos ambos equipos dependerá del tipo de instalación, arquitectura, tipo de tráfico, conexionado, entre otras variables.

Para poder llevar a cabo esta administración, deberemos configurar una de las interfaces del Fortigate para la comunicación con el FortiSwitch empleando el protocolo FortiLink. En nuestro caso serán enlaces por medio de dos SFP de fibra en ambos extremos. Podréis encontrar más información en estos dos enlaces, enlace 1 y enlace 2.

Por defecto el switch operará en modo “Local Management”.

Si decidimos gestionarlo desde el Firewall deberemos tener presente que la se borrará cualquier configuración existente.

Hecho esto, se nos generarán dos interfaces, dependiendo de las características habilitadas.

Para poder agregar el switch deberemos ir al apartado “WIFI & Switch Controller” y comprobar que el switch se ha detectado y autorizarlo. Una vez hecho el mismo se reiniciará. Según el modelo del switch, por defecto se definirán algunas interfaces de “Auto-discovery”. Podréis encontrar más información aquí.

En el siguiente apartado podremos crear las interfaces de cada una de las VLAN que necesitemos. En mi caso he creado la VLAN100.

A continuación, podremos asignar a cada puerto la correspondiente VLAN y configurar algunos otros parámetros adicionales relativos a PoE, STP, Status, etc.

El último apartado será lo relacionado a las Políticas de Seguridad, algo que nos es objeto por ahora, todo se andará.

Cabe mencionar que aunque veamos que las características de parametrización son menores podremos abrir un CLI desde el apartado “Managed FortiSwitch”.

No obstante, si lo deseásemos también podríamos acceder a la interfaz web. Para ello deberemos de configurar una ruta estática que apunte a la interfaz creada para el enlace Fortilink.

A partir de ahí, podremos acceder a él, no sin antes ser avisados de que este equipo está siendo gestionado por un Fortigate.

Así pues, lo que he querido mostrar hoy es la posibilidad de administrar desde un Firewall algunos parámetros de un switch y con ello ejercer un control sobre los puertos de éste desde éste sin tener la necesidad de acceder a él. Por ejemplo, ante una tarea de mantenimiento, por defecto, dejaremos deshabilitados los puertos que no se utilicen y habilitar uno en caso de ser necesario. Pero si en contreto se trata de una tarea ejercida por un personal externo a la organización como puede ser la ingeniería que construyó la citada maquinaria podríamos, crear una VLAN concreta, asignarla aun puerto del switch y que todo el tráfico pase por el firewall hacia los equipos autorizados, teniendo registro y control de lo que se realice. Aparte, someterlo a filtrado de capa 7, generando los logs pertinentes y registrando evidencias de lo que suceda.

Además, hemos de recordar que los equipos FortiGate también disponen de un controlador Wi-Fi con lo que de forma análoga podremos administrar puntos de acceso tal y como se muestra en la imagen siguiente.

Esto lo podríamos acompañar como puede ser el software FortiClient tal y como lo hablaba tiempo atrás en la entrada “Controlando a nuestros Proveedores, Parte I” y “Controlando a nuestros Proveedores, Parte II”.

Desde luego este es el aspecto más básico ya que podremos explotar algunas funcionalidades más que por ahora no hemos contemplado.

Un saludo, hasta la próxima!