Dans le cadre de ma scolarité en troisième année de BUT R&T option cybersécurité, j’ai eu 4 projets, soit des Situations d’Aprentissage et d’Evaluation (SAE), à réaliser.
Pour préciser les modalités de réalisation, chaque SAE a été réalisée en groupe et nous ne disposions que de 2 semaines dédiées uniquement à cela pour chaque SAE.
Parmi ces SAE, deux d’entre elles étaient spécialisées dans la cybersecurité. Les deux autres étaient plus orientées autour de l’adiministration système et du réseau, avec une partie moindre de cybersécurité.
Missions réalisées
Cette SAE a été réalisée en groupe de 7 étudiants et concernait l’ensemble de la promotion BUT R&T 3ème année.
Pour ce projet, nous devions réaliser une infrastructure basée sur les WorldSkills, un concours international. Le mot d’ordre était « Fonctionnel ».
Voici l’infrastructure présentée dans le sujet:
Nous avons commencé par la planification et l’affectation des tâches pour lesquelles nous avons utilisé l’outil de gestion de projet Trello. Puis nous avons mis en place la réalisation du plan d’adressage IP (qui a évolué au cours du projet), qui a duré quelques jours et à laquelle j’ai été assigné.
Le plan a été réalisé sur Google Sheets pour une question d’accessibilité:
[Plan d’adressage IP]
Puis, nous avons entamé la phase de déploiement où nous avons dû mettre en place l’infrastructure.
J’ai commencé par m’occuper des parties qui m’étaient attribuées:
-La création des différentes machines virtuelles sur les Proxmox,
-La prise en main d’ESXi ainsi que la création des differentes machines puis de leur mise en réseau interne,
-La préparation, l’installation et l’administration des serveurs Windows HQDCSRV (le serveur principal), HQWEBSERV (serveur Web Windows), REMDCSRV (le serveur du site en Remote et Backup de HQDCSRV) ainsi que REMINFRASRV (serveur de fichiers et Backup de REMDCSRV).
Je n’ai rencontré aucun problème pendant la partie Proxmox : en effet, c’est une solution que j’emploie régulièrement et qui m’est plutôt accessible. J’ai donc créé les différentes machines virtuelles sans problèmes majeurs. Il est à noter que les Proxmox utilisés étaient ceux de l’université et donc accessibles depuis le Web.
Pour ESXi, c’était la première fois que je prenais en main cet hyperviseur. L’adaptation a été rapide et les serveurs requis ont été créés et prêts à être administrés.
A ce stade, le coeur de réseau n’était pas fonctionnel, nous avons donc mis en place un routeur spécifique reliant les differents Proxmox et ESXi afin de mettre les machines en réseaux ainsi que d’implémenter les differentes fonctionnalités demandées dans le sujet.
J’en ai profité pour implanter une solution pour permettre à toute l’équipe de télétravailler: en passant par les Proxmox accessibles via Internet, il a été possible de créer plusieurs machines ayant accès aux ESXi pour pouvoir travailler sur les serveurs ESXi depuis chez nous. Cette accessibilité nous a permis de continuer à travailler après la fermeture des salles universitaires, à distance.
Suite à cela, j’ai developpé des scripts PowerShell pour mettre en place les differents services requis tels que le DHCP, le DNS et l’AD.
Le choix de passer par du PowerShell au lieu de l’interface Windows classique s’est avéré utile puisqu’une mauvaise manipulation sur le DNS sur HQDCSRV a corrompu l’entièreté du système. L’unique solution était de recréer entièrement le serveur : l’utilisation des scripts nous a ainsi fait gagner du temps puisqu’il a simplement fallu les copier et les relancer.
Ce gain de temps m’a permis de réaliser un peu de gestion de projet et de management en réattribuant des tâches de certains collègues pour se concentrer sur les parties importantes.
J’ai également eu la possibilité d’aider les membres du groupe qui s’occupaient du coeur de réseau. En m’adaptant rapidement à leur façon de réaliser la pile OSPF/BGP, j’ai pu les aider à débugger les différentes parties qui posaient soucis.
Finalement, j’ai suggéré à l’équipe une alternative dans notre façon de procéder : arrêter de developper les fonctionnalités de l’infrastructure et réaliser des batteries de test pour s’assurer du bon fonctionnement de l’intégralité du système déjà mis en place.
Nous avons été le premier groupe à commencer à réaliser des tests tôt. Ceci nous a permis de régler une grande quantité de petits problèmes qui auraient pu nous faire défaut sur la finalité du projet.
Cette SAE a été très formatrice puisque j’ai pu toucher à plusieurs technologies que je ne connaissais pas telles que ESXI pour les systèmes ou une pile OSPF/BGP (que je connaissais en théorie mais pas en pratique). De plus, j’ai ressenti une grande satisfaction lorsque plusieurs personnes m’ont remercié pour la gestion de la partie management : celle-ci leur a permis, grâce à quelques conseils, de s’aérer l’esprit et de prendre des pauses pour pouvoir travailler plus efficacement par la suite.
Comme pour la SAE 501, tous les étudiants de la promotion étaient concernés, mais cette fois-ci, en groupe de 4 étudiants.
La première phase a été une phase de conception avec comme but la réalisation d’une infrastructure informatique pour un hôpital de campagne ou une clinique. Cette infrastructure devait être entièrement physique et comporter certains services tels qu’une base de données pour la partie médicale, un site web et un serveur central de login. Bien entendu, l’infrastructure nécessitait de prendre en compte le contexte medical, avec les données sensibles stockées et manipulées, ainsi que le contexte global de sécurité (les hopitaux étant la cible de Ransomwares). Pour la réalisation, nous avons utilisé la méthode AGILE, avec des sprints de quelques jours en raison de délais serrés.
Pour la réalisation du serveur central, j’ai proposé d’installer un serveur WINDOWS avec Active Directory afin que les médecins puissent s’y connecter d’une façon simple via des ordinateurs installés dans chacunes des salles. J’ai également ajouté des services DHCP et DNS pour gérer l’ensemble du domaine, ainsi qu’un serveur de fichiers pour s’assurer d’une centralisation des fichiers. En vue de répondre à des exigences de rapidité et de scalibilité, j’ai réalisé le travail en utilisant des scripts en PowerShell. J’ai également fait le choix de créer un deuxième serveur en redondance au premier, au cas où le serveur principal venait à tomber. Cela assure une haute disponibilité.
Lors de la deuxième phase, le client a changé ses exigences et demandé deux changements importants après la première semaine de production :
– Le client a souhaité que l’infrastructure ne soit plus uniquement physique mais en grande partie virtualisée.
– Aussi, il ne s’agissait plus là d’un hôpital mais de deux hôpitaux reliés au niveau de leur pare-feu par un VPN site-à-site
L’utilisation de scripts et la réalisation d’un serveur de backup nous a permis de réagir très rapidement à ce changement. En effet, cela n’a nécessité que le changement du serveur de backup en serveur pour le deuxième hôpital. Le lien entre lui et le serveur principal a ainsi été conservé et permet toujours une redondance d’un même AD. Grâce à cette rapidité d’adaptation, nous avons pu ajouter de nombreux services et s’assurer du fonctionnement uniforme de notre infrastructure.
Enfin, nous avons dû rendre un compte-rendu intégral de la réalisation avec l’ensemble des parties réalisées, ainsi qu’une documentation pour utiliser les services mis en place.
Voici le compte-rendu :
[Rapport de la SAE 502]
Voici la documentation d’utilisation des scripts et des fonctionnalités du serveur:
[AD]
[DNS]
[DHCP]
[BACKUP]
Cette première SAE en BUT ressemblait beaucoup à ce que j’ai dû produire en BTS, cependant le temps de réalisation a été de 2 semaine contre 8 mois. Aussi, la partie de création de groupe en amont fut importante puisque plusieurs étudiants étaient nouveaux dans cette formation (étudiants BTS ayant utilisé une passerelle vers le BUT 3ème année) alors que la grande majorité de la promotion avait fait une deuxième année de BUT. Cela a demandé, dans un temps restreint, la mise en place d’une collaboration rapide afin de produire un travail efficace.
Pour cette SAE, seuls les étudiants option Cybersécurité étaient concernés. Le travail a été effectué par groupe de 2 étudiants.
La situation était la suivante : un hôpital souhaite mettre en place un système de détection de prévention d’intrusion afin de se protéger des attaques externes et des risques internes. Notre travail consiste à étudier, installer et tester une solution IDS/IPS performante et gratuite.
La réalisation de cette SAE a été divisé en 4 étapes :
1- Etude de plusieurs solutions :
Nous avons étudié 3 solutions IDS/IPS de notre choix soit Snort, Suricata et ZEEK. Nous avons également analyser Security Onion qui était une étude exigée. Puis nous avons établi un rapport d’études comparatives afin de choisir la solution adéquate qu’il faudrait présenter à la direction de l’hôpital. [Rapport d’étude]
Notre choix s’est arrêté sur Snort, tant pour son ancienneté et la taille de sa communauté que pour sa simplicité d’installation dans une infrastructure.
2- Déploiement :
La conception et le déploiement de l’infrastructure a été entièremment libre : que ce soit par rapport aux choix des solutions matérielles afin d’héberger les serveurs ou vis-à-vis des choix des systèmes d’exploitations des serveurs. La seulle condition était que l’IDS choisi précédemment soit présent. L’ensemble de l’infrastructure a été hebergé sur un proxmox privé dont l’accès se faisait par VPN afin de pouvoir travailler à distance. Aussi, afin de suivre les recommandations de l’ANSSI, nous avons mis en place une DMZ à plusieurs niveaux tant pour l’aspect sécurité que pour la facilité à ajouter des modules si cela devait être nécessaire par la suite.
Voici la première version de l’infrastructure :
Légende :
– zone bleue : centre de surveillance et de sécurité de l’entreprise
– zone rose : position de l’IDS Snort (intégré à la Pfsense Externe)
– zone rouge : machine de test pour la simulation d’attaques externes
Voici le rapport de fonctionnement avec preuve que l’infrastructure entière était fonctionnelle :
[Rapport de fonctionnement]
3- Contrôle de l’infrastructure :
Nous avons réalisé un document détaillant les métriques intéressantes à surveiller, les différents types d’attaques à surveiller ainsi que les mécanismes de sécurité à implémenter. Pour cela, nous avons effectués des recherches afin de trouver les informations nécessaires, ce qui nous a conduit à réfléchir sur des améliorations possibles à ajouter à l’infrastructure pour augmenter la résilience du système face aux attaques.
Voici le rapport de sécurité d’infrastructure qui a découlé de nos recherches :
[Rapport de sécurité d’infrastructure]
4- Démonstration :
Afin de valider les étapes précédentes, il était impératif de présenter à la direction de l’hôpital la simulation d’une attaque sur le système d’information. Pour cela, il a fallu décrire le partie Red team (attaque) et la partie Blue team (défense). Pour cette démonstration, nous avons fait le choix d’une attaque Cross-site Scripting (XSS) sur le site web lié à la base de données des patients. Une fois le script lancé, nous avons immédiatemment constaté le blocage que Snort a réalisé afin d’éviter l’attaque et garder le système sain. En effet, la console Snort a enregistré une alerte suite aux différents logs de l’attaque.
En conclusion de cette démonstration, nous avons proposé une hypothétique version 2 de l’infrastructure. Cette dernière, répondant aux exigences de l’ANSSI, propose une sécurité plus complète avec une surveillence accrue via les logs ainsi qu’une meilleure résilience.
Voici la version améliorée de l’infrastructure :
Ainsi, cette SAE m’a permis une consolidation de mes connaissances sur les IDS:
– comprendre leurs différences,
– réaliser une mise en place de Snort,
– comprendre les métriques importantes à surveiller dans un système d’information.
Pour la mise en place de cette SAE, les étudiants ont été répartis en fonction du sujet choisi, différents sujets ayant été proposés afin de mettre en place plusieurs catégories d’épreuves. Notre sujet n’étant pas forcément très répandu, nous n’étions que 2.
La SAE avait pour objectif d’aider à la remise en marche de Sécu’RT, un évènement de cubersécurité organisé par le département Réseau et Télécommunications de l’IUT Nord France-Comté. Notre promotion avait comme missions la conception, la mise en place et le bon fonctionnement d’une activité de type « capture the flag » (CTF).
J’ai opté pour le sujet suivant : la forensique (ou investigation numérique) soit la science de la recherche de preuve sur des supports numériques afin de récupérer des traces numériques, de remédier à un incident ou de comprendre un comportement. Ces differents artéfacts numériques permettent de dégager des scénarios d’évenements et de répondre à des intérogations (dans le cadre d’une enquete par exemple).
Pour réaliser ces épreuves lors de l’évènement, la premiere partie de la SAE consistait à notre formation autant sur la forensique que sur les CTF en général. Pour cela, j’ai utilisé RootMe pour réaliser seul quelques exercices afin de comprendre les bases de la forensique et des CTF. En parallèle, un intervenant extérieur a été d’une grande aide en nous proposant des défis. Suite à ces entrainements, j’ai pu réaliser à quel point la forensique est un domaine d’expertise complexe qui demande de l’expérience. Il me fallait donc trouver des concepts d’épreuves simples mais formatrices.
Ainsi, j’ai proposé des épreuves autour d’une clé USB avec un principe simple : une clé USB n’est jamais réellement vide. Pour cela, j’ai réalisé 4 épreuves différentes. Pour chacune d’entre elles, j’ai fourni un contexte, le fichier ISO de la clé USB et deux photos de la clé USB (une de chaque côté).
Voici les épreuves :
– Epreuve n°1 : retrouver le flag d’une arborescence conséquente (environ 3000 dossiers différents).
[Epreuve 1]
– Epreuve n°2 : restaurer une clé USB dite « vide ».
[Epreuve 2]
– Epreuve n°3 : à l’aide des photos, retrouver le mot de passe d’une clé USB cryptée.
[Epreuve 3]
– Epreuve n°4 : restaurer une base de données KeePass supprimée d’une clé USB, puis trouver le mot de passe grâce aux informations personnelles disponibles sur la clé.
[Epreuve 4]
Pour que l’évènement puisse se lancer, nous avons préparer une salle en mettant en place des switchs et des routeurs afin de proposer un accès à notre serveur CTF spécifique pour lévènement. Cependant, juste avant le lancement de l’épreuve, nous avons détecté un problème concernant les différents affichages des scores mis en place dans le bâtiment : la page web était statique et demandait par conséquent une actualisation manuelle. Dans l’esprit « concours » de l’évènement, les étudiants ont été mis en compétition afin de trouver rapidement une solution à ce problème. La solution suivante, proposée et réalisée par moi-même, a été choisie : utiliser un script PowerShell qui actualiserait automatiquement la page permettant ainsi l’affichage des scores en temps réel.
[Script PowerShell]
Au travers de cette SAE, j’ai pu découvrir, apprendre et perfectionner mes connaissances sur la forensique. De plus, étant plutôt un habitué du travail autour de Windows, j’ai pu apprendre à utiliser Debian de façon plus professionnel. Grâce à cela, je suis désormais plus à l’aise sur les solutions autour de Linux.