Implementación del honeyclient Thug

Implementación del honeyclient Thug

Thug es un cliente honeypot (honeyclient) de baja interacción hecho en Python desarrollado por Angelo Dell'Aera que permite analizar los ataques del lado de cliente (client side attacks). Está basado en un enfoque híbrido de análisis (estático y dinámico) con el propósito de imitar el comportamiento de un navegador web, así como detectar y emular contenidos maliciosos cuando intentan explotar alguna vulnerabilidad. Consulta el artículo Thug Honeyclient: Atrapando sitios web maliciosos en el número 30 de la Revista .Seguridad, en el podrás ver la prueba de concepto del análisis de tres sitios maliciosos con Thug.

En esta entrada se mostrará el proceso de instalación de Thug en un sistema operativo Ubuntu, aunque es posible instalarlo en otros sistemas operativos. Los requisitos para la instalación son:

Se asume que ya se tiene instalado el sistema operativo junto con los parámetros de red necesarios para estar conectado a Internet. Se recomienda utilizar los servidores con la réplica de Ubuntu geográficamente más cercana para descargar más rápido los paquetes. El archivo /etc/apt/sources.list contiene la lista de repositorios de donde se pueden obtener los paquetes necesarios para la instalación de Thug. Se procede con la configuración y actualización de los repositorios.

Figura 1. Configuración y actualización de los repositorios

Figura 1. Configuración y actualización de los repositorios

Se instalan los paquetes necesarios para Thug.

Figura 2. Instalación de paquetes para Thug

Figura 2. Instalación de paquetes para Thug

Otro requisito para la instalación de Thug es libemu. Libemu es una biblioteca diseñada para ser utilizada por herramientas para la detección de intrusiones/prevención de red y en honeypots, es una biblioteca escrita en lenguaje C que ofrece la emulación básica de instrucciones de ensamblador para procesadores de la familia x86, y detección de shellcodes usando heurísticas GetPC. Se muestra la instalación de libemu.

Figura 3. Instalación de libemu

Figura 3. Instalación de libemu

Pylibemu es una biblioteca envolvente en Python de la biblioteca libemu. Se continúa con la instalación de Pylibemu.

Figura 4. Instalación de Pylibemu

Figura 4. Instalación de Pylibemu

Google V8 es el motor de JavaScript de código abierto de Google, V8 está escrito en C ++ y se utiliza en Google Chrome. PyV8 es una biblioteca envolvente en Python del motor de Javascript Google V8 que actúa como un puente entre los objetos de Python y JavaScript, y soporta el motor de Google V8 en scripts programados en Python. El proceso de instalación es el siguiente.

Figura 5. Instalación de PyV8

Figura 5. Instalación de PyV8

Continuando con la instalación del honeyclient, se descargará el código fuente de Thug desde su repositorio en GitHub y se instalarán los paquetes de Python que necesita para su funcionamiento. A continuación, se muestra el proceso.

Figura 6. Instalación del honeyclient Thug

Figura 6. Instalación del honeyclient Thug

CONFIGURACIÓN

Ya que hemos instalado Thug procedemos a configurarlo. Una parte importante durante la instalación y configuración de honeyclients es la creación de un usuario normal para que el cliente honeypot se ejecute sin privilegios. Esto ayuda a prevenir que los atacantes se aprovechen de alguna falla en el diseño del honeyclient y puedan obtener privilegios de súper usuario en el equipo.

Continuando con la configuración del honeyclient, se requiere crear un usuario con el cual se ejecutará.

Figura 7. Creación de usuario para el honeyclient Thug

Figura 7. Creación de usuario para el honeyclient Thug

El honeyclient utiliza el archivo de configuración /etc/thug/logging.conf para indicar como se almacenarán las bitácoras de análisis de los sitios. Este archivo (logging.conf) contiene secciones para habilitar diferentes opciones; es posible modificar el archivo con un editor como vi, vim, nano o gedit. Para nuestra configuración modificaremos las siguientes líneas:

  • MongoDB: la línea 9 habilita el registro de bitácoras en MongoDB.

           El siguiente comando modifica la variable False por True.

           sed -i '9s/False/True/' /etc/thug/logging.conf

  • Configuración de puerto: la línea 10 específica los parámetros de conexión a MongoDB, cambia el puerto.

           El siguiente comando modifica el valor 27018 por 27017.

           sed -i '10 s/27018/27017/' /etc/thug/logging.conf

Figura 8. Edición de parámetros en el archivo de configuración de bitácoras

Figura 8. Edición de parámetros en el archivo de configuración de bitácoras

Se puede verificar el puerto de MongoDB con alguno de los siguientes comandos:

  • netstat -natp | grep mongod
  • ss -natp | grep mongod

Figura 9. Verificación de puerto de MongoDB

Figura 9. Verificación de puerto de MongoDB

Es posible configurar el honeyclient con HoneyAgent. El HoneyAgent es una biblioteca de agentes Java que crean un entorno limitado (sandbox) para applets y aplicaciones Java. Si deseas conocer más acerca de HoneyAgent consulta el sitio.

INICIAR

Es posible ejecutar Thug con diferentes personalidades y complementos (plugins), esto depende de las opciones pasadas como argumentos a través de la línea de comandos.

