Vous êtes sur la page 1sur 130

Sécurité des systèmes/OS

virtualisés
ITESCIA – Master 2 – 2020_2021
2

Sommaire
1. Rappels
2. Virtualisation et conteneurisation des
systèmes
3. Risques liés à la virtualisation
4. Management des systèmes virtualisés
5. TP: Root-me

Copyright © Elysium Security Version 1.0 – 2020/2021


1.
Rappels
4
Rappels – Définitions

Les composants

▸ Hardware
▸ OS Généralités

Copyright © Elysium Security Version 1.0 – 2020/2021


5
Rappels – Définitions

Carte Mère

Loin de n'être qu'une simple « prise » pour vos différents éléments, une carte mère gère et contrôle vos différentes
connexions. Elle doit être compatible avec le processeur que vous avez choisi. Deux éléments essentiels sont à garder en tête
▸ Hardware pour une carte mère vraiment efficace : le chipset et le socket.
▸ OS Généralités

Copyright © Elysium Security Version 1.0 – 2020/2021


6
Rappels – Définitions

Chipset

▪ Composant central d'une carte mère actuelle, le chipset est l'ensemble des circuits électroniques qui gère
toutes les communications entre d'une part le microprocesseur et tous les autres composants de la carte
▸ Hardware mère d'autre part (mémoire Ram, contrôleurs de disques durs, cartes graphique, audio, réseau ...).
▸ OS Généralités ▪ Comme c'est le point central de la carte mère, il est aussi important que le processeur au niveau des
performances d'un ordinateur. Il est généralement composé de deux éléments :
▪ Le NorthBridge (Pont Nord ou Northern Bridge, appelé également contrôleur mémoire) est chargé de
contrôler les échanges entre le processeur et la mémoire vive…
▪ Le SouthBridge (Pont Sud ou Southern Bridge, appelé également contrôleur d'entrée-sortie ou contrôleur
d'extension) gère les communications avec les périphériques d'entrée-sortie.

Socket

▪ « Réceptacle de processeur » est un connecteur utilisé pour interfacer un processeur avec une
carte mère. Le processeur s'installe dans le socket et permet d'assurer le parfait fonctionnement
entre les éléments connectés.
▪ Il existe plusieurs formes de sockets, plus ou moins protégés et compatibles seulement avec
quelques processeurs précis. Il est donc vital de correctement choisir votre carte mère selon la
compatibilité du socket et du processeur souhaité.

Copyright © Elysium Security Version 1.0 – 2020/2021


7
Rappels – Définitions

La RAM

▪ RAM est un acronyme pour Random Access Memory en anglais, ce qui signifie Mémoire à accès aléatoire, c’est à
dire que l'on peut accéder à n'importe quel endroit de cette mémoire directement pour y lire ou écrire des
▸ Hardware informations. On l'appelle également la mémoire vive de l'ordinateur ou même tout simplement la mémoire.
▸ OS Généralités ▪ Une différence importante avec les périphériques de stockage est que le temps d'accès à ce type de mémoire est
environ 200 fois plus rapide. Cette mémoire RAM est située très près du processeur et lui sert de mémoire rapide
pour stocker les programmes actifs de même que des données et des résultats intermédiaires dont le processeur
peut avoir besoin.

Copyright © Elysium Security Version 1.0 – 2020/2021


8
Rappels – Définitions

Serial ATA

La norme Serial ATA ou SATA (Serial Advanced Technology Attachment), permet de connecter à une carte mère tout
périphérique compatible avec cette norme (disque dur, lecteur de DVD, etc.). Elle spécifie notamment un format de transfert de
▸ Hardware données ainsi qu'un format de câble. SATA succède a PATA (Parallèle ATA).

▸ OS Généralités

SATA Version de SATA

PATA

Copyright © Elysium Security Version 1.0 – 2020/2021


9
Rappels – Définitions

PCI Express

▪ Bus d'interconnexion permettant l'ajout de cartes d'extension dans l'ordinateur, le bus PCI Express a été mis au point
en juillet 2002. Contrairement au bus PCI, qui fonctionne en interface parallèle, le bus PCI Express fonctionne en
▸ Hardware interface série, ce qui lui permet d'obtenir une bande passante beaucoup plus élevée que ce dernier.
▸ OS Généralités ▪ Chaque lien série élémentaire fonctionne à 250Mo/s et fonctionne à une tension de 0,8 V avec une puissance dédiée
de 75W pour l'ensemble du bus.
▪ Il est destiné a éventuellement remplacer tous les bus internes d'extension d'un PC, dont le PCI et l'AGP (Si c'est le cas
pour l'AGP qui a complètement disparu, le PCI classique résiste encore).

PCI

PCI Express 16x


16*250=4KMo/s

Copyright © Elysium Security Version 1.0 – 2020/2021


10
Rappels – Définitions

BUS

▪ Un bus est un système de transfert de données entre plusieurs unités fonctionnelles de traitement de données par
l'intermédiaire d'une voie de transmission commune, dans laquelle les composants ne prennent aucune part à la
transmission des données entre les autres participants. Le bus peut être décomposé en trois sous-ensembles :
▸ Hardware
✓ Bus de données, soit le message.
▸ OS Généralités
✓ Bus d’adresses, qui identifie le destinataire.
✓ Bus de contrôle, un ensemble de signaux complémentaires identifiant le type d’action (lecture ou écriture, taille du
message, synchronisations).

Copyright © Elysium Security Version 1.0 – 2020/2021


11
Rappels – Définitions

La séquence de boot
UEFI
Premier secteur adressable (512
octets) contient la table des partitions
▸ Hardware
GPT et routine d’amorçage de grub2
▸ OS Généralités
- Charge l’image Kernel vmLinuz
- Extraction du contenu de l’image
initramfs (drivers, modules) en vue de
monter le FS.

- Chargement des modules à partir de


l’initramfs
- Démarrage du premier processus :
systemd

- Lecture des fichiers de configuration


/etc/systemd
- Lecture des liens et exécution des
services associés.

Copyright © Elysium Security Version 1.0 – 2020/2021


12
Rappels – Définitions

Système d’exploitation

• Applications
• Système d’exploitation
▸ Hardware “ Un système d'exploitation (souvent appelé OS — de
Logique • Pilotes
▸ OS Généralités l'anglais Operating System) est un ensemble de programmes
qui dirige l'utilisation des ressources d'un ordinateur par des
logiciels applicatifs. Il reçoit des demandes d'utilisation des
• Matériel ressources de l'ordinateur (…) de la part des logiciels
Physique applicatifs. Le système d'exploitation gère les demandes ainsi
que les ressources nécessaires, évitant les interférences entre
les logiciels. Le système d'exploitation est un logiciel, le
deuxième et le principal programme exécuté lors de la mise
en marche de l'ordinateur, le premier étant le programme
d'amorçage (appelé également bootloader). ” (source :
Wikipédia)

Copyright © Elysium Security Version 1.0 – 2020/2021


13
Rappels – Définitions

Familles d’OS

Les deux principales familles d’OS sont :

▸ Hardware
▪ Windows : cette famille est notamment celle la plus couramment retrouvée dans le cadre des
▸ OS Généralités
ordinateurs personnels (environ 90% du marché)

▪ Unix : cette famille comporte de nombreuses sous-familles dont les plus populaires sont Mac OS,
GNU/Linux, Android, iOS.

Copyright © Elysium Security Version 1.0 – 2020/2021


14
Rappels – Définitions

Rôles d’un OS (1/2)

Les principaux rôles d’un OS sont :


▸ Hardware
▸ OS Généralités ▪ Le gestion du stockage de données et informations dans des fichiers (textes, images, vidéos,
exécutables, etc.).

▪ La gestion des ressources matérielles et logicielles nécessaires à l’exécution des applications


(gestion du processeur, de la mémoire vive, des périphériques entrées-sorties, des périphériques de
communication, des contraintes d’utilisation des ressources partagées/divisées, etc.).

▪ La fourniture d’une interface ergonomique (celle-ci comprend notamment un explorateur du


système de fichiers, un interpréteur de commande, une GUI, une aide en ligne, etc.).

▪ La gestion de la sécurité/protection notamment en cas de panne matérielle/logicielle ou d’attaque


(contrôle des accès logiques/physiques, confidentialité, intégrité, etc.).

Copyright © Elysium Security Version 1.0 – 2020/2021


15
Rappels – Définitions

Unix/Linux Chronologie

▸ Hardware
▸ OS Généralités

Distrowatch.com
Copyright © Elysium Security Version 1.0 – 2020/2021
16
Rappels – Définitions

Unix/Linux Chronologie

▸ Hardware
▸ OS Généralités

https://distrowatch.com/images/other/distro-family-tree.png
Copyright © Elysium Security Version 1.0 – 2020/2021
17
Rappels – Définitions

Rôles d’un OS

▸ Hardware
▸ OS Généralités

▪ Aide : l’objectif est de simplifier l’accès aux périphériques matériels


▪ Abstraction : l’objectif est de fournir une couche d’abstraction du matériel permettant une
manipulation simplifiée (faisant abstraction des détails techniques liés à la mise en œuvre)
▪ Augmentation : l’objectif est d’optimiser les ressources (mémoire virtuelle, multitâche)
▪ Arbitrage : l’objectif est de fournir des capacités d’arbitrage dans l’allocation et l’utilisation des
ressources
▪ Autorisation : l’objectif est de fournir des mécanismes permettant de limiter et contrôler les
accès aux ressources

Copyright © Elysium Security Version 1.0 – 2020/2021


18
Rappels – Définitions

Composantes d’un OS

Les principales composantes d’un OS sont :


▸ Hardware ▪ Un noyau (kernel) : il comprend l’ensemble des fonctions essentielles de l’OS (gestion de la
mémoire, des entrées-sorties, des fichiers, des processus, etc.).
▸ OS Généralités ▪ Un interpréteur de commande (shell) : langage permettant de communiquer avec l’OS afin que
l’utilisateur puisse notamment piloter les différents périphériques matériels.
▪ Un système de fichiers : système permettant d’enregistrer des fichiers dans une arborescence
définie.

Copyright © Elysium Security Version 1.0 – 2020/2021


19
Rappels – Définitions

Types d’OS

▪ Systèmes monotâches : système n’autorisant qu’un seul utilisateur à n’exécuter qu’une seule
▸ Hardware tâche (un programme par exemple) à la fois.
▪ Systèmes multitâches : système capable d’effectuer plusieurs tâches (ou processus)
▸ OS Généralités simultanément. Cependant, cette simultanéité n’est qu’apparente pour l’utilisateur dans la
mesure où le système attribue à tour de rôle, et pour chaque processus, qu’un laps de temps
défini pour leur exécution (on parle aussi de temps-partagé). On distingue le multitâche
coopératif du multitâche préemptif (un ordonnanceur fixe l’ordre d’exécution des processus
et le temps qui leur est alloué).
▪ Systèmes multiprocesseurs : système capable de partager la mémoire et distribuer la charge
de travail entre plusieurs processeurs. Il est notamment utilisé dans les cas nécessitant une
puissance de calcul importante. On distingue le multiprocessing asymétrique (AMP) de celui
symétrique (SMP).
▪ Systèmes temps réel : système ayant pour vocation à travailler dans un environnement
contraint temporellement. Principalement utilisé dans l’industrie, ce type de système doit
être capable de fonctionner de manière fiable en vue de délivrer des traitements
d’informations corrects selon un intervalle de temps défini (régulier ou non).
▪ Systèmes embarqués : système généralement prévu pour fonctionner sur des équipements
de petite taille (type PDA) ou sur des équipements autonomes (robots, voiture, sonde,
satellite, missile, etc.).

Copyright © Elysium Security Version 1.0 – 2020/2021


20
Rappels – Définitions

Noyau (1/2)

▸ Afin de garantir que seuls les programmes systèmes accèdent aux ressources (périphériques, mémoire, etc.), les
processeurs gèrent plusieurs niveaux de privilèges dont le mode noyau qui permet aux programmes systèmes
▸ Hardware
d’exécuter des instructions au niveau des périphériques via des appels systèmes.
▸ OS Généralités
▸ Les OS fournissent de base un ensemble d’appels systèmes permettant par exemple de manipuler la mémoire.
Linux fournit plusieurs centaines d’appels systèmes de base tels que : open, read, write, brk, sbrk, etc.
▸ Pour s’adapter aux différents besoins, on distingue plusieurs catégories de noyaux selon le niveau d’abstraction
matérielle qui est utilisé. On distingue notamment 4 grandes catégories de noyaux (présentées dans le prochain
slide).

Copyright © Elysium Security Version 1.0 – 2020/2021


21
Rappels – Définitions

