Skip to content

StaiLee/White-hack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

White-hack

badge badge badge

WhiteHack — Dossier & Plateforme pĂ©dagogique (RNCP 36061, N6)

Projet : WhiteHack — plateforme pĂ©dagogique pour l’apprentissage de la cybersĂ©curitĂ© (cours, labs vulnĂ©rables, CTF).
Auteur : StaĂŻli Ilyes — B3 CybersĂ©curitĂ© — Ynov Campus — AnnĂ©e 2025


⚙ RĂ©sumĂ©

WhiteHack est une plateforme web (Laravel) couplĂ©e Ă  des environnements pratiques (VM / labs) accessibles via tunnel sĂ©curisĂ©. L’objectif : offrir des parcours progressifs (cours → labs → Ă©valuation) conformes aux compĂ©tences RNCP 36061. Le projet inclut une stack complĂšte : application Laravel, reverse-proxy Nginx, orchestration de labs (snapshot/restore), VPN/tunnels pour accĂšs sĂ©curisĂ©, supervision (Prometheus / Grafana) et centralisation des logs (ELK).


✅ FonctionnalitĂ©s principales

  • Catalogue de cours (Markdown) et leçons (modules/lessons).
  • Dashboard de progression, badges, scores CTF.
  • Module « Practice » : accĂšs sĂ©curisĂ© aux machines vulnĂ©rables (NoVNC / Guacamole ou tunnel).
  • Orchestration : dĂ©marrage/clone/rollback des VMs labs depuis images/snapshots.
  • Authentification + rĂŽles (Étudiant / Mentor / Admin).
  • Supervision : Prometheus (metrics) + Grafana (dashboards).
  • Centralisation des logs : ELK (Elasticsearch / Logstash / Kibana).
  • RGPD : minimisation des donnĂ©es et rĂ©tention configurable.

Architecture (haut niveau)

Utilisateur (navigateur)
└─ HTTPS → Nginx (reverse-proxy) ──> Laravel (auth, orchestration)
│
├─ NoVNC / Guacamole (GUI web pour VMs)
├─ WireGuard / OpenVPN (optionnel pour accĂšs rĂ©seau)
└─ Orchestrator (libvirt / LXC / Docker) → VM lab (snapshot)

Supervision: Prometheus (node_exporter) → Grafana
Logs: Nginx / Laravel → Logstash → Elasticsearch → Kibana


Installation (développement / démonstration locale)

Prérequis

  • PHP ≄ 8.x, Composer
  • Node.js / npm (pour assets)
  • Nginx
  • MySQL / MariaDB (ou SQLite pour MVP)
  • Git
  • (Optionnel) libvirt/docker pour labs

Étapes

# cloner
git clone <repo> whitehack
cd whitehack

# copier .env (exemple)
cp .env.example .env

# installer dépendances PHP
composer install --no-dev --prefer-dist

# clé app
php artisan key:generate

# config / cache (dev)
php artisan migrate --force
php artisan db:seed --class=CourseContentSeeder

# assets
npm install
npm run dev

# lancer serveur
php artisan serve --host=127.0.0.1 --port=8000

Exemple .env (extraits)

APP_NAME=WhiteHack
APP_ENV=local
APP_KEY=base64:...
APP_URL=http://localhost:8000

DB_CONNECTION=sqlite
DB_DATABASE=/full/path/database.sqlite


Seeder : ajouter / modifier des leçons

  • Le seeder principal : database/seeders/CourseContentSeeder.php.
  • Les leçons sont ajoutĂ©es via createMany([...]) avec title, order, is_lab, markdown.

Commande utile :

php artisan migrate:fresh --seed --seeder=CourseContentSeeder

DĂ©ploiement — Raspberry Pi (MVP)

  1. Installer dépendances (nginx, php-fpm, sqlite, git, composer).
  2. Cloner repo et setup .env.
  3. Configurer Nginx (reverse-proxy + SSL).
  4. Activer ufw (firewall) + fail2ban.

VPN & accĂšs aux labs

WireGuard / OpenVPN

  • Fournit accĂšs rĂ©seau sĂ©curisĂ© aux VM.
  • Profil gĂ©nĂ©rĂ© automatiquement, distribuĂ© Ă  l’étudiant.

NoVNC / Guacamole

  • L’étudiant clique « Se connecter » → ouverture d’une session graphique dans le navigateur.
  • Avantage : zĂ©ro configuration cĂŽtĂ© Ă©tudiant.

Supervision & logs

  • Prometheus : collecte mĂ©triques.
  • Grafana : dashboards et alertes.
  • ELK : centralisation et analyse des logs.

Sécurité

  • HTTPS (TLS avec Nginx + certbot).
  • UFW (pare-feu) : rĂšgles strictes.
  • Fail2ban : blocage IP aprĂšs bruteforce.
  • SĂ©paration des rĂŽles / donnĂ©es minimisĂ©es (RGPD).

Workflow utilisateur

  • Étudiant : choisit cours → lance lab → accĂšs sĂ©curisĂ© GUI/VPN → pratique → reset VM (snapshot).
  • Mentor : crĂ©e cours et valide contenus.
  • Admin : supervise, sauvegarde, gĂšre sĂ©curitĂ©.

Sauvegardes

  • Dumps rĂ©guliers DB (sqlite ou mysql).
  • Snapshots VM.
  • Tests de restauration pĂ©riodiques.

Git & pratiques

  • Branches : main, develop, feat/*.
  • Workflow : feature → PR → merge.

Commandes utiles :

git log --oneline --graph --decorate --all

Dépannage

  • 500 : logs Laravel.
  • Migrations : vĂ©rifier DB.
  • NoVNC : vĂ©rifier proxypass WebSocket.
  • VPN : vĂ©rifier clĂ© publique/privĂ©e.

About

🔐 White-Hack — B3 end-of-studies thesis project: a Laravel web application exploring web security concepts.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors