Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Las empresas de antivirus, expertos en seguridad y simples entusiastas publican en internet sistemas trampa: honeypots, para "atrapar" nuevas variedades de virus o identificar tácticas de hackers inusuales. Los honeypots son tan comunes que los cibercriminales han desarrollado una especie de inmunidad: rápidamente identifican que se trata de una trampa y simplemente la ignoran. Para investigar la táctica de los hackers modernos, creamos un honeypot realista que vivió en internet durante siete meses, atrayendo ataques diversos. Sobre cómo fue eso, hablamos en nuestra investigación "Atrapados en el Acto: Ejecutando un Honeypot Industrial Realista para Capturar Amenazas Reales“. Algunos hechos de la investigación se presentan en este post.

Desarrollo del honeypot: lista de verificación

La principal tarea al crear nuestra super trampa fue evitar que los hackers, que mostraron interés en ella, nos descubrieran. Para esto, tuvimos que realizar un gran trabajo:

  1. Crear una leyenda realista sobre la empresa, que incluyera nombres y fotos de empleados, números de teléfono y correos electrónicos.
  2. Diseñar e implementar un modelo de infraestructura industrial que coincidiera con la leyenda de las actividades de nuestra empresa.
  3. Decidir qué servicios de red estarían disponibles externamente, pero sin abrir puertos vulnerables, para que esto no pareciera una trampa obvia.
  4. Organizar la visibilidad de una filtración de información sobre un sistema vulnerable y difundir esos datos entre posibles atacantes.
  5. Implementar una observación discreta de las acciones de los hackers dentro de la infraestructura de la trampa.

Y ahora, hablemos de todo en orden.

Creando la leyenda

Los cibercriminales ya están acostumbrados a encontrar muchos honeypots, así que la parte más avanzada de ellos realiza una investigación profunda de cada sistema vulnerable para asegurarse de que no es una trampa. Por la misma razón, buscamos no solo la realismo del honeypot en términos de diseño y aspectos técnicos, sino que también creamos la apariencia de una empresa real.

Poniéndonos en el lugar de un hipotético culhacker, desarrollamos un algoritmo de verificación que pudiera distinguir un sistema real de una trampa. Incluía la búsqueda de direcciones IP de la empresa en sistemas de reputación, la investigación inversa de la historia de direcciones IP, la búsqueda de nombres y palabras clave relacionadas con la empresa, así como con sus contrapartes y muchas otras cosas. Al final, la leyenda resultó ser bastante convincente y atractiva.

Decidimos posicionar la trampa como una pequeña boutique de prototipado industrial que trabaja para clientes anónimos de gran envergadura en los sectores militar y aeronáutico. Esto nos libraba de las complicaciones legales asociadas al uso de una marca ya existente.

A continuación, necesitábamos idear una visión, una misión y un nombre para la organización. Decidimos que nuestra empresa sería una startup con un pequeño número de empleados, cada uno de los cuales era un fundador. Esto añadía credibilidad a la leyenda sobre la especialización de nuestro negocio, lo que le permitía trabajar en proyectos delicados para clientes grandes e importantes. Queríamos que nuestra empresa aparentara ser débil en términos de ciberseguridad, pero al mismo tiempo debía ser obvio que trabajamos con activos importantes en sistemas objetivo.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Captura de pantalla del sitio web del honeypot MeTech. Fuente: Trend Micro

Elegimos la palabra MeTech como nombre para la empresa. Creamos el sitio utilizando una plantilla gratuita. Las imágenes las tomamos de bancos de fotos, usando las menos populares y modificándolas para hacerlas menos reconocibles.

Queríamos que la empresa pareciera real, por lo que necesitábamos añadir empleados con habilidades profesionales que coincidieran con el perfil de la empresa. Creamos nombres y personalidades para ellos, y luego intentamos elegir imágenes de bancos de fotos de acuerdo con la pertenencia étnica.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Captura de pantalla del sitio web del honeypot MeTech. Fuente: Trend Micro

Para no ser descubiertos, buscábamos fotos grupales de buena calidad de las que poder seleccionar los rostros que necesitábamos. Sin embargo, luego desechamos esta opción, ya que un potencial hacker podría utilizar la búsqueda inversa de imágenes y descubrir que nuestros "empleados" solo existían en bancos de fotos. Al final, utilizamos fotografías de personas inexistentes, creadas mediante redes neuronales.

Los perfiles de empleados publicados en el sitio contenían información importante sobre sus habilidades técnicas, pero evitamos mencionar instituciones educativas y ciudades específicas.
Para crear los buzones de correo, utilizamos el servidor del proveedor de hosting, y luego alquilamos varios números de teléfono en EE. UU. y los combinamos en una central telefónica virtual con menú de voz y contestador automático.