Noyau (2/2)
On distingue les grandes catégories de noyaux suivantes :
▪ Noyaux monolithiques (Linux par exemple) : le noyau fournit l’ensemble des services (gestion des processus,
▸ Hardware gestion des fichiers, etc.) – abstraction complète du matériel. Appels systèmes peu nombreux garantissant
donc de bonnes performances mais une fiabilité relativement faible.
▸ OS Généralités
▪ Micro-noyaux (AIX par exemple) : le noyau ne fournit qu’un nombre réduit de services, les autres étant
assurés par des programmes utilisateurs – abstraction simple. Performance réduite mais plus de fiabilité.
▪ Noyaux hybrides (Windows NT par exemple) : intermédiaire entre les deux catégories précédentes.
▪ Autres catégories : noyaux mégalithiques (version extrême de noyaux monolithiques), exokernel (version
extrême de micro-noyaux).

Copyright © Elysium Security Version 1.0 – 2020/2021


22
Rappels – Définitions

Anneaux mémoire

▪ L'OS doit garantir que seuls les programmes systèmes ont accès aux périphériques ou aux registres de
gestion de la mémoire virtuelle. Pour cela, les processeurs actuels incorporent une technique : les
▸ Hardware anneaux mémoires.
▸ OS Généralités ▪ Le processeur gère deux niveaux de privilèges : un mode noyau pour les programmes systèmes, où les
instructions d'accès aux périphériques peuvent s’exécuter, et un mode utilisateur pour les applications,
où ces opérations sont interdites.
▪ Ces anneaux mémoire/niveaux de privilèges, sont gérés en partie par le processeur. Celui-ci contient
un registre qui précise s'il est en espace noyau ou en espace utilisateur. À chaque accès mémoire ou
exécution d'instruction, le processeur vérifie si le niveau de privilège permet l'opération demandée.

Source : Wikipédia

Copyright © Elysium Security Version 1.0 – 2020/2021


23
Système de permission

Système de fichiers

➢ Terminologie :
▪ Périphérique de stockage : contient les données et les métadonnées.
▸ Hardware
▪ Fichier de données : contient les données (textes, images, vidéos, audios, etc.).
▸ OS Généralités ▪ Métadonnées : données à propos des données, utiles à leur description et à leur structuration (par exemple
pour un fichier de données : nom, type, taille, droits, dates, adresse, etc.).
➢ Hiérarchie :
▪ Sous Windows : chaque périphérique possède sa propre racine (identifiée par une lettre).
▪ Sous Unix : chaque périphérique ancre sa racine dans un répertoire (hiérarchie unique).

Copyright © Elysium Security Version 1.0 – 2020/2021


24
Rappels – Définitions

Hiérarchie sous Windows

▸ Hardware
▸ OS Généralités

Source : cnrs

Copyright © Elysium Security Version 1.0 – 2020/2021


25
Rappels – Définitions

Hiérarchie sous Linux

▸ Hardware
▸ OS Généralités

Source : cnrs

Copyright © Elysium Security Version 1.0 – 2020/2021


26
Rappels – Définitions

Linux Standard Base

▪ Linux Standard Base, développé par l'association Free Standard Group, est en fait un ensemble d'API,
de bibliothèques et de standards d'interopérabilité, basé sur les spécifications POSIX qui permettent
▸ Hardware aux développeurs de ne faire qu'un seul portage. Ce portage sera ainsi standard entre toutes les
distributions, ce qui accélère le développement et permet d'utiliser n'importe quel programme sur
▸ OS Généralités n'importe quelle distribution.
▪ Cela favorise la création de programmes et la compatibilité entre les différentes distributions, donc
la possibilité pour l'utilisateur de retrouver sous n'importe quelle distribution conforme LSB les
programmes qu'il utilise.
▪ De même, un développeur ou une entreprise créant un logiciel verra sa diffusion grandement facilitée,
car compatible avec toutes les distributions conforme LSB.
▪ La certification LSB se fait par l'Open Group, en collaboration avec le Free Standard Group.
▪ La LSB spécifie par exemple:
✓ Un ensemble de bibliothèque standards.
✓ Un nombre de commandes et d’utilitaires qui étendent le standard POSIX.
✓ La structure de la hiérarchie du système de fichiers.
✓ Les différents run levels.
✓ Plusieurs extensions à X Window System.

Copyright © Elysium Security Version 1.0 – 2020/2021


27
Rappels – Définitions

Linux Architecture

▸ Hardware
▸ OS Généralités

http://univermagg.com

Copyright © Elysium Security Version 1.0 – 2020/2021


28
Rappels – Définitions

Filesystem Hierarchy Standard

Filesystem Hierarchy Standard (« norme de la hiérarchie des systèmes de fichiers », abrégé en FHS) définit
l'arborescence et le contenu des principaux répertoires des systèmes de fichiers des systèmes d'exploitation GNU/Linux
▸ Hardware et de la plupart des systèmes Unix. De nombreuses distributions ne respectent pas strictement le standard.
▸ OS Généralités

Copyright © Elysium Security Version 1.0 – 2020/2021


29
Rappels – Définitions

Runlevel / Init

▪ Le run level, ou niveau de fonctionnement, est un chiffre (ou une lettre) utilisé par le processus init des systèmes
de type Unix pour déterminer les fonctions activées.
▸ Hardware ▪ Le run level varie généralement de 0 à 6 ou parfois S (single User). Chacun correspond à un ensemble d'applications à
▸ OS Généralités mettre en marche. En général, plus le run level est élevé, plus il y aura de fonctions actives.

Runlevel Description
0 Arrêt

1 Mode maintenance ou mono-utilisateur

2 Peut correspondre à un mode multi-utilisateur sans serveur applicatif.

3 Peut correspondre à un mode multi-utilisateur avec serveurs applicatifs.

4 ou 5 Parfois utilisé pour lancer l'environnement graphique.

6 Redémarrage

Copyright © Elysium Security Version 1.0 – 2020/2021


30
Rappels – Définitions

Runlevel / Systemd

▪ Systemd est un remplaçant du démon init system V pour Linux. Il a pour but d'offrir une meilleure gestion des
dépendances entre services, ainsi que de permettre le chargement en parallèle des services au démarrage.
▸ Hardware
▪ Cela permet réduire le temps de démarrage du système et de lancer moins de processus.
▸ OS Généralités ▪ Les distributions Fedora, Mageia, Open SUSE et Debian ont adopté ce système par défaut dans leurs distributions
respectives. Ubuntu utilise upstart (abandonné, remplacé par systemd) et Gentoo utilise OpenRC.

Source: https://wiki.archlinux.fr/Systemd

Copyright © Elysium Security Version 1.0 – 2020/2021


31
Rappels – Définitions

Systemd

systemd fournit un large panel de commandes qui vous permettent d'avoir des informations ou de modifier l'état de
votre système. Sans être exhaustif, voici les plus importantes :
▸ Hardware ✓ systemctl : contrôle systemd et gère les unités.
▸ OS Généralités ✓ journalctl : consultation du journal de systemd.
✓ loginctl : contrôle des sessions utilisateurs (systemd-logind).
✓ systemd-networkd : gestionnaire des connexions réseaux.

Systemd - System

Commande Description
systemctl reboot Redémarrer le système

systemctl poweroff Eteindre le système

systemctl suspend Mise en veille

systemctl hibernate Hibérnation

Copyright © Elysium Security Version 1.0 – 2020/2021


32
Rappels – Définitions

Systemd - Unité

Une unité représente un fichier de configuration. Entre autres, une unité peut être un service (*.service), un target
(*.target), un montage (*.mount), un socket (*.socket)…
▸ Hardware
▸ OS Généralités Commande Description
systemctl list-units Liste les unités

systemctl start <unit> Démarrer une unité

systemctl stop <unit> Arrêter une unité

systemctl restart <unit> Redémarrer une unité

systemctl reload <unit> Recharger une unite

systemctl status <unit> Voir son statut

systemctl enable <unit> Activer une unité au démarrage

systemctl disable <unit> Désactiver une unité au démarrage

Systemctl list-dependencies <unit> Lister les dépendances d'une unité

Copyright © Elysium Security Version 1.0 – 2020/2021


33
Rappels – Définitions

Systemd - Target

Commande Description
▸ Hardware systemctl show -p Wants -p Requires Vous pouvez voir ce que regroupe un target
▸ OS Généralités <target>
systemctl isolate multi-user.target Changement de Target
telinit 3
systemctl isolate runlevel3.target
/usr/lib/systemd/system/default.target Fichier qui contient le target par défaut (graphical par défaut si
interface graphique)
systemctl set-default -f multi-user.target Pour spécifier un autre niveau par défaut

Copyright © Elysium Security Version 1.0 – 2020/2021


34
Rappels – Définitions

Systemd – Debug/Tools

Commande Description
▸ Hardware systemctl --failed Lister les erreurs de lancement au démarrage
▸ OS Généralités
systemd-analyze Permet d’avoir un aperçu de ce qui est démarré et le temps que
ça prend
systemd-analyze blame Permet d’avoir un aperçu détaillé de ce qui est démarré et le
temps que ça prend

systemd-analyze plot > plot.svg Aperçu graphique

Copyright © Elysium Security Version 1.0 – 2020/2021


35
Rappels – Définitions

La console

▪ Malgré les environnements graphiques, l’utilisation de l’interpréteur de commandes est nécessaire pour des actions
d’administrations plus complexes. Connaître la CLI (Command Line Interface) est fondamental pour tout administrateur.
▸ Hardware
▪ Ce dernier permet d’exécuter des instructions via le clavier ou au sein d’un script et en retourne des résultats.
▸ OS Généralités ▪ Cet interpréteur est appelé Shell (coquille), en lien avec l’image du Kernel (noyau) entouré par la coquille, le shell.
▪ Le shell est donc une interface fonctionnant en mode texte entre le noyau Linux et les utilisateurs, voire les applications.

Copyright © Elysium Security Version 1.0 – 2020/2021


36
Rappels – Définitions

Les shells

▪ Il existe plusieurs shells, chacun disposant de spécificités propres. Le Bourne Shell (sh) est le shell le plus
connu et le plus courant sur les Unix. Le C-Shell (csh) reprend la structure du langage C. Le Korn Shell
(ksh) est une évolution du Bourne Shell. Le Z-Shell (zsh) est lui-même une évolution du Korn Shell.
▸ Hardware
▪ Le shell de référence sous Linux se nomme le Bourne Again Shell (bash). Voici une liste non exhaustive
▸ OS Généralités d’interpréteurs de commandes que vous pouvez rencontrer sous Linux :
✓ Sh : Thompson Shell (n’existe plus)
✓ Sh: Bourne Shell (a remplacé le précédent)
✓ Bash: Bourne Again Shell
✓ Ksh: Korn Shell
✓ Csh: C Shell
✓ Zsh: Z shell
✓ Etc..
▪ La liste des shells actuellement présents sur votre installation Linux est dans le fichier /etc/shells.

Copyright © Elysium Security Version 1.0 – 2020/2021


37
Rappels – Définitions

Les divers types de fichiers

On distingue trois types de fichiers:


▪ Ordinaires : les fichiers ordinaires sont aussi appelés fichiers réguliers, ordinary files ou regular files. Ce sont
▸ Hardware des fichiers tout à fait classiques qui contiennent des données (texte, image, audio, binaire, script, base de
▸ OS Généralités données, bibliothèques).
▪ Catalogues : les fichiers catalogues sont les répertoires, dossiers ou directory. Les répertoires permettent
d’organiser le disque dur en créant une hiérarchie. Un répertoire peut contenir des fichiers normaux, des
fichiers spéciaux et d’autres répertoires, de manière récursive. Un répertoire n’est rien d’autre qu’un fichier
particulier contenant la liste des fichiers eux-mêmes présents dans ce répertoire…
▪ Spéciaux : le troisième type de fichier est le fichier spécial. Il existe plusieurs genres de fichiers spéciaux. Ils se
trouvent principalement dans le répertoire /dev s’ils représentent des périphériques. Ce sont principalement
des fichiers servant d’interface pour les divers périphériques. Ils peuvent s’utiliser, suivant le cas, comme des
fichiers normaux. Un accès en lecture ou écriture sur ces fichiers est directement redirigé vers le périphérique
(en passant par le pilote associé s’il existe).

Copyright © Elysium Security Version 1.0 – 2020/2021


38
Rappels – Définitions

L’inode

