Buscando ICS en la red, ZoomEye

Anuncios

En el día de hoy voy a hablar de una herramienta que si bien el grupo a las que pertenece ya es conocido y reconocido por muchos profesionales del ámbito IT, quizás no lo sea tanto para otros como ingenieros y técnicos de sistemas de control y automatización. Éstos, hasta hace no demasiado mucho tiempo, han estado ajenos a todo lo relacionado con la Ciberseguridad, cosa que ha tenido que cambiar, y cambiará aún, más con la llegada de la tán nombrada Industria. 4.0.

El tipo de herramienta a la que me refiero no es ni más ni menos, que los motores de búsqueda de dispositvos en Internet. Éstos, son buscadores no de páginas o contenido web, que es a lo que estamos acustumbrados, sino equipos como pueden ser servidores, routers, cámaras, y todo aquello que pueda estar expuesto en Internet. Y como no, autómatas, RTUs, HMIs, y cualquier otros sistemas que deban ser accesibles remotamente. A priori muchos podrían pensar que esto es un disparate, y que a nadie se le ocurriría dejar visibles sus equipos así tan alegremente, sin embargo esto es más común de lo que pensamos.

La herramienta por excelencia en este ámbito es Shodan el cual fue creada en el año 2009 por John Matherly quien concibió la idea de buscar sistemas en lugar de páginas en Internet. Si bien uno puede crearse un usuario de froma gratuita, también existe una opción de pago con las que se consiguien mayor cantidad de posibilidades.

Por ejemplo, si efectuamos una búsqueda de equipos con el puerto TCP 102 abierto, tendríamos un resultado como sigue:

Destacar por ejemplo cómo aparte de autómatas también nos identifica dispositivos «Conpot», el Honeypot del que hablaba en estas dos entradas Parte I y Parte II.

Otro ejemplo es Censys. Misma idea, con misma funcionalidad.

Por ejemplo si buscásemos relacionado con «Phoenix Contact» tenemos lo siguiente:

Resulta preocupante no tanto que esta información esté disponible,  sino el uso que se le pueda dar,  y sobre todo quién lo haga. Es decir, si estos datos son accesibles, quizás existan otros que no lo sean y quien esté detrás del sitio disponga de ellos, reservándose el hecho de hacerlos públicos. Si vemos lo que vemos es porque «alguien», nos deja,  alguien tiene el control y la capacidad de decidir «esto si,  esto no». A partir de ahi,  según sus intereses,  dejarnos hacer tal o cual cosa  bien gratis o «pasando por caja».

Tras esta reflexión,  llegamos a la herramienta en cuestión, ZoomEye. La misma tiene origen chino, y esto casi siempre asusta un poco. Aunque, en mi opinión, aqui todos se «miran» se «sonríen» entre ellos. La utilidad es la misma que las anteriores y, al igual que en Shodan, encontramos un apartado específico a ICS desde dónde hacer de una manera predefinida búsquedas relacionadas con protocolos o productos específicos de algunos fabricantes.

En la siguiente imagen se puede ver seleccionando el producto S7-300 (PLC) de Siemens.

También dispone de una vista («Vision») donde podremos la ubicación geográfica de los equipos localizados.

De igual modo se cuenta con un apartado «Docs» donde podremos ver el significado de mensajes, filtros, errores y demás información. Aqui dejo, por ejemplo, los filtros de búsqueda:

A esto habría que sumar un último punto. Como estamos acostumbrados los sistemas poseen contraseñas por defecto o «hardcodeadas» que muchos responsables o adminsitradores pensando en viejas ideas de «Quién tendrá interés», «A mi no me va a pasar», «que probabilidad hay de que eso me pase a mi» y bla bla bla.; no las cambian o no puedan hacerlo. Lo cierto es que investigadores del grupo «SCADA StrangeLove» hace unos meses publicaron una lista con las contraseñas por defecto de muchos fabricantes y que puede ser accedida y descargada desde Github en el siguiente enlace. Por tanto dada la capacidad de estas herramientas y la información ya disponible para autenticación en sistemas; obliga necesariamente a tomar medidas ya que puede quién lo utilice no con buenas intenciones. Y cuando digo «quien» hablo de grupos terroristas, Agencias de Inteligencia, delincuentes, inconscientes, o cualquier otro que pueda no ir con buenas intenciones.