Infraestructura del honeypot

Para evitar ser descubiertos, decidimos utilizar una combinación de hardware industrial real, computadoras físicas y máquinas virtuales protegidas. Anticipándonos, podemos decir que verificamos los resultados de nuestros esfuerzos con el motor de búsqueda Shodan, y mostró que el honeypot parece un sistema industrial real.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Resultado del escaneo del honeypot con Shodan. Fuente: Trend Micro

Como "hardware" para nuestra trampa, utilizamos cuatro PLC:

  • Siemens S7-1200,
  • dos AllenBradley MicroLogix 1100,
  • Omron CP1L.

Estos PLC fueron elegidos por su popularidad en el mercado mundial de sistemas de control. Además, cada uno de estos controladores utiliza su propio protocolo, lo que nos permitió verificar cuál de los PLC sería atacado más a menudo y si despertarían el interés de alguien en general.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
El equipo de nuestra "fábrica" trampa. Fuente: Trend Micro

No solo colocamos los dispositivos y los conectamos a Internet. Programamos cada controlador para realizar tareas, entre las que se incluían

  • mezcla,
  • control de la quemador y de la cinta transportadora,
  • paletización utilizando un manipulador robótico.

Y para que el proceso de producción fuera realista, programamos la lógica para cambiar aleatoriamente los parámetros de retroalimentación, simular el encendido y apagado de motores, y activar y desactivar el quemador.

En nuestra fábrica había tres computadoras virtuales y una física. Las virtuales se usaron para controlar la planta, el robot paletizador y como puesto de trabajo del ingeniero programador de PLC. La computadora física funcionaba como servidor de archivos.

Además de monitorear ataques a los PLC, queríamos seguir el estado de los programas cargados en nuestros dispositivos. Para ello, creamos una interfaz que permitía determinar rápidamente cómo se habían modificado los estados de nuestros mecanismos de ejecución virtuales y configuraciones. Desde la etapa de planificación, descubrimos que era mucho más fácil hacerlo a través de un programa de gestión que mediante la programación directa de la lógica del controlador. La interfaz de gestión de dispositivos de nuestro honeypot se abrió a través de VNC sin contraseña.

Los robots industriales son un componente clave de la producción inteligente moderna. Por ello, decidimos agregar un robot y un terminal de control para gestionar él en el equipo de nuestra fábrica trampa. Para hacer la "fábrica" más realista, instalamos en el terminal de control un software real que los ingenieros utilizan para programar gráficamente la lógica del robot. Dado que los robots industriales suelen estar en una red interna aislada, decidimos dejar el acceso sin protección a través de VNC solo al terminal de control.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Entorno RobotStudio con el modelo 3D de nuestro robot. Fuente: Trend Micro

En la máquina virtual con el terminal de control del robot, instalamos el entorno de programación RobotStudio de ABB Robotics. Configurando RobotStudio, abrimos en él el archivo de simulación de nuestro robot para que su imagen 3D se mostrase en la pantalla. Como resultado, Shodan y otros motores de búsqueda, al descubrir un servidor VNC desprotegido, obtendrán esta imagen de la pantalla y la mostrarán a quienes busquen robots industriales con acceso abierto a su gestión.

El sentido de tal atención a los detalles era crear un objetivo atractivo y lo más realista posible para los atacantes, que al descubrirlo regresaran a él una y otra vez.

Terminal del ingeniero


Para programar la lógica del PLC, añadimos un ordenador ingenieril a la infraestructura. En él se instaló software industrial para la programación de PLC:

  • TIA Portal para Siemens,
  • MicroLogix para el controlador Allen-Bradley,
  • CX-One para Omron.

Decidimos que el puesto de trabajo del ingeniero no estaría disponible fuera de la red. En su lugar, establecimos la misma contraseña para la cuenta de administrador que en los puestos de control de robot accesibles desde Internet y en el puesto de control de la fábrica. Esta configuración es bastante común en muchas empresas.
Lamentablemente, a pesar de todos nuestros esfuerzos, ningún atacante ha llegado al puesto del ingeniero.

Servidor de archivos

Lo necesitábamos como cebo para los atacantes y como medio para respaldar nuestros propios "trabajos" en la fábrica trampa. Esto nos permitió intercambiar archivos con nuestro honeypot mediante dispositivos USB, sin dejar rastro en la red de trampa. Como sistema operativo para el servidor de archivos, instalamos Windows 7 Pro, en el que creamos una carpeta compartida, accesible para lectura y escritura por cualquiera.