▪ Un nœud d'index ou inode est une structure de données contenant des informations à propos d'un fichier
stocké dans certains systèmes de fichiers (notamment de type Linux/Unix).
▸ Hardware ▪ À chaque fichier correspond un numéro d'inode (i-number) dans le système de fichiers dans lequel il réside,
unique au périphérique sur lequel il est situé.
▸ OS Généralités
▪ Chaque fichier a un seul inode, même s'il peut avoir plusieurs noms (chacun de ceux-ci fait référence au même
inode). Chaque nom est appelé link.
▪ Les inodes peuvent, selon le système de fichiers, contenir aussi des informations concernant le fichier, tel que
son créateur (ou propriétaire), son type d'accès (par exemple sous Unix : lecture, écriture et exécution), etc.

bob@machine:/home/bob$ ls –i fichier

Copyright © Elysium Security Version 1.0 – 2020/2021


39
Rappels – Définitions

X Windows System

▪ Unix et Linux disposent d’une architecture graphique totalement différente des autres systèmes d’exploitation dont
l’interface graphique est intégrée au plus profond.
▪ Le système graphique de base s’appelle, X Windows System, X11 ou tout simplement X.
▸ Hardware
▪ X est un système graphique complet chargé de dessiner et de gérer les évènements des composants habituels d’un
▸ OS Généralités environnement graphique utilisateur (Graphical User Interface): fenêtres, boutons, menus, listes, cases à cocher,
ascenseur, curseur de souris etc.
▪ X peut afficher et gérer ces composants graphiques mais n’est pas chargé de les mettre en place. X ne gère que les
interactions entre l’homme et la machine.

Copyright © Elysium Security Version 1.0 – 2020/2021


40
Rappels – Définitions

Gestionnaire de fenêtre

▪ Comme X ne fournit pas que le nécessaire de base, il dessine la fenêtre mais ce n’est pas lui qui détermine comment
doivent être dessinés ces éléments. Un autre programme client de X doit dire au serveur comment dessiner la fenêtre:
c’est le gestionnaire de fenêtre. Le serveur X affiche le résultat dessiné par ce gestionnaire: fenêtres, sélections,
▸ Hardware
déplacements et décorations (styles, couleurs etc..).
▸ OS Généralités ▪ Il existe une grande variété de gestionnaire de fenêtre, certains sont très simples et se limitent au strict minimum,
d’autres sont très complets (thèmes, menus contextuels, panneaux de configurations).

TWM

Kwin Kde plasma 5


Copyright © Elysium Security Version 1.0 – 2020/2021
41
Rappels – Définitions

Widgets et toolkits

▪ Un élément d’interface graphique (bouton, menu, champ de saisie, etc.) s’appelle un widget (Windows
Gadget) soit un gadget pour fenêtres. Une bibliothèque graphique en contient plusieurs.
▸ Hardware ▪ La bibliothèque contient à la fois les fonctions pour dessiner les widgets et les fonctions pour les gérer.
▸ OS Généralités Lorsqu’une bibliothèque contient un kit complet et étendu de widget, on la nomme la nomme Widget
toolkit ou toolkit.
▪ Il en existe plusieurs :
✓ Xt (Xtoolkit): toolkit par défaut de X Window.
✓ MOTIF: longtemps utilisé, il est standard POSIX IEEE. Cependant propriétaire jusqu’en 2000 les
développeurs en ont créés deux autres.
✓ GTK (Gimp toolkit): il a été créé pour dessiner l’interface graphique de Gimp. Devenant de plus en
plus performant, de nombreux développeurs l’ont repris pour leur besoin. C’est la bibliothèque
par défaut de l’environnement de bureautique GNOME. Cette bibliothèque est développée en C.
✓ QT: développé en langage C ++ mais peut être exploitée dans une dizaine de langages. En plus des
fonctions de dessin et de gestion des widgets, QT propose un environnement complet de
développement d’applications graphiques et non-graphiques: Base de donnée SQL, XML,
multithreading, gestion de fichiers, internationalisation etc. QT est utilisé par l’environnement
bureautique KDE.
✓ Etc.

Copyright © Elysium Security Version 1.0 – 2020/2021


42
Rappels – Définitions

Bureaux virtuels

X Window permet l’utilisation de plusieurs espaces de travail dans une même session.
▸ Hardware
▸ OS Généralités

Copyright © Elysium Security Version 1.0 – 2020/2021


43
Rappels – Définitions

Environnements de bureau

▪ En 1996, Linux est parfaitement mûr pour les entreprises mais il reste un marché a conquérir, les PC de bureau.
▸ Hardware ▪ Les environnements graphiques Unix et Linux ne peuvent absolument pas rivaliser en termes de convivialité et d’offre
logicielle grand public avec les systèmes de Microsoft et de Apple. Tout est à faire: Il faut rattraper les concurrents,
▸ OS Généralités faire mieux et innover.
▪ Ce travail ne décourage pas certains groupes de développeurs. Puisque Linux n’est pas assez convivial pour le grand
public, il faut créer un environnement bureautique graphique adapté aux besoins. Deux équipes démarrent des
projets à quelques mois d’intervalle, KDE (octobre 1996) et GNOME (Aout 1997).

Copyright © Elysium Security Version 1.0 – 2020/2021


44
Rappels – Définitions

Projet Freedesktop

▪ Les développeurs de KDE et de GNOME ont décidé de travailler sur une base commune de configuration pour une
meilleure intégration des applications GNOME sous KDE et réciproquement.
▸ Hardware ▪ Le résultat est Freedesktop, une zone de communication et de collaboration informelle destinée à travailler à
▸ OS Généralités l’interopérabilité des divers environnements graphiques pour Linux et Unix.

Copyright © Elysium Security Version 1.0 – 2020/2021


45
Rappels – Définitions

Xorg

▪ Xorg (fork de XFree86 depuis 2004) est toujours l’environnement X Window principal de Linux. Ce logiciel propose une
implémentation libre du protocole X11 datant des années 80.
▸ Hardware ▪ Les usages ont beaucoup changé depuis, avec la généralisation des compositeurs graphiques avec des effets visuels
▸ OS Généralités avancés pour afficher les fenêtres, et donc un rendu complexe. Cela n'était pas du tout optimal, le protocole X11 n'ayant
évidemment pas été conçu pour ça.
▪ De plus, X11 pose un problème de sécurité, puisque les informations sont échangées (entre les fenêtres/applications)
sans aucun souci de confidentialité, autorisant des applications à en "espionner" d'autres…

Copyright © Elysium Security Version 1.0 – 2020/2021


46
Rappels – Définitions

Wayland

▪ Un nouveau projet de protocole de serveur d'affichage (Wayland) permettant à un compositeur (Window manager)
de communiquer avec ses clients fait son apparition depuis 2008. Wayland est aussi le nom de la librairie
implémentant ce protocole.
▸ Hardware
▪ Wayland lui, isole les entrées/sorties de chaque fenêtre, et limite la quantité de code exécutée en tant que root.
▸ OS Généralités
▪ L'architecture de Wayland optimise le fonctionnement des compositeurs et facilite le rendu aujourd'hui complexe de
l'image des fenêtres, en sécurité et avec de meilleures performances.
▪ Les environnements GNU/Linux majeurs, tels que Gnome et KDE, supportent ou prévoient de supporter Wayland. Un
compositeur nommé Weston a été développé en même temps que Wayland pour servir de référence en terme
d'implémentation du protocole.

https://wayland.freedesktop.org/

Copyright © Elysium Security Version 1.0 – 2020/2021


47
Rappels – Définitions

Administration des utilisateurs

▪ L’identification, c’est savoir qui est qui, afin de déterminer les droits de la personne qui se connecte.
Un utilisateur est identifié par un login.
▸ Hardware ▪ L’authentification, c’est apporter la preuve de qui on est, par exemple, via un secret partagé entre
▸ OS Généralités l’utilisateur et le système. L’utilisateur est authentifié par un mot de passe.
▪ Un utilisateur est l’association d’un login, d’un UID (user ID) et d’au moins un GID (group ID).
▪ L’utilisateur dispose des attributs de base suivants:
✓ Login
✓ Mot de passe
✓ UID/GID
✓ Descriptif
✓ Répertoire de connexion
✓ Commande de connexion
▪ Les UID d’une valeur < 100 sont en principe associés à des comptes spéciaux avec des droits étendus
(root = 0). Selon les distributions, les UID à partir de 500, 1000 et ce jusqu’à 60000, sont des uids sans
pouvoirs particuliers.

Copyright © Elysium Security Version 1.0 – 2020/2021


48
Rappels – Définitions

Administration des utilisateurs

▪ Le fichier /etc/passwd contient la liste des utilisateurs du système local. Il est lisible par tout le monde. Les
▸ Hardware informations qu’il contient sont publiques (Login, Shadow, UID, GID, commentaire, répertoire, shell)
▸ OS Généralités ▪ Le fichier /etc/group contient la définition des groupes d’utilisateurs et pour chacun la liste des utilisateurs dont il
est le groupe secondaire.
▪ Le fichier /etc/shadow accompagne le fichier /etc/passwd. Il contient le condensat des mots de passe utilisateurs
et les informations associées (validité..). L’algorithmes de hash peut être changé via les fichiers :
✓ /etc/login.defs : ENCRYPT_METHOD SHA512»
✓ le module PAM /etc/pam.d/common-password: password [success=1 default=ignore]
pam_unix.so obscure sha512

Copyright © Elysium Security Version 1.0 – 2020/2021


49
Rappels – Définitions

Administration des utilisateurs – Sécurité des mot de passe

▪ La commande passwd permet de gérer les mots de passe mais aussi les autorisations de connexion et la plupart
▸ Hardware des champs présents dans /etc/shadow.
▸ OS Généralités ▪ Les modules PAM (Pluggable Authentification Module) peuvent imposer des contraintes pour le choix du mot
de passe : longueur, dictionnaire etc.
▪ La commande pwck effectue une vérification des fichiers /etc/passwd et /etc/shadow et reporte les erreurs. La
commande grpck fait la même chose pour les groupes.
▪ Vérifier les connexions : lastlog –u username | Last

Copyright © Elysium Security Version 1.0 – 2020/2021


50
Rappels – Définitions

Administration des utilisateurs – PAM

▪ PAM (Pluggable Authentification Modules) est un ensemble de modules et une bibliothèque


permettant de mettre en place des mécanismes d’authentification avancés pour tous les outils
▸ Hardware
nécessitant une sécurité accrue.
▸ OS Généralités ▪ L’authentification est basée sur des modules, chaque module peut utiliser des mécanismes différents
pour tenter d’authentifier un utilisateur (Unix local, LDAP, Active Directory, Token PKACS#11, Emprunte
digital etc…).
▪ Un outil appelle la bibliothèque libpam.so pour un besoin d’authentification. La bibliothèque lit un
fichier de configuration ou l’appel à plusieurs modules peut être demandé. Chaque module retourne
Vrai ou Faux.
▪ Suivant la configuration utilisée, vrai peut être un prérequis pour continuer avec un autre module ou être
suffisant pour s’authentifier sur le système.
▪ Les fichiers de configurations sont placés dans /etc/pam.d/

Copyright © Elysium Security Version 1.0 – 2020/2021


51
Rappels – Définitions

Administration des utilisateurs – PAM

La syntaxe d’un fichier de configuration de PAM est : Type_Module contrôle module


arguments
▸ Hardware Type de module :
▪ Auth: Module d’authentification (exemple demande de login/MDP)
▸ OS Généralités
▪ Account: autorisation, gestion de comptes
▪ Password: vérification et mise à jour des informations de sécurité (mot de passe valable ?
Demande de changement de mot de passe.. Etc.).
▪ Session: Modification de l’environnement de l’utilisateur.
Contrôle :
▪ Required: Réussite requise
▪ Requisite: Un échec termine la session d’authentification, la réussite l’autorise à continuer
▪ Sufficient: une réussite contourne les autres modules.
▪ Optional: Le résultat est ignoré
Module :
▪ Pam_unix.so: authentification standard
▪ Pam_env.so: Définition des variables d’environnement
▪ Pam_nologin.so: Interdit la connexion d’utilisateur listé dans /etc/nologin
▪ Pam_deny.so: retourne faux
https://thefreecountry.org/
▪ Yubiko_pam.so: OTP Yubikey

Copyright © Elysium Security Version 1.0 – 2020/2021


2.
Virtualisation et conteneurisation
des systèmes
53
Cloud

Cloud ou le nuagique en québécois

Le Cloud correspond à l’accès des services informatiques via Internet à partir de fournisseur.
Dans le cloud, l’ensemble de matériels, de raccordements réseau et de logiciels fournissant des services
▸ Cloud
qu'individus et collectivités peuvent exploiter n'importe où dans le monde. Dans cette philosophie, la puissance
▸ Couche d’abstraction de calcul est remplacée par la disposition de la puissance d’un fournisseur.
▸ Conteneurs
▸ Virtualisation Le Nuagique se caractérise par plusieurs principes :
• les ressources en libre-service : avec adaptation automatique à la demande de la capacité de stockage et
puissance de calcul, selon le besoin du consommateur, tant qu'il peut payer. En cloud computing la demande
est automatique et la réponse immédiate ;
• l’ouverture : les services de cloud computing sont accessibles via l'Internet, via des techniques standardisées,
HTTPS everywhere ;
• la mutualisation : elle permet de combiner des ressources hétérogènes (matériel, logiciel, trafic réseau) pour
servir plusieurs consommateurs à qui les ressources sont automatiquement attribuées ;

Copyright © Elysium Security Version 1.0 – 2020/2021


54
Cloud

Les Services du Nuagique

Il existe trois principaux types de services dans le nuage informatique :

▸ Cloud ▪ SaaS (Software as a Service) :


▸ Couche d’abstraction ✓ Donne accès à des applications sous la forme d’un service packagé prêt à l’emploi.
▸ Conteneurs
▸ Virtualisation ▪ PaaS (Platform as a Service) :
✓ Donne accès à des environnements de développement complets permettant de créer et héberger
des applications sans se soucier de l’infrastructure sous-jacente.

▪ IaaS (Infrastructure as a Service) :


✓ Donne accès à des services de mise en réseau, de calcul, à des ordinateurs (virtuels ou non) ou
encore à de l'espace de stockage.
✓ Mode offrant le plus de flexibilité et de contrôle des ressources informatiques.

▪ Les autres modes : DaaS, CaaS, MaaS, SECaaS, DRaaS, etc.

Copyright © Elysium Security Version 1.0 – 2020/2021


55
Cloud

Les Services du Nuagique

▸ Cloud
▸ Couche d’abstraction
▸ Conteneurs
▸ Virtualisation

https://wikitroll.org/

Copyright © Elysium Security Version 1.0 – 2020/2021


56
Cloud

Le Nuagique PaaS

▪ Plate-forme en tant que service est l'un des types de Cloud, destiné à héberger des applications. L'entité
▸ Cloud cliente (développeurs ou entreprise) maintient les applications proprement dites. Le fournisseur cloud
maintient la plate-forme d'exécution de ces applications : le matériel du ou des serveurs (la carte mère, la
▸ Couche d’abstraction mémoire vive…), les logiciels de base (c'est-à-dire le ou les systèmes d'exploitation, le ou les moteurs de
▸ Conteneurs bases de données…) et l'infrastructure (de connexion au réseau, de stockage, de sauvegarde).
▸ Virtualisation ▪ La démocratisation des Conteneurs Linux notamment via le projet open-source Docker a permis
l’expansion des offres de type PaaS.

Logo de Linux Containers


Copyright © Elysium Security Version 1.0 – 2020/2021
57
Cloud

Le Nuagique IaaS

Infrastructure en tant que service est un modèle de Cloud qui apporte la gestion du matériel serveur,
des couches de virtualisation, du stockage, du réseaux par le fournisseur. Le client n’a plus qu’à gérer le
Middleware des serveurs, et les logiciels applicatifs (programmes, configurations, services applicatifs)

C'est un modèle où l'entreprise dispose sur abonnement payant d'une infrastructure informatique
(serveurs, stockage, sauvegarde, réseau) qui se trouve physiquement chez le fournisseur qui est aussi
responsable pour la sécurité de l'infrastructure.

Les fournisseurs de services proposent différents types d’IaaS: des infrastructures virtuels
développées à partir de solutions Qemu-KVM, Xen, Vmware et HyperV.

Copyright © Elysium Security Version 1.0 – 2020/2021


58
Les couches d’abstraction logicielles

Wine

▪ Les technologies de couche d’abstractions sont des programmes qui s’interfacent avec des composants systèmes afin de
modifier le comportement du processus. Ils permettent sans compartimentation, ni virtualisation de prendre le contrôle
▸ Cloud du flux d’exécution lorsque le processus demande des ressources externes au programme.
▸ Couche d’abstraction ▪ Le cas de Wine permet à des programmes compilés au format PE32 d’être exécuté sur les systèmes Linux. Wine détourne
les appels systèmes, le chargement de bibliothèque, l’appel de fonction permettant de simuler sans émuler, ni virtualiser,
▸ Conteneurs un environnement de type Windows.
▸ Virtualisation

https://www.playonlinux.com/fr
https://www.winehq.org/ https://www.cedega.com/
https://lutris.net/

Copyright © Elysium Security Version 1.0 – 2020/2021


59
Les couches d’abstraction logicielles

Cedega

▪ Cedega est un logiciel propriétaire de couche d’abstraction basé sur wine pour simuler des programmes Windows sur Linux.
Il a pour but d’exécuter des jeux vidéos sur linux.
▸ Cloud ▪ Visant à obtenir une large compatibilité avec ces derniers, son développement implique, entre autres, l'implémentation la
plus large possible de l'interface de programmation DirectX.
▸ Couche d’abstraction
▸ Conteneurs
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


60
Les couches d’abstraction logicielles

Microsoft POSIX Subsystem

▪ Ce sous-système implémente uniquement la norme POSIX.1 standard couvrant principalement les


interfaces de programmation du noyau et de la bibliothèque C qui permettaient d'écrire un
▸ Cloud programme pour d'autres opérations conformes à POSIX.1. Le sous-système Windows NT POSIX ne
▸ Couche d’abstraction fournissait pas les parties d'environnement utilisateur interactif de POSIX, initialement standardisées
comme POSIX.2. Autrement dit, Windows NT n'a fourni ni shell POSIX ni commande Unix comme ls.
▸ Conteneurs
Le sous-système NT POSIX n'a ​également fourni aucune des extensions POSIX postdatées à la
▸ Virtualisation création de Windows NT 3.1, telles que les threads POSIX ou POSIX IPC.

▪ L'environnement d'exécution du sous-système est fourni par deux fichiers : psxss.exe et psxdll.dll.
Une application POSIX utilise psxdll.dll pour communiquer avec le sous-système tout en
communiquant avec posix.exe afin de fournir des capacités d'affichage sur le bureau Windows.

▪ Le sous-système POSIX a été remplacé dans Windows XP et Windows Server 2003 par "Windows
Services for UNIX", (SFU) qui est en partie basé sur le code OpenBSD et d'autres technologies
développées par Interix, une société achetée plus tard par Microsoft. SFU a été supprimé des versions
ultérieures de Windows 8 et Windows Server 2012. SFU est logiquement, mais pas formellement,
remplacé par le sous-système Windows pour Linux (WSL) dans la mise à jour anniversaire de
Windows 10 et Windows Server 2016 version 1709 respectivement.

Copyright © Elysium Security Version 1.0 – 2020/2021


61
Conteneurs

UML – User Mode Linux

▪ L’espace de protection de mémoire en anneaux 3 est un moyen sûr et sécurisé d'exécuter des processus. Si un
programme a une erreur fatale, le système fonctionne toujours (sauf pour systemd).
▸ Cloud ▪ UML permet d’exécuter le noyaux linux en mode utilisateur (ring 3) pour lancer d’autres systèmes
▸ Couche d’abstraction d’exploitation de type linux. UML est une technologie ancienne, on lui préférera la virtualisation.

▸ Conteneurs
▸ Virtualisation

Procédure d’installation : https://wiki.archlinux.org/index.php/User-mode_Linux

Copyright © Elysium Security Version 1.0 – 2020/2021


62
Conteneurs

Définition Conteneurs

▪ Un conteneur est une enveloppe virtuelle qui permet de distribuer une application avec tous les éléments
dont elle a besoin pour fonctionner : fichiers source, environnement d'exécution, librairies, outils et fichiers.
▸ Cloud ▪ Ils sont assemblés en un ensemble cohérent et prêt à être déployé sur un serveur et son système
▸ Couche d’abstraction d'exploitation.
▪ Contrairement à la virtualisation de serveurs et à une machine virtuelle, le conteneur n’intègre pas de noyau,
▸ Conteneurs
il s’appuie directement sur le noyau de l'ordinateur sur lequel il est déployé.
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


63
Conteneurs

Linux / Unix - chroot

▪ La fonctionnalité chroot (pour « change root ») permet à une application de changer de racine sur Linux. Une
application cible un dossier qui devient la nouvelle arborescence du système de fichier pour ce processus et ses
nouveaux processus enfants. Le dossier cible doit contenir toutes les ressources fichiers de l’application pour que
▸ Cloud celle-ci fonctionne correctement.
▸ Couche d’abstraction ▪ On peut monter un disque dur qui contient un autre linux et utiliser la commande chroot pour effectuer des
▸ Conteneurs opérations de maintenance sur un autre linux. Cette technique permet de réparer son système sans le démarrer.
▪ Les conteneurs utilisent chroot pour changer leurs racines sur le système de fichier du conteneur.
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


64
Conteneurs

BSD Jails

▪ Les BSD Jails (« Jail » signifie prison en anglais) sont une technologie propre au système d'exploitation
FreeBSD, qui permettent de compartimenter des processus et leurs descendants.
▸ Cloud ▪ BSD Jail recopie les fonctionnalités de chroot et y applique plus de restriction. On y retrouve des
outils de gestion des systèmes sous Jail :
▸ Couche d’abstraction
➢ Installer un système
▸ Conteneurs
▪ bsdinstall jail /here/is/the/jail
▸ Virtualisation ➢ Démarrer un jail
▪ service jail start www
➢ Stoper un jail
▪ service jail stop www

▪ Les Jails permettent de contraindre l'exécution d'une application sensible (une application tournant
avec des privilèges importants, comme un serveur HTTP par exemple) ; cela permet de garder le
système hôte sain en cas de problèmes avec l'application « emprisonnée » à la suite d'une activité
malveillante ou tout simplement lors de tests/debug.
▪ Autre particularité des jails, les images dites virtuelles systèmes permettent l'exécution de multiples
applications ; les objectifs sont les mêmes que précédemment, mais à plus large échelle.

Copyright © Elysium Security Version 1.0 – 2020/2021


65
Conteneurs

Linux – cgroups et namespace

▪ Les cgroups (control groups) sont une fonctionnalité du noyau linux pour limiter, compter et isoler l'utilisation
des ressources (processeur, mémoire, utilisation disque, etc.).
▸ Cloud ✓ Limitation des ressources : des groupes peuvent être mis en place afin de ne pas dépasser une limite de
▸ Couche d’abstraction mémoire
✓ Priorisation : certains groupes peuvent obtenir une plus grande part de ressources processeur ou de
▸ Conteneurs
bande passante d’entrée-sortie
▸ Virtualisation ✓ Comptabilité : permet de mesurer la quantité de ressources consommées par certains systèmes en vue
de leur facturation par exemple
✓ Isolation : séparation par espace de nommage pour les groupes, afin qu'ils ne puissent pas voir les
processus des autres namespace, ainsi que leurs connexions réseaux ou leurs fichiers

Copyright © Elysium Security Version 1.0 – 2020/2021


66
Conteneurs

Linux – cgroups et namespace

▪ Les Namespaces sont une fonctionnalité du noyau Linux qui permettent à différents processus d'avoir chacun une
vue différente sur le système de fichier. Normalement, vous n'avez qu'une seule et unique arborescence de
fichiers avec les mêmes montages, la même arborescence de processus et les mêmes droits (UID et GID) pour
▸ Cloud l’ensemble du système.
▸ Couche d’abstraction ▪ Les Namespaces définissent un nouveau point de montage de la racine, peuvent exclure des dossiers (point de
▸ Conteneurs montage spécial), définissent un sous ensemble d’arborescence de processus (chaque processus à son PID de
Namespaces en plus du PID réel), une sous gestion de droit UID et GID et un sous gestionnaire IPC.
▸ Virtualisation
▪ Les Namespaces peuvent aussi appliquer des changements réseaux en créant une nouvelle interface réseau et en
changeant le nom d’hôte.

Copyright © Elysium Security Version 1.0 – 2020/2021


67
Conteneurs

Linux – seccomp

▪ Seccomp permet a un processus d'effectuer une transition unidirectionnelle vers un état de sécurité dans
lequel il ne peut plus effectuer d'appel système excepté exit(), sigreturn(), read() and write() sur des
descripteurs déjà ouvert.
▸ Cloud ▪ Si le processus essaie d'effectuer un autre appel système, le noyau terminera le processus avec le signal SIGKILL
▸ Couche d’abstraction or SIGSYS2,3.
▪ Ce mécanisme ne virtualise pas les ressources systèmes mais isole entièrement les processus les uns par
▸ Conteneurs
rapport aux autres.
▸ Virtualisation ▪ Seccomp via BPF étant paramétrable, il est possible d’effectuer des listes blanches ou noires des appels
systèmes.