En cualquier caso resulta necesario que cualqueir equipo de esta naturaleza que deba ser accedido desde el exterior, cuente con un sistemas que eviten la exposición directa, y a su vez, establezcan unos controles de acceso, autenticacióin y cifrado de las comunicaciones. La solución más adecuada reside son las VPN, disponiendo ya de productos concretos para entornos industriales. Os dejo unos ejemplos:

Fortinet

Endian

Netgate

Como decía, los Sistemas de Control Industrial en muchas ocasiones deben ser accesibles remotamente para tareas de soporte, mantenimiento o incluso el propio funcionamiento.  Imaginar por ejemplo un parque de aerogeneradores eólicos sobre los cuales se desee monitorizar los MWatts producidos. Como compenderéis no puede ir un técnci con un Range Rover e ir apuntando uno por uno… Sin embargo, éstos pueden ser no sólo detectados sino además accedidos si no se han tomado medidas tán básicas como cambiar las contraseñas por defecto. siempre que se pueda. No obstante, esta medida no puede tomarse del todo efectiva ya que éstos pueden implementar versiones de protocolos vulnerables y que junto con la condición de una difícil actualización, continúan de una forma u otra, en la misma sitación. Esto es, vulnerables y además expuestos. Es por ello que deben establecerse otro tipo controles como la creación de VPNs mediante NGFW, con motores AV, IDS/IPS, Control de Aplicación, capacidad de hacer DPI junto con los procolos industriales utilizados y declinar en ellos el acceso controlado y con unas medidas de seguridad aceptables.

Esto esto es todo, nos vemos en la próxima!!

Reduciendo el tiempo de recuperación

Anuncios

Como he comentado en artículos anteriores, el objetivo primero para entornos OT, es garantizar la disponibilidad de las instalaciones, quedando a un segundo y tercer plano la integridad y confidencialidad de la información manejada. Esto no quiere decir que no sea importante, sino que se establecen prioridades.

Lo que se pretende con la securización de las instalaciones, es reducir los riesgos de sufrir un incidente y que se vea afectado el funcionamiento de las Infraestructuras de automatización y Control, ya sean Críticas o Industriales. Sin embargo conviene recordar, que no es menos importante garantizar la seguridad de tipo “Safety”. Me refiero a las funcionalidades de protección a personas, esas que vienen de la mano de accionadores de emergencia, barreras infrarrojas, detectores de presencia, y demás dispositivos que evitan que un técnico de mantenimiento, operario, etc. sufra un accidente que ponga en riesgo su vida o integridad física.

De todos es sabido que las amenazas, vulnerabilidades, riesgos y negligencias están ahí, y que la seguridad al 100% no existe. Lo que hoy puede tener unos niveles aceptables, mañana con la aparición de un nuevo bug, exploit, etc. puede no tenerlo.  Aparte, considerando la idiosincrasia de estos entornos con funcionamientos en muchos casos 24 X 7 X 365, la puesta en marcha de parches, actualizaciones, mejoras y nuevas soluciones, puede retrasarse a períodos de tiempo realmente largos. Eso teniendo en cuenta que puedan ser aplicados sobre las mismas plataformas, ya que no siempre es así.

Por tanto, teniendo en cuenta que a pesar de haber desplegado un plan de seguridad para nuestro entorno OT, ¿es suficiente para garantizar la disponibilidad? ¿qué ocurre durante el este período de tiempo en el que estamos expuestos por no poder aplicar medidas correctoras? ¿qué va a pasar si en ese intervalo sufrimos un incidente?

Pues bien, garantizar la disponibilidad no es sólo poner en marcha aquellas medidas que reduzcan los riesgos, sino que, si sufrimos un incidente, tengamos la capacidad de recuperarnos en el menor tiempo posible. Para alcanzar este propósito es necesario implementar, junto con el resto, un Plan de Contingencia que permita restaurar dispositivos y sistemas a un estado nuevamente operativo.

