Inexpresiblemente atractivo: cómo creamos un haniot que no puede ser expuesto

imagen
, - - — , « » . , : , . , , , . , , «Caught in the Act: Running a Realistic Factory Honeypot to Capture Real Threats». — .

: -


La tarea principal en la creación de nuestra súper trampa fue evitar que fuéramos expuestos por hackers que mostraron interés en ella. Para hacer esto, tuve que hacer mucho trabajo:

  1. Cree una leyenda realista sobre la empresa, incluido el nombre y la foto de los empleados, números de teléfono y correos electrónicos.
  2. Inventar e implementar un modelo de infraestructura industrial que corresponda a la leyenda de nuestra empresa.
  3. Decida qué servicios de red estarán disponibles en el exterior, pero no se involucre en la apertura de puertos vulnerables para que no parezca una trampa para los focos.
  4. Organice la aparición de fugas de información sobre el sistema vulnerable y difunda esta información entre los posibles atacantes.
  5. Implemente una vigilancia discreta de los piratas informáticos en la infraestructura de la trampa.

Y ahora, lo primero es lo primero.

Creando una leyenda


Los ciberdelincuentes ya están acostumbrados al hecho de que se enfrentan a muchas manipulaciones, por lo que la parte más avanzada realiza un estudio en profundidad de cada sistema vulnerable para asegurarse de que esto no sea una trampa. Por la misma razón, nos esforzamos por lograr no solo el realismo del hanipot en términos de diseño y aspectos técnicos, sino también crear la apariencia de una empresa real.

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

Decidimos posicionar la fábrica de trampas como una pequeña boutique de prototipos industriales, trabajando para clientes anónimos muy grandes del segmento militar y de aviación. Esto eliminó las dificultades legales asociadas con el uso de una marca existente.

Luego, tuvimos que idear una visión, misión y nombre de la organización. Decidimos que nuestra empresa sería una startup con un pequeño número de empleados, cada uno de los cuales es fundador. Esto agregó credibilidad a la leyenda de la especialización de nuestro negocio, lo que le permite trabajar con proyectos delicados para clientes grandes e importantes. Queríamos que nuestra empresa se viera débil en términos de ciberseguridad, pero al mismo tiempo era obvio que estábamos trabajando con activos importantes en los sistemas objetivo.

imagen
Captura de pantalla del sitio MeTech Hanipot. Fuente: Trend Micro.

Elegimos la palabra MeTech como nombre de la empresa. El sitio se creó sobre la base de una plantilla gratuita. Las imágenes fueron tomadas de bancos de fotos, utilizando las más impopulares y refinadas para hacerlas menos reconocibles.

Queríamos que la empresa se viera real, por lo que tuvimos que agregar empleados con habilidades profesionales correspondientes al perfil del negocio. Se nos ocurrieron nombres y personalidades para ellos, y luego intentamos seleccionar imágenes de bancos de fotos de acuerdo con su origen étnico.

imagen
Captura de pantalla del sitio MeTech Hanipot. Fuente: Trend Micro

Para no revelarnos, estábamos buscando fotos grupales de buena calidad de las cuales pudiéramos elegir las caras que necesitábamos. Sin embargo, luego abandonamos esta opción, ya que un cracker potencial podría aprovechar la búsqueda inversa de imágenes y descubrir que nuestros "empleados" viven solo en bancos de fotos. Al final, aprovechamos las fotografías de personas inexistentes creadas usando redes neuronales.

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

Infraestructura Hanipot


Para evitar la exposición, decidimos usar una combinación de equipos industriales reales, computadoras físicas y máquinas virtuales seguras. Mirando hacia el futuro, decimos que verificamos el resultado de nuestros esfuerzos utilizando el motor de búsqueda Shodan, y demostró que el hanipot parece un sistema industrial real.

imagen
El resultado de escanear un hanipot con Shodan. Fuente: Trend Micro.

Utilizamos cuatro PLC como hardware para nuestra trampa:

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

Estos PLC fueron seleccionados por su popularidad en el mercado global de sistemas de control. Y cada uno de estos controladores utiliza su propio protocolo, que nos permite verificar cuál de los PLC atacará con más frecuencia y si interesarán a alguien en principio.