Copyright © Elysium Security Version 1.0 – 2020/2021


68
Conteneurs

cgroups, namespace et seccomp avec systemd

▪ Dans les nouvelles versions, le gestionnaire de démon systemd permet de configurer des services et des
conteneurs en utilisant les namespaces et cgroups. L’outil systemd-nspwan permet de créer un conteneur
entier et de bloquer le service dans une nouvelle arborescence.
▸ Cloud ▪ D’autres options permettent de cacher des répertoires, donner un accès lecture à un répertoire et mettre une
▸ Couche d’abstraction limite de mémoire et CPU à votre service. Grâce à seccomp, systemd possède des fonctionnalités similaires
▸ Conteneurs pour bloquer les appels systèmes d’un service avec l’option SystemCallFilter.

▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


69
Conteneurs

Linux - systemd-nspawn

▪ À la marge et peu connu, systemd peut gérer des conteneurs : systemd-nspawn à un positionnement particulier,
une sorte de chroot sous stéroïdes, un conteneur « système ».
▸ Cloud ▪ systemd-nspawn peut être utilisé pour exécuter une commande ou un système d'exploitation dans un conteneur
namespace. Il est plus puissant que chroot car il virtualise entièrement la hiérarchie du système de fichiers, ainsi
▸ Couche d’abstraction que l'arborescence des processus, les différents sous-systèmes IPC et le nom d'hôte et de domaine.
▸ Conteneurs
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


70
Conteneurs

Linux - systemd-nspawn

▸ Cloud
▸ Couche d’abstraction
▸ Conteneurs Ring 3
▸ Virtualisation