Por ejemplo, si un HMI queda infectado o por alguna razón su hardware sufre un daño, y esto desemboca en una sustitución del equipo, mientras dure dicha operación nuestra instalación puede quedar fuera de servicio. O bien, un operario realiza un cambio incorrecto en un autómata y debe cargarse el programa a una versión anterior.

Ejemplos se pueden poner muchos, pero lo cierto es que resulta indispensable la inclusión de un proceso de generación de copias de respaldo para cubrir estos supuestos. Cuando hablo de un proceso me refiero a un método. Aquí hay que considerar muchos puntos. Uno de ellos es el tipo de equipo. No es lo mismo un PC, que un servidor SCADA, que un PLC o RTU. Así cómo en los dos primeros podremos instalar un agente que nos haga una copia del sistema operativo, ficheros, aplicaciones, etc. en el segundo y tercero su naturaleza puede que no nos lo permita y debamos elegir otra solución o vía.

Un aspecto clave es establecer la forma en que se hacen de estas copias. Todo cambio debe de estar documentado y programado, salvo que se trate de un incidente obviamente. Por ello debe seguirse una nomenclatura que permita la identificación inequívoca de los ficheros, catalogar si es software, sistema operativo, versiones, fecha en la que se hizo, control de accesos a los mismos por parte de las personas responsables, control de integridad, etc. Además, dependiendo del número dispositivos puede justificarse la instalación de herramientas centralizadas que permitan automatizar este proceso.

La generación de copias lleva aparejado necesariamente un espacio de almacenamiento adicional. Nuevamente dependiendo del número, puede necesitar de una inversión en nuevo hardware o sistemas. Aquí la estrategia marcará la manera de llevarse a cabo. Me refiero a que éstas sean accesibles bien de forma local o por red, esto es, que en caso de recuperación pueda descargarse la copia desde un servidor o desde un disco duro externo conectado via USB.

Aplicaciones en el mercado hay varias. En mi ejemplo utilizaré una del fabricante Acronis en concreto del producto Backup Advanced 11.7. Con él podremos realizar imágenes de disco de nuestros equipos y, como comentaba,  para recuperarlos en caso de fallo, rotura de hardware, o cualquier otra incidencia que afecte a su funcionamiento.

Esta solución consiste en un servidor central de administración y un agente software que se debe instalar en los equipos sobre los que se quiere hacer los backups. Para administrarlo, necesitamos de un software cliente (consola) con el que conectaremos al servidor y desde ahí llevar a cabo todas las operaciones necesarias como pueden ser:

  1. Dar de alta equipos.
  2. Organizar lugares de almacenamientos de las copias (Bóvedas).
  3. Control de acceso y permisos de usuarios.
  4. Programación de copias.
  5. Definición de nodos de almacenamiento.

En lo referente al servidor de gestión, a la hora de instalar nos preguntará sobre cómo va a utilizarse el equipo para a partir de ello instalar más o menos componentes.

En el Escritorio del servidor se habrá generado un acceso directo del software con el que nos conectaremos (consola) , en este caso a nosotros mismos contra la IP 127.0.0.1.

Por la parte del cliente, ha de instalarse dos tipos de software. Uno denominado “AcronisAgentCore” y “AcronisAgentWindows”. La instalación es sencilla, un ejecutable más.

Luego, desde el servidor, deberemos dar de alta los equipos para poder dar las órdenes de la generación de las copias. Lo haremos proporcionando el nombre o IP además de las credenciales definidas en el proceso de instalación.

En el apartado “Equipos con agentes – Todos los equipos con agentes” veremos el equipo ya registrado, para este ejemplo, el “HMI-EST-01”.

Allí encontraremos varios parámetros de configuración. Dadas las características de los entornos industriales me centraré en concreto en dos de ellas. La primera es la compresión. La imagen guardada podrá ser comprimida para ahorrar espacio, sin embargo esto podrá afectar no sólo en la generación de la copia sino también la recuperación de la imagen. Esto habrá de tenerse en cuenta ya que aumentará el tiempo en el que el equipo podrá estar disponible de nuevo.

