Orchestrer son lab de cybersécurité

Table des matières
Contexte : mise en œuvre d’un lab cybersécurité pédagogique pour évaluer des solutions de cyberdéfense
Challenge : disposer de ce lab en moins de 10 min !

C’est quoi un homelab ?
Un homelab peut être vu comme un environnement bac à sable simulant une sous-partie d’une infrastructure complète avec comme principale contrainte des moyens limités (puissance de calcul, mémoire, stockage, …).
Pour quoi faire ?
👉 Permettre de pratiquer, évaluer des architectures et solutions techniques mais aussi développer ses compétences !
👉 Disposer d’un bac à sable pour des démonstrations de sensibilisation et des activités pédagogiques.
Design & topologie
Voici une première architecture à déployer

Quelques éléments clés :
👉 Depuis un accès externe et via le bastion l’étudiant dispose d’un accès à l’ensemble des machines

👉 Simulation d’attaques sur le serveur Web depuis une Kali
👉 La machine victime journalise ses événements à destination d’une plateforme SOC (Splunk Enterprise)
👉 Le SIEM du SOC détecte une anomalie et informe le SOAR (Splunk SOAR)
👉 Le SOAR met en place une contre mesure sur le Firewall (PFSense) pour stopper l’attaquant
👉 Les scénarii de réponse sont stockés sur un dépôt de code source
Hébergement
A défaut de disposer d’un serveur professionnel

Solution retenue : un boitier de type NUC qui répond aux critères :
☑️ Consommation électrique raisonnable
☑️ Encombrement réduit (pratique à transporter)
☑️ Faire tourner des solutions de virtualisation professionnelles (VMware …) et gratuites (Proxmox …)

Mais qui est cet homme ?
Déployer et provisionner l’infrastructure
Avant de disposer d’une infrastructure opérationnelle il faut :
☑️ Instancier les machines (définition des caractéristiques CPU, disque, mémoire, …)
☑️ Installer et configurer le système d’exploitation
☑️ Installer les applicatifs
☑️ Paramétrer les applicatifs (ex: déclarer les comptes sur le bastion)
Prévoir une bonne demi-journée !!! ⏲️
Les ressources de calculs et stockage étant limitées, l’infrastructure sera éphémère.
Deux possibilités :
Construire les machines une à une “à la main” 😓
Automatiser ! ❤️ 😍
La solution retenue
Définitivement, déployer une architecture à la main, c’est “So has been !”
Inefficace, rébarbatif, source d’erreur, la documentation n’est jamais à jour … 👎
Une bonne pratique : exploiter des outils d’Infrastructure As Code.
De nombreux bénéfices notamment :
👉 Indépendance de la plateforme visée, il est possible de provisionner des machines dans le cloud (AWS, Azure, GCP, …) ou encore sur du onprem (VMWare, Proxmox, …)
👉 Design modulaire permettant la réutilisation

👉Fiabilité avec des ressources toujours mises à disposition et configurées exactement comme déclarées.
👉 Liste non exhaustive !
C’est quoi l’idée ?
Décrire dans une série de fichiers les spécifications de l’infrastructure.
Donner le plan des actions à la solution de déploiement automatisée qui exécute la mise en œuvre.
Récupérer une infrastructure démarrée avec sa documentation !

Les grandes phases :
- Création des socles de base en sommes des templates (un système d’exploitation et quelques éléments standards)
- Déploiement des templates sur la plateforme de virtualisation via une pipeline d’intégration continue
- Coordination du déploiement des machines
- Configuration des socles (adressage, …)
- Déploiement et configuration des applicatifs métier
Afin de maitriser les évolutions de version, l’ensemble des sources est stocké sur un dépôt Gitlab.
Résultat
Une infrastructure prête à être utilisée

Avec sa documentation !

To be continued …
Dans de prochains articles nous pourrons voir l’exploitation de ce lab dans des cas d’usage cybersécurité …
