DEV Community

Cover image for Cómo construí un sistema RAG para convertirme en Red Teamer con IA — proyecto en Evolve
Alejandro Congil Sainz for Evolve

Posted on

Cómo construí un sistema RAG para convertirme en Red Teamer con IA — proyecto en Evolve

Llevo meses trabajando en algo que empezó como una necesidad práctica
y se ha convertido en la base de mi estrategia para entrar en el mundo
del Red Team: un sistema RAG personal que indexa todo mi conocimiento
de ciberseguridad y lo hace consultable con lenguaje natural.

El problema que quería resolver

Las sesiones del Máster generan una cantidad brutal de material:
clases grabadas, ejercicios, apuntes, herramientas, frameworks...
Todo disperso, todo difícil de recuperar en el momento que lo necesitas.
Cuando estás en medio de un CTF o analizando un vector de ataque,
no puedes permitirte buscar durante 20 minutos en carpetas.

Quería un sistema que funcionara como un analista interno:
"¿Cómo se hace enumeración de subdominios con Amass?"
Y que te devolviera el fragmento exacto de la clase donde se explica,
más el contexto relevante.

El entorno y los datos

La fuente principal son las sesiones del Máster en Ciberseguridad de Evolve:
22 sesiones grabadas en MP4, apuntes en PDF y ejercicios prácticos.

El desafío principal era el vídeo: horas de audio técnico denso que
necesitaban ser transcritas, fragmentadas y vectorizadas sin perder
el contexto de cada concepto.

Estado actual del sistema:

  • 4.146 fragmentos indexados en ChromaDB
  • 22 sesiones de clase procesadas
  • 1.169 herramientas OSINT catalogadas
  • 33 categorías de técnicas de ataque

El proceso

1. Ingesta de vídeo
Cada MP4 pasa por ffmpeg para extraer el audio, luego Whisper
(OpenAI) lo transcribe. El texto resultante se divide en chunks
con solapamiento para no perder contexto entre fragmentos.

2. Embeddings y base vectorial
Los chunks se vectorizan con sentence-transformers y se almacenan
en ChromaDB. Cada fragmento mantiene metadatos: fuente, timestamp,
categoría temática.

3. Motor RAG
La consulta del usuario se vectoriza y se recuperan los K fragmentos
más similares. Claude API (Anthropic) recibe esos fragmentos como
contexto y genera una respuesta fundamentada en el material real del curso.

4. Interfaces
Construí tres interfaces para casos de uso distintos:

  • Chat web (Streamlit): consultas en lenguaje natural
  • OSINT Lab: búsqueda semántica sobre 1.169 herramientas catalogadas
  • Framework Tracker: seguimiento de técnicas por fase del ataque

Resultados

El sistema recupera el fragmento correcto con precisión alta incluso
con consultas vagas o en lenguaje coloquial. La diferencia respecto
a una búsqueda por keywords es notable: el RAG entiende contexto,
no solo palabras.

Lo más valioso: puedo hacer preguntas compuestas tipo
"¿Qué diferencia hay entre la enumeración pasiva y activa según
lo visto en clase, y qué herramientas recomienda el profesor para cada fase?"

y el sistema cruza información de múltiples sesiones en una respuesta coherente.

Lo que aprendí

  • El chunking es más crítico de lo que parece. Chunks demasiado cortos pierden contexto; demasiado largos diluyen la relevancia.
  • Whisper comete errores en términos técnicos específicos (nombres de herramientas, flags de comandos). Añadí un paso de post-procesado con diccionario de correcciones.
  • La elección del modelo de embeddings afecta mucho la calidad de recuperación en dominio técnico especializado.

El siguiente paso es expandir el sistema hacia las fases de explotación
y post-explotación, completando el roadmap Red Team que tengo definido.


Ecosistema del proyecto

Este artículo forma parte de un ecosistema interconectado:


Proyecto desarrollado durante el Máster en Ciberseguridad de Evolve.

Top comments (0)