Architecture

Overview

The lab is organized in networks: External (attacker container), DMZ (frontend), Server (backend, SSH honeypot, fake activity), Database (MySQL), and Monitor (Filebeat, Elasticsearch, Kibana).

Network diagram

┌────────────────────────────────────────────────────────────────────────────────┐
│                            "EXTERNAL" NETWORK                                    │
│  ┌─────────────────────────────────────────────────────────────────────────┐   │
│  │                        Attacker Container                               │   │
│  │  ┌─────────────────┐    ┌─────────────────┐    ┌─────────────────────┐  │   │
│  │  │  Scripting      │    │   Manual        │    │   Recon Tools       │  │   │
│  │  │  Attacks        │    │   Testing       │    │   (nmap, etc.)      │  │   │
│  │  │   Port 5000     │    │   (SSH/Web)     │    │                     │  │   │
│  │  └─────────────────┘    └─────────────────┘    └─────────────────────┘  │   │
│  └─────────────────────────────────────────────────────────────────────────┘   │
└────────────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼
┌─────────────────────────────────────────────────────────────────────────────────┐
│                                DMZ NETWORK                                        │
│                   ┌───────────────────────────────────┐                           │
│                   │             Frontend                │                           │
│                   │          Employee Portal           │  Port 3000               │
│                   └─────────────────────┬──────────────┘                           │
│                                         │ Backend Communication                    │
│  ┌─────────────────────────────────────▼──────────────────────────────────────┐   │
│  │                           SERVER NETWORK                                    │   │
│  │  ┌───────────────┐    ┌──────────────┐    ┌─────────────────────────┐      │   │
│  │  │    Backend    │    │ SSH Honeypot │    │   Fake Activity         │      │   │
│  │  │ Financial API │    │  Port 22     │◄───│   Generator             │      │   │
│  │  │   Port 3001   │    │              │    │                         │      │   │
│  │  └───────┬───────┘    └──────────────┘    └─────────────────────────┘      │   │
│  │          │ Database Access                                                  │   │
│  │  ┌───────▼───────────────────────────────────────────────────────────────┐  │   │
│  │  │                     DATABASE NETWORK  │  MySQL Port 3306              │  │   │
│  │  └───────────────────────────────────────────────────────────────────────┘  │   │
│  │  ┌───────────────────────────────────────────────────────────────────────┐  │   │
│  │  │ MONITOR NETWORK  │  Filebeat ──► Elasticsearch (9200) ──► Kibana (5601)│  │   │
│  │  └───────────────────────────────────────────────────────────────────────┘  │   │
│  └─────────────────────────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────────────────────┘

Technology stack

  • Frontend: Andesfinance employee portal (Node.js/Express)

  • Backend: Andesfinance financial API

  • MySQL: Financial database with sensitive data

  • SSH Honeypot: Custom SSH honeypot

  • Fake Activity: Fake activity generator

  • Elastic Stack: Filebeat + Elasticsearch + Kibana

  • Docker Compose: Container orchestration

Security architecture

  • Frontend: Accessible from localhost (port 3000) — controlled entry point

  • Backend: Only internally accessible — protected from external access

  • MySQL: Only internally accessible — isolated database

  • SSH Honeypot: Only accessible internally from server network

  • Elastic Stack: Accessible from localhost (port 5601) — monitoring entry point

Project structure

/cyberdeception-playground/
├── docker-compose.yml          # Service orchestration
├── frontend/                   # Vulnerable web application
├── backend/                    # Vulnerable backend API
├── mysql/                      # MySQL database & init scripts per level
├── ssh-honeypot/               # SSH Honeypot
├── fake-activity/              # Fake activity generator
├── attacker/                   # Attacker container & attack_scripts
├── filebeat/                   # Log collection agent
├── dashboards/                 # Kibana dashboards
├── logs/                       # System logs
├── scripts/                    # startup.sh, startup.bat, shutdown.bat
├── LICENSE
├── README.md
└── README_ES.md