Skip to content

AlejandroASeiler/CyberArena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ CyberArena – AI‑Driven 🔴/🔵 Team Simulation Environment

Disclaimer

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.

Cybersecurity AI Simulation Environment

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

Arquitectura del Sistema

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Arena         │◄──►│   Red Bot       │    │   Blue Bot      │
│ (Simulation)    │    │ (Attacker)      │◄──►│ (Defender)      │
│ Port: 8000      │    │                 │    │                 │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         └───────────────────────┼───────────────────────┘
                                 │
         ┌─────────────────┐    ┌─────────────────┐
         │   MLflow        │    │   PostgreSQL    │
         │ (Tracking)      │    │ (Database)      │
         │ Port: 5000      │    │ Port: 5432      │
         └─────────────────┘    └─────────────────┘

Componentes

Arena (Puerto 8000)

  • 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.

Red Bot

  • 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.

Blue Bot

  • 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.

MLflow (Puerto 5000)

  • Seguimiento de experimentos.
  • Registro de métricas y modelos.
  • Comparación de rendimiento.

PostgreSQL (Puerto 5432)

  • Base de datos para resultados.
  • Almacenamiento de logs.
  • Historial de simulaciones.

Ciclo de Retroalimentación

  1. Red Bot inicia un ataque y lo envía a la Arena.
  2. La Arena procesa el ataque, actualiza el estado de la red y genera un evento.
  3. Blue Bot consulta la Arena para obtener nuevos eventos.
  4. Blue Bot detecta el ataque y decide una acción defensiva.
  5. Blue Bot envía la acción defensiva a la Arena.
  6. La Arena aplica la acción defensiva, modificando el estado de la red (ej. bloqueando una IP, parcheando una vulnerabilidad).
  7. 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.

Instalación y Uso

Prerrequisitos

  • Docker
  • Docker Compose

Inicio Rápido

  1. Clonar y preparar el entorno:
git clone <repository>
cd cybersecurity-ai-simulation
  1. Construir y ejecutar todos los servicios:
docker-compose up --build
  1. Acceder a las interfaces:

Comandos Útiles

# 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 -v

Configuración

Variables de Entorno

Cada 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_pass

Volúmenes Compartidos

  • shared_data: Datos compartidos entre servicios
  • shared_models: Modelos entrenados
  • mlflow_data: Datos de MLflow
  • postgres_data: Datos de PostgreSQL

Desarrollo

Estructura de Directorios

.
├── 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

Agregar Nuevos Servicios

  1. Crear directorio del proyecto
  2. Agregar Dockerfile y requirements.txt
  3. Actualizar docker-compose.yml
  4. Configurar redes y volúmenes

Debugging

# 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

Métricas y Monitoreo

MLflow Dashboard

  • Experimentos de entrenamiento
  • Comparación de modelos
  • Métricas de rendimiento

Arena Dashboard

  • Estado de simulación en tiempo real
  • Estadísticas de ataques/defensas
  • Visualización de patrones

Troubleshooting

Problemas Comunes

  1. Puerto ocupado:
# Cambiar puertos en docker-compose.yml
ports:
  - "8001:8000"  # Cambiar puerto local
  1. Problemas de memoria:
# Limitar recursos en docker-compose.yml
deploy:
  resources:
    limits:
      memory: 2G
  1. Problemas de red:
# Recrear red
docker-compose down
docker network prune
docker-compose up

Contribución

  1. Fork del repositorio
  2. Crear rama feature
  3. Commit cambios
  4. Push a la rama
  5. Crear Pull Request

Contacto

agustinseiler@outlook.com https://www.linkedin.com/in/alejandroseiler/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published