imagen
El equipo de nuestra trampa de "fábrica". Fuente: Trend Micro

No solo colocamos piezas de hierro y las conectamos a Internet. Programamos cada controlador para realizar tareas, entre las cuales estaban

  • mezcla
  • control de quemador y cinta transportadora,
  • paletizar con un brazo robótico.

Y para que el proceso de producción sea realista, programamos la lógica para cambiar aleatoriamente los parámetros de retroalimentación, simular el arranque y la parada de los motores, encender y apagar el quemador.

Nuestra fábrica tenía tres computadoras virtuales y una física. Las máquinas virtuales se utilizaron para controlar la planta, el robot de paletización y como el lugar de trabajo automatizado del ingeniero de software PLC. La computadora física funcionaba como un servidor de archivos.

Además de monitorear los ataques en el PLC, queríamos monitorear el estado de los programas descargados en nuestros dispositivos. Para hacer esto, creamos una interfaz que nos permitió determinar rápidamente cómo se modificaron los estados de nuestros actuadores e instalaciones virtuales. Ya en la etapa de planificación, descubrimos que es mucho más fácil implementar esto con la ayuda de un programa de control que a través de la programación directa de la lógica del controlador. Abrimos el acceso a la interfaz de gestión de dispositivos de nuestro hanipot a través de VNC sin contraseña.

Los robots industriales son un componente clave de la fabricación inteligente moderna. En este sentido, decidimos agregar un robot y AWP para controlarlo en el equipo de nuestra trampa de fábrica. Para hacer que la "fábrica" ​​sea más realista, instalamos un software real en el control AWP, que los ingenieros utilizan para programar gráficamente la lógica del robot. Bueno, dado que los robots industriales generalmente se encuentran en una red interna aislada, decidimos dejar el acceso VNC desprotegido solo a la administración de la estación de trabajo.

imagen
Entorno RobotStudio con un modelo 3D de nuestro robot. Fuente: Trend Micro

En una máquina virtual con una estación de trabajo de control de robot, instalamos el entorno de programación RobotStudio de ABB Robotics. Después de configurar RobotStudio, abrimos un archivo de simulación con nuestro robot para que su imagen 3D fuera visible en la pantalla. Como resultado, Shodan y otros motores de búsqueda, habiendo descubierto un servidor VNC desprotegido, recibirán esta imagen de la pantalla y se la mostrarán a aquellos que buscan robots industriales con acceso abierto para controlar.

El significado de tal atención al detalle era crear un objetivo atractivo y más realista para los atacantes que, al descubrirlo, volverían a él una y otra vez.

Ingeniero AWP


Para programar la lógica del PLC, agregamos una computadora de ingeniería a la infraestructura. Se instaló un software industrial para la programación del PLC:

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

Decidimos que la estación de trabajo de ingeniería no sería accesible fuera de la red. En su lugar, configuramos la misma contraseña para la cuenta de administrador que en las estaciones de trabajo del control de robot y las estaciones de trabajo de la fábrica accesibles desde Internet. Esta configuración es bastante común en muchas empresas.
Desafortunadamente, a pesar de todos nuestros esfuerzos, ningún atacante alcanzó el AWP del ingeniero.

Servidor de archivos


Lo necesitábamos como señuelo para los intrusos y como un medio para respaldar nuestro propio "trabajo" en una fábrica de trampas. Esto nos permitió compartir archivos con nuestro haniot utilizando dispositivos USB, sin dejar rastros en la trampa de la red. Como sistema operativo para el servidor de archivos, instalamos Windows 7 Pro, en el que hicimos una carpeta compartida accesible para leer y escribir a cualquiera.

Al principio, no hicimos ninguna jerarquía de carpetas y documentos en el servidor de archivos. Sin embargo, resultó que los atacantes estaban estudiando activamente esta carpeta, por lo que decidimos llenarla con varios archivos. Para hacer esto, escribimos un script de Python que creó un archivo de tamaño aleatorio con una de las extensiones especificadas, formando un nombre basado en el diccionario.

imagen
Un script para generar nombres de archivo 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.