Figura 10. Opciones de Thug

Figura 10. Opciones de Thug

La siguiente tabla muestra las versiones de los navegadores Internet Explorer, Chrome, Firefox y Safari para los diferentes sistemas operativos Windows, Linux y MacOS X disponibles en Thug, estas son las personalidades que emula Thug.

Agentes de usuario disponibles en Thug para Windows, Linux y MacOS X (de Sergio Anduin Tovar Balderas)

Tabla 1. Agentes de usuario disponibles en Thug para Windows, Linux y MacOS X (de Sergio Anduin Tovar Balderas)

La tabla 2 muestra las versiones de los navegadores Chrome y Safari utilizadas por los sistemas operativos Android e iOS para dispositivos móviles Galaxy, Nexus y iPad, de esta forma observamos que Thug cuenta con una gran variedad de dispositivos, navegadores y sistemas operativos que puede utilizar en el análisis de sitios.

Agentes de usuario disponibles en Thug para dispositivos móviles (de Sergio Anduin Tovar Balderas)

Tabla 2. Agentes de usuario disponibles en Thug para dispositivos móviles (de Sergio Anduin Tovar Balderas)

En la siguiente figura se pueden observar las personalidades de Thug

Figura 11. Personalidades de Thug

Figura 11. Personalidades de Thug

Las diferentes opciones que tiene Thug, permiten realizar el análisis de sitios maliciosos con diferentes personalidades, complementos y versiones con el fin de obtener los archivos del sitio, realizar un análisis hibrido (estático y dinámico) del código, identificar los exploits o código malicioso empleado para aprovecharse de la vulnerabilidad y si es posible identificar el CVE (Common Vulnerabilities and Exposures o Vulnerabilidades y Exposiciones Comunes).

El modo de uso del honeyclient es: thug [ opciones ] url

Un ejemplo de ejecución es el siguiente:

thug -u win7ie80 -n poc -v -A 9.1.0 -S 10.0.64.0 -K -L 4.0.50826.0 -F -Z http://dominioMalicioso.com

El significado de cada opción del comando anterior es:

  • -u win7ie80: especifica el agente de usuario, será un sistema operativo Windows 7 con Internet Explorer 8.0
  • -n poc: indica la ruta de salida de la ejecución
  • -v: hablita el modo verbose, muestra mayor detalle de la ejecución
  • -A 9.1.0: especifica la versión de Adobe Acrobat Reader
  • -S 10.0.64.0: especifica la versión de Shockwave Flash
  • -L 4.0.50826.0: especifica la versión de SilverLight
  • -F: habilita el modo de registro de bitácoras en archivo de texto
  • -Z: hablita el modo de registro de bitácoras en formato JSON

Figura 12. Ejemplo de ejecución de Thug

Figura 12. Ejemplo de ejecución de Thug

BITÁCORAS

Thug soporta diferentes modos para almacenar las bitácoras en archivo de texto, JSON, MAEC, base de datos, entre otros. Es posible combinar los modos para registrar los eventos en diferentes formatos. Las bitácoras generadas por el honeyclient se almacenarán dependiendo de la configuración y las opciones utilizadas durante la ejecución. A continuación, se muestra la forma en cómo se pueden consultar las colecciones en la base de datos de MongoDB.

Figura 13. Colecciones en la base de datos

Figura 13. Colecciones en la base de datos

Se pueden consultar los documentos de la colección análisis de los sitios revisados por Thug, el documento contiene las versiones de los complementos utilizados cuando se ejecutó el honeyclient.

Figura 14. Análisis en la base de datos

Figura 14. Análisis en la base de datos

Asimismo, se puede consultar las URL de los sitios analizados y también las que son detectadas por Thug.

Figura 15. Consulta de las URL

Figura 15. Consulta de las URL

Durante el análisis que realiza Thug se generan las bitácoras de:

  • Análisis: el archivo analysis/json/analysis.json contiene el análisis realizado por Thug, en él se encuentran los métodos, lenguajes identificados, relaciones, comportamiento, conexiones, complementos y muchos más.
  • Gráfica: la imagen analysis/graph.svg muestra el flujo del comportamiento de las ventanas, iframe, parámetros, objeto de datos y redirecciones al visitar el sitio.
  • application, image y text: estas carpetas contienen los diferentes tipos y subtipos de medios como texto, imágenes, audio, video y aplicaciones encontrados en páginas web. El honeyclient almacena los archivos encontrados y los renombra con su firma MD5.

La figura 16 muestra las carpetas y archivos generados durante el análisis de la página web.

Figura 16. Estructura de bitácoras generadas por Thug

Figura 16. Estructura de bitácoras generadas por Thug

Thug genera una imagen que muestra la interacción con la página maliciosa facilitando en análisis de forma gráfica, puede contener redirecciones a otras páginas u otros archivos, iframe (sirven para insertar un documento o mostrar contenidos externos al sitio web), scripts, objetos, contenedores para aplicaciones externas o contenido interactivo, etc.

Figura 17. Imagen de análisis del sitio

Figura 17. Imagen de análisis del sitio

VIDEO

Implementación de Thug

Thug Honeyclient: Atrapando sitios web maliciosos

REFERENCIAS