Los foros hacking son una fuente importante de información que puede ser utilizado en cualquier escenario alrededor de la Ciberinteligencia, ya que contienen valiosos metadatos y una variedad de Tácticas, Técnicas y Procedimientos que pueden ser usados en ataques reales, pudiendo llegar a pronosticar en algunas ocasiones, posibles ataques que afecten el “status quo” de las empresas.

Con el presente artículo comenzamos la publicación de las ponencias relacionadas con el segundo módulo de IntelCon sobre Obtención, donde tuve el honor (Santiago Rocha@sarvmetal) de impartir una ponencia bajo el título “Scrapeando Foros Hacking para CTI“.

Conociendo al ponente

Estoy especializado (Santiago Rocha@sarvmetal) en Seguridad Informática por medio de la Universidad Federal del Sur de Rusia y en la actualidad curso el Máster en Ciberseguridad de la Universidad Carlos III de Madrid. Además, soy investigador independiente y colaborador en IntelCon.

Puntos tratados en la ponencia

Tal como he comentado en el inicio, los foros hacking son una fuente importante donde consultar. Un ejemplo de la información que puede circular a través de dichas fuentes es la venta de una amenaza reciente, en este caso es el segundo ransomware más lucrativo en la actualidad según el FBI, el ransomware Dharma. También, según el blog de Krebson Security, días anteriores al ataque, un usuario con el nickname “chaewon”, mediante un foro dedicado a Account Hijacking, aseguraba poder cambiar la dirección de correo que está ligada a cualquier cuenta de Twitter por $250 dólares, o dar acceso directo por tan solo $2000 dólares.

Sin embargo, recolectar información de estas fuentes puede llegar a ser un poco dificultoso ya que se emplean diferentes medidas anti-bots en las que la dirección IP puede verse comprometida o incluida en un blacklist. Esta ponencia-taller tuvo como objetivo dar unas pautas de cómo es posible obtener información de estas fuentes, qué técnicas usar y cómo evitar las medidas anti-bots.

Los puntos tratados en la ponencia son los siguientes:

  • Definición de Scraping y Crawling
  • Análisis de la estructura de los foros
  • Escogiendo las tecnologías/herramientas necesarias
  • “Scrapeando” información
  • Medidas anti-bots
  • Cyber Threat Intelligence

Definición de Scraping y Crawling

En esta primera parte de la ponencia, partí de una definición sobre dos conceptos clave que van de la mano en la extracción de información de páginas web, así como la diferencia existente entre los mismos. Estos conceptos son los siguientes:

  • Crawling. También es conocido como spider, spiderbot o search engine bot, y que traducido al castellano (arrastrándose), nos podría dar una idea de su función. Básicamente un Crawler es capaz de descargar o indexar el contenido ya sea del World Wide Web (www), o de una página especifica. De hecho, el buscador de Google es un Crawler ya que a partir de ciertas palabras clave es capaz de indexar el contenido de internet para mostrar al usuario. Normalmente un spider guarda los resultados en una base de datos o descarga el contenido de esa página web directamente para ser tratados posteriormente.
  • Scraping. También llamado web harvesting o web data extraction y que igualmente se traduce como “raspar”, es una técnica ampliamente usada para la extracción de información de páginas web con el fin de obtener datos valiosos a partir de diferentes técnicas.

Aplicando estos dos conceptos en los foros, podemos decir que el crawler se encarga de indexar todos los hipervínculos y visitar cada uno de estos para así repetir el proceso hasta llegar a lo más profundo. Esta información es la entrada del Scraper que es el encargado de extraer información potencialmente valiosa a partir de ciertos parámetros que da el analista, basándose en el documento HTML. En la siguiente imagen podremos ver más claramente la funcionalidad de cada uno de estos conceptos.

Web Crawling vs Web Scraping

Análisis de la estructura de los foros

En esta sección os muestro cómo podemos diferenciar los diferentes softwares existentes detrás de los foros Hacking, buscando dentro de estas tres opciones:

  • En el pie de página del Foro
  • Dentro de los HTML Tags
  • Dentro de los metadatos del documento HTML

Es importante reconocer el tipo de software que se usa ya que estos nos puede ayudar a encontrar formas de Scrapear efectivamente. Además, nos va a asegurar una estructura bien formada en el documento HTML para así escoger el parser del documento correctamente.

Cuando hemos navegado lo suficiente para identificar la estructura general en foros de Hacking, determinamos que se divide en diferentes secciones (ej, Hacking, Black Money, Crypto Currency, etc.), a la vez, en ciertos casos estas secciones contienen subsecciones donde están los posts hechos por los miembros, estos comparten una estructura muy similar en cualquier foro.

