Lors du SSTIC (Symposium sur la sécurité des technologies de l'information et des communications), François Lesueur, Maitre de conférence à l'INSA de Lyon, a présenter MI-LXC, une plateforme pédagogique open-source pour la sécurité réseau.
MI-LXC, sous license AGPL, est un framework et une infrastructure pour pratiquer des exercices de sécurité réseau. Le framework permet de construire des infrastructures virtuelles utilisant LXC, typiquement pour l’enseignement de la sécurité, du réseau ou de l’administration système. Une infrastructure représentant un mini-internet (différents AS routés par BGP, une racine DNS, des services publics HTTP/SMTP, une organisation mêlant LDAP, filer, intranet et postes clients, . . . ) a été conçue sur ce framework.
MI-LXC inclus une infrastructure de référence simulant un "mini-internet" avec les services nécessaires :
- DNS,
- SMTP,
- HTTP,
- . . .
- Un routage par BGP entre AS indépendants
La plateforme est basé sur sur le principe de l'infrastructure as code.
Le système est composé comme suit :
- le cœur de réseau est représenté par les deux opérateurs de transit transit-a et transit-b. L’opérateur transit-a donne de plus l’accès au vrai internet à l’ensemble de l’infrastructure, via le bridge LXC sur l’hôte
- le TLD .milxc, pour tous les domaines internes, est géré par l’AS milxc
- les 2 racines DNS (alternatives mais compatibles avec le vrai internet) sont root-o et root-p
- un résolveur DNS ouvert est proposé par opendns
- un FAI isp-a fournit l’accès à différents clients, honnêtes ou attaquants
- une autorité de certification utilisant le protocole ACME (comme Let’s Encrypt) est proposée par mica
- l’entreprise target héberge un réseau (volontairement à plat sur ce point de départ, un TP consistant justement à le segmenter), fournissant des services externes SMTP, HTTP, DNS et internes LDAP, partage, intranet, ainsi que des postes client — l’entreprise ecorp permet de mener des attaques BGP
- le protocole BGP est utilisé pour le routage entre ces différents AS
Tout ceci nécessite moins de 2Go de RAM et de 6Go d’espace disque (en plus de l’hôte Linux).
MI-LXC est disponible à l’adresse https://github.com/flesueur/mi-lxc.
Il y a plusieurs façons de le tester, telles que documentées sur la page du projet :
- Sous Linux, les dépendances pour quelques distributions sont indiquées et il est possible d’exécuter directement MI-LXC ensuite (quelques dizaines de minutes pour générer l’infrastructure)
- Sous Windows/OSX/Linux, il est possible de générer avec Vagrant une VM VirtualBox dans laquelle MI-LXC sera automatiquement installé et les conteneurs LXC générés (quelques dizaines de minutes pour générer l’infrastructure, connexion root/root)
- La dernière release est disponible en une VM Virtualbox exportée (.ova)
Exemple de travaux pratiques utilisant cet environnement :
Source :
- Présentation au SSTIC
- Repository GitHub