Arachnida

Description

Arachnida: web scraping y análisis de metadatos en ciberseguridad

Dentro del bootcamp de ciberseguridad de 42Madrid, este proyecto combina dos disciplinas muy presentes en el mundo real: recolección automatizada de información y análisis de metadatos. El resultado son dos herramientas complementarias —Spider y Scorpion— pensadas para entender cuánta información sensible puede extraerse de forma pasiva a partir de contenido público en la web.

No se trata solo de descargar archivos, sino de aprender a mirar más allá de lo evidente y detectar datos que muchas veces se publican sin intención.


🌐 ¿Qué son los metadatos y por qué importan?

Los metadatos son información asociada a otros datos. En archivos como imágenes, PDFs o documentos ofimáticos pueden encontrarse detalles como:

  • Fecha y hora de creación

  • Software utilizado para generar el archivo

  • Usuario o autor

  • Modelo de cámara o dispositivo

  • Información del sistema operativo

  • Coordenadas GPS (en ciertos casos)

Desde el punto de vista de la ciberseguridad y el OSINT (Open Source Intelligence), estos datos pueden revelar información crítica sobre personas, empresas o infraestructuras sin necesidad de explotar ninguna vulnerabilidad.


🧩 Objetivo del proyecto

El objetivo principal es desarrollar dos herramientas que trabajen juntas para:

  • Extraer automáticamente archivos públicos desde un sitio web.

  • Analizar dichos archivos en busca de metadatos sensibles.

  • Mostrar de forma clara la información encontrada.

  • Concienciar sobre la importancia de eliminar metadatos antes de publicar contenido.

🕷️ Spider: extracción automática de archivos

Spider es la herramienta encargada de la fase de recolección.

Su función es:

  • Recibir una URL como parámetro.

  • Rastrear el sitio web de forma recursiva, siguiendo enlaces internos.

  • Descargar automáticamente archivos relevantes, como:

    • Imágenes

    • PDFs

    • Documentos

  • Guardar localmente los archivos para su posterior análisis.

Este comportamiento es muy similar al de herramientas reales utilizadas en auditorías de seguridad y procesos de recopilación de información pasiva y es denominado scraping.

🦂 Scorpion: análisis de metadatos

Una vez descargados los archivos, entra en juego Scorpion, la herramienta de análisis.

Scorpion se encarga de:

    • Recibir archivos como parámetros de entrada.

    • Analizar metadatos EXIF y otros datos embebidos.

    • Mostrar información básica como:

      • Fecha de creación

      • Autor

      • Software utilizado

  • Extraer cualquier otro metadato disponible.

  • Soportar, al menos, las mismas extensiones manejadas por Spider.

Aquí es donde el proyecto demuestra su verdadero valor educativo: archivos aparentemente inofensivos pueden revelar más información de la que deberían.


🔍 Aplicación real en ciberseguridad

El flujo Spider → Scorpion refleja un escenario muy común en el mundo profesional:

  • Recolección de información pública desde la web.
  • Análisis de archivos descargados.
  • Identificación de datos sensibles expuestos.
  • Evaluación de riesgos y recomendaciones de mitigación.

Estas técnicas se usan en pentesting, auditorías, forense digital, OSINT y tareas de concienciación en seguridad.


⚙️ Ejecución del proyecto

El proyecto está desarrollado en Python y utiliza librerías externas para el scraping y el análisis de metadatos.

Para ejecutar los scripts, es necesario instalar previamente las dependencias indicadas en el archivo requirements.txt:

pip install -r requirements.txt

Una vez instaladas, las herramientas pueden ejecutarse desde línea de comandos, facilitando pruebas rápidas y automatizadas.

🕷️ Spider

# Recursive mode
python3 spider.py -r <URL>

# Recursive mode + level depth
python3 spider.py -r <URL> -l <Nº>

# Recursive mode +  directory download path
python3 spider.py -r <URL> -p <PATH>

# Recursive mode + Silent output
python3 spider.py -r <URL> -S

# File mode 
python3 spider.py -f <URL-RESOURCE>

# Print help message
python3 spider.py -h

Al ejecutar la herramienta, se generan las carpetas /data y /logs en el directorio del repositorio.
La carpeta /data contiene los archivos descargados desde el sitio web objetivo, mientras que /logs almacena el registro de acciones realizadas.

🦂 Scorpion

# Resources mode
python3 scorpion.py FILE1 FILE2 FILE3 ...

# Directory mode
python3 scorpion.py -d <DIRECTORY-PATH>

🐳Ejecutar prueba con Docker

  • Instala Docker Desktop y ejecuta la aplicación.
  • Instala make y utiliza el Makefile para construir el contenedor y acceder a una sesión de bash:
make && make exec
# Build image and container
->> make
# Get a bash from container 
->> make exec  
# Build a new container 
->> make dock  
# Build image 
->> make image  
# Remove image and container 
->> make fclean

Dentro del directorio /home del usuario en el contenedor, se crean dos directorios adicionales que se sincronizan con los directorios de ambas herramientas mediante volúmenes, permitiendo compartir y persistir los datos entre el entorno del contenedor y el sistema del usuario.


🚀Conclusión

Este proyecto es una excelente forma de aprender:

  • Web scraping de forma controlada

  • Análisis de metadatos y EXIF

  • Automatización con Python

  • Técnicas básicas de OSINT

  • Concienciación sobre privacidad y exposición de información

Más allá del código, deja una lección muy clara: en ciberseguridad, lo que no se ve a simple vista suele ser lo más interesante… y lo más peligroso 🕵️‍♂️💻.

📌 Código fuente disponible en GitHub

Details