Ring 0 [
Copyright © Elysium Security Version 1.0 – 2020/2021
71
Conteneurs

Linux - OpenVZ

▪ OpenVZ est un outil obsolète de conteneur sur linux. Il fonctionne avec un kernel modifié proche des
fonctionnalité en version 2.6.X de Linux (cette version ne gère que 64 Go de mémoire vive).
▪ OpenVZ permet d'exécuter de multiples instances de systèmes d'exploitation isolés, qualifiées de serveurs
▸ Cloud privés virtuels (VPS) ou environnements virtuels (VE).
▸ Couche d’abstraction
▸ Conteneurs
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


72
Conteneurs

Linux - LXC

▪ LXC porte son nom venant de la contraction de l’anglais Linux Containers.


C’est un système de virtualisation léger, utilisant l'isolation comme
méthode de cloisonnement au niveau du système d'exploitation.
▸ Cloud
▪ Il est utilisé pour faire fonctionner des environnements Linux isolés les uns
▸ Couche d’abstraction des autres dans des conteneurs, partageant le même noyau et une plus ou
▸ Conteneurs moins grande partie du système hôte.
▪ Grâce aux cgroups de l'environnement d'exécution, les conteneurs ont des
▸ Virtualisation ressources processeur, mémoire vive, définies au sein du système hôte. LXC
modifie l’arborescence des processus, le système d’utilisateur, les points de
montage, le système IPC par l’applications de namespace Linux.
▪ Ce système est similaire aux autres systèmes de virtualisations au niveau du
système d'exploitation comme OpenVZ sur Linux ou comme les BSD Jails de
FreeBSD.
▪ C'est la société Canonical, à l'origine de la distribution Linux Ubuntu, qui
soutient le projet LXC.

Copyright © Elysium Security Version 1.0 – 2020/2021


73
Conteneurs

Linux - Docker

▪ Comme LXC, Docker reprend les fonctionnalités des namespaces et cgroups pour les environnements conteneurisés.
L’approche de Docker est différente de LXC. Dans LXC nous avons un système d’exploitation complet qui tourne et
évolue en permanence. Dans Docker, nous avons des images fixes non évolutives qui contiennent un ensemble de
▸ Cloud programme pour exécuter une application.
▸ Couche d’abstraction ▪ Lors de l’exécution des images, Docker applique un OverlayFS laissant l’image en lecture seule et l’écriture ou la
modification dans chemin spécifique au conteneur. Si le conteneur s’arrête, les modifications au sein du système de
▸ Conteneurs fichier sont perdues. Il est donc possible de lancer plusieurs fois une image qui s’exécute dans un conteneur différent
▸ Virtualisation pour chaque instance.

Copyright © Elysium Security Version 1.0 – 2020/2021


74
Conteneurs

Linux – Docker – Focus Dockerfile

▪ Les images Docker sont construites à partir du


fichier se nommant Dockerfile. C’est via ce fichier
▸ Cloud que vous pouvez apporter des modifications
▸ Couche d’abstraction persistantes aux images précédemment crées.
▪ Un Dockerfile se base toujours sur une image
▸ Conteneurs préexistante. Docker intègre un catalogue en ligne
▸ Virtualisation d’image construite par la communauté. Il est assez
rare de partir de zéro pour la création d’image.
▪ Pour créer une image sans Dockerfile from scratch,
il faut au préalable une archive (tar) contenant les
fichiers de la future image et l’importer via la
commande docker import.

Copyright © Elysium Security Version 1.0 – 2020/2021


75
Conteneurs

Linux – Docker – Focus OverlayFS

▪ L’OverlayFS permet des points de montage multiples sur le même dossier permettant de fusionner des fichiers et
dossiers. Chaque modification se retrouve sur la partition de montage la plus haute. Les autres points de montage
sont en lectures seules.
▸ Cloud
▪ La création d’image Docker se base notamment sur la fusion des points de montage (les successions de commande
▸ Couche d’abstraction dans le Dockerfile) ou via la commande docker commit.
▸ Conteneurs ▪ Docker gère la persistance par un système de volume. Les volumes sont des points de montage dans le conteneur
différents de l’application de l’OverlayFS. Les volumes sont généralement rattachés au système de fichier hôte.
▸ Virtualisation

Système de fichier actuel

Modification

Image en lecture seule

Copyright © Elysium Security Version 1.0 – 2020/2021


76
Conteneurs

Linux – Docker – Gestion réseaux

▪ Pour communiquer entre conteneurs et vers l’extérieur Docker crée des bridges permettant l’isolation de la partie
réseau des conteneurs. Par défaut, il n’existe qu’un bridge, c’est à l’utilisateur ou aux applications tiers de
configurer de nouveau bridge. Docker manipule en partie le firewall pour appliquer des restrictions ou
▸ Cloud redirections de flux réseaux.
▸ Couche d’abstraction
▪ Il est possible de lier des ports de la machine hôte ou des conteneurs vers un conteneur. Voir exemple ci-dessous.
▸ Conteneurs
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


77
Conteneurs

Linux – Docker – Schema Administration

Dans les faits, Docker se manipule en lançant un docker build ou en sélectionnant une image dans son catalogue en ligne.

1. Il va prendre aller chercher l’image phase


▸ Cloud 2. On lance l’image qui devient un conteneur
▸ Couche d’abstraction 3. On manipule l’image
4. Si on veut sauvegarder les modifications on applique un docker commit
▸ Conteneurs
5. On partage l’image sur le docker Hub ou non.
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


78
Conteneurs

LXC vs Docker

▪ LXC contient un système entier dans chaque conteneur (excepté le kernel). Les principes d’administration d’un
système d’exploitation restent les mêmes que sur les systèmes standards.
▪ La philosophie de Docker est différente dans son approche de contenerisation. Avec des fonctionnalité de
▸ Cloud gestionnaire de version, des connexions entre conteneur et sa gestion de fichier, Docker est outil orienté devOps.
▸ Couche d’abstraction ▪ En comparaison LXC est plus proche d’un mode traditionnel de gestion de VPS. Là où Docker permet le déploiement
rapide d’application compartimentée et orchestrée.
▸ Conteneurs
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


79
Conteneurs

Kubernetes

▪ Kubernetes abrégé k8s est un orchestrateur de conteneur écrit en langage de programmation Go. Il gère le placement des
conteneurs, le failover, l’affectation de ressources, la gestion réseau des conteneurs, la supervision, la mise à échelle dans un
▸ Cloud cluster (sur plusieurs machines).
▪ K8S s’appuie sur Docker pour la gestion des conteneurs sur l’hôte mais également sur des alternatives à docker comme CR
▸ Couche d’abstraction ▪ I-O, containerd, Kata container..
▸ Conteneurs ▪ Pour gérer l’ensemble du parc, k8s utilise des machines de type « node master » qui organisent le travail des autres
machines nommées « node worker ».
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


80
Conteneurs

Kata Containers

▪ Kata Containers est un projet open source qui crée un environnement d'exécution de conteneur sécurisé avec des
▸ Cloud machines virtuelles. L’isolation est plus forte en utilisant la technologie de virtualisation matérielle comme deuxième
couche de défense.
▸ Couche d’abstraction
▪ Les machines virtuelles n’embarquent que le noyaux linux et les outils nécessaires pour la gestion de conteneurs.
▸ Conteneurs ▪ Kata Containers permet d'améliorer la sécurité dans l'écosystème des conteneurs en ajoutant des VM et des hyperviseurs
▸ Virtualisation légers comme couche d'isolation des charges de travail. Annoncé il y a un an et demi à la conférence KubeCon, ce projet est
développé par des programmateurs employés par 14 entreprises différentes. La promesse ? La vitesse des conteneurs, avec
un boot sous la seconde associée à la sécurité des machines virtuelles.

Copyright © Elysium Security Version 1.0 – 2020/2021


81
Virtualisation

Définitions

▪ Une machine virtuelle est une simulation de l’exécution d’un système d’exploitation. Les composants aussi bien
matériels que logiciels peuvent être émulés afin de garantir la cohérence du fonctionnement du système
▸ Cloud d’exploitation. On retrouve plusieurs logiciels capables de lancer des machines virtuelles notamment les Hyperviseurs.
▸ Couche d’abstraction
▪ L’Hyperviseur est une plate-forme de virtualisation qui permet à plusieurs systèmes d'exploitation de travailler sur
▸ Conteneurs une même machine physique en même temps. On distingue plusieurs classes d’Hyperviseur.
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


82
Virtualisation

Hyperviseur de type 1

▪ L’hyperviseur de type 1 (Natif ou « bare metal ») est un logiciel qui s’exécute dans un mode privilégié au niveau
matériel. Ce mode lui permet de prendre la main sur les systèmes d’exploitations. L’hyperviseur est intiment lié au
processeur.
▸ Cloud ▪ Le code d’un hyperviseur doit être compatible avec le processeur sur lequel, il tourne. Pour Intel ou AMD, on
▸ Couche d’abstraction retrouve les technologies sous-jacentes pour l’hyperviseur se nommant AMD-V et Intel VT-x. La plupart des logiciels
hyperviseurs gèrent ces deux technologies. Les systèmes d’exploitation qui tournent dans ce mode doivent être
▸ Conteneurs aussi compatibles avec l’hyperviseur.
▸ Virtualisation ▪ Un driver de virtualisation pour chaque hyperviseur doit être intégré dans les systèmes d’exploitation. On dit alors
que les machines virtuelles sont conscientes d’être virtualisées (Paravirtualisation).
▪ Des hyperviseurs sont compatibles avec des systèmes non conscients. Dans ce cas, un logiciel d’émulation
matérielle est nécessaire en plus de l’hyperviseur.
▪ Pour ce qui est des hyperviseur nous retrouvons le VMWare ESXi de VMWare, Xen, Qemu-KVM hyperviseur
communautaire Linux et Hyper-V de Microsoft.

Copyright © Elysium Security Version 1.0 – 2020/2021


83
Virtualisation

Hyperviseur de type 2

▪ L’hyperviseur de type 2 (Hosted) exécute des machines virtuelles dans un système d’exploitation hôte.
L’hyperviseur sera un processus en ring 3 qui contiendra l’ensemble du système d’exploitation ainsi que de
▸ Cloud l’émulation matérielle.
▸ Couche d’abstraction
▪ Pour ce qui est des hyperviseur de type 2 nous retrouvons le VMWare Workstation de VMWare, VirtualBox
▸ Conteneurs d’Oracle, Qemu (sans KVM), etc.
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


84
Virtualisation

KVM

▪ KVM (pour Kernel-based Virtual Machine) est un hyperviseur open source de type 1 pour Linux.
▸ Cloud KVM est disponible depuis la version 2.6.20 du noyaux Linux. Il fonctionne sur les processeur Intel
▸ Couche d’abstraction grâce Intel VT ou processeur AMD grâce à AMD-V . Depuis, KVM supporte les architectures de
processeurs suivants Power PC3, IA-64.
▸ Conteneurs
▪ Les processeurs Intel et AMD intègrent des mécanismes d'isolation qui permettent à un système
▸ Virtualisation d’exploitation virtualisé d'être exécuté directement sur le processeur quels que soient les anneaux
de protection qu'il requiert pour fonctionner, tout en assurant la protection contre la lecture et
l'écriture dans la mémoire n'appartenant pas à la machine virtuelle.
▪ Cela est principalement possible grâce à une « MMU » dédiée à chaque machine virtuelle sur le
processeur et grâce à une redirection des interruptions matérielles vers l'hyperviseur de machines
virtuelles (KVM en l'occurrence) afin d'émuler le matériel dont a besoin le système.
▪ Le module KVM se décline en deux sous-modules : kvm-intel et kvm-amd.
▪ Les pilotes Virtio permettent l’extension de fonctionnalité de KVM. Ce mécanisme permet une
vitesse d'exécution accrue car il n'est plus nécessaire d'émuler des périphériques matériels.

Copyright © Elysium Security Version 1.0 – 2020/2021


85
Virtualisation

KVM

▸ Cloud
▸ Couche d’abstraction
▸ Conteneurs
▸ Virtualisation

Copyright © Elysium Security Version 1.0 – 2020/2021


86
Virtualisation

Xen

▸ Cloud ▪ Xen est un hyperviseur de type 1. Il est intégré dans linux à travers un patch kernel. Xen
sépare les machines virtuelles sous forme de « domaine » (dom0, dom1, dom2). Dom0
▸ Couche d’abstraction
correspond au système natif qui permet de contrôler l’hyperviseur.
▸ Conteneurs ▪ Xen possède trois techniques permettant d’effectuer des E/S sur les systèmes
▸ Virtualisation d’exploitation virtualisés :
✓ Le modèle de pilote PV partagé: un pilote de périphérique frontal virtuel
communique avec un pilote de périphérique principal virtuel qui à son tour
communique avec le périphérique physique via le pilote de périphérique (natif).
Cela permet à plusieurs machines virtuelles d'utiliser la même ressource matérielle
tout en pouvant réutiliser le support matériel natif.
✓ E/S basées sur l'émulation de périphérique: les invités HVM émulent des
périphériques matériels dans le logiciel. Dans Xen, QEMU est utilisé comme
émulateur de périphérique.
✓ Passthrough: vous permet de donner le contrôle des périphériques physiques aux
invités. Dans ce mode, les machines virtuelles ont un accès direct aux
périphériques PCI (NIC, contrôleur de disque, contrôleur USB, contrôleur Firewire,
carte son, etc.).

Copyright © Elysium Security Version 1.0 – 2020/2021


87
Virtualisation

VMWare ESXi

▪ ESXi est un système d’exploitation Linux (distribution basé sur RED Hat) non libre qui intègre un hyperviseur de type 1.
▪ VMware décrit le système ESXi comme similaire à un noeud informatique sans état. Les informations d'état peuvent être
▸ Cloud téléchargées à partir d'un fichier de configuration enregistré.
▸ Couche d’abstraction ▪ Vmkernel, le système d'exploitation d'ESXi, assure directement l'interface avec les agents VMware et les modules tiers.
▸ Conteneurs ▪ Les administrateurs chargés de la virtualisation peuvent configurer ESXi via sa console ou le client VMware vSphere.
▪ ESXi, vSphere client et vCenter sont des composants de VMware vSphere. vSphere client permet aux administrateurs de
▸ Virtualisation se connecter aux serveurs ESXi et d'accéder ou de gérer des machines virtuelles. Le client vSphere est un portail de
gestion HTML5 / Web.
▪ VMware vCenter Server est une application de gestion centralisée qui vous permet de gérer des machines virtuelles et
des hôtes ESXi de manière centralisée. Le client vSphere est à nouveau utilisé pour accéder à vCenter Server et
finalement gérer les serveurs ESXi. vCenter Server est obligatoire pour les entreprises qui ont besoin de fonctionnalités
telles que vMotion, VMware High Availability, VMware Update Manager, VMware Distributed Resource Scheduler
(DRS), etc.

Personne qui
Personne qui se demande ce
squatte l’écran d’un
qu’il a acheté
collègue.

Dos de l’interface graphique de VMWare ESXi


Copyright © Elysium Security Version 1.0 – 2020/2021
88
Virtualisation

HyperV

▪ Hyper-V est une preuve de concept de Microsoft dans l’univers de la virtualisation, il s’agit d’un hyperviseur de type
1 se lançant à travers le système d’exploitation Windows.
▸ Cloud ▪ Hyper-V fait pareil que son homologue VMWare ESXi en moins performant.

▸ Couche d’abstraction ATTENTION : Si par malchance vous avez activé le service Hyper-V avec vos serveurs Windows sur un disque dur
▸ Conteneurs plateau, surtout ne redémarrez pas le serveur ! Cela pourrait prendre la journée.
▸ Virtualisation
Image de présentation de l’outil Hyper-V sur le site de Microsoft

Microsoft
Vulnérabilité Hyper-V de l’isolation qui n’active
entre machines virtuelles. Une pas ses
machine virtuelle peut en contrôler licences
une autre.

Copyright © Elysium Security Version 1.0 – 2020/2021


3.
Risques liés à la virtualisation
90
Risques de sécurité spécifiques à la virtualisation

Vulnérabilités

▪ Les vulnérabilités applicatives et matérielles s’appliquent de la même manière sur une machine virtuelle
qu’une machine physique. Les principes de sécurité restent les mêmes.
▸ Risques Virtualisation ▪ Les outils et l’application des directives peuvent changer en matière opérationnelle mais les catégories de
▸ Corruption mémoire faille restent les mêmes. Et les principes de cloisonnement réseaux restent aussi les mêmes.
▸ Kernel et Hyperviseur
“La virtualisation semble avoir de nombreux avantages en matière de sécurité.
Vous avez fumé quelque chose qui altère votre esprit. La virtualisation x86 consiste essentiellement à placer
un autre noyau presque complet, plein de nouveaux bugs, au-dessus d'une architecture x86 désagréable qui
a à peine une protection de page correcte. Ensuite, vous exécutez votre système d'exploitation à côté de ce
tout nouveau tas de merde.
Vous vous êtes fourvoyés. Vous êtes stupide, si vous pensez qu'une collection mondiale d'ingénieurs en
logiciel qui ne peuvent pas écrire des systèmes d'exploitation ou des applications sans failles de sécurité,
peuvent alors écrire soudainement des couches de virtualisation sans failles de sécurité.
Vous avez vu quelque chose sur une étagère, et il y a pleins de jolies couleurs dessus donc vous l'avez
acheté.
C'est ça, la virtualisation x86. “
Citation de Theo de Raadt créateur d’OpenBSD - 2007
Source https://marc.info/?l=openbsd-misc&m=119318909016582

Copyright © Elysium Security Version 1.0 – 2020/2021


91
Risques de sécurité spécifiques à la virtualisation

Vulnérabilités « Cloud »

▸ Risques Virtualisation
▸ Corruption mémoire
▸ Kernel et Hyperviseur

threatpost.com

www.infosecmatter.com

Copyright © Elysium Security Version 1.0 – 2020/2021


92
Risques de sécurité spécifiques à la virtualisation

Vulnérabilités « Cloud »

▸ Risques Virtualisation
▸ Corruption mémoire
▸ Kernel et Hyperviseur

La vulnérabilité aurait pu permettre à un cyberattaquant d'envoyer des courriels


usurpés, imitant n'importe quel client de Gmail ou de G Suite .
Le transfert de courriels de Gmail/G Suite valide également le courriel usurpé avec Of note, a critical, wormable iCloud account takeover bug would allow attackers to
les normes de sécurité SPF et DMARC, ce qui aide les attaquants à authentifier le automatically steal all of a victim’s documents, photos, videos and more.
message compromis.
Copyright © Elysium Security Version 1.0 – 2020/2021
93
Risques de sécurité spécifiques à la virtualisation

Traitement des données mutualisées

➢ Une des autres familles de vulnérabilités particulièrement importantes porte sur le mauvais traitement des
▸ Risques Virtualisation données mutualisées.
➢ L’import d’une VM au sein d’une solution IaaS peut être une source de vulnérabilités.
▸ Corruption mémoire
« La faille la plus critique est identifiée sous le nom CVE-2012-3288. Elle est issue d'une validation incorrecte
▸ Kernel et Hyperviseur des données entrantes, lorsque les fichiers de chargement de la machine virtuelle sont contrôlés, précise
VMware. Des pirates peuvent utiliser cette vulnérabilité en corrompant la mémoire et en exécutant du code
arbitraire sur le système hôte » (source : Le monde informatique).

Copyright © Elysium Security Version 1.0 – 2020/2021


94
Risques de sécurité spécifiques à la virtualisation

Vulnérabilités de conception

▪ Certaines failles de conception des outils autour de la virtualisation peuvent avoir un impact significatif sur
l’environnement virtualisé.
▸ Risques Virtualisation
▪ VMWare Vsphère expose sur le réseau une interface JMX/RMI qui est synonyme de vulnérabilité RCE.
▸ Corruption mémoire
▸ Kernel et Hyperviseur « Un cryptolocker s'attaque depuis quelques mois à deux produits VMware : ESXi et vCenter. Des entreprises
confirment avoir été victimes de ce ransomware, un fichier texte est placé sur les datastore en demandant 5
bitcoins pour la restitution des données par machine. Voir CVE-2015-2342, CVE-2015-5177, CVE-2015-1047 »

Copyright © Elysium Security Version 1.0 – 2020/2021


95
Risques de sécurité spécifiques à la virtualisation

Bug CPU / Meltdown et Spectre

▪ Les vulnérabilités Spectre et Meltdown touchent le pipeline d’exécution des processeurs (Intel et AMD).
L’exploit introduit des échecs dans la gestion de mémoire virtuelle qui ne sont pas exécutés par le
▸ Risques Virtualisation programme mais tout de même interprétés par le processeur. Ces échecs ne devraient avoir aucune
influence sur le flux d’exécution. Cependant le processeur peut interpréter des déplacements du contenu
▸ Corruption mémoire
d’adresses mémoire physiques depuis des processus en mode utilisateur (ring 3).
▸ Kernel et Hyperviseur
▪ Les vulnérabilités Meltdown et Spectre cassent les protections de mémoire en anneaux. Il est donc possible
de lire la mémoire de machine virtuelle depuis un processus d’une autre machine virtuelle.

https://meltdownattack.com/meltdown.pdf
Copyright © Elysium Security Version 1.0 – 2020/2021
96
Rappels corruption mémoire

Rappel – Corruption mémoire?

▪ Lorsque un programme est exécuté par le système d’exploitation, il est entièrement chargé dans la mémoire
vive de la machine (RAM)
▸ Risques Virtualisation ▪ Le flux d’exécution d’un programme manipule donc des zones mémoires (variables du programme, code, I/O, …)
▸ Corruption mémoire ▪ Corrompre la mémoire d’un programme = potentiellement maîtriser son flux d’exécution et donc la capacité
d’exécuter du code arbitraire.
▸ Kernel et Hyperviseur
▪ => Débordements de tampons, de piles, bugs de format, …

Copyright © Elysium Security Version 1.0 – 2020/2021


97
Rappels corruption mémoire

Exemple de Corruption mémoire

▸ Risques Virtualisation
▸ Corruption mémoire
▸ Kernel et Hyperviseur

▸ Des variables essentielles au bon fonctionnement du programme sont « écrasées » =>


Potentielle prise de contrôle du flux d’exécution.

Copyright © Elysium Security Version 1.0 – 2020/2021


98
Rappels corruption mémoire

Exploitation Typique

▸ Charger des opcodes en mémoire (via une entrée aléatoire) puis rediriger le flux d’exécution vers ces
opcodes.
▸ Risques Virtualisation
▸ Corruption mémoire
▸ Kernel et Hyperviseur

AIE

▸ Nécessite de connaitre l’adresse ou les opcodes ont été chargés.

Copyright © Elysium Security Version 1.0 – 2020/2021


99
Rappels corruption mémoire

NX Bit / DEP / W^X

▪ NX Bit: « No eXecute »
▪ DEP: « Data Execution Prevention »
▸ Risques Virtualisation ▪ W^X: « Write XOR Execute »
▸ Corruption mémoire
▪ 3 noms différents pour une même protection.
▸ Kernel et Hyperviseur
▪ Globalement, rend les zones mémoire dans lesquelles il est possible d’écrire non exécutables.

▪ Un attaquant peut charger des opcodes mais n’est plus capable de les exécuter directement.

▪ Présent depuis Windows XP (système) et Vista (applications), Linux 2.6.8

Copyright © Elysium Security Version 1.0 – 2020/2021


100
Rappels corruption mémoire

NX Bit / DEP / W^X

Copyright © Elysium Security Version 1.0 – 2020/2021


101
Rappels corruption mémoire

ASLR

▪ À chaque exécution du programme, ses zones mémoire sont mappées différemment. Il n’est
plus possible de prévoir de manière fiable une adresse ou sauter.

Copyright © Elysium Security Version 1.0 – 2020/2021


102
Rappels corruption mémoire

ASLR

▪ Présent depuis Windows Vista (système et applications), Linux 2.6.12

▸ Risques Virtualisation ▪ Du fait de la taille des adresses mémoire, l’ASLR est plus efficient sur systèmes 64bits :
▸ Corruption mémoire
▸ Kernel et Hyperviseur

Copyright © Elysium Security Version 1.0 – 2020/2021


103
Rappels corruption mémoire

Stack Canary

▪ Protège la mémoire contre les attaques de type « débordement de tampons » en plaçant des valeurs
randomisées à certains points stratégiques de la mémoire.
▸ Risques Virtualisation ▪ A intervalle régulier, le programme vérifie la valeur de ces canaries, si elle a changé, l’exécution est stoppée
▸ Corruption mémoire ▪ La présence ou non de canaries dans un programme dépend du compilateur utilisé.
▸ Kernel et Hyperviseur ▸ De 2001 à 2005 : ProPolice est un patch d’IBM ajoutant les fonctionnalités de stack canary à GCC. Sera ensuite
réimplémenté sous GCC 4.1.
▸ Depuis 2003 sous Visual Studio en option, non activée par défaut jusqu’à 2005.

Si la valeur du canary change,


c’est que le buffer à débordé

Copyright © Elysium Security Version 1.0 – 2020/2021


104
Kernel land et Hyperviseur

Welcome in Ring <= 0

▪ Dans les rappels, nous avons vu des mécanismes de protection contre la corruption mémoire des processus
en mode utilisateur (ring 3).
▸ Risques Virtualisation ▪ Les techniques au niveau de l’hyperviseur ressemblent à des protections de ring 3, cependant ce mode est
permissif n’est pas soumis au même type de contrainte qu’en ring -1.
▸ Corruption mémoire
▪ Bien que le processeur inclue des mécanismes de protection, c’est à l’hyperviseur d’utiliser toutes les
▸ Kernel et Hyperviseur fonctionnalités lui permettant de se protéger.

Babouche, où est l’hyperviseur ?

L’hyperviseur est en ring -1.

Copyright © Elysium Security Version 1.0 – 2020/2021


105
Kernel land et Hyperviseur

VMCALLS - HYPERCALLS

▪ Dans les rappels, nous avons vu que le passage entre kernel mode et user mode se
▸ Risques Virtualisation fait au travers des appels systèmes, des interruptions matérielles et des erreurs
graves de programme. Ce même principe existe entre l’hyperviseur et les kernels.
▸ Corruption mémoire
▪ L’hyperviseur est un programme qui contrôle les registres des processeurs et toute
▸ Kernel et Hyperviseur la mémoire. Il peut interférer dans le flux d’exécution lorsque une erreur de page de
mémoire survient, lors d’une affection registre processeur.
▪ Ce blocage d’exécution de la machine virtuelle est nommé VM-exit (machine
virtuelle qui sort). Le reprise du flux d’exécution de la machine virtuelle par
l’hyperviseur est quant à lui nommé VM-entry (pour l’entrée de la machine
virtuelle).
▪ Pour rappel les kernels savent qu’ils sont dans un environnement virtualisé
(paravirtualisation), au travers de l’instruction processeur VMCALL aussi appelés
hypercalls, ils communiquent avec l’hyperviseur. Les drivers de machines virtuelles
sont spécialisés pour l’hyperviseur et permettent d’entendre des fonctionnalités des
machines virtuelles.

Httpsring,org

Copyright © Elysium Security Version 1.0 – 2020/2021


106
Kernel land et Hyperviseur

Liste des VM-Exit

VM Exit Raison
▸ Risques Virtualisation EPTV Une tentative d'accès à la mémoire avec une adresse physique d'invité a été interdite par la configuration
des structures de pagination ETP. (Extend Page Table)
▸ Corruption mémoire
APICACC Le logiciel invité a tenté d'accéder à la mémoire à une adresse physique sur la page d'accès APIC
▸ Kernel et Hyperviseur
MSRWR Le logiciel invité a tenté d'écrire un registre spécifique à la machine, MSR.

MSRRD Le logiciel invité a tenté de lire le registre spécifique à la machine, MSR.

IOINSR Le logiciel invité a tenté d'exécuter une instruction d'E / S.


DRACC Le logiciel invité a tenté de déplacer des données vers ou depuis un registre de débogage.

CRACC Le logiciel invité a tenté d'accéder aux registres de contrôle CR0, CR3, CR4 ou CR8 x86.

CPUID Le logiciel invité a tenté d’exécuter une instruction CPUID. (caractéristiques du processeur)
PNDVINT En attente d'interruption virtuelle
EXTINT Une interruption externe est arrivée.
EXCNMI Exception ou non-masquable interruption, NMI. (interuption matériel impossible à ignorer, typiquement
un problème matériel)

Copyright © Elysium Security Version 1.0 – 2020/2021


107
Kernel land et Hyperviseur

MMU - memory management unit

▪ Le MMU est un composant CPU permettant de contrôler les accès mémoires du processeur. Il permet
de translater les adresses mémoires physiques en adresses mémoires linéaires. Le kernel ne voit pas
▸ Risques Virtualisation différentes barrettes de RAM mais un bloc continu d’adresses mémoire. Ce mécanisme est nommé
▸ Corruption mémoire pagination. Ce même MMU gère la translation des adresses mémoire paginées en adresses mémoire
▸ Kernel et Hyperviseur virtuelles. Cet autre mécanisme est nommé segmentation.
▪ En parlant de segmentation lorsqu’un processus écrit sur un segment de mémoire qui n’existe pas ou
dont il n’a pas le droit, le MMU déclenche une exception Segment Violation. Cette violation de
segment se traduit par le signal SIGSEGV (Signal Segmentation Violation) sous Linux.
▪ Le système de pagination de la mémoire découpe sous forme de page la mémoire virtuelle, les fameux
Page Table Entry (PTE). Les pages pouvant se situer n’importe où en mémoire, une structure conserve
les entrées des pages (Page Table Base Register pour PTBR dans le processus en cours). Chaque page
contient en entrée des informations relatives à la page mémoire. Enfin, les tables de page se trouvent
dans des répertoires nommés Page Directory Base Register.
▪ Depuis les processeurs de la famille AMD64 (AMD et Intel), les entrées de page mémoire conservent en
plus des bits de protections notamment le bit NX.

Copyright © Elysium Security Version 1.0 – 2020/2021


108
Kernel land et Hyperviseur

MMU - memory management unit – Page de table

▪ La mémoire virtuelle est composée de deux parties : le numéro de la table de page et le déplacement.
▪ Dans la table des pages se trouve l’entrée de la page. Cette page d’entrée PTE contient entre autre, un bit de
▸ Risques Virtualisation validation, les bit PROT et le numéro de frame. Le numéro de frame associé au déplacement donne l’adresse
▸ Corruption mémoire physique.
▸ Kernel et Hyperviseur

Copyright © Elysium Security Version 1.0 – 2020/2021


109
Kernel land et Hyperviseur

MMU - memory management unit – Page de table

▪ Le bit 24, N (Non-cachée), signifie que la page n'est pas en cache et que le système doit lire ou écrire directement
depuis ou vers la mémoire.
▸ Risques Virtualisation ▪ Le bit M (Modifiée) est modifié par le matériel si le contenu de la page est modifié.
▸ Corruption mémoire ▪ Le bit U (Utilisée) indique si la page a été lue ou écrite par un processus. Il est utile pour la détermination de
l'espace de travail d'un processus. Dont les processus qui partagent les mêmes zones mémoires (notamment
▸ Kernel et Hyperviseur utilisé pour le mappage de programme, bibliothèque et l’usage de plusieurs instances de processus)

Valeur Protection
0000 Aucun accès
1000 Lecture pour le noyau
1100 Lecture/écriture pour le noyau
1010 Lecture utilisateur et noyau
Lecture utilisateur, lecture/écriture pour le
1110
noyau
1111 Lecture/écriture utilisateur et noyau

Copyright © Elysium Security Version 1.0 – 2020/2021


110
Kernel land et Hyperviseur

IOMMU

▪ En informatique, une unité de gestion de mémoire d'entrée-sortie (IOMMU) est une unité de
▸ Risques Virtualisation gestion de mémoire (MMU) qui connecte un bus d'E/S à accès direct à la mémoire
(compatible DMA) à la mémoire principale.
▸ Corruption mémoire
▪ À l'instar d'une MMU traditionnelle, qui traduit les adresses virtuelles visibles par le
▸ Kernel et Hyperviseur processeur en adresses physiques, l'IOMMU mappe les adresses virtuelles device-visible
(également appelées adresses device ou adresses d'E/S dans ce contexte) aux adresses
physiques. Certaines unités offrent également une protection de la mémoire contre les
périphériques défectueux ou malveillants.
▪ L’IOMMU permet de modifier/filtrer à la volée les accès à la mémoire vers et part les
périphériques.
▪ En terme de sécurité, l’IOMMU permet à l’hyperviseur de ne pas être ré-écrit par un
périphérique physique.

http://iommuinside.uk

Copyright © Elysium Security Version 1.0 – 2020/2021


111
Kernel land et Hyperviseur

SLAT – Second Layer Address Translation

▪ Dans un contexte de virtualisation, il existe une deuxième couche de translation d’adresse


nommé SLAT. Cette seconde couche d’abstraction, s’effectue entre la mémoire physique simulée
▸ Risques Virtualisation de la machine virtuelle et la mémoire physique (RAM).
▸ Corruption mémoire ▪ Lors de l'exécution d'un système virtuel, l’hyperviseur alloue une mémoire virtuelle qui sert de
mémoire physique pour le système invité, et le même processus de traduction d'adresses se
▸ Kernel et Hyperviseur
poursuit également dans le système virtualisé.
▪ Cela augmente le coût d'accès à la mémoire car la traduction d'adresse doit être effectuée deux
fois - une fois à l'intérieur du système invité (en utilisant une table de shadow pages virtualisé
par l’hyperviseur) et une fois à l'intérieur du système hôte (en utilisant la table de pages
matérielles).
▪ Les tables de shadow pages sont alors utilisées par l'hyperviseur pour suivre l'état de la mémoire
physique dans lequel l'invité pense avoir un accès à la mémoire physique. Sans cette séparation,
une machine virtuelle n’aurait pas de cloisonnement et pourrait alors lire et écrire dans la
mémoire des autres machines virtuelles et de l’hyperviseur.
▪ Aujourd’hui, les processeurs possèdent des technologies pour indexer les pages mémoires des
machines virtuelles. Sur Intel, on retrouve EPT pour Extend Page Table et sur AMD, RVI pour
Rapid Virtualisation Indexing. En comparaison ces deux technologies offrent un gain de
performance de 40% comparé aux shadow pages.

Copyright © Elysium Security Version 1.0 – 2020/2021


112
Kernel land et Hyperviseur

SLAT – Second Layer Address Translation

Le registre cr3 contient l’adresse mémoire


de la Page Directory Base Register. On peut
▸ Risques Virtualisation travailler sur de la mémoire virtuelle, la
mémoire physique simulée et physique.
▸ Corruption mémoire
▸ Kernel et Hyperviseur

GFN: Guest Frame Number


PFN: Physical Frame Number
Copyright © Elysium Security Version 1.0 – 2020/2021
4.
Management des systèmes
virtualisés
114
Réplication

Snapshot (cliché instantané)

▪ Les fonctionnalités de snapshot en virtualisation permettent de prendre un état de la machine virtuelle


entière.
▸ Réplication ▪ La mémoire vive et le disque dur seront sauvegardés dans un état différentiel. Il sera alors possible de revenir
▸ Storage à l’état du snapshot. Les snapshots peuvent être cumulés.

▸ Cluster Management

https://kb.vmware.com/

Copyright © Elysium Security Version 1.0 – 2020/2021


115
Réplication

Migration/ replication

▪ La migration permet de transmettre l’état d’une machine virtualisée vers un autre hyperviseur. Plusieurs hôtes
physiques pourront virtualiser la même machine. Le transfert est transparent pour la machine virtualisée. On
▸ Réplication parle alors de migration à chaud car la machine virtuelle est toujours en activité lors de la migration.
▸ Storage ▪ Grâce à cette technologie deux hyperviseurs peuvent manager plusieurs machines virtuelles de façon pro-
active. On parle alors de réplication. L’ensemble des serveurs forme un cluster haut disponibilité. Si un
▸ Cluster Management hyperviseur est coupé alors un autre hyperviseur prend le relais des exécutions des machines virtuelles.

https://vmware.com/

Copyright © Elysium Security Version 1.0 – 2020/2021


116
Storage

Gestion de stockage

▪ Dans les architectures virtualisées, les ressources associées aux hyperviseurs s’appuient essentiellement
sur les composants mémoires et CPUs nécessaires au fonctionnement des machines Virtuels exécutées. Le
▸ Réplication stockage est ainsi délégué à des équipements dédiés afin d’en assurer la centralisation et la disponibilité.
▸ Storage ▪ Ces équipements peuvent prendre la forme de différentes technologies (Baie, cluster logiciel de stockage)
▸ Cluster Management interconnectées aux hyperviseurs ou actifs consommateurs de données par différents moyens (Isci, Fibre,
Nvme over-fabric, etc..).
▪ Une baie de stockage a pour but de fournir de l’espace disque présenté au système d’exploitation sous
forme de disques logiques. Une baie de stockage est composée de deux principaux éléments : de disques
durs (d’une dizaine à quelques milliers) et d’un ou plusieurs contrôleurs.
▪ Une baie de stockage propose des options de protection et de virtualisation au travers des technologies
RAID, elle intègre du cache pour bufferiser et optimiser les accès aux disques et dispose d’un certain
nombre de port d’accès pour la connexion avec les serveurs. Il existe plusieurs types de ports : SAS, Fiber
Channel ou encore iSCSI.

https://vmware.com/
Copyright © Elysium Security Version 1.0 – 2020/2021
117
Storage

Fiber channel

▪ Fibre Channel est un protocole défini par la norme ANSI X3T11 permettant une connexion haut débit (de
l'ordre de 16 GB/s par seconde) entre un ordinateur et son système de stockage ou d'autre type de
▸ Réplication périphérique.
▸ Storage ▪ Il garantit l’arrivée des données, il permet de créer un réseau pouvant transporter plusieurs protocoles de
façon native comme l'IP (Internet Protocol) et il offre la possibilité d'un mode canal utilisé pour transporter le
▸ Cluster Management
protocole SCSI dans le cas des SAN.

https://mylovestorage.com/

Copyright © Elysium Security Version 1.0 – 2020/2021


118
Storage

iSCSI

▪ iSCSI est une abréviation de Internet Small Computer System Interface. C'est un protocole
de stockage en réseau basé sur le protocole IP destiné à relier les installations de stockage
▸ Réplication de données.
▸ Storage ▪ En transportant les commandes SCSI sur les réseaux IP, iSCSI est utilisé pour faciliter les
▸ Cluster Management transferts de données sur les longues distances. iSCSI peut être utilisé pour transmettre
des données sur des réseaux locaux (LAN), réseaux étendus (WAN) ou Internet et peut
permettre d'être indépendant sur l'emplacement physique du stockage ou de la
récupération de données.
▪ Le protocole permet aux clients (appelés initiateurs) d'envoyer des commandes SCSI (CDB)
à des périphériques de stockage SCSI (targets) sur des serveurs distants. Il s'agit d'un
protocole de SAN (Storage Area Network), qui permet de rassembler les ressources de
stockage dans un centre de données tout en donnant l'illusion que le stockage est local.
▪ Contrairement au fibre channel, qui nécessite une infrastructure matérielle dédiée, iSCSI
peut s'utiliser en conservant une infrastructure existante.

Copyright © Elysium Security Version 1.0 – 2020/2021


119
Storage

NVMe-over-fabric

▪ NVMe over Fabrics (NVMe-oF) est une extension du protocole réseau NVMe pour les
systèmes Ethernet et Fibre Channel, qui accélère et renforce la connectivité entre les
▸ Réplication solutions de stockage et les serveurs.
▸ Storage ▪ Il permet de moins solliciter les processeurs des serveurs hôtes d’applications. La
▸ Cluster Management principale différence entre NVMe et NVMe over Fabrics réside dans le mécanisme de
mappage du mode de transport pour l'envoi et la réception des commandes et des
réponses.
▪ NVMe over Fabrics utilise un modèle à messages pour communiquer entre un hôte et
un périphérique de stockage cible. Le protocole NVMe local mappe les commandes et
les réponses sur la mémoire partagée de l'hôte via le protocole d'interface PCIe.
▪ Le consortium NVM Express définit la spécification NVMe-oF comme une architecture
commune prenant en charge un large éventail de fabrics de réseau de stockage pour le
protocole de stockage par blocs.
▪ Elle fournit notamment une interface frontale avec les systèmes de stockage, s'étend à
un grand nombre de périphériques NVMe et augmente la distance d'accès aux
périphériques et sous-systèmes NVMe au sein d'un datacenter.
▪ NVMe-Over-Fabric est supporté officiellement à partir de la version 5.0 du noyau Linux.

Copyright © Elysium Security Version 1.0 – 2020/2021


120
Storage

GLUSTER

▪ GlusterFS est un système de fichiers libre distribué en parallèle, qui permet


de stocker jusqu’à plusieurs pétaoctets (10 puissance 15 octets). C’est un
système de fichiers de grappe de serveurs. Il est livré en deux parties : un
serveur et un client.
▪ La plupart des fonctionnalités de GlusterFS sont implémentées comme
traducteurs, incluant :
✓ duplication et réplication par fichier ;
✓ partage de charge par fichier ;
✓ gestion des pannes ;
✓ ordonnancement et cache disque ;
✓ quotas.
▪ Le serveur GlusterFS server est conçu très simplement : il exporte un
système de fichiers existant comme tel, laissant aux traducteurs côté client
la tâche de structurer l’espace.
▪ Les clients eux-mêmes sont sans état, ne communiquent pas entre eux et
sont censés disposer de configurations de traducteurs cohérents entre eux.

Copyright © Elysium Security Version 1.0 – 2020/2021


121
Storage

Service IaaS stockage

▪ Exemple d’architecture de baie de stockage type cloud sur Amazon Web Service.
▸ Réplication
▸ Storage
▸ Cluster Management

Copyright © Elysium Security Version 1.0 – 2020/2021


122
Cluster management

TP – Durée 1h

▪ Que représente/signifie pour vous la notion de « cluster management » ?


▸ Réplication
▪ Quelques éléments de recherche:
▸ Storage
✓ Apache Mesos
▸ Cluster Management ✓ Heartbeat
✓ OpenHPC
✓ MAAS canonical
✓ Corosync
✓ HA-Proxy / ldirectord
✓ Red Hat Cluster Suite
✓ Saltstack / Ansible
✓ Docker Swarm
✓ Orbit Project

Copyright © Elysium Security Version 1.0 – 2020/2021


123
Cluster management

Saltstack

▪ Salt ou SaltStack est un logiciel de gestion de configuration écrit en Python, fonctionnant


sur le principe client-serveur. Salt a pour but de rendre la gestion de configuration simple
▸ Réplication mais flexible. Il s'agit d'une alternative à Puppet, Ansible et Chef. On utilise les langages
▸ Storage informatiques YAML, Jinja2 et Python pour configurer Salt.
▸ Cluster Management ▪ Pour utiliser Salt il faut installer deux services qui peuvent éventuellement être sur le
même serveur :
✓ salt-master (le « master », le serveur) ;
✓ salt-minion (le « minion », le client).
▪ Le « minion » identifie le « master » par son nom ou par son adresse IP. Le « master »
identifie le « minion » par son nom d'hôte. La communication entre le serveur et les
clients se fait après l'acceptation du « minion » par le « master » et après acceptation d'un
échange de clés de chiffrement. Les minions peuvent ensuite être commandés par lot à
l'aide de critères comme le système d'exploitation, une expression régulière sur le nom
d'hôte, le type d'architecture, etc.
▪ Les fichiers d'état, les « states », permettent de décrire une représentation de l'état dans
lequel un serveur doit être. Ils sont écrits en YAML et portent l'extension .sls. Les fonctions
d'état font fréquemment appel à un ou plusieurs modules d'exécution pour exécuter une
tâche donnée.

Copyright © Elysium Security Version 1.0 – 2020/2021


124
Cluster management

Orbit – system live migration

▸ Réplication ▪ ORBIT introduit un paradigme de consolidation des ressources virtualisées dans lequel la
▸ Storage mémoire et les ressources d'E/S utilisées par une machine virtuelle invitée (VM) sont
fournies par plusieurs hôtes externes au lieu d'être limitées à un seul serveur physique.
▸ Cluster Management
▪ La virtualisation des entrées / sorties (E / S) est une méthodologie visant à simplifier la
gestion, à réduire les coûts et à améliorer les performances des serveurs dans les
environnements d'entreprise. Les environnements de virtualisation d'E / S sont créés en
faisant abstraction des protocoles de couche supérieure des connexions physiques. L'un
des objectifs de ce workpackage est d'externaliser les ressources d'E / S et de les
regrouper toutes dans une seule appliance dédiée.
▪ Les applications non distribuées sont vulnérables à la défaillance de l'hôte. Bien qu'il soit
possible d'acheter du matériel coûteux à plus haute fiabilité, ce n'est pas une garantie
contre les problèmes. Orbit WP4 permet à une machine virtuelle de continuer à
fonctionner, sans interruption, même si l'hôte sur lequel elle s'exécute échoue.
▪ https://www.orbitproject.eu/

Copyright © Elysium Security Version 1.0 – 2020/2021


125
Cluster management

Openstack

▪ OpenStack est un ensemble de logiciels open


source permettant de déployer des
▸ Réplication infrastructures de cloud computing
▸ Storage (infrastructure en tant que service). La
technologie possède une architecture
▸ Cluster Management
modulaire composée de plusieurs projets
corrélés (Nova, Swift, Glance...) qui
permettent de contrôler les différentes
ressources des machines virtuelles telles que
la puissance de calcul, le stockage ou encore le
réseau inhérent au centre de données sollicité.
▪ Le projet est porté par la Fondation
OpenStack, une organisation non-commerciale
qui a pour but de promouvoir le projet
OpenStack ainsi que de protéger et d'aider les
développeurs et toute la communauté
OpenStack.

Copyright © Elysium Security Version 1.0 – 2020/2021


126
Cluster management

kubernetes

▪ Kubernetes est une plate-forme open-source extensible et portable pour la gestion de charges de
travail (workloads) et de services conteneurisés.
▸ Réplication ▪ Elle favorise à la fois l'écriture de configuration déclarative et l'automatisation. C'est un large
▸ Storage écosystème en rapide expansion. Les services, le support et les outils Kubernetes sont largement
disponibles.
▸ Cluster Management

Copyright © Elysium Security Version 1.0 – 2020/2021


5.
TP
128
TP
TP

Le TP est organisé en deux parties a réaliser en parallèle :


▪ Challenges pratiques sur la plate forme Root-Me Pro - Mercredi matin à vendredi 12h30
▪ Etude de cas: Cluster de Firewall : Mercredi matin à vendredi 12h30
▪ Soutenance vendredi à partir de 13h30

Copyright © Elysium Security Version 1.0 – 2020/2021


129
TP
TP – Etude de cas

La société StartLink SA est une société spécialisée dans le conseil


financier pour les entreprises. La société est implémentée sur un
seul site principal à Saint-Etienne (42). Le SI est formalisé via la
cartographie présente sur cette slide.
Le nouveau DSI souhaiterait remplacer le cluster de firewall
Fortinet historique par un cluster de serveur/firewall sous
GNU/Linux. Dans cet objectif, le DSI souhaiterait mettre en œuvre
sur ce cluster de Firewall les modules suivants:
▪ Filtrage/Routage IP
▪ NAT/PAT
▪ Sonde NIDS
▪ DHCP pour le LAN
▪ VPN IPSEC
Le DSI vous sollicite afin d'étudier la faisabilité technique de mise
en œuvre de ce nouveau cluster de firewall GNU/Linux.
Par groupe de 2 ou 3 votre mission est de rédiger une étude
technique de mise en œuvre de ce cluster. Le DSI est ouvert à
toute proposition technique cohérente au besoin.
Ce rapport sera accompagné d’une présentation par groupe au
DSI le vendredi 23/10/20 après midi (Durée 30min).

Copyright © Elysium Security Version 1.0 – 2020/2021


130

Fin document

Copyright © Elysium Security Version 1.0 – 2020/2021

Vous aimerez peut-être aussi