jueves, febrero 06, 2014

Cómo localizar los hidden links de las redes

Son muchas las empresas que me han dicho que tienen alguna red aislada de comunicaciones. Supuestamente esas redes de equipos se crean para cosas especiales, como sistemas de control de fábricas, entornos de alta seguridad en el procesado de datos o el cumplimiento de estándares de seguridad. Algo así debían pensar en la central donde StuxNet se coló: que tenían una red aislada. La historia demostró después que tener una red aislada no es suficiente con tener una red de equipos no conectados con cable ethernet o WiFi a otras redes, sino que cualquier conexión del exterior puede ser un verdadero problema.

En el caso de StuxNet fue un pendrive conectado a una conexión USB, pero podría haber sido cualquier otra forma de enlace en cualquiera de los equipos, como conexiones BlueTooh, IrDA, iBeacons, el cable serie o paralelo de una computadora o cualquier otro elemento que permita una comunicación externa.

Pintando el mapa de conexiones de una red

En el mundo de la seguridad de las redes decía Rafael Vida - compañero en el area de seguridad de Telefónica de España - los administradores de sistemas y la gente de seguridad de red tendemos a dibujar las redes por sus conexiones de enlace Ehternet, WiFi o Internet y/o sus ubicaciones físcas como nos han enseñado, pero esa no es la mejor forma de pintar una red, ya que las redes con mucha más complejas que eso y habría que estudiarlas desde muchos puntos de vista distintos.

Figura 1: Un mapa de red clásico con conexiones y ubicaciones

Quizá el análisis del tráfico que se genera en ellas sea lo más coherente, buscando qué nodos son los más importantes para cada uno de los protocolos de red, cuáles lo son en los servicios más críticos de la compañía o cuales se están comportando como auténticos cuellos de botella.  Así, pintar redes pasa de ser una forma estética de colocar equipos enlazados con sus cables en un Visio, a tener auténticos mapas de telemetría que ayudan a los administradores de sistemas a entender mejor su red.

Figura 2: Un mapa de tráfico entre nodos. Cada punto terminal de arco en las lines rectas es un nodo.

Centrándonos en el area de seguridad, pintar las estructuras de conexión es fundamental para entender las diferentes fronteras que se tienen dentro de la red para poder mitigar intrusiones, detectar ataques o aplicar medidas de seguridad preventivas, por lo que siempre se cuenta con un mapa de conexiones que dibuja nuestra red. Probablemente, muchos de los que estáis leyendo ahora esto podréis alzar un poco la cabeza y verlo desde vuestro sitio de trabajo.

Este mapa está casi siempre presente en todo departamento de sistemas. Pero... ¿y las conexiones ocultas de las redes? ¿Las tienes pintadas? ¿Tienes localizados los puntos en los que se conectan temporalmente dos equipos para crear un nexo temporal de red?

Las conexiones USB en un equipo

Probablemente, muchos de esos equipos que están en redes disjuntas acaben teniendo un nexo de conexión en la oficina, o en la cafetería. Tal vez en la reunión de la sala 25 que tuvo lugar hace un par de días. Allí, las conexiones no tienen lugar por medio de cables o redes WiFi que puedas controlar y auditar. Allí, las conexiones tienen lugar a través de un pendrive que se conecta de un equipo a otro transportando datos... y a veces problemas de seguridad como en el caso de StuxNet.

Las formas de evitar esta polinización entre equipos de la red de seguridad de la empresa puede limitarse a forzar que los dispositivos USB sean sólo copias de seguridad para los documentos de una persona, forzando por políticas de Active Directory que solo se puedan conectar en el equipo del usuario los dispositivos autorizados para él. Pero en el momento en que la política sea un poco más laxa, se acaban de convertir en hidden links de todas tus redes de datos, así que el mapa de conexiones está bien para el tráfico de red, pero no para la comunicación real entre redes.

Figura 3: Un USB no permitido en un equipo Windows por políticas de seguridad

Una forma inteligente de detectar esos hidden links es la de monitorizar las conexiones USB de los equipos de red. En el libro de Análisis Forense Digital en Windows, Juan Garrido explica cómo localizar todas las conexiones USB que se hayan realizado alguna vez en un equipo, con el fin de saber en un post-mortem por donde vino la amenaza, o cómo se produjo la fuga de datos. Esto se puede hacer de forma más visual con herramientas para monitorizar las conexiones USB o directamente analizando el Registro de Sistemas Windows, en concreto buscando la clave USBStor.

Figura 4: Clave USBSTOR almacena la lista de todos los dispositivos USB conectados alguna vez

Bajo esa clave se encuentran todos los dispositivos USB que alguna vez se conectaron a un equipo. Se tienen los nombres, los Class, los ClassGUID, etcétera. Con esa información, detectando cuando un mismo dispositivo se ha conectado a dos equipos de la compañía, se podría saber quién está compartiendo el dispositivo USB con quién, con lo que se podría descubrir un hidden link entre redes.

Cómo localizar los hidden links de una red

Para localizar estos hidden links de forma automatizada se puede hacer uso de los Controladores de Dominios en Window Server y aplicar políticas que lancen scripts PowerShell al inicio. Con la navaja suiza de los adminsitradores de sistemas se pueden crear scripts que accedan al registro con extrema facilidad, y que no solo capturen los dispositivos USB que conecta un equipo sino que los reporten a un servidor centralizado para analizarlos. 

Figura 5: Accediendo al historial de dispositivos USB conectados con un script PowerShell

Si tienes Mac OS X en tu empresa también puedes acceder a esta información. En este caso se trata de un fichero .plist que almacena todos los datos, pero si tienes conectado el equipo a la red puedes lanzar un script que busque la lista de todos los USB que se han conectado alguna vez. De hecho, podrías localizar los mismos pendrives conectados a máquinas Windows y Mac OS X al mismo tiempo y sacar mucha información.

Figura 6: Lista de volúmenes USB conectados a un Mac OS X

Al final, probablemente no podrás contener toda esta polinización que va de equipo a equipo por medio de pendrives de forma definitiva, pero te ayudará a conocer mejor tu red y entender con más claridad el punto en el que te encuentras en caso de una infección que utilice las conexiones USB como elemento de propagación.

Saludos Malignos!

4 comentarios:

Anónimo dijo...

Por desgracia, en una empresa de negocio "normal", no es factible aplicar políticas de restricción de almacenamiento externo (obviamente siempre habrá casos y casos, sólo digo que en general esto no es factible porque afecta a la productividad al final en muchos casos).
Sí puede ser más aconsejable por ejemplo tener políticas de Applocker o Software Restriction Policies para mitigar problemas derivados de esto, e incluso hacer que las aplicaciones de desktop no estén disponibles en el PC si no que se usen servicios de Remote Desktop Services o similares para ejecutarlo en entornos más "seguros" y preparados (yo por ejemplo, no permito la ejecución de powershell en los equipos precisamente por seguridad).
Un saludo
PD: por si puede ayudar, en NirSoft tiene también una buena herramienta para los dispositivos USB que se puede automatizar para sacar los reports.

Daniel Ferreira dijo...

Un buen spyware podría aprovechar estos datos para ir creando un mapa de red sobre una red desconocida. Muy interesante, gracias chema!!

Anónimo dijo...

Como siempre muy buen articulo.

Recuerdo que en la universidad realize un trabajo sobre cyberoam y la verdad lo encontré bastante bueno.
Tengo una pregunta, ¿ Conocen alguna herramienta para linux que realice estas funciones ?

scarret dijo...

muy bueno !!

Entrada destacada

Tu Latch "Hack Your Innovation Contest": Haz un PoC & Hack por 1.000 €

El pasado Telefónica Innovation Day 2024 lanzamos oficialmente el " Tu Latch Hack Your Innovation Contest " en el que repartimos ...

Entradas populares