imagen
El resultado del guión. Fuente: Trend Micro

Entorno de vigilancia


Habiendo gastado tanto esfuerzo en crear una empresa realista, simplemente no podíamos permitirnos inyectarnos en el entorno para monitorear a nuestros "visitantes". Tuvimos que obtener todos los datos en tiempo real para que los atacantes no se dieran cuenta de que estaban siendo vigilados.

Implementamos esto usando cuatro adaptadores USB-Ethernet, cuatro acopladores Ethernet SharkTap, Raspberry Pi 3 y una gran unidad externa. El esquema de nuestra red se veía así:

imagen
Esquema de una red de hanipot con equipo de monitoreo. Fuente: Trend Micro

Organizamos tres toques SharkTap para monitorear todo el tráfico externo a los PLC a los que solo se puede acceder desde la red interna. El cuarto SharkTap rastreó el tráfico de invitados de la máquina virtual vulnerable.

imagen
Acoplador Ethernet SharkTap y enrutador Sierra Wireless AirLink RV50. Fuente: Trend Micro

Raspberry Pi llevó a cabo la captura diaria de tráfico. Establecimos una conexión a Internet utilizando el enrutador celular Sierra Wireless AirLink RV50, que a menudo se utiliza en empresas industriales.

Desafortunadamente, este enrutador no permitió el bloqueo selectivo de ataques que no cumplían con nuestros planes, por lo que agregamos el firewall Cisco ASA 5505 en modo transparente a la red para realizar el bloqueo con un impacto mínimo en la red.

Análisis de tráfico


Tshark y tcpdump son apropiados para resolver rápidamente los problemas actuales, pero en nuestro caso sus capacidades no fueron suficientes, ya que teníamos muchos gigabytes de tráfico, que fueron analizados por varias personas. Utilizamos el analizador de código abierto Moloch desarrollado por AOL. En términos de funcionalidad, es comparable a Wireshark, pero tiene más funciones para colaboración, descripción y etiquetado de paquetes, exportación y otras tareas.

Como no queríamos procesar los datos recopilados en las computadoras hanipot, los volcados de PCAP se exportaron todos los días al repositorio de AWS, desde donde ya los importamos a la máquina con Moloch.

Grabación de pantalla


Para documentar las acciones de los crackers en nuestro hanipot, escribimos un script que tomaba capturas de pantalla de la máquina virtual en un intervalo determinado y, en comparación con la captura de pantalla anterior, determinamos si algo estaba sucediendo allí o no. Cuando se detectó actividad, el guión incluía una grabación de pantalla. Este enfoque ha demostrado ser el más efectivo. También intentamos analizar el tráfico VNC del volcado de PCAP para comprender qué cambios ocurrieron en el sistema, pero al final, la grabación de pantalla que implementamos resultó ser más simple y visual.

Monitoreo de sesiones de VNC


Para esto, utilizamos Chaosreader y VNCLogger. Ambas utilidades extraen las pulsaciones de teclas del volcado de PCAP, pero VNCLogger maneja teclas como Retroceso, Entrar, Ctrl más correctamente.

VNCLogger tiene dos inconvenientes. Primero: solo puede extraer claves al "escuchar" el tráfico en la interfaz, por lo que tuvimos que simular una sesión de VNC para ello usando tcpreplay. El segundo inconveniente de VNCLogger es común con Chaosreader: ambos no muestran el contenido del portapapeles. Para hacer esto, tuve que usar Wireshark.

Atraer a los piratas informáticos


Creamos un hanipot para ser atacado. Para lograr esto, organizamos una fuga de información diseñada para atraer la atención de posibles crackers. Los siguientes puertos se abrieron en el hanipot:

imagen

El puerto RDP tuvo que cerrarse poco después del inicio del trabajo, porque debido a la gran cantidad de tráfico de escaneo en nuestra red, hubo problemas de rendimiento.
Los terminales VNC primero funcionaron en el modo "solo lectura" sin contraseña, y luego los cambiamos "por error" al modo de acceso completo.

Para atraer a los atacantes, publicamos dos publicaciones con información filtrada sobre el sistema industrial disponible en PasteBin.