La segunda corresponde la prioridad que tendrá el agente de Acronis con respecto al resto de procesos que corran sobre el equipo final. La generación de la copia consume una serie de recursos, los cuales no podrán afectar al resto aplicaciones control que corre en ese mismo instante. Las copias deberemos programarlas, de ser posible, para su ejecución fuera del horario de funcionamiento pero en el supuesto de que no sea así deberemos dar prioridad al resto en lugar a la de Acronis.

Finalmente, lanzaremos la tarea teniendo una duración variable en función de todos los parámetros configurados y el rendimiento de nuestra red.

Si bien los valores pueden variar bastante, para hacernos idea, una máquina virtual de 60,5 GB de disco duro se quedó en 44 GB y tuvo una duración del entorno a media hora.

Para poder recuperar un equipo, deberemos crear un dispositivo de arranque, esto es un Live CD o USB. Para ello tendremos que instalar la aplicación “Acronis Media Builder” y definir alguno de ellos.

Con anterioridad deberemos tener cambiados los parámetros en la BIOS del sistema para arrancar desde la unidad de CD o medios extraíbles. A partir de aquí el asistente de Acronis nos guiará durante el proceso, teniendo que asignar una IP e indicar el lugar donde se almacena la copia que queremos recuperar.

El mensaje de hoy no es tanto ver la manera de “protegerse” sino de “recuperarse”. O dicho de otra manera no tanto a la seguridad sino  minimizar el tiempo de recuperación en el caso de que tengamos una brecha. Las estadísticas dicen que las vulnerabilidades descubiertas van en aumento y que los ataques cada vez son más diversificados. Que exista un parche, no quiere decir que se pueda implementar nada más publicarse y por tanto, mientras esta situación se mantenga, los equipos son vulnerables. He puesto el ejemplo de un HMI ya que están a la cabeza de ser el objetivo estrella, para desde ahí llevar a cabo distintas acciones sobre la red de control. Estos HMI están basados principalmente sobre sistemas operativos Microsoft Windows, de ahí que en este caso haya puesto como ejemplo una solución como la de Acronis Backup Advanced, y aplicación sobre equipos con esas características.

Espero que haya sido interesante, lo dicho “garantizar la disponibilidad no es sólo poner en marcha aquellas medidas que reduzcan los riesgos, sino que, si sufrimos un incidente, tengamos la capacidad de recuperarnos en el menor tiempo posible”. 

Saludos!

 

Identificando tráfico en redes ICS, Grassmarlin.

Anuncios

Son muchos los motivos que nos pueden llevar a realizar un análisis de tráfico, desde una auditoría, documentación de tráfico, hasta una labor de troubleshooting, etc. En concreto esto cobra mayor importancia en los entornos industriales con la evolución de los protocolos de comunicaciones hacia estándares Ethernet y TCP/IP permitiendo la integración con otros sistemas y tecnologías dando lugar a la llamada Industria 4.0 e IIoT.

Pero esta integración también tiene sus riesgos, ya que el grado de exposición dentro de la red aumenta con lo que resulta necesario implementar estrategias de seguridad que reduzcan los riesgos de sufrir un incidente.

Dentro de un proceso de securización, en concreto, de un entorno industrial, una de las primeras zonas donde intervenir es a nivel de infraestructura de red. Aquí surgen dos conceptos importantes como son “Separación” y “Segmentación”. Por separación entendemos dividir las redes de entornos IT tradicionales como por ejemplo “Oficinas”; y las redes de automatización OT como pueden ser las de producción en una empresa manufacturera. Entre cada una de ellas es necesario instalar un elemento de seguridad que filtre todas aquellas comunicaciones entre ambos entornos, siendo el más común un NGFW que además de las funciones tradicionales de un cortafuegos añada una capa más de seguridad con motores Antivirus, IDS/IPS, Control de Aplicación, DPI, etc.

Hecho esto, la siguiente fase es segmentar nuestro entorno OT. Esto es, fraccionar en áreas, zonas, celdas, más pequeñas nuestra red o conjunto de redes, de tal manera que en caso de incidente en una de ellas, éste no se propague al resto y ponga en peligro la totalidad de las instalaciones. Recordemos que la regla número uno es garantizar la “Disponibilidad”. Esto requiere que todo el tráfico de cada una de estas áreas, celdas, etc. pase nuevamente por un dispositivo tipo NGFW y quede condicionado a unas políticas de seguridad preestablecidas.