Al principio no establecimos ninguna jerarquía de carpetas y documentos en el servidor de archivos. Sin embargo, luego descubrimos que los atacantes estaban estudiando activamente esta carpeta, por lo que decidimos llenarla con varios archivos. Para ello, escribimos un script en Python que creaba un archivo de tamaño aleatorio con una de las extensiones especificadas, generando el nombre basado en un diccionario.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Script para generar nombres de archivos atractivos. Fuente: Trend Micro

Después de ejecutar el script, obtuvimos el resultado deseado en forma de una carpeta llena de archivos con nombres muy interesantes.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Resultado del script. Fuente: Trend Micro

Entorno de monitoreo


Después de dedicar tanto esfuerzo a crear una empresa realista, simplemente no podíamos permitirnos fallar en el entorno para monitorear a nuestros "visitantes". Necesitábamos obtener todos los datos en tiempo real de manera que los atacantes no notaran que estaban siendo observados.

Implementamos esto utilizando cuatro adaptadores USB-Ethernet, cuatro divisores Ethernet SharkTap, Raspberry Pi 3 y un gran disco duro externo. El esquema de nuestra red era el siguiente:

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Esquema de la red del honeypot con el equipo de monitoreo. Fuente: Trend Micro

Colocamos tres divisores SharkTap para monitorear todo el tráfico externo hacia los PLC, que solo eran accesibles desde la red interna. El cuarto SharkTap monitoreaba el tráfico de los huéspedes de la máquina virtual vulnerable.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Divisor Ethernet SharkTap y enrutador Sierra Wireless AirLink RV50. Fuente: Trend Micro

Raspberry Pi realizó una captura de tráfico diario. La conexión a Internet se organizó mediante un enrutador celular Sierra Wireless AirLink RV50, comúnmente utilizado en instalaciones industriales.

Desafortunadamente, este enrutador no permitía bloquear selectivamente ataques que no se ajustaran a nuestros planes, por lo que añadimos un firewall Cisco ASA 5505 en modo transparente para realizar bloqueos con un impacto mínimo en la red.

Análisis de tráfico


Tshark y tcpdump son adecuados para resolver rápidamente problemas inmediatos, pero en nuestro caso, sus capacidades fueron insuficientes, ya que teníamos varios gigabytes de tráfico que estaban siendo analizados por varias personas. Utilizamos el analizador de código abierto Moloch, desarrollado por AOL. Su funcionalidad es comparable a la de Wireshark, pero tiene más opciones para colaboración, descripción y etiquetado de paquetes, exportación y otras tareas.

Dado que no queríamos procesar los datos recogidos en las computadoras del honeypot, los volquetes PCAP se exportaban todos los días a un almacenamiento AWS, desde donde los importábamos a la máquina con Moloch.

Grabación de pantalla

Para documentar las acciones de los hackers en nuestro honeypot, escribimos un script que tomaba capturas de pantalla de la máquina virtual a intervalos regulares y, al comparar con la captura anterior, determinaba si había algo ocurriendo o no. Al detectar actividad, el script iniciaba la grabación de pantalla. Este enfoque resultó ser el más efectivo. También intentamos analizar el tráfico VNC de los volquetes PCAP para entender qué cambios ocurrieron en el sistema, pero al final, la grabación de pantalla que implementamos resultó ser más simple y clara.

Monitoreo de sesiones VNC


Para esto, utilizamos Chaosreader y VNCLogger. Ambas utilidades extraen pulsaciones de teclas del volquete PCAP, pero VNCLogger maneja de manera más precisa las teclas como Retroceso, Enter y Ctrl.

VNCLogger tiene dos desventajas. Primero: solo puede extraer teclas 'escuchando' el tráfico en la interfaz, por lo que tuvimos que simular una sesión VNC para él utilizando tcpreplay. La segunda desventaja de VNCLogger es la misma que la de Chaosreader: ambos no muestran el contenido del portapapeles. Para esto, tuvimos que recurrir a Wireshark.

Atraemos a los hackers


Creamos un honeypot para que fuera atacado. Para lograr esto, simulamos una filtración de información destinada a atraer la atención de posibles hackers. En el honeypot se abrieron los siguientes puertos:

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto

El puerto RDP tuvo que cerrarse poco después de que comenzara a funcionar, ya que una gran cantidad de tráfico de escaneo causó problemas de rendimiento en nuestra red.
Las terminales VNC inicialmente funcionaron en modo de 'solo vista' sin contraseña, y luego 'por error' las cambiamos a modo de acceso completo.

