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 !

alt

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

alt

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

alt

👉 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

alt

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 …)

alt

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

alt

👉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 !

alt

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

alt

Avec sa documentation !

alt

To be continued …

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

alt

Related