Ahora bien, para que todo esto funcione deberemos en primer lugar identificar el tráfico y realizar el análisis del que hablaba al principio.

El primero de los pasos será capturarlo para posteriormente realizar el análisis para extraer de él la información que necesitemos. Para llevar cabo esta tarea contamos con la aplicación Grassmarlin.

GrassMarlin es una herramienta destinada a entornos industriales y sistemas SCADA con la que podremos llevar a cabo:

  1. Identificación de tráfico
  2. Descubrimiento de dispositivos.
  3. Representación lógica y física.
  4. Gráfico de segmentos o arquitecturas.
  5. Exportar información a formato .CSV.

Todo ello lo realiza de forma pasiva sin interceder en la operativo normal de la operación de los equipos. Para ello permite dos opciones:

  1. Interpretar la información contenida en un fichero PCAP
  2. Captura de tráfico con la propio Grassmarlin.

Para conseguir esta información sin interceder en la operativa, la forma de hacerlo es la configuración de un puerto en modo “port-mirroring” (puerto espejo) de tal manera que recibamos una copia de todo el tráfico hacia/desde otros que sean de nuestro interés. Os dejo dos enlaces ejemplo sobre cómo hacerlo sobre dispositivos de distintos fabricantes.

Siemens

Cisco

Es posible descargarla desde aquí, estando disponible para sistemas operativos Microsoft Windows y Linux. Su última versión es la 3.

Para el presente artículo voy a partir de una captura que importaré a Grassmarlin.

En la zona de “Network Tree Map” podremos ver tanto las redes y los nodos existentes; mientras que en la parte derecha la “Logical View” la forma gráfica de la misma con los enlaces entre uno y otro.

Si sobre uno de los nodos hacemos “botón derecho”, “Show all connections” podremos ver todas aquellas relacionadas con éste, junto con un gráfico representativo del tamaño del paquete en función del tiempo.

Si sobre uno ellos hacemos nuevamente “botón derecho” podremos ver dicha captura en Wireshark. Esta aplicación se instala por defecto, pero en una versión antigua. Si disponemos una más reciente, podremos configurarlo en “Option – Preferences – Wireshark Executable Path” y abrirlo con ésta. Luego, en la esquina inferior derecha tendremos la opción de exportar el contenido a un fichero con formato CSV y a partir de ahí formatear y explotar la información para uno u otro propósito.

La aplicación incluye por defecto algunos identificadores como pueden ser los primeros 24 bits que hacen referencia a los fabricantes en las direcciones MAC. No obstante, si no localizamos alguna podremos dar de alta nuevas en función de nuestras necesidades.

Lo mismo ocurre con los protocolos.

Allí encontraremos un buen número de ellos, pero si en el caso de que queramos bien editar uno existente o crear el nuestro propio, tendremos la capacidad de hacerlo. Aquí os dejo una muestra de modbus.

Finalmente comentar que Grassmarlin dispone de una vista física. Esto es una representación de los equipos. Según he visto en distintas webs, la versión 3 sólo dispone de compatibilidad con dispositivos Cisco. La información que deberemos contener en un fichero de configuración para su importación es el resultado de los siguientes comandos:

  1. “show running-config”
  2. “show ip arp” (OU) “show mac address-table”
  3. “show interfaces”

Como podemos comprobar Grassmarlin puede sernos de mucha utilidad. En el proceso de trasformación de la industria y de la inclusión de políticas de ciberseguridad, identificar el tráfico resulta vital. Es muy común que los responsables o personas involucradas en procesos de fabricación, ingeniería, mantenimiento, etc. no estén familiarizados con todos estos términos y ni conozcan cómo y de qué manera se comunican sus equipos. Como mucho te puedan decir, si tal o cual equipos lo hace con tal o cual servidor o dispositivo, pero hasta ahí. Esta herramienta nos podrá facilitar mucho esta tarea y sobre todo poder comenzar a documentar todo aquello que sea necesario y evitar así esta situación.

Espero que os haya gustado, nos vemos en la siguiente.

Edorta