Para atraer atacantes, publicamos dos anuncios con información 'filtrada' sobre un sistema industrial disponible en PasteBin.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
Uno de los anuncios publicados en PasteBin para atraer ataques. Fuente: Trend Micro

Ataques


El honeypot estuvo en línea durante aproximadamente siete meses. El primer ataque ocurrió un mes después de que el honeypot se pusiera en línea.

Escáneres

Hubo mucho tráfico de escáneres de empresas conocidas — ip-ip, Rapid, Shadow Server, Shodan, ZoomEye y otros. Fueron tantos que tuvimos que excluirlos IP del análisis: 610 de 9452 o el 6.45% de todas las direcciones IP únicas pertenecían a escáneres completamente legítimos.

Estafadores

Uno de los mayores riesgos que tuvimos que enfrentar fue el uso de nuestro sistema con fines delictivos: para comprar teléfonos inteligentes a través de la cuenta del abonado, canjear millas de aerolíneas utilizando tarjetas de regalo y otros tipos de fraude.

Mineros

Uno de los primeros visitantes de nuestro sistema resultó ser un minero. Cargó en él software para la minería de Monero. No podría ganar mucho con nuestro sistema específico debido a su bajo rendimiento. Sin embargo, si se unieran los esfuerzos de varias decenas o incluso cientos de tales sistemas, podría resultar bastante bien.

Ransomware

Durante el tiempo de operación del honeypot, nos encontramos dos veces con verdaderos ransomware. En el primer caso, se trataba de Crysis. Sus operadores ingresaron al sistema a través de VNC, pero luego instalaron TeamViewer y, con él, realizaron más acciones. Esperando el mensaje de rescate que exigía un pago de 10 mil dólares en BTC, iniciamos comunicación con los delincuentes pidiéndoles que descifraran uno de los archivos. Cumplieron nuestra solicitud y repitieron la exigencia de rescate. Logramos negociar hasta 6 mil dólares, tras lo cual simplemente reinstalamos el sistema en una máquina virtual, ya que habíamos obtenido toda la información necesaria.

El segundo ransomware resultó ser Phobos. El hacker que lo instaló revisó el sistema de archivos del honeypot y escaneó la red durante una hora, antes de finalmente instalar el ransomware.
El tercer ataque de ransomware resultó ser falso. Un 'hacker' desconocido descargó en nuestro sistema el archivo haha.bat, y luego de un tiempo observamos cómo intentaba hacer que funcionara. Uno de sus intentos fue renombrar haha.bat a haha.rnsmwr.

Inevitablemente atractivo: cómo creamos un honeypot que no puede ser descubierto
El 'hacker' aumentó la malicia del archivo bat, cambiando su extensión a .rnsmwr. Fuente: Trend Micro

Cuando finalmente el bat comenzó a ejecutarse, el 'hacker' lo editó, aumentando el rescate de 200 a 750 dólares. Después de eso, 'cifró' todos los archivos, dejó un mensaje de rescate en el escritorio y desapareció, cambiando las contraseñas en nuestro VNC.

Un par de días después, el hacker regresó y, para recordarnos su presencia, ejecutó el bat que abría numerosas ventanas con un sitio porno. Al parecer, así intentaba atraer atención a su demanda.

Resultados


Durante la investigación, quedó claro que tan pronto como se publicaron las notificaciones sobre la vulnerabilidad, el honeypot atrajo atención, y la actividad creció día a día. Para que la trampa atrajera atención, se tuvo que permitir numerosas violaciones de seguridad en nuestra empresa ficticia. Desafortunadamente, esta situación no es rara entre muchas empresas reales que carecen de personal de TI y ciberseguridad profesional.

En general, las organizaciones deben utilizar el principio de menor privilegio, mientras que nosotros implementamos su opuesto absoluto para atraer a los atacantes. Y cuanto más tiempo observamos los ataques, más sofisticados se volvían en comparación con los métodos estándar de pruebas de penetración.

Y lo más importante: todos estos ataques habrían fracasado si se hubieran implementado medidas de seguridad adecuadas al configurar la red. Las organizaciones deben asegurarse de que su equipo y componentes de infraestructura industrial no sean accesibles desde internet, como hicimos intencionadamente en nuestra trampa.

Aunque no registramos ningún ataque en el ARM del ingeniero, a pesar de utilizar la misma contraseña de administrador local en todas las computadoras, se debe evitar tal práctica para minimizar la posibilidad de intrusiones. Después de todo, una seguridad débil sirve como una invitación adicional para atacar a los sistemas industriales, que desde hace tiempo han despertado el interés de los cibercriminales.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster