Este repositorio contiene la arena y estructura de entrenamiento de bots Red/Blue Team en ciberseguridad. Incluye versiones dummy de los bots para fines educativos. Las versiones completas se mantienen privadas por motivos de seguridad y propiedad intelectual. Este proyecto es un entorno educativo para simulación de Red Team. No contiene payloads reales ni está diseñado para usarse en redes externas. Uso exclusivo para entornos controlados y educativos.
Este proyecto integra tres sistemas de inteligencia artificial para ciberseguridad en un entorno de simulación completo, ahora con un ciclo de retroalimentación en tiempo real entre los agentes ofensivos y defensivos:
- Blue Project: Sistema de defensa automatizado con IA
- Red Project: Bot de Red Team automatizado con RL/AutoML
- Arena Project: Entorno de simulación para entrenar y evaluar agentes
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Arena │◄──►│ Red Bot │ │ Blue Bot │
│ (Simulation) │ │ (Attacker) │◄──►│ (Defender) │
│ Port: 8000 │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐ ┌─────────────────┐
│ MLflow │ │ PostgreSQL │
│ (Tracking) │ │ (Database) │
│ Port: 5000 │ │ Port: 5432 │
└─────────────────┘ └─────────────────┘
- Entorno de simulación principal que actúa como mediador central.
- Gestiona el estado de la red, los eventos de ataque y las acciones de defensa.
- Proporciona APIs para que Red Bot envíe ataques y Blue Bot reciba eventos y aplique defensas.
- Interfaz web para monitoreo y visualización.
- Coordinación entre agentes.
- Métricas y visualización.
- Agente atacante con RL/AutoML.
- Envía eventos de ataque a la Arena a través de la API
/api/red/attack. - Recibe información del entorno de la Arena a través de la API
/api/red/environment. - Técnicas: escaneo, fuerza bruta, inyecciones.
- Aprendizaje basado en recompensas.
- Agente defensor con IA.
- Recibe eventos de ataque de la Arena a través de la API
/api/blue/events. - Envía acciones de defensa a la Arena a través de la API
/api/blue/defend. - Detección temprana de ataques.
- Acciones: bloquear IP, alertas, logging, desplegar honeypots, parchear vulnerabilidades.
- Seguimiento de experimentos.
- Registro de métricas y modelos.
- Comparación de rendimiento.
- Base de datos para resultados.
- Almacenamiento de logs.
- Historial de simulaciones.
- Red Bot inicia un ataque y lo envía a la Arena.
- La Arena procesa el ataque, actualiza el estado de la red y genera un evento.
- Blue Bot consulta la Arena para obtener nuevos eventos.
- Blue Bot detecta el ataque y decide una acción defensiva.
- Blue Bot envía la acción defensiva a la Arena.
- La Arena aplica la acción defensiva, modificando el estado de la red (ej. bloqueando una IP, parcheando una vulnerabilidad).
- El nuevo estado de la red en la Arena influye en la probabilidad de éxito de futuros ataques de Red Bot, cerrando el ciclo de retroalimentación.
- Docker
- Docker Compose
- Clonar y preparar el entorno:
git clone <repository>
cd cybersecurity-ai-simulation- Construir y ejecutar todos los servicios:
docker-compose up --build- Acceder a las interfaces:
- Arena (Simulación): http://localhost:8000
- MLflow (Tracking): http://localhost:5000
- PostgreSQL: localhost:5432
# Ejecutar solo servicios específicos
docker-compose up arena mlflow
# Ver logs de un servicio
docker-compose logs -f red_bot
# Reiniciar un servicio
docker-compose restart blue_bot
# Parar todos los servicios
docker-compose down
# Limpiar volúmenes (¡cuidado! elimina datos)
docker-compose down -vCada servicio puede configurarse mediante variables de entorno:
# Arena
# Credenciales Dummy
FLASK_ENV=development
MLFLOW_TRACKING_URI=http://mlflow:5000
# Base de datos
POSTGRES_DB=cybersec_db
POSTGRES_USER=cybersec_user
POSTGRES_PASSWORD=cybersec_passshared_data: Datos compartidos entre serviciosshared_models: Modelos entrenadosmlflow_data: Datos de MLflowpostgres_data: Datos de PostgreSQL
.
├── docker-compose.yml
├── README.md
├── arena_project/
│ ├── Dockerfile
│ ├── requirements.txt
│ └── main.py
├── red_project/
│ ├── Dockerfile
│ ├── requirements.txt
│ └── main.py
└── blue_project/
├── Dockerfile
├── requirements.txt
└── main.py
- Crear directorio del proyecto
- Agregar Dockerfile y requirements.txt
- Actualizar docker-compose.yml
- Configurar redes y volúmenes
# Ejecutar un servicio en modo interactivo
docker-compose run --rm arena bash
# Ver logs en tiempo real
docker-compose logs -f --tail=100
# Inspeccionar red
docker network inspect cybersecurity-ai-simulation_cybersec_network- Experimentos de entrenamiento
- Comparación de modelos
- Métricas de rendimiento
- Estado de simulación en tiempo real
- Estadísticas de ataques/defensas
- Visualización de patrones
- Puerto ocupado:
# Cambiar puertos en docker-compose.yml
ports:
- "8001:8000" # Cambiar puerto local- Problemas de memoria:
# Limitar recursos en docker-compose.yml
deploy:
resources:
limits:
memory: 2G- Problemas de red:
# Recrear red
docker-compose down
docker network prune
docker-compose up- Fork del repositorio
- Crear rama feature
- Commit cambios
- Push a la rama
- Crear Pull Request
agustinseiler@outlook.com https://www.linkedin.com/in/alejandroseiler/