imagen
Una de las publicaciones publicadas en PasteBin para atraer ataques. Fuente: Trend Micro

Los ataques


Los Hanipot vivieron en línea durante unos siete meses. El primer ataque ocurrió un mes después del lanzamiento de Hanipot en línea.

Escáneres

Hubo mucho tráfico de escáneres de compañías conocidas: ip-ip, Rapid, Shadow Server, Shodan, ZoomEye y otros. Había tantos de ellos que tuvimos que excluir sus direcciones 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: comprar teléfonos inteligentes a través de la cuenta de un suscriptor, retirar millas de aerolíneas con tarjetas de regalo y otros tipos de fraude

Mineros

Uno de los primeros visitantes de nuestro sistema resultó ser un minero. Cargó el software de minería Monero. No habría podido ganar mucho en nuestro sistema específico debido a la baja productividad. Sin embargo, si combinamos los esfuerzos de varias decenas o incluso cientos de tales sistemas, podría resultar bastante bien.

Extorsionistas

Durante el funcionamiento del hanipot, nos encontramos dos veces con virus ransomware reales. En el primer caso, fue Crysis. Sus operadores iniciaron sesión en el sistema a través de VNC, pero luego instalaron TeamViewer y ya realizaron más acciones con él. Después de esperar un mensaje de ransomware que exigía un rescate de $ 10,000 en BTC, entablamos correspondencia con los delincuentes y les pedimos que descifraran uno de los archivos por nosotros. Cumplieron la solicitud y repitieron la demanda de rescate. Logramos regatear hasta 6 mil dólares, luego de lo cual simplemente recargamos el sistema en una máquina virtual, porque obtuvimos toda la información necesaria.

El segundo ransomware fue Phobos. El pirata informático que lo instaló durante una hora examinó el sistema de archivos del hanipot y escaneó la red, y luego aún instaló el ransomware.
El tercer ataque de ransomware resultó ser falso. Un "hacker" desconocido descargó el archivo haha.bat en nuestro sistema, luego de lo cual vimos por un tiempo cómo intentaba hacerlo funcionar. Un intento fue cambiar el nombre de haha.bat a haha.rnsmwr.

imagen
"Hacker" aumenta la nocividad del archivo bat, cambiando su extensión a .rnsmwr. Fuente: Trend Micro

Cuando el archivo por lotes finalmente comenzó a ejecutarse, el pirata informático lo editó, aumentando el rescate de $ 200 a $ 750. Después de eso, "cifró" todos los archivos, dejó un mensaje de ransomware en el escritorio y desapareció, cambiando las contraseñas en nuestro VNC.

Después de un par de días, el hacker regresó y, para recordarlo, lanzó un archivo por lotes, que abrió muchas ventanas con un sitio porno. Aparentemente, de esta manera trató de llamar la atención sobre su demanda.

Resumen


Durante el estudio, resultó que tan pronto como se publicó información sobre la vulnerabilidad, el hanipot atrajo la atención y la actividad creció día a día. Para que la trampa atraiga la atención, tuvimos que admitir muchas violaciones de seguridad de nuestra compañía ficticia. Desafortunadamente, esta situación está lejos de ser rara entre muchas compañías reales que no cuentan con personal de seguridad informática y de información a tiempo completo.

En el caso general, las organizaciones deben usar el principio de privilegio mínimo, mientras que hemos implementado exactamente lo contrario para atraer intrusos. Y cuanto más vimos los ataques, más sofisticados se volvieron en comparación con los métodos de prueba de penetración estándar.

Y lo más importante: todos estos ataques fallarían si se implementaran medidas de seguridad adecuadas al configurar la red. Las organizaciones deben asegurarse de que sus equipos y componentes de infraestructura industrial no sean accesibles desde Internet, como lo hicimos específicamente en nuestra trampa.

Aunque no registramos un solo ataque en la estación de trabajo del ingeniero, a pesar de utilizar la misma contraseña de administrador local en todas las computadoras, debemos evitar esta práctica para minimizar la posibilidad de intrusos. De hecho, la escasa seguridad sirve como una invitación adicional para atacar sistemas industriales que durante mucho tiempo han sido de interés para los cibercriminales.

All Articles