En la imagen inferior podemos identificar el autor del post, el contenido, los metadatos del post y comentarios al mismo.

Escogiendo las tecnologías/herramientas necesarias

En este apartado pudimos aprender sobre el HTML DOM (Document Object Model), su sistema jerárquico y cómo un Scraper aprovecha esta estructura para filtrar y extraer la información de interés para el analista basado en los HTML tags. Además se describieron “Selenium” y “BeautifulSoup” dos de las librerías de Python más usadas para Scraping.

En el caso de Selenium, identificamos las siguientes funcionalidades y carácteristicas:

  • Originalmente diseñado para testeo de paginas
  • Necesario descargar el driver del navegador a usar
  • Múltiples posibilidades para navegar en la página a analizar
  • Opción headless
  • Tomar capturas de pantalla
  • Manejador de cookies, JavaScript, cabeceras, etc.

Con Beautiful Soup destacamos lo siguiente:

  • Facilidad a la hora de encontrar la información necesaria
  • Diferentes opciones de parsers para una mejor extracción del HTML DOM
  • Efectivo en Foros con una estructura HTML que no esté correctamente formada
  • Depende de alguna librería que se encargue de hacer las peticiones al Foro

Estas son solo algunas de las características de estas librerías, podremos encontrar muchas más información en su documentación correspondiente (Selenium: https://selenium-python.readthedocs.io/, Beautiful Soup: https://www.crummy.com/software/BeautifulSoup/bs4/doc/)

“Scrapeando” información

Ya que hemos conocido las librerías de Python más usadas en este ámbito, os facilito un ejemplo específico de cómo se extrae un título de un artículo de diferentes formas, usando Selenium a través del HTML id y class name o usando las funcionalidades de XPATH, y también usando BeautifulSoup.

A lo largo de esta sección os demuestro cómo combinar el poder de interacción de Selenium y el parser de Beautiful Soup, además de las ventajas que ofrece cada librería.

Medidas anti-bots

En esta sección vimos cómo un Foro Hacking implementa diversas medidas de seguridad para evitar ser Scrapeado y cómo saltarnos estas medidas para automatizar lo más posible el análisis de cualquier foro.

Algunas de las medidas y sus contramedidas son:

  • Verificación de Browser y bloqueo de User-Agents específicos. podemos utilizar las funcionalidades de espera implícita y explicita de Selenium para imitar las acciones de una interacción humana, también un ajuste de las cabeceras y limitar las peticiones al servidor para parecer lo más humano posible.
  • Autenticación. Selenium nos brinda una solución a este problema llenando los campos de login con un usuario anteriormente registrado, y así automatizar el logging al foro
  • CAPTCHA. En este caso la clave está en evitar disparar la activación del CAPTCHA, y esto se logra imitando las acciones y los tiempo que a un humano le costaría realizar interactuar con el foro.
  • Honeypots. Tambien llamados links trampa, son aquellos que un humano no es capaz de ver a simple vista ya que usan funcionalidades de HTML para esconderse en la página, sin embargo, un scraper es capaz de parsear y va a tender a entrar a estos “honeypots” y así caer en una página no deseada y consecuentemente ser banneado. Para esto es necesario usar la funcionalidad de Selenium que nos puede dar información de los hipervínculos que están escondidos dentro de la página web.

Cyber Threat Intelligence

Finalmente, conocimos varios ejemplos de cómo usar todo lo aprendido para generar Inteligencia valiosa para la comunidad, en uno de ellos expuse un proyecto personal en compañía de ElevenPaths (Telefónica) en el que se extraen datos relevantes como documentos adjuntos y contenido de los post hechos en foros para así hacer un tratamiento de esta información por procesamiento de lenguaje natural y detonación de software malicioso en un Sandbox con el fin de generar Indicadores de Compromiso disponibles para la comunidad de Ciberinteligencia.

También di a conocer otro proyecto donde se aprovechó el contenido posteado en un Cheat Forum para analizar los binarios posteados e identificar cheats para juegos.

Recursos para aprender más a fondo

Estos son los recursos compartidos y recomendados, donde podremos aprender más a fondo y realizar un Scraping correcto de cualquier página:

Visualización del video de la ponencia

En el presente video podéis visualizar en su totalidad la ponencia que impartí en IntelCon 2020.

Visualización de la presentación

En la presente presentación podéis visualizar el contenido utilizado en la ponencia.

Conclusión

En esta ponencia podemos apreciar el valor que puede aportar para la comunidad de Ciberinteligencia, la extracción de información de Foros Hacking, cómo automatizar este proceso y no fallar en el intento.

Autor del artículo

